IT201800000580A1 - Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico - Google Patents

Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico Download PDF

Info

Publication number
IT201800000580A1
IT201800000580A1 IT201800000580A IT201800000580A IT201800000580A1 IT 201800000580 A1 IT201800000580 A1 IT 201800000580A1 IT 201800000580 A IT201800000580 A IT 201800000580A IT 201800000580 A IT201800000580 A IT 201800000580A IT 201800000580 A1 IT201800000580 A1 IT 201800000580A1
Authority
IT
Italy
Prior art keywords
data
submodule
memory module
logic data
logic
Prior art date
Application number
IT201800000580A
Other languages
English (en)
Inventor
Fabio Enrico Carlo Disegni
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 IT201800000580A priority Critical patent/IT201800000580A1/it
Priority to US16/225,557 priority patent/US10824417B2/en
Priority to EP19150397.8A priority patent/EP3509066B1/en
Priority to CN201920021013.5U priority patent/CN209447150U/zh
Priority to CN201910013493.5A priority patent/CN110007947B/zh
Publication of IT201800000580A1 publication Critical patent/IT201800000580A1/it
Priority to US17/087,070 priority patent/US11256442B2/en
Priority to US17/667,087 priority patent/US11645004B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1693Timing circuits or methods
    • 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/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • G11C11/2293Timing 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/0061Timing 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/0064Verifying circuits or methods
    • G11C2013/0066Verify correct writing whilst writing is in progress, e.g. by detecting onset or cessation of current flow in cell and using the detector output to terminate writing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Read Only Memory (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Circuits Of Receivers In General (AREA)
  • Debugging And Monitoring (AREA)

Description

DESCRIZIONE
del brevetto per invenzione industriale dal titolo:
“METODO DI AGGIORNAMENTO IN TEMPO REALE DI UNA MEMORIA DIFFERENZIALE CON ACCESSIBILITA' CONTINUA IN LETTURA, MEMORIA DIFFERENZIALE E SISTEMA ELETTRONICO”
La presente invenzione è relativa ad un metodo di gestione di una memoria differenziale, una memoria differenziale e un sistema che comprende la memoria differenziale. In particolare, è relativa ad un metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilità continua in lettura da parte di un utilizzatore.
Come noto, centraline elettroniche di veicoli includono una memoria atta a immagazzinare un software di controllo del veicolo.
È inoltre nota la necessità di testare più versioni del software e quindi alternare l’esecuzione di differenti versioni fino a selezionare una versione definitiva.
È pratica comune utilizzare una pluralità di memorie, ciascuna memoria essendo atta a memorizzare ciascuna versione del software da testare. Alternativamente è possibile utilizzare una memoria di dimensione tale da memorizzare ciascuna versione del software da testare. Questo comporta un aumento dei costi.
Questo problema è particolarmente sentito nel caso di utilizzo di memorie di tipo differenziale, in cui vengono associate due celle di memoria di stato opposto per ogni bit di informazione. Le architetture di lettura di tipo differenziale offrono vantaggi in termini di affidabilità, in quanto il dato è memorizzato in modo ridondante; la lettura viene effettuata confrontando il dato contenuto nelle due celle di memoria di stato opposto.
Una classe di memoria di tipo differenziale è la memoria a cambiamento di fase (PCM), in cui, in particolare, la lettura avviene confrontando rispettive correnti che fluiscono nelle celle associate allo stesso bit di informazione.
Scopo della presente invenzione è mettere a disposizione un metodo di gestione di una memoria differenziale, una memoria differenziale e un sistema che comprende la memoria differenziale, atti a superare gli inconvenienti della tecnica nota.
Secondo la presente invenzione vengono realizzati un metodo di gestione di una memoria differenziale, una memoria differenziale e un sistema elettronico, 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, con riferimento ai disegni allegati, nei quali:
- la figura 1 mostra schematicamente una porzione di un dispositivo di memoria non volatile secondo una forma di realizzazione della presente invenzione;
- la figura 2 mostra schematicamente, mediante diagramma a blocchi, un metodo di gestione del dispositivo di memoria non volatile di figura 1;
- la figura 3 mostra un circuito elettrico corrispondente a una porzione del dispositivo di memoria non volatile di figura 1, inclusa nella porzione di figura 1;
- le figure 4A-4E mostrano il circuito di figura 3 in rispettive fasi del metodo di figura 2, in cui connessioni circuitali di particolare rilevanza per l’implementazione della rispettiva fase del metodo sono evidenziate da linee spesse; e
- la figura 5 mostra un sistema elettronico che include il dispositivo di memoria non volatile di figura 1.
Nella figura 1 è mostrata schematicamente, ed indicata nel suo complesso con il numero di riferimento 1, una porzione di un dispositivo di memoria, in particolare una memoria non volatile; secondo una forma di realizzazione della presente invenzione la memoria 1 è di tipo differenziale, in particolare di tipo PCM. Il dispositivo di memoria non volatile 1 è mostrato limitatamente alle sole parti necessarie alla comprensione della presente divulgazione.
In modo noto, le memorie PCM di tipo differenziale sono tipicamente progettate secondo uno schema a matrice di celle di memoria organizzate in righe (linee di parola, o “word line”) e colonne (linee di bit, o “bit line”); ciascuna cella di memoria è realizzata 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 che fluisce nella cella di memoria selezionata (o una quantità elettrica ad essa correlata) con una corrente di riferimento fornita da un generatore di corrente di riferimento (lettura cosiddetta “asimmetrica”, o “singleended”) e/o da una o più celle di riferimento, utilizzati per l’intera matrice di memoria. Nella tecnica nota, la lettura “single-ended” è utilizzata tipicamente in fase di verifica dell’avvenuta programmazione della cella o in fase di test. Durante il normale utilizzo della memoria viene invece utilizzata la lettura di tipo “double-ended”, in cui gli amplificatori di lettura (“sense amplifier”) confrontano la corrente che fluisce nella cella di memoria selezionata con quella che fluisce in una rispettiva cella associata alla cella di memoria selezionata nell’architettura differenziale.
Per effettuare la lettura “single-ended”, un ingresso dell’amplificatore di lettura riceve la corrente della cella di memoria che si desidera leggere mentre l’altro ingresso dell’amplificatore di lettura riceve la corrente di riferimento fornita dal generatore di corrente di riferimento.
In modalità single-ended, è possibile leggere e scrivere indipendentemente due celle di memoria normalmente associate per eseguire la lettura differenziale; di fatto, quando operata in modalità single-ended, ogni cella di memoria può avere un valore indipendente dal valore delle altre celle di memoria, e, di conseguenza è potenzialmente possibile raddoppiare la quantità di dati immagazzinabili nella memoria PCM.
In particolare, il dispositivo di memoria non volatile 1 comprende una matrice di memoria 2, costituita da una pluralità di “n” moduli di memoria principali 4a-4n. Ogni modulo di memoria principale 4a-4n comprende un primo sottomodulo 4a’-4n’ e un secondo sottomodulo 4a’’-4n’’. In particolare, ogni primo sottomodulo 4a’-4n’ comprende una pluralità di celle di memoria, ed ogni secondo sottomodulo 4a’’-4n’’ comprende una pluralità di rispettive celle di memoria.
In modo di per sé noto e non mostrato in figura 1, la pluralità di prime celle di memoria memorizza rispettivi dati logici di tipo binario. La pluralità di seconde celle di memoria corrisponde, per numero e caratteristiche di fabbricazione, alla pluralità di prime celle di memoria, ed è configurata per memorizzare rispettivi dati logici complementari ai dati logici memorizzati nella rispettiva pluralità di prime celle di memoria, in modo da consentire una lettura differenziale di detti dati logici.
In ogni caso, ciascun modulo di memoria principale 4a-4n può essere usato in modalità single-ended, tale per cui i dati logici memorizzati nella pluralità di celle di memoria di ciascun secondo sottomodulo 4a’’-4n’’ non sono complementari ai dati logici memorizzati nella pluralità di celle di memoria del rispettivo primo sottomodulo 4a’-4n’, ma sono ulteriori dati informativi. In questo modo, è possibile raddoppiare la capacità totale della matrice di memoria 2.
Il dispositivo di memoria non volatile 1 comprende inoltre un modulo di memoria ausiliario 6. In particolare, il modulo di memoria ausiliario 6 corrisponde strutturalmente e operativamente a ciascun modulo di memoria principale 4a-4n, ed è dunque formato da un primo sottomodulo 6’ e un secondo sottomodulo 6’’. In particolare, il primo sottomodulo 6’ comprende una pluralità di celle di memoria, ed il secondo sottomodulo 6’’ comprende una pluralità di rispettive celle di memoria, indirizzabili e dunque utilizzabili in modo single-ended.
Inoltre, il dispositivo di memoria non volatile 1 comprende un controllore 8, operativamente accoppiato alla matrice di memoria 2 ed al modulo di memoria ausiliario 6. Il controllore 8 è configurato per implementare un metodo di lettura e scrittura di dati logici nella matrice di memoria 2 e nel modulo di memoria ausiliario 6.
Inoltre, il dispositivo di memoria non volatile 1 comprende un bus 10. Ciascuno tra il controllore 8, i moduli di memoria principale 4a-4n ed il modulo di memoria ausiliario 6 è accoppiato al bus 10 mediante rispettive linee di comunicazione 12a-12e, in modo da consentire, come meglio dettagliato in seguito, un trasferimento di dati e segnali di controllo tra il controllore 8, i moduli di memoria principale 4a-4n ed il modulo di memoria ausiliario 6.
Inoltre, il dispositivo di memoria non volatile 1 comprende un’interfaccia di controllore 14. L’interfaccia di controllore 14 è accoppiata al controllore 8 in modo da inviare al controllore 8, tramite una linea di comunicazione 13, dati logici da scrivere nella matrice di memoria 2.
Inoltre, il dispositivo di memoria non volatile 1 comprende un’interfaccia di matrice di memoria 16. L’interfaccia di matrice di memoria 16 è accoppiata al bus 10 tramite una rispettiva linea di comunicazione 12f. Un utilizzatore del dispositivo di memoria non volatile 1 può accedere, ad esempio in lettura, ai dati immagazzinati nel dispositivo di memoria non volatile 1 tramite l’interfaccia di matrice di memoria 16. L’utilizzatore è ad esempio un microprocessore, un DSP, o un microcontrollore.
La figura 2 mostra schematicamente, mediante diagramma a blocchi, un metodo di gestione della matrice di memoria 2. In particolare, in modo esemplificativo e non limitativo, la figura 2 è relativa ad una matrice di memoria 2 in cui sono presenti un primo modulo di memoria principale 4a e un secondo modulo di memoria principale 4b. In altre forme di realizzazione, il numero di moduli di memoria principale potrebbe essere diverso.
In una fase iniziale 20, la matrice di memoria 2 contiene un primo gruppo (“set”) di dati A, immagazzinato in modo differenziale. In particolare, il primo gruppo di dati A include un primo dato A1, un secondo dato A2 e i rispettivi dati complementari A1n, A2n. Ad esempio, ciascuno tra il primo e il secondo dato A1, A2 ed i rispettivi dati complementari A1n, A2n è un singolo bit o un gruppo di bit avente dimensioni ad esempio di 32 MB.
In particolare, il primo modulo di memoria principale 4a contiene il primo dato A1 ed il rispettivo dato complementare A1n, ed il secondo modulo di memoria principale 4b comprende il secondo dato A2 ed il rispettivo dato complementare A2n. In particolare, il primo dato A1 è immagazzinato nel primo sottomodulo 4a’ del primo modulo di memoria principale 4a; il secondo dato A2 è immagazzinato nel primo sottomodulo 4b’ del secondo modulo di memoria principale 4b; il dato A1n complementare al primo dato A1 è immagazzinato nel secondo sottomodulo 4a’’ del primo modulo di memoria principale 4a; il dato A2n complementare al secondo dato A2 è immagazzinato nel secondo sottomodulo 4b’’ del secondo modulo di memoria principale 4b.
Nella fase iniziale 20 l’utilizzatore del dispositivo di memoria non volatile 1 ha accesso al primo gruppo di dati A, leggibile in modo differenziale dal primo e dal secondo modulo di memoria principale 4a, 4b.
Il contenuto del blocco di memoria ausiliario 6, mostrato vuoto in figura 2, è irrilevante nella fase iniziale 20 del metodo di gestione. L’utilizzatore del dispositivo di memoria non volatile 1 non ha accesso ai dati immagazzinati nel blocco di memoria ausiliario 6, che viene per questo motivo mostrato con linea tratteggiata.
Successivamente alla fase 20, si passa alla fase 22 in cui ciascuno tra il primo e il secondo dato A1, A2 viene scritto nel modulo di memoria ausiliario 6 per mezzo del controllore 8, come descritto in dettaglio in seguito.
Durante la fase 22, l’utilizzatore del dispositivo di memoria non volatile 1 continua ad avere accesso al primo gruppo di dati A, leggibile in modo differenziale dal primo e dal secondo modulo di memoria principale 4a, 4b.
Successivamente alla fase 22, si passa a fasi di scrittura di un secondo gruppo di dati B nel primo e nel secondo modulo di memoria principale 4a, 4b.
In particolare, il secondo gruppo di dati B include un primo dato B1n ed un secondo dato B2n. Ad esempio, analogamente a quanto descritto con riferimento al primo gruppo di dati A, ciascuno tra il primo e il secondo dato B1n, B2n è un singolo bit o un gruppo di bit aventi dimensioni ad esempio di 32 MB.
In particolare, successivamente alla fase 22 si passa alla fase 24 in cui il dato B1n viene scritto nel secondo sottomodulo 4a’’ del primo modulo di memoria principale 4a.
Durante la fase 24, il contenuto del primo modulo di memoria principale 4a non è accessibile in lettura all’utilizzatore, in quanto occupato per l’operazione di scrittura del dato B1n. Per questo motivo, è illustrato con linea tratteggiata.
Ad ogni modo, durante la fase 24, l’utilizzatore del dispositivo di memoria non volatile 1 continua ad avere accesso al contenuto informativo associato al primo gruppo di dati A, in quanto è possibile leggere il primo dato A1 nel modulo di memoria ausiliario 6, ed il secondo dato A2 nel secondo modulo di memoria principale 4b.
Successivamente alla fase 24 si passa alla fase 26 in cui il dato B2n viene scritto nel secondo sottomodulo 4b’’ del secondo modulo di memoria principale 4b.
Durante la fase 26, il contenuto del secondo modulo di memoria principale 4b non è accessibile in lettura in quanto occupato per l’operazione di scrittura del dato B2n. Per questo motivo, è illustrato con linea tratteggiata.
Ad ogni modo, durante la fase 26, l’utilizzatore del dispositivo di memoria non volatile 1 continua ad avere accesso al contenuto informativo associato al primo gruppo di dati A, in quanto è possibile leggere il primo dato A1 nel primo modulo di memoria principale 4a ed il secondo dato A2 nel modulo di memoria ausiliario 6.
Successivamente alla fase 26, si passa alla fase 28 in cui il secondo modulo di memoria principale 4b viene reso nuovamente accessibile all’utilizzatore. Durante la fase 28, il contenuto del modulo di memoria ausiliare 6 non è accessibile ed il suo contenuto è irrilevante, ed è per questo mostrato con linea tratteggiata.
Durante la fase 28, l’utilizzatore del dispositivo di memoria non volatile 1 continua ad avere accesso al contenuto informativo associato al primo gruppo di dati A, in quanto è possibile leggere il primo dato A1 nel primo modulo di memoria principale 4a ed il secondo dato A2 nel secondo modulo di memoria principale 4b.
Durante la fase 28, l’utilizzatore del dispositivo di memoria non volatile 1 ha inoltre accesso al contenuto informativo associato al secondo gruppo di dati B, in quanto è possibile leggere il dato B1n nel primo modulo di memoria principale 4a ed il dato B2n nel secondo modulo di memoria principale 4b.
Ad esempio, il contenuto informativo associato al primo gruppo di dati A è un primo software di controllo di un veicolo; in questo caso, il dispositivo di memoria non volatile 1 è incorporato (“embedded”) in una centralina elettronica del veicolo. Inoltre, il contenuto informativo associato al secondo gruppo di dati B è un secondo software di controllo del veicolo.
Durante la fase 28, è possibile eseguire alternativamente il primo o il secondo software di controllo del veicolo.
Ad esempio, durante la fase 28 è possibile valutare le prestazioni del veicolo durante l’uso del primo e alternativamente del secondo software di controllo, fino a determinare il software di controllo più adeguato.
Terminata la fase 28, si passa alla fase 30 in cui il software di controllo ritenuto adeguato è immagazzinato in modo differenziale nella matrice di memoria 2. Ad esempio, nel caso di figura 2, il software di controllo ritenuto adeguato è quello associato al secondo gruppo di dati B.
Di conseguenza, successivamente alla fase 28, un dato B1 complementare al dato B1n viene scritto nel primo sottomodulo 4a’ del primo modulo di memoria principale 4a, e un dato B2 complementare al dato B2n viene scritto nel primo sottomodulo 4b’ del secondo modulo di memoria principale 4b, arrivando alla configurazione illustrata in fase 30. Il modulo di memoria ausiliario 6 è mostrato in linea tratteggiata, in quanto, al termine delle fasi di metodo precedentemente descritte, il modulo di memoria ausiliario 6 non viene utilizzato ed il suo contenuto informativo è irrilevante.
Le fasi 22-26 del metodo di gestione sono eseguite per tutti gli “n” moduli di memoria principale 4a-4n, come precedentemente illustrato per il caso dei due moduli di memoria principale 4a, 4b.
La figura 3 mostra in maggior dettaglio una porzione del dispositivo di memoria non volatile 1 di figura 1, comprendente il modulo di memoria principale 4a, il modulo di memoria ausiliario 6, il controllore 8 e l’interfaccia di matrice di memoria 16. In particolare, il dispositivo di memoria non volatile 1 comprende inoltre una pluralità di multiplatori (“multiplexer”) atti a rendere trasparente la gestione del primo e del secondo gruppo di dati A, B per l’utilizzatore del dispositivo di memoria non volatile 1.
Il controllore 8 è altresì configurato per generare un primo segnale di controllo BUSY, un secondo segnale di controllo BUSY_SP e un terzo segnale di controllo SCOMM per comandare la pluralità di multiplatori in modo meglio descritto in seguito.
Il controllore 8 è inoltre configurato per ricevere dati contenuti nel modulo di memoria principale 4a e nel modulo di memoria ausiliario 6 tramite un segnale in ingresso SDATA_IN. In particolare, il segnale SDATA_IN è uno tra segnali SMAIN_O (che trasporta i dati contenuti nel modulo di memoria principale 4a) e SSPARE_O (che trasporta i dati contenuti nel modulo di memoria ausiliario 6) selezionati tramite un multiplatore 32 comandato dal primo segnale di controllo BUSY. A questo fine, il multiplatore 32 è accoppiato al modulo di memoria principale 4a e al modulo di memoria ausiliario 6 per ricevere rispettivamente il segnale SMAIN_O e il segnale SSPARE_O. Ad esempio, il segnale SSPARE_O è letto successivamente ad un’operazione di scrittura del modulo di memoria ausiliario 6, per verificare che l’operazione di scrittura sia stata effettuata correttamente. Altrimenti, secondo procedure note, si passa ad operazioni di scrittura successive dello stesso dato fino a quando esso sia stato scritto correttamente.
In particolare, il multiplatore 32 è accoppiato al modulo di memoria ausiliario 6 mediante interposizione di un primo buffer 33, in modo da ridurre i tempi di propagazione associati al modulo di memoria ausiliario 6.
Il controllore 8 è inoltre configurato per inviare al modulo di memoria principale 4a un segnale in uscita SDATA_OUT' che trasporta dati immagazzinabili nel modulo di memoria principale 4a; e per inviare al modulo di memoria ausiliario 6 un segnale in uscita SDATA_OUT" che trasporta dati immagazzinabili nel modulo di memoria ausiliario 6.
Il controllore 8 è inoltre configurato per generare un segnale SA', contenente un indirizzo di una tra le celle di memoria del modulo di memoria principale 4a. Il segnale SA' è alimentato ad un ingresso di un multiplatore 34 comandato dal primo segnale di controllo BUSY. Il multiplatore 34 riceve altresì un segnale SINT_O dall’interfaccia di matrice di memoria 16, contenente un indirizzo per eseguire un’operazione di lettura o scrittura di una tra le celle di memoria del modulo di memoria principale 4a. Il primo segnale di controllo BUSY permette di selezionare uno tra i segnali in ingresso SA', SINT_O al fine di generare un segnale in uscita SADDR' al multiplatore 34.
Il segnale SADDR' è alimentato al modulo di memoria principale 4a per indirizzare una tra le celle di memoria del modulo di memoria principale 4a.
Secondo un aspetto della presente invenzione, un blocco di gestione indirizzi 44 è interposto tra il multiplatore 34 e il modulo di memoria principale 4a. Il controllore 8 è inoltre configurato per generare un segnale di controllo SWAP, atto a comandare il blocco di gestione indirizzi 44. Di conseguenza, il blocco di gestione indirizzi 44 riceve in ingresso il segnale SADDR’ e il segnale di controllo SWAP. In particolare, se il segnale di controllo SWAP ha valore logico “0”, il segnale SADDR’ viene direttamente alimentato al modulo di memoria principale 4a. Altrimenti, se il segnale di controllo SWAP ha valore logico “1”, il segnale SADDR’ viene modificato in modo da indirizzare la cella di memoria complementare alla cella di memoria originariamente indirizzata. Tipicamente, nelle memorie differenziali, l’indirizzo di una cella di memoria e quello della sua complementare sono separati da un offset fisso pari alla dimensione della cella di memoria. In questo caso, il blocco di gestione indirizzi 44 è configurato per aggiungere tale offset all’indirizzo indicato dal segnale SADDR’ nel caso in cui il segnale di controllo SWAP ha valore logico “1”.
Pertanto, il segnale SMAIN_O in uscita dal modulo di memoria principale 4a contiene dati corrispondenti ai dati contenuti dalla cella di memoria del modulo di memoria principale 4a indirizzata dal segnale SADDR' se il segnale di controllo SWAP ha valore logico “0”, o alternativamente i dati contenuti dalla cella di memoria complementare se il segnale di controllo SWAP ha valore logico “1”. In questo modo, è possibile accedere, durante la fase 28 del metodo di gestione, sia al contenuto informativo associato al gruppo di dati A che a quello associato al gruppo di dati B. Inoltre, è possibile eseguire ciascuno dei software di controllo corrispondenti al gruppo di dati A ed al gruppo di dati B facendo riferimento ad una stessa regione di indirizzi di memoria, ovvero quella per cui ciascuno dei software di controllo è stato compilato e collegato (“linked”), nonostante il gruppo di dati B risieda fisicamente in una differente regione di indirizzi di memoria.
Detto segnale SMAIN_O è inoltre alimentato a un multiplatore 36 comandato dal terzo segnale di controllo SCOMM. Il multiplatore 38 riceve inoltre in ingresso il segnale SSPARE_O dal modulo di memoria ausiliario 6 mediante interposizione del primo buffer 33. Il multiplatore 38 seleziona uno tra i segnali SMAIN_O, SSPARE_O, per generare un segnale SINT_I in ingresso all’interfaccia di matrice di memoria 16. Il segnale SINT_I contiene pertanto dati inviati in risposta a richieste di lettura da parte dell’utilizzatore. Tali dati provengono dal modulo di memoria principale 4a o dal modulo di memoria ausiliario 6.
Il controllore 8 è inoltre configurato per generare un segnale SA'', contenente un indirizzo di una tra le celle di memoria del modulo di memoria ausiliario 6. Il segnale SA'' è alimentato ad un ingresso di un multiplatore 38 comandato dal secondo segnale di controllo BUSY_SP. Il multiplatore 38 riceve altresì in ingresso il segnale SADDR' mediante interposizione di un secondo buffer 39, in modo da ridurre i tempi di propagazione associati al modulo di memoria ausiliario 6. Il secondo segnale di controllo BUSY_SP permette di selezionare uno tra i segnali in ingresso SA'', SADDR' per generare un segnale in uscita SADDR'' al multiplatore 38. In particolare, il segnale in uscita SADDR'' corrisponde al segnale in ingresso SA'' nel corso della copiatura dei dati del modulo di memoria principale 4a nel modulo di memoria ausiliario 6 (fase 22 del metodo di gestione di figura 2), ed al segnale in ingresso SADDR'=SINT_O nel caso l’utilizzatore richieda di leggere il contenuto informativo della cella di memoria 4a nel corso della scrittura del dato B1n nel modulo di memoria principale 4a (fase 24 del metodo di gestione di figura 2).
In modo di per sé noto, il controllore 8 e il modulo di memoria principale 4a ricevono in ingresso rispettivi segnali di clock generati da generatori di clock non mostrati in figura 3. Inoltre, un multiplatore, anch’esso non mostrato in figura, può essere interposto tra il modulo di memoria principale 4a e i suddetti generatori di clock per sincronizzare il modulo di memoria principale 4a al controllore 8.
Risulta evidente che il secondo modulo di memoria principale 4b è strutturalmente equivalente al primo modulo di memoria principale 4a di figura 3, ed è operativamente accoppiato al controllore 8, al modulo di memoria ausiliario 6 ed all’interfaccia di matrice di memoria 16 tramite rispettivi multiplatori.
Inoltre, il secondo modulo di memoria principale 4b può essere associato a un rispettivo segnale di clock, ad esempio diverso dal segnale di clock del primo modulo di memoria principale 4a.
Al fine di descrivere in maggior dettaglio alcune fasi del metodo di gestione di figura 2, ciascuna tra le figure 4A-4E mostra la porzione del dispositivo di memoria non volatile 1 di figura 3 durante una diversa fase del metodo; in ciascuna tra le figure 4A-4E, linee di comunicazione corrispondenti a segnali attivi nella fase corrispondente del metodo sono evidenziate tramite l’uso di linee spesse, dove per segnali attivi si intendono segnali che trasportano dati durante detta fase e segnali che trasportano indirizzi a detti dati.
In particolare, le figure 4A e 4B sono relative alla fase 22 del metodo, in cui il primo dato A1 viene scritto nel modulo di memoria ausiliario 6.
Ancora più in particolare, la figura 4A è relativa a una prima sottofase della fase 22, in cui il controllore 8 legge il dato A1 dal modulo di memoria principale 4a. Nel corso della sottofase di figura 4A, il controllore 8 genera il primo segnale di controllo BUSY in modo da selezionare i segnali SMAIN_O e SA’, i quali vengono quindi forniti in uscita dai rispettivi multiplatori 32, 34, rispettivamente tramite i segnali SDATA_IN e SADDR’. In questo modo, il controllore 8 riceve in ingresso il segnale SDATA_IN, corrispondente al dato A1, contenuto nella cella di memoria indirizzata dal segnale SA’ e contenuta nel modulo di memoria principale 4a.
Nel corso della sottofase di figura 4A, il segnale di controllo SWAP ha valore logico “0”, in modo che il modulo di memoria principale 4a riceva il segnale SADDR’ inalterato e dunque corrispondente al segnale SA’.
La figura 4B è relativa a una seconda sottofase della fase 22 del metodo, successiva alla prima sottofase di figura 4A, in cui il controllore 8 scrive nel modulo di memoria ausiliario 6 il dato A1 letto nel corso della sottofase di figura 4A.
Nel corso della sottofase di figura 4B, il controllore 8 genera il secondo segnale di controllo BUSY_SP in modo da selezionare il segnale SA’’, il quale viene quindi fornito in uscita dal multiplatore 38 tramite il segnale SADDR’’. Inoltre, il controllore 8 invia al modulo di memoria ausiliario 6 il segnale in uscita SDATA_OUT’’, contenente il dato A1 da scrivere nella cella di memoria del modulo di memoria ausiliario 6 indirizzata dal segnale SADDR’’ = SA’’. Il segnale SA’’ fornito dal controllore 8 nel corso della sottofase di figura 4B contiene lo stesso indirizzo contenuto dal segnale SA’ fornito dal controllore 8 nel corso della sottofase di figura 4A.
Di conseguenza, alla fine della sottofase di figura 4B, il dato A1 è immagazzinato nel modulo di memoria ausiliario 6 allo stesso indirizzo a cui è associato nel modulo di memoria principale 4a.
Risulta evidente che il secondo dato A2 è letto dal secondo modulo di memoria principale 4b e scritto nel modulo di memoria ausiliario 6 analogamente a quanto descritto con riferimento al primo dato A1 ed al primo modulo di memoria principale 4a ed illustrato nelle figure 4A e 4B.
Le figure 4C e 4D sono relative alla fase 24 del metodo, in cui il dato B1n viene scritto nel primo modulo di memoria principale 4a e richieste di lettura del dato A1 da parte dell’utilizzatore sono reindirizzate al modulo di memoria ausiliario 6.
In particolare, la figura 4C rappresenta un’operazione di lettura da parte dell’utilizzatore di un contenuto informativo del modulo di memoria principale 4a, reindirizzato verso il modulo di memoria ausiliario 6.
Durante la fase 24, il controllore 8 genera il secondo segnale di controllo BUSY_SP in modo da selezionare i segnali SINT_O, SADDR’, i quali vengono quindi forniti in uscita dai rispettivi multiplatori 34, 38. Inoltre, il controllore 8 genera il terzo segnale di controllo SCOMM in modo da selezionare il segnale SSPARE_O, fornito in uscita dal multiplatore 36. In questo modo, ogniqualvolta durante la fase 24 l’utilizzatore richiede di leggere il dato A1, associato alla cella di memoria del modulo di memoria principale 4a indirizzata dal segnale SINT_O, viene letto il dato contenuto nella cella di memoria del modulo di memoria ausiliario 6 indirizzata dal segnale SADDR’’ = SADDR’ = SINT_O. Tale dato, fornito in uscita dal modulo di memoria ausiliario 6 tramite il segnale SSPARE_O, viene dunque inviato all’interfaccia di matrice di memoria 16 tramite il segnale SINT_I.
La figura 4D illustra una sottofase di scrittura del dato B1n nel secondo sottomodulo 4a’’ del modulo di memoria principale 4a, effettuata nel corso della fase 24, successivamente alla sottofase di figura 4C.
Il dato B1n è ad esempio fornito al controllore 8 dall’interfaccia di controllore 14 di figura 1.
Durante la sottofase di figura 4D, il controllore 8 genera il primo segnale di controllo BUSY in modo da selezionare il segnale SA’, il quale viene quindi fornito in uscita dal multiplatore 34 in modo da indicare l’indirizzo di scrittura del dato B1n. Ad esempio, l’indirizzo di scrittura del dato B1n può puntare al secondo sottomodulo 4a’’ del primo modulo di memoria principale 4a; in tal caso, il valore logico del segnale di controllo SWAP è “0”.
Alternativamente, l’indirizzo di scrittura del dato B1n può puntare al primo sottomodulo 4a’ del primo modulo di memoria principale 4a; in tal caso, il valore logico del segnale di controllo SWAP è “1” e di conseguenza, dopo aver applicato l’offset fisso al segnale SADDR’ in uscita al blocco di gestione di indirizzi 44, il dato B1n viene comunque scritto nel secondo sottomodulo 4a’’.
Risulta evidente che la fase 26 del metodo, in cui il dato B2n viene scritto nel secondo modulo di memoria principale 4b e richieste di lettura del dato A2 da parte dell’utilizzatore sono reindirizzate al modulo di memoria ausiliario 6, sono eseguite in modo analogo a quanto illustrato nelle figure 4C e 4D con riferimento al dato B1n, al dato A1 e al primo modulo di memoria principale 4a.
La figura 4E è relativa alla fase 28 del metodo di gestione, in cui l’utilizzatore può accedere al gruppo di dati A (ad esempio il primo software di controllo del veicolo) o alternativamente al gruppo di dati B (in questo esempio il secondo software di controllo del veicolo). In particolare, la figura 4E illustra un’operazione di lettura, da parte dell’utilizzatore, di un contenuto informativo del primo modulo di memoria principale 4a.
Durante la fase 28, il controllore 8 comanda i multiplatori 34 e 36 in modo da selezionare e fornire in uscita rispettivamente i segnali SINT_O e SMAIN_O. In questo modo, ogniqualvolta durante la fase 28 l’utilizzatore richiede di leggere il contenuto informativo del modulo di memoria principale 4a associato alla cella di memoria indirizzata dal segnale SINT_O, viene letto il dato A1 se il segnale di controllo SWAP ha valore logico “0”, B1n se il segnale di controllo SWAP ha valore logico “1”. Di conseguenza, nel caso in cui l’utilizzatore debba usare il primo software di controllo il segnale di controllo SWAP ha valore logico “0”, altrimenti il segnale di controllo SWAP ha valore logico “1”. In ogni caso, il dato letto, fornito in uscita dal primo modulo di memoria principale 4a tramite il segnale SMAIN_O, viene inviato all’interfaccia di matrice di memoria 16 tramite il segnale SINT_I.
In figura 5 viene mostrata una porzione di un sistema elettronico 50, secondo una forma di realizzazione della presente invenzione. Il sistema elettronico 50 può essere utilizzato in dispositivi elettronici, quali ad esempio: una centralina elettronica di un veicolo; un PDA (“Personal Digital Assistant”); un computer portatile o fisso, eventualmente con capacità di trasferimento dati wireless; un telefono cellulare; un tablet; uno smartphone; 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 50 comprende un controller 51 (ad esempio dotato di un microprocessore, un DSP, o un microcontrollore) ed il dispositivo di memoria non volatile 1 precedentemente descritto. Opzionalmente, il sistema elettronico 50 comprende uno o più tra: un dispositivo di input/output 52 (ad esempio provvisto di una tastiera e un display), per immettere e visualizzare dati; un’interfaccia wireless 54, ad esempio un’antenna, per trasmettere e ricevere dati attraverso una rete di comunicazione wireless a radiofrequenza; ed una memoria RAM 55, tutti accoppiati attraverso un bus 56. Una batteria 57 può essere utilizzata come sorgente di alimentazione elettrica nel sistema elettronico 50, che può essere inoltre dotato di una foto o videocamera 58.
Secondo un’ulteriore forma di realizzazione non illustrata nelle figure, il dispositivo di memoria non volatile 1 può essere incorporato (“embedded”) nel controllore 51.
In ogni caso, la presente invenzione trova applicazione in una condizione operativa in cui il sistema elettronico 50 è comandato dal primo software di controllo e il secondo software di controllo viene scritto nel dispositivo di memoria non volatile 1 senza interrompere l’esecuzione del primo software di controllo.
Ad esempio, la scrittura del secondo software di controllo viene eseguita con metodologia “over the air”.
Da un esame delle caratteristiche del trovato qui descritto ed illustrato sono evidenti i vantaggi che esso consente di ottenere.
In particolare, l’utilizzatore ha un accesso ininterrotto in lettura al contenuto informativo del gruppo di dati A durante la scrittura del gruppo di dati B e inoltre, al termine della scrittura del gruppo di dati B, può accedere alternativamente al gruppo di dati A o al gruppo di dati B senza necessità di disporre di un modulo di memoria aggiuntivo dedicato alla memorizzazione del gruppo di dati B. Di conseguenza, è possibile immagazzinare il doppio dei dati rispetto a memorie differenziali di tipo convenzionale e aventi la stessa quantità di moduli di memoria principale.
Inoltre, è possibile eseguire un software corrispondente al gruppo di dati B compilato e collegato come se risiedesse fisicamente nella regione di memoria occupata dal gruppo di dati A. In questo modo si evita la necessità di specificare in un’immagine del software, contenuta nel gruppo di dati B, la sua locazione fisica nella memoria. In particolare, in un contesto in cui si testano più versioni del software, tipicamente la sequenza di aggiornamenti delle versioni del software non è prevedibile, rendendo non plausibile la specificazione della locazione fisica delle rispettivi immagini nella memoria.
Risulta infine chiaro che al trovato qui descritto ed illustrato possono essere apportate modifiche e varianti senza per questo uscire dall’ambito protettivo della presente invenzione, come definito nelle rivendicazioni allegate.
Ad esempio, il metodo di gestione del dispositivo di memoria non volatile 1 prevede operazioni di rinfresco (“refresh”) dei dati contenuti nella matrice di memoria 2, ad esempio tra la fase 26 e la fase 28 e/o tra la fase 20 e la fase 22 e/o in qualsiasi altro momento, secondo necessità. In tal caso, l’accesso in lettura al contenuto informativo associato al dato in corso di rinfresco è garantito da un metodo implementato dal controllore 8 e che prevede le fasi di: copiare il dato da rinfrescare nel modulo di memoria ausiliario 6; eseguire il summenzionato rinfresco del dato nella matrice di memoria 2; e leggere il contenuto informativo dal modulo di memoria ausiliario 6 durante la fase di rinfresco, altrimenti dalla matrice di memoria 2.
Di conseguenza il rinfresco è effettuato in modo trasparente per l’utilizzatore, che ha un accesso ininterrotto in lettura e in scrittura al contenuto informativo dell’intero dispositivo di memoria non volatile, permettendone l’uso per applicazioni in tempo reale.

Claims (21)

  1. RIVENDICAZIONI 1. Metodo di gestione in tempo reale di una memoria differenziale (1) comprendente: un primo modulo di memoria principale (4a) includente un primo sottomodulo (4a’) che immagazzina primi dati logici (A1) ed un secondo sottomodulo (4a’’) che immagazzina secondi dati logici (A1n), complementari ai primi dati logici (A1), per permettere una lettura differenziale di un primo contenuto informativo (A) associato ai primi e ai secondi dati logici (A1, A1n); e un modulo di memoria ausiliario (6), detto metodo comprendendo le fasi di: a- immagazzinare (22) i primi dati logici (A1) nel modulo di memoria ausiliario (6); b- immagazzinare (24) terzi dati logici (B1n), associati a un secondo contenuto informativo (B), nel secondo sottomodulo (4a’’), sovrascrivendo rispettivi secondi dati logici (A1n) e mantenendo inalterati i primi dati logici (A1) contenuti nel primo sottomodulo (4a’); c- in risposta ad una richiesta di lettura del primo contenuto informativo (A), leggere (24, 28) in modalità asimmetrica (“single-ended”) i primi dati logici (A1) dal modulo di memoria ausiliario (6) durante la fase di immagazzinare (24) i terzi dati logici (B1n), altrimenti dal primo sottomodulo (4a’); d- leggere (28), in risposta ad una richiesta di lettura del secondo contenuto informativo (B), i terzi dati logici (B1n) in modalità asimmetrica (“single-ended”).
  2. 2. Metodo secondo la rivendicazione 1, in cui la fase di immagazzinare (24) i terzi dati logici (B1n) è eseguita successivamente alla fase di immagazzinare (22) i primi dati logici (A1).
  3. 3. Metodo secondo la rivendicazione 1 o 2, comprendente inoltre la fase di immagazzinare (30) nel primo sottomodulo (4a’) quarti dati logici (B1), complementari ai terzi dati logici (B1n), per permettere una lettura differenziale del secondo contenuto informativo (B) associato ai terzi e ai quarti dati logici (B1n, B1), detta fase di immagazzinare (30) i quarti dati logici (B1) comprendendo la fase di sovrascrivere i primi dati logici (A1).
  4. 4. Metodo secondo una qualsiasi delle rivendicazioni precedenti, comprendente inoltre la fase di rinfrescare almeno uno tra i primi dati logici (A1), i secondi dati logici (A1n), i terzi dati logici (B1n) e i quarti dati logici (B1).
  5. 5. Metodo secondo la rivendicazione 4, in cui la fase di rinfrescare comprende leggere detto almeno uno tra i primi dati logici (A1), i secondi dati logici (A1n), i terzi dati logici (B1n) e i quarti dati logici (B1) e riscriverlo rispettivamente nel primo sottomodulo (4a’), nel secondo sottomodulo (4a’’), nel secondo sottomodulo (4a’’) e nel primo sottomodulo (4a’).
  6. 6. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui il primo contenuto informativo (A) è inoltre associato a quinti dati logici (A2) e sesti dati logici (A2n), complementari ai quinti dati logici (A2), e in cui il secondo contenuto informativo (B) è inoltre associato a settimi dati logici (B2n), e in cui la memoria differenziale (1) comprende inoltre un secondo modulo di memoria principale (4b) includente un terzo sottomodulo (4b’) che immagazzina i quinti dati logici (A2) ed un quarto sottomodulo (4b’’) che immagazzina i sesti dati logici (A2n), per permettere una lettura differenziale del primo contenuto informativo (A), detto metodo comprendendo inoltre le fasi di: e- immagazzinare (22) i quinti dati logici (A2) nel modulo di memoria ausiliario (6); f- immagazzinare (26) settimi dati logici (B2n) nel quarto sottomodulo (4b’’), sovrascrivendo rispettivi sesti dati logici (A2n) e mantenendo inalterati i quinti dati logici (A2) contenuti nel terzo sottomodulo (4b’); g- leggere (26, 28), in risposta ad una richiesta di lettura del primo contenuto informativo (A), i quinti dati logici (A2) in modalità asimmetrica (“single-ended”), dal modulo di memoria ausiliario (6) durante la fase di immagazzinare (26) i settimi dati logici (B2n), altrimenti dal terzo sottomodulo (4b’); h- leggere (28), in risposta ad una richiesta di lettura del secondo contenuto informativo (B), i settimi dati logici (B2n) in modalità asimmetrica (“single-ended”).
  7. 7. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui il modulo di memoria ausiliario (6) include un quinto sottomodulo (6’) e un sesto sottomodulo (6’’) di dimensioni pari al primo, al secondo, al terzo e al quarto sottomodulo (4a’, 4a’’, 4b’, 4b’’), e in cui la fase di immagazzinare (22) i primi dati logici (A1) nel modulo di memoria ausiliario (6) comprende immagazzinare i primi dati logici (A1) nel quinto sottomodulo (6’).
  8. 8. Metodo secondo la rivendicazione 7 quando dipendente dalla 6, in cui la fase di immagazzinare (22) i quinti dati logici (A2) comprende immagazzinare i quinti dati logici (A2) nel sesto sottomodulo (6’’).
  9. 9. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui la memoria differenziale (1) è una memoria a cambiamento di fase.
  10. 10. Memoria differenziale (1) comprendente: - un primo modulo di memoria principale (4a) includente un primo sottomodulo (4a’) configurato per immagazzinare primi dati logici (A1) ed un secondo sottomodulo (4a’’) configurato per immagazzinare secondi dati logici (A1n), complementari ai primi dati logici (A1), per permettere una lettura differenziale di un primo contenuto informativo (A) associato ai primi e ai secondi dati logici (A1, A1n); - un modulo di memoria ausiliario (6); - un controllore (8) configurato per: a- comandare un immagazzinamento (22) dei primi dati logici (A1) nel modulo di memoria ausiliario (6); b- comandare un immagazzinamento (24) di terzi dati logici (B1n), associati a un secondo contenuto informativo (B), nel secondo sottomodulo (4a’’), sovrascrivendo rispettivi secondi dati logici (A1n) e mantenendo inalterati i primi dati logici (A1) contenuti nel primo sottomodulo (4a’); c- in risposta ad una richiesta di lettura del primo contenuto informativo (A), leggere (24, 28) in modalità asimmetrica (“single-ended”) i primi dati logici (A1) dal modulo di memoria ausiliario (6) durante l’operazione di comandare un immagazzinamento (24) dei terzi dati logici (B1n), altrimenti dal primo sottomodulo (4a’); d- leggere (28), in risposta ad una richiesta di lettura del secondo contenuto informativo (B), i terzi dati logici (B1n) in modalità asimmetrica (“single-ended”).
  11. 11. Memoria secondo la rivendicazione 10, in cui il controllore (8) è inoltre configurato per eseguire l’operazione di comandare un immagazzinamento (24) dei terzi dati logici (B1n) successivamente all’operazione di comandare un immagazzinamento (22) dei primi dati logici (A1).
  12. 12. Memoria secondo la rivendicazione 10 o 11, in cui il controllore (8) è inoltre configurato per comandare l’immagazzinamento (30) nel primo sottomodulo (4a’) di quarti dati logici (B1), complementari ai terzi dati logici (B1n), per permettere una lettura differenziale del secondo contenuto informativo (B) associato ai terzi e ai quarti dati logici (B1n, B1), e in cui il controllore (8) è inoltre configurato per eseguire detta operazione di comandare l’immagazzinamento (30) di quarti dati logici (B1) sovrascrivendo i primi dati logici (A1).
  13. 13. Memoria secondo una qualsiasi delle rivendicazioni da 10 a 12, in cui il controllore (8) è inoltre configurato per rinfrescare almeno uno tra i primi dati logici (A1), i secondi dati logici (A1n), i terzi dati logici (B1n) e i quarti dati logici (B1).
  14. 14. Memoria secondo la rivendicazione 13, in cui il controllore (8) è inoltre configurato per eseguire l’operazione di rinfresco leggendo detto almeno uno tra i primi dati logici (A1), i secondi dati logici (A1n), i terzi dati logici (B1n) e i quarti dati logici (B1) e riscrivendolo rispettivamente nel primo sottomodulo (4a’), nel secondo sottomodulo (4a’’), nel secondo sottomodulo (4a’’) e nel primo sottomodulo (4a’).
  15. 15. Memoria secondo una qualsiasi delle rivendicazioni da 10 a 14, in cui il primo contenuto informativo (A) è inoltre associato a quinti dati logici (A2) e sesti dati logici (A2n), complementari ai quinti dati logici (A2), e in cui il secondo contenuto informativo (B) è inoltre associato a settimi dati logici (B2n), e in cui la memoria differenziale (1) comprende inoltre un secondo modulo di memoria principale (4b) includente un terzo sottomodulo (4b’) che immagazzina i quinti dati logici (A2) ed un quarto sottomodulo (4b’’) che immagazzina i sesti dati logici (A2n), per permettere una lettura differenziale del primo contenuto informativo (A), e in cui il controllore (8) è inoltre configurato per: e- comandare un immagazzinamento (22) dei quinti dati logici (A2) nel modulo di memoria ausiliario (6); f- comandare un immagazzinamento (26) dei settimi dati logici (B2n) nel quarto sottomodulo (4b’’), sovrascrivendo rispettivi sesti dati logici (A2n) e mantenendo inalterati i quinti dati logici (A2) contenuti nel terzo sottomodulo (4b’); g- leggere (26, 28), in risposta ad una richiesta di lettura del primo contenuto informativo (A), i quinti dati logici (A2) in modalità asimmetrica (“single-ended”) dal modulo di memoria ausiliario (6) durante l’operazione di comandare l’immagazzinamento (26) dei settimi dati logici (B2n), altrimenti dal terzo sottomodulo (4b’); h- leggere (28), in risposta ad una richiesta di lettura del secondo contenuto informativo (B), i settimi dati logici (B2n) in modalità asimmetrica (“single-ended”).
  16. 16. Memoria secondo una qualsiasi delle rivendicazioni da 10 a 15, in cui il modulo di memoria ausiliario (6) include un quinto sottomodulo (6’) e un sesto sottomodulo (6’’) di dimensioni pari al primo, al secondo, al terzo e al quarto sottomodulo (4a’, 4a’’, 4b’, 4b’’), e in cui il controllore (8) è inoltre configurato per eseguire l’operazione di immagazzinare (22) i primi dati logici (A1) nel modulo di memoria ausiliario (6) immagazzinando i primi dati logici (A1) nel quinto sottomodulo (6’).
  17. 17. Memoria secondo la rivendicazione 16 quando dipendente dalla 15, in cui il controllore (8) è inoltre configurato per eseguire l’operazione di immagazzinare (22) i quinti dati logici (A2) immagazzinando i quinti dati logici (A2) nel sesto sottomodulo (6’’).
  18. 18. Memoria secondo una qualsiasi delle rivendicazioni da 10 a 17, in cui la memoria (1) è una memoria a cambiamento di fase.
  19. 19. Sistema elettronico (50) comprendente una memoria differenziale (1) secondo una qualsiasi delle rivendicazioni da 10 a 18, scelto tra: una centralina elettronica di un veicolo, un personal digital assistant, PDA; un notebook; un telefono cellulare; uno smartphone; un tablet; un riproduttore di audio digitale; una foto- o videocamera; o ulteriori dispositivi in grado di elaborare, memorizzare, trasmettere e/o ricevere informazioni.
  20. 20. Sistema elettronico (50) secondo la rivendicazione 19, in cui il primo e secondo contenuto informativo (A, B) sono rispettivi software o firmware di controllo del sistema elettronico (50).
  21. 21. Sistema elettronico (50) secondo la rivendicazione 19 o 20, in cui l’immagazzinamento del secondo contenuto informativo (B) è eseguito in modalità “over the air”.
IT201800000580A 2018-01-05 2018-01-05 Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico IT201800000580A1 (it)

Priority Applications (7)

Application Number Priority Date Filing Date Title
IT201800000580A IT201800000580A1 (it) 2018-01-05 2018-01-05 Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico
US16/225,557 US10824417B2 (en) 2018-01-05 2018-12-19 Real-time update method for a differential memory, differential memory and electronic system
EP19150397.8A EP3509066B1 (en) 2018-01-05 2019-01-04 Real-time update method of a differential memory with continuous reading accessibility, differential memory and electronic system
CN201920021013.5U CN209447150U (zh) 2018-01-05 2019-01-07 差分存储器
CN201910013493.5A CN110007947B (zh) 2018-01-05 2019-01-07 用于差分存储器的实时更新方法、差分存储器和电子系统
US17/087,070 US11256442B2 (en) 2018-01-05 2020-11-02 Real-time update method for a differential memory, differential memory and electronic system
US17/667,087 US11645004B2 (en) 2018-01-05 2022-02-08 Real-time update method for a differential memory, differential memory and electronic system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT201800000580A IT201800000580A1 (it) 2018-01-05 2018-01-05 Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico

Publications (1)

Publication Number Publication Date
IT201800000580A1 true IT201800000580A1 (it) 2019-07-05

Family

ID=61731785

Family Applications (1)

Application Number Title Priority Date Filing Date
IT201800000580A IT201800000580A1 (it) 2018-01-05 2018-01-05 Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico

Country Status (4)

Country Link
US (1) US10824417B2 (it)
EP (1) EP3509066B1 (it)
CN (2) CN110007947B (it)
IT (1) IT201800000580A1 (it)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402192B2 (en) * 2017-07-25 2019-09-03 Aurora Labs Ltd. Constructing software delta updates for vehicle ECU software and abnormality detection based on toolchain
US11256442B2 (en) 2018-01-05 2022-02-22 Stmicroelectronics S.R.L. Real-time update method for a differential memory, differential memory and electronic system
IT201800000580A1 (it) * 2018-01-05 2019-07-05 St Microelectronics Srl Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico
US10834207B2 (en) * 2018-02-27 2020-11-10 Excelfore Corporation System and method for updating software in an electronic device
US10896038B2 (en) * 2019-03-25 2021-01-19 Aurora Labs Ltd. Generating and signing a line-of-code behavior and relation model
KR20220028879A (ko) * 2020-08-31 2022-03-08 현대자동차주식회사 차량의 ecu 업데이트 관리 장치 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043512A1 (en) * 2006-08-18 2008-02-21 Fujitsu Limited Non-volatile semiconductor memory
WO2008058101A2 (en) * 2006-11-07 2008-05-15 Sandisk Corporation Memory controllers for performing resilient firmware upgrades to a functioning memory
WO2016196835A1 (en) * 2015-06-02 2016-12-08 Texas Instruments Incorporated Ferroelectric memory expansion for firmware updates

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4292676A (en) 1978-11-15 1981-09-29 Lockheed Electronics Co., Inc. Refresh cycle minimizer in a dynamic semiconductor memory
FR2745114B1 (fr) 1996-02-20 1998-04-17 Sgs Thomson Microelectronics Memoire non volatile multiniveau modifiable electriquement avec rafraichissement autonome
US6151236A (en) 2000-02-29 2000-11-21 Enhanced Memory Systems, Inc. Enhanced bus turnaround integrated circuit dynamic random access memory device
TWI320180B (en) 2007-01-12 2010-02-01 A driving method and a driving system for writing the phase change memory
US9934856B2 (en) * 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US20150339069A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
US9626286B2 (en) * 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US10496605B2 (en) * 2016-04-29 2019-12-03 Splunk Inc. Application deployment for data intake and query system
DE102016214879A1 (de) 2016-08-10 2018-02-15 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Speichers
US10269420B2 (en) 2016-12-13 2019-04-23 Taiwan Semiconductor Manufacturing Co., Ltd. Memory with symmetric read current profile and read method thereof
IT201800000580A1 (it) * 2018-01-05 2019-07-05 St Microelectronics Srl Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043512A1 (en) * 2006-08-18 2008-02-21 Fujitsu Limited Non-volatile semiconductor memory
WO2008058101A2 (en) * 2006-11-07 2008-05-15 Sandisk Corporation Memory controllers for performing resilient firmware upgrades to a functioning memory
WO2016196835A1 (en) * 2015-06-02 2016-12-08 Texas Instruments Incorporated Ferroelectric memory expansion for firmware updates

Also Published As

Publication number Publication date
CN110007947A (zh) 2019-07-12
US20190213000A1 (en) 2019-07-11
EP3509066B1 (en) 2020-06-17
CN209447150U (zh) 2019-09-27
CN110007947B (zh) 2023-04-07
US10824417B2 (en) 2020-11-03
EP3509066A1 (en) 2019-07-10

Similar Documents

Publication Publication Date Title
IT201800000580A1 (it) Metodo di aggiornamento in tempo reale di una memoria differenziale con accessibilita' continua in lettura, memoria differenziale e sistema elettronico
US7366971B2 (en) Semiconductor memory having sub-party cell array error correction
US8797808B2 (en) Semiconductor device and semiconductor memory device
JP5403292B2 (ja) 外部アドレスに応える不良メモリブロックの置き換え
JP5657079B1 (ja) 半導体記憶装置
JP2013016149A (ja) メモリコントローラ及び不揮発性記憶装置
TWI271620B (en) Method and apparatus for performing multi-programmable function with one-time programmable memories
US20100182819A1 (en) Nonvolatile semiconductor memory device
US11474718B2 (en) Processing-in-memory (PIM) device and PIM system including the PIM device
US20120106270A1 (en) Semiconductor memory device and method of operating the same
JP2019121370A (ja) メモリ装置
JP4569182B2 (ja) 半導体装置
JP3554478B2 (ja) 冗長アレイを備えるメモリ・アレイ及び管理方法
KR20150001612A (ko) 반도체 메모리 장치
US20120002469A1 (en) Nonvolatile semiconductor memory device
JP2009129477A (ja) 不揮発性半導体記憶装置
JP4254932B2 (ja) メモリコントローラ及びフラッシュメモリシステム
US20210209455A1 (en) Processing-in-memory (pim) device, controller for controlling the pim device, and pim system including the pim device and the controller
JP2014186772A (ja) 半導体記憶装置、コントローラ、及びメモリシステム
US20090003098A1 (en) Method for Hiding Defective Memory Cells and Semiconductor Memories
US9990302B2 (en) Tag memory and cache system with automating tag comparison mechanism and cache method thereof
JP2001250386A (ja) 半導体メモリ
US7788528B2 (en) Repair module for memory, repair device using the same and method thereof
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
US7549109B2 (en) Memory circuit, such as a DRAM, comprising an error correcting mechanism