ITMI20102475A1 - Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato - Google Patents

Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato Download PDF

Info

Publication number
ITMI20102475A1
ITMI20102475A1 IT002475A ITMI20102475A ITMI20102475A1 IT MI20102475 A1 ITMI20102475 A1 IT MI20102475A1 IT 002475 A IT002475 A IT 002475A IT MI20102475 A ITMI20102475 A IT MI20102475A IT MI20102475 A1 ITMI20102475 A1 IT MI20102475A1
Authority
IT
Italy
Prior art keywords
counter
value
volatile memory
integrated circuit
circuit card
Prior art date
Application number
IT002475A
Other languages
English (en)
Inventor
Stasio Vitantonio Di
Francesco Varone
Pasquale Vastano
Amedeo Veneroso
Original Assignee
Incard Sa
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 Incard Sa filed Critical Incard Sa
Priority to ITMI2010A002475A priority Critical patent/IT1404161B1/it
Priority to US13/976,686 priority patent/US20140025869A1/en
Priority to EP11810805.9A priority patent/EP2659379B1/en
Priority to BR112013016748A priority patent/BR112013016748A2/pt
Priority to PCT/EP2011/006554 priority patent/WO2012089333A1/en
Publication of ITMI20102475A1 publication Critical patent/ITMI20102475A1/it
Application granted granted Critical
Publication of IT1404161B1 publication Critical patent/IT1404161B1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Credit Cards Or The Like (AREA)

Description

DESCRIZIONE
Campo di applicazione
La presente invenzione riguarda un metodo ed un sistema per migliorare il controllo del limite di cicli di scrittura di una carta a circuito integrato. Più in particolare, la presente invenzione riguarda un metodo ed un sistema del tipo sopra citato, in cui viene conteggiato il numero di cicli di scrittura eseguiti su una porzione di una memoria non volatile di una carta a circuito integrato per impedire più di un numero predeterminato di scritture su tale porzione, e quindi impedire danni alla memoria non volatile.
Arte nota
Com’à ̈ noto, diverse tecnologie di memoria non volatile (ad esempio una memoria EEPROM (Electrìcally Erasable Programmable Read Only Memory) includono una pluralità di porzioni di memoria o celle di memoria che supportano un numero limitato di cicli di scrittura. Più in particolare, se la cella di memoria viene scritta più di un numero di volte predeterminato, ossia sulla medesima cella viene eseguito più di un numero predeterminato di cicli di scrittura, questa non à ̈ più considerata affidabile; difatti, i dati memorizzati al suo interno possono essere persi oppure può essere negato un accesso alla cella. Ad esempio, una memoria non volatile può essere garantita per supportare non più di 100000 cicli di scrittura sulla stessa cella.
Un metodo per controllare un limite sui cicli di scrittura della memoria non volatile della carta a circuito integrato prevede un contatore, all’intemo della memoria non volatile, per conteggiare quanti cicli di scrittura vengono eseguiti su una medesima cella o porzione, ad esempio un contatore che viene incrementato ogni qualvolta avviene un ciclo di scrittura sulla cella. Quando il contatore raggiunge un valore predeterminato, la cella di memoria non à ̈ più considerata affidabile e viene innescata una procedura di recupero sulla memoria non volatile. Con riferimento allesempio fornito sopra, il valore predeterminato può essere, ad esempio, 50000.
Tuttavia, il metodo noto à ̈ affetto dal problema che la stessa memoria non volatile in cui viene memorizzato il valore del contatore à ̈ soggetta a limiti sul numero di cicli di scrittura. Dunque, tale metodo non à ̈ sicuro. Inoltre, il controllo dei limiti sul numero di cicli di scrittura su una pluralità di celle di memoria richiede l 'allocazione di una corrispondente pluralità di contatori associati alle celle di memoria; dunque, ampie aree della memoria non volatile sono danneggiate dai contatori, poiché esse vengono scritte frequentemente e raggiungono rapidamente il rispettivo limite di scrittura supportato.
Il problema alla base della presente invenzione à ̈ quello di fornire un metodo ed un sistema per controllare il limite sul numero di cicli di scrittura supportati da una carta a circuito integrato, basati su un contatore non affetto dallo stesso limite delle altre porzioni di una memoria non volatile e che abbia sostanzialmente una lunga durata, così da superare tutti i limiti che attualmente affliggono i metodi ed i sistemi noti.
Sommario dell'invenzione
L’idea di soluzione alla base della presente invenzione à ̈ quella di salvare, all’interno della memoria non volatile di una carta a circuito integrato, un contatore per controllare il limite sui cicli di scrittura di una cella o porzione di memoria, tale contatore essendo aggiornato soltanto una volta per un predeterminato numero di cicli di scrittura eseguiti sulla corrispondente cella o porzione. Vantaggiosamente, esiste un rapporto predeterminato tra il numero di scritture eseguite sulla memoria non volatile del contatore ed il numero di cicli di scrittura eseguiti sulle celle o porzioni della memoria non volatile da controllare con il contatore. Più in particolare, il tempo di vita del contatore à ̈ più lungo del tempo di vita della cella o porzione di memoria controllata; dunque, quando la cella di memoria controllata si esaurisce, poiché non à ̈ capace di supportare altre scritture, il contatore può essere disaccoppiato da tale cella di memoria ed associato ad Un’altra cella o porzione di memoria da controllare. Si riduce, vantaggiosamente, la memoria danneggiata dal contatore a seguito delle rispettive scritture.
Secondo questa idea di soluzione, il problema tecnico viene risolto da un metodo per controllare il numero di cicli di scrittura supportati da una cella o porzione di una memoria non volatile di una carta a circuito integrato, includente le fasi di - conteggiare gli accessi in scrittura alla porzione di memoria e memorizzare un primo contatore degli accessi in scrittura in un’altra porzione della memoria non volatile, caratterizzato dal fatto che il primo contatore à ̈ accoppiato ad un secondo contatore o valore associato ad una RAM ( Random Access Memory) della carta a circuito integrato, in cui il secondo contatore o valore viene aggiornato ogni qualvolta si verificano accessi in scrittura sulla cella o porzione da controllare ed il primo contatore viene scritto in un’altra porzione della memoria non volatile solo quando il secondo contatore o valore corrisponde ad un valore predeterminato.
Vantaggiosamente, il secondo contatore o valore non à ̈ limitato dai medesimi vincoli hardware del primo contatore, poiché esso à ̈ incluso nella porzione di RAM della carta a circuito integrato e non nella memoria non volatile. Inoltre, l’accesso alla RAM à ̈ più rapido e dunque il secondo contatore o valore può essere aggiornato più rapidamente del primo contatore. Questo migliora le prestazioni del metodo per controllare i cicli di scrittura, poiché il primo contatore viene aggiornato solo una volta per N predeterminati aggiornamenti del secondo contatore o valore.
Ulteriori vantaggi e caratteristiche della presente invenzione sono evidenti dalla descrizione fornita qui di seguito e dai disegni allegati, che vengono forniti a titolo esclusivamente esemplificativo e non limitativo dell’ambito di protezione della presente invenzione.
Breve descrizione dei disegni
La Figura 1 Ã ̈ un diagramma a blocchi che rappresenta schematicamente le fasi del metodo della presente invenzione.
Descrizione dettagliata
Con riferimento alla figura 1, viene rappresentata schematicamente una carta a circuito integrato 10 secondo la presente invenzione, che include una memoria non volatile 4 ed una RAM {Random Access Memory) 5. La memoria non volatile 4 comprende una pluralità di porzioni di memoria o celle di memoria 11, 12, 13, 14, 21, 22, 23, 24, in cui i dati vengono memorizzati e mantenuti anche una volta disattivata la carta a circuito integrato; anche la RAM comprende una pluralità di porzioni o celle di memoria 31, 32, 33, 34, in cui vengono memorizzati dati; tuttavia, le celle di memoria della RAM non mantengono i dati se la carta a circuito integrato viene disattivata. Ciascuna porzione di memoria non volatile supporta un numero limitato di cicli di scrittura, ad esempio 100000 cicli di scrittura, dopodiché la memorizzazione o l’accesso ai dati non à ̈ assicurato.
Per garantire l’affidabilità della carta a circuito integrato, si prevede un metodo che controlla un limite dei cicli di scrittura sulle celle o porzioni di memoria della memoria non volatile 4. Più in particolare, la cella di memoria I l e accoppiata ad un primo contatore 21, il quale memorizza un valore associato ad un numero di scritture sulla cella di memoria, che indica quante volte la cella di memoria à ̈ stata coinvolta in un ciclo di scrittura. Il valore del primo contatore 21 viene anch’esso memorizzato nella memoria non volatile 4 e dunque à ̈ assoggettato ai medesimi vincoli di memoria, ossia allo stesso limite dei cicli di scrittura, della cella di memoria 11. Più in particolare, il metodo per controllare il numero di cicli di scrittura supportati dalla cella o porzione 1 1 include le fasi di conteggiare gli accessi in scrittura alla cella o porzione di memoria 11 ed associare il primo contatore 2 1 ad un’altra porzione 21 della memoria non volatile 4.
Secondo la presente invenzione, il metodo comprende l’accoppiamento del primo contatore 21 ad un secondo contatore o valore 31 associato alla RAM 5 della carta a circuito integrato. Il secondo contatore 31 viene aggiornato ogni qualvolta si verificano accessi in scrittura sulla cella o porzione da controllare ed il primo contatore 21 viene scritto in detta altra porzione 21 della memoria non volatile 4 solo quando il secondo contatore o valore 31 corrisponde ad un valore predeterminato.
Vantaggiosamente, il secondo contatore 31 nella RAM 5 non à ̈ assoggettato ai medesimi vincoli di memoria, ossia alla stessa limitazione sul numero di cicli di scrittura, del primo contatore 2 1 nella memoria non volatile 4. Secondo il metodo, il numero di scritture eseguite sul primo contatore 21 à ̈ minore del numero di scritture eseguite sulla porzione di memoria 11 a cui esso à ̈ associato per il controllo. Dunque, quando la porzione di memoria 1 1 viene considerata inaffidabile poiché à ̈ stata scritta un numero di volte corrispondente sostanzialmente al limite supportato, il primo contatore 21 può essere riutilizzato per controllare altre celle o porzioni di memoria. Ciò evita il danneggiamento di aree della memoria non volatile 4, poiché una stessa porzione di memoria della memoria non volatile 4 usata per il primo contatore 21 viene riutilizzata per controllare diverse celle o porzioni di memoria 11, 12, 13, 14 della medesima porzione di memoria non volatile 4.
Secondo un aspetto della presente invenzione, laggiornamento del secondo contatore 31 comprende l’incremento di un valore del secondo contatore 31 da un valore inferiore x ad un valore superiore y oppure il decremento del valore da un valore superiore y ad un valore inferiore x. Quando si raggiunge il valore superiore y, in caso di incremento, oppure si raggiunge il valore inferiore x, in caso di decremento, il secondo contatore 31 viene ripristinato, rispettivamente, sul valore inferiore x oppure sul valore superiore y. Ad esempio, il valore predeterminato del secondo contatore 31 che innesca la scrittura del primo contatore 21 corrisponde, rispettivamente, al valore inferiore x oppure al valore superiore y. Per esempio, il limite inferiore x à ̈ 0, il limite superiore y à ̈ 100 ed il secondo contatore 31 viene incrementato con un passo pari ad 1 per ogni scrittura sulla porzione di memoria 11 a cui à ̈ associato il primo contatore 21. In questo caso, il primo contatore 21 viene scritto una sola volta ogni cento aggiornamenti del secondo contatore 31. In altre parole, le scritture del primo contatore 21 sono 1/ 100 degli aggiornamenti eseguiti sul secondo contatore 31 ed 1/ 100 dei cicli di scrittura sulla cella o porzione 11 della memoria non volatile 4. Più in particolare, secondo questo aspetto dell’invenzione, le scritture del primo contatore 21 sono 1/(y-x) gli aggiornamenti del secondo contatore 31. Nel caso il secondo contatore 31 conti da 1 ad n, il numero di scritture del primo contatore 21 nella corrispondente porzione 21 della memoria non volatile 4 à ̈ 1/n volte il numero di aggiornamenti del secondo contatore 3 1.
Secondo un altro aspetto della presente invenzione, il valore 31 viene selezionato tra una pluralità di valori prefissati, in cui un predeterminato valore selezionato di tale pluralità di valori prefissati innesca la scrittura del primo contatore 21. Più in particolare, il valore 3 1 viene selezionato a caso tra m valori della pluralità di valori prefissati; dunque, il numero di scritture del primo contatore 21 nella corrispondente porzione 21 della memoria non volatile corrisponde sostanzialmente ad 1 / m volte il numero di aggiornamenti del valore 3 1. Difatti, la probabilità di selezionare casualmente il valore predeterminato tra la pluralità di valori prefissati m à ̈ 1 /m.
Vantaggiosamente, secondo questo aspetto della presente invenzione, non à ̈ necessario memorizzare il valore 31 e incrementarlo ad ogni ciclo di scrittura della porzione 11 da controllare; difatti, in corrispondenza di ciascun ciclo di scrittura di tale cella o porzione 11 , il valore 31 viene selezionato a caso tra la pluralità di valori prefissati, ad esempio 1...100, ed il valore selezionato viene confrontato con quello predeterminato di detta pluralità di valori prefissati, ad esempio il valore 57 (cinquantasette); se il valore selezionato corrisponde al valore predeterminato, il primo contatore 21 viene incrementato, altrimenti si esegue il ciclo di scrittura della cella o porzione 11 ed il primo contatore 21 non viene scritto. La probabilità di selezionare il valore predeterminato, ossia il valore 57, tra la pluralità di valori prefissati, ossia tra 1...100, supponendo che la funzione di generatore casuale abbia la proprietà di distribuzione uniforme, à ̈ l/m (1/ 100). Statisticamente, dopo l’esecuzione di 100000 cicli di scrittura, il primo contatore 21 viene incrementato, ossia esso viene scritto, solo 100 volte. Dunque, la corrispondente porzione di memoria 21 non à ̈ considerata inaffidabile quando si considera inaffidabile la porzione di memoria controllata 11 .
Secondo un aspetto dell’invenzione, a ciascuna cella di memoria 11, 12, 13, 14 o porzione della memoria non volatile 4 à ̈ associato un corrispondente primo contatore 21, 22, 23, 24 nella memoria non volatile 4 ed un secondo contatore o valore 31, 32, 33, 34 nella RAM 5 à ̈ accoppiato al corrispondente primo contatore 21, 22, 23, 24, per controllare il numero di cicli di scrittura supportato dall’intera memoria non volatile 4. Dunque, l’area di memoria associata ai primi contatori 21, 22, 23, 24 che controllano le altre aree 11, 12, 13, 14 della memoria non volatile 4 non à ̈ soggetta alla medesima frequenza di scritture a cui sono esposte tali altre aree.
Secondo l’invenzione, quando il metodo rileva che una cella o porzione di memoria à ̈ stata scritta fino al limite, esso sposta i dati corrispondenti verso una cella o porzione di memoria meno stressata. In particolare, il primo contatore 21 viene comparato con un valore predeterminato L, il quale à ̈ associate ad un limite di cicli di scrittura supportati dalla porzione 1 1 della memoria non volatile 4, ad esempio L= 100000 e, se il primo contatore 21 supera il valore predeterminato L, un’applicazione oppure il sistema operativo della carta a circuito integrato lancia un allarme di massimo aggiornamento dati sulla porzione 11. La fase di comparazione include il fatto di prendere in considerazione un fattore di scala tra il secondo contatore o valore 31 ed il primo contatore 21; se, ad esempio, il primo contatore 21 viene incrementato una volta ogni N aggiornamenti di detto secondo contatore o valore 3 1 , il fattore di scala à ̈ N e dunque un valore T memorizzato nel primo contatore 21 viene moltiplicato per il fattore di scala N per recuperare i cicli di scrittura effettivamente eseguiti sulla porzione di memoria controllata 11. Ad esempio, se il fattore di scala à ̈ 100, ossia il primo contatore 21 viene incrementato un volta ogni 100 aggiornamenti del secondo contatore o valore 31, un valore 13 (tredici) memorizzato nel primo contatore corrisponde a 13000 cicli di scrittura nella porzione di memoria controllata 1 1.
Quando la porzione di memoria à ̈ stata scritta fino al limite, i dati corrispondenti vengono spostati in una porzione diversa della memoria non volatile.
Preferibilmente, alla porzione differente à ̈ associato un altro primo contatore 22 avente un valore non superiore ai valore predeterminato L, più preferibilmente al primo contatore 22 con il valore più basso. Si prevede che tale primo contatore 22 sia associato ad un’altra porzione di memoria, ad esempio alla porzione di memoria 12, altrimenti considerata inaffidabile perché scritta oltre il suo rispettivo limite.
Il summenzionato problema tecnico viene risolto anche da una carta a circuito integrato 10 secondo la presente invenzione, includente una memoria non volatile 4 ed un primo contatore 21 per conteggiare gli accessi in scrittura ad una cella o porzione 1 1 della memoria non volatile 4. Il primo contatore 21 à ̈ memorizzato in un’altra porzione 21 della memoria non volatile 4, tutta la porzione di tale memoria 4 essendo assoggettata ai medesimi vincoli di memoria, ossia esse supportano lo stesso numero limitato di cicli di scrittura.
Secondo l’invenzione, la carta a circuito integrato 10 comprende un secondo contatore o valore 31 accoppiato al primo contatore 21 ed incluso in una RAM 5 della carta a circuito integrato 10 ed una logica di aggiornamento per aggiornare 40 il secondo contatore o valore 31 ogni qualvolta si verificano accessi in scrittura sulla cella o porzione da controllare e per scrivere il primo contatore 21 solo quando il secondo contatore o valore 31 corrisponde ad un valore predeterminato.
Più in particolare, la logica di aggiornamento 40 comprende l'incremento del valore del secondo contatore 3 1 da un valore inferiore x ad un valore superiore y oppure il decremento del valore da un valore superiore y ad un valore inferiore x e la scrittura del primo contatore 2 1 solo se il secondo contatore 31 corrisponde, rispettivamente, al valore superiore y oppure al valore inferiore x. In una forma di realizzazione preferita, il secondo contatore 31 à ̈ impostato su un valore da 1 ad n, cosicché il numero di scritture del primo contatore 21 in detta altra porzione 21 della memoria non volatile 4 à ̈ 1/n volte il numero di aggiornamenti del secondo contatore 3 1.
In un aspetto dell’invenzione, la logica di aggiornamento 40 comprende la selezione di un valore 31 tra una pluralità di valori prefissati e la scrittura del primo contatore 21 quando il valore 31 corrisponde ad un valore specifico della pluralità di valori prefissati. Più in particolare, la logica di aggiornamento include un generatore casuale di un valore 1...m per il valore 31 ed un comparatore per confrontare il numero selezionato casualmente con il valore predeterminato tra detta pluralità di valori prefissati.
Come rappresentato schematicamente in figura 1, a ciascuna cella o porzione di memoria 11, 12, 13, 14 della memoria non volatile 4 à ̈ associato un corrispondente primo contatore 21, 22, 23, 24 nella memoria non volatile 4 ed un secondo contatore o valore 31, 32, 33, 34 in una RAM 5, il quale à ̈ accoppiato al corrispondente primo contatore 21, 22, 23, 24.
Il comparatore ha in ingresso il primo contatore 21 ed un valore predeterminato L, il quale à ̈ associate ad un limite di cicli di scrittura supportati dalla cella o porzione 1 1 della memoria non volatile 4 ed attiva un allarme di massimo aggiornamento dati sulla porzione 11 se il primo contatore 21 supera il valore predeterminato. Dunque, il sistema operativo della carta a circuito integrato può spostare dati dalla cella o porzione di memoria che si rileva essere inaffidabile ad un’altra porzione di memoria.
Vantaggiosamente, secondo il metodo ed il sistema della presente invenzione, à ̈ possibile impostare un rapporto predeterminato tra il numero di scritture eseguite sulla memoria non volatile associata al primo contatore ed il numero di scritture eseguite sulla cella o porzione della memoria non volatile da controllare con il primo contatore, in modo da ridurre lo stress della porzione di memoria dei contatori. Il tempo di vita del contatore à ̈ maggiore del tempo di vita della porzione di memoria controllata; dunque, quando la porzione di memoria controllata non può supportare ulteriori scritture, ossia ha raggiunto il rispettivo limite di cicli di scrittura, il contatore può essere disaccoppiato dalla porzione di memoria ed associato ad un’altra porzione di memoria da controllare. Vantaggiosamente, diminuiscono le porzioni di memoria associate ad un contatore e danneggiate a causa delle scritture del contatore.
Vantaggiosamente, il secondo contatore o valore non à ̈ limitato dai medesimi vincoli hardware del primo contatore, poiché il primo à ̈ incluso nella porzione di RAM della carta a circuito integrato e non nella memoria non volatile. Vantaggiosamente, l’accesso alla RAM à ̈ più rapido e dunque il secondo contatore o valore può essere aggiornato più rapidamente del primo contatore, migliorando anche le prestazioni del ciclo di scrittura della porzione di memoria non volatile controllata. Ciò migliora le prestazioni del metodo per controllare il numero di cicli di scrittura, poiché il primo contatore viene aggiornato una sola volta per N aggiornamenti del secondo contatore o valore.

Claims (15)

  1. RIVENDICAZIONI 1. Metodo per controllare il numero di cicli di scrittura supportati da una porzione (11) di una memoria non volatile (4) di una carta a circuito integrato (10), includente le fasi di -conteggiare gli accessi in scrittura a detta porzione di memoria (11) e memorizzare un primo contatore (21) di detti accessi in scrittura in un’altra porzione (21) di detta memoria non volatile, caratterizzato dal fatto che a detto primo contatore (21) à ̈ accoppiato un secondo contatore o valore (31) associato ad una RAM (5) ( Random Access Memory ) di detta carta a circuito integrato, in cui il secondo contatore o valore (31) à ̈ aggiornato ogni qualvolta si verificano detti accessi in scrittura su detta porzione (11) da controllare e detto primo contatore (21) à ̈ scritto in detta altra porzione di memoria non volatile (4) solo quando detto secondo contatore o valore (31) corrisponde ad un valore predeterminato.
  2. 2. Metodo secondo la rivendicazione 1, in cui detto aggiornamento del secondo contatore (31) comprende l’incremento di un valore del secondo contatore (31) da un valore inferiore (x) ad un valore superiore (y) oppure il decremento del valore da un valore superiore (y) ad un valore inferiore (x), detto valore predeterminato corrispondendo, rispettivamente, al valore superiore (y) oppure al valore inferiore (x).
  3. 3. Metodo secondo la rivendicazione 2, in cui detto secondo contatore (31) conta da 1 ad n ed il numero di scritture di detto primo contatore (21) in detta altra porzione di memoria non volatile à ̈ 1/n volte il numero di aggiornamenti di detto secondo contatore (31).
  4. 4. Metodo secondo la rivendicazione 1, in cui l'aggiornamento di detto valore (31) comprende la selezione di un valore tra una pluralità di valori prefissati, in cui il valore predeterminato che innesca la scrittura di detto primo contatore (21) à ̈ uno di detta pluralità di valori prefissati.
  5. 5. Metodo secondo la rivendicazione 4, in cui detto valore (31) viene selezionato a caso tra m valori di detta pluralità di valori prefissati (l...m) ed il numero di scritture di detto primo contatore (21) in detta altra porzione di memoria non volatile à ̈ l/m volte il numero di aggiornamenti di detto valore (31).
  6. 6. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui a ciascuna cella o porzione di memoria (11, 12, 13, 14) di detta memoria non volatile (4) Ã ̈ associato un corrispondente primo contatore (21, 22, 23, 24) in detta memoria non volatile (4) ed un secondo contatore o valore (31, 32, 33, 34) nella RAM (5) Ã ̈ accoppiato al corrispondente primo contatore (21, 22, 23, 24) per controllare il numero di cicli di scrittura supportati dalla memoria non volatile (4).
  7. 7. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui il primo contatore (21) à ̈ confrontato con un valore predeterminato (L), il quale à ̈ associato ad un limite di cicli di scrittura supportati da detta porzione (11) di memoria non volatile (4) e, se detto primo contatore (21) supera detto valore predeterminato (L), un’applicazione o sistema operativo di detta carta a circuito integrato (10) attiva un allarme di massimo aggiornamento dati su detta porzione (11) .
  8. 8. Metodo secondo la rivendicazione 7, in cui i dati memorizzati in detta porzione (11) di memoria non volatile (4) sono spostati in una porzione diversa di memoria non volatile, detta porzione diversa essendo associata al primo contatore (11, 12, 13, 14) avente un valore non superiore a detto valore predeterminato (L), preferibilmente al primo contatore (11, 12, 13, 14) associato ad un valore inferiore (50).
  9. 9. Carta a circuito integrato (10) includente una memoria non volatile (4) ed un primo contatore (21) per conteggiare accessi in scrittura ad una porzione (11) di detta memoria non volatile (4), detto primo contatore (21) essendo memorizzato in un’altra porzione (21) di detta memoria non volatile (4), caratterizzata dal fatto di comprendere un secondo contatore o valore (31) accoppiato al primo contatore (21) ed associato ad una RAM (5) ( Rcmdom Access Memory) della carta a circuito integrato (10) ed una logica di aggiornamento, che aggiorna il secondo contatore o valore (31) ogni qualvolta si verificano accessi in scrittura e che scrive detto primo contatore (21) solo quando detto secondo contatore o valore (31) corrisponde ad un valore predeterminato .
  10. 10. Carta a circuito integrato secondo la rivendicazione 9, in cui detta logica di aggiornamento comprende l’incremento del valore del secondo contatore (31) da un valore inferiore (x) ad un valore superiore (y) oppure il decremento del valore da un valore superiore (y) ad un valore inferiore (x) e la scrittura del primo contatore (21) quando il secondo contatore (31) corrisponde, rispettivamente, a detto valore superiore (y) oppure al valore inferiore (x).
  11. 11. Carta a circuito integrato (10) secondo la rivendicazione 10, in cui detto valore (31) Ã ̈ impostato da 1 ad n e il numero di scritture di detto primo contatore (21) in detta altra porzione di memoria non volatile (4) Ã ̈ 1/n volte il numero di aggiornamenti di detto valore (31).
  12. 12. Carta a circuito integrato secondo la rivendicazione 9, in cui detta logica di aggiornamento comprende la selezione di un valore tra una pluralità di valori prefissati e la scrittura del primo contatore (21) quando il valore selezionato (31) corrisponde ad uno di detta pluralità di valori prefissati.
  13. 13. Carta a circuito integrato secondo la rivendicazione 12, in cui detta logica di aggiornamento include un generatore casuale di valore l...m per detto valore (31).
  14. 14. Carta a circuito integrato secondo le rivendicazioni da 9 a 13, in cui a ciascuna cella o porzione di memoria (11, 12, 13, 14) di detta memoria non volatile (4) Ã ̈ associato un corrispondente primo contatore (21, 22, 23, 24) in detta memoria non volatile (4) ed un secondo contatore o valore (31, 32, 33, 34) in una RAM (5) accoppiato al corrispondente primo contatore (21, 22, 23, 24).
  15. 15. Carta a circuito integrato secondo la rivendicazione 14, includente un comparatore avente in ingresso detto primo contatore (21) ed un valore predeterminato associato ad un limite di cicli di scrittura supportati da detta porzione (11) di memoria non volatile (4), ed un dispositivo di attivazione di un allarme su un massimo aggiornamento dati su detta porzione (11), che viene attivato se detto primo contatore (21) supera detto valore predeterminato.
ITMI2010A002475A 2010-12-30 2010-12-30 Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato IT1404161B1 (it)

Priority Applications (5)

Application Number Priority Date Filing Date Title
ITMI2010A002475A IT1404161B1 (it) 2010-12-30 2010-12-30 Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato
US13/976,686 US20140025869A1 (en) 2010-12-30 2011-12-23 Method and system for improving a control of a limit on writing cycles of an ic card
EP11810805.9A EP2659379B1 (en) 2010-12-30 2011-12-23 Method and system for improving a control of a limit on writing cycles of an ic card
BR112013016748A BR112013016748A2 (pt) 2010-12-30 2011-12-23 método para controlar um número de ciclos de escrita suportado por uma porção e cartão com circuito integrado
PCT/EP2011/006554 WO2012089333A1 (en) 2010-12-30 2011-12-23 Method and system for improving a control of a limit on writing cycles of an ic card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ITMI2010A002475A IT1404161B1 (it) 2010-12-30 2010-12-30 Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato

Publications (2)

Publication Number Publication Date
ITMI20102475A1 true ITMI20102475A1 (it) 2012-07-01
IT1404161B1 IT1404161B1 (it) 2013-11-15

Family

ID=43737127

Family Applications (1)

Application Number Title Priority Date Filing Date
ITMI2010A002475A IT1404161B1 (it) 2010-12-30 2010-12-30 Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato

Country Status (5)

Country Link
US (1) US20140025869A1 (it)
EP (1) EP2659379B1 (it)
BR (1) BR112013016748A2 (it)
IT (1) IT1404161B1 (it)
WO (1) WO2012089333A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026720B2 (en) 2013-02-07 2015-05-05 Apple Inc. Non-volatile memory monitoring
US9153331B2 (en) 2013-03-13 2015-10-06 Sandisk Technologies Inc. Tracking cell erase counts of non-volatile memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118688A1 (en) * 2000-01-06 2007-05-24 Super Talent Electronics Inc. Flash-Memory Card for Caching a Hard Disk Drive with Data-Area Toggling of Pointers Stored in a RAM Lookup Table
EP1936632A1 (en) * 2006-12-18 2008-06-25 Samsung Electronics Co., Ltd Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device
US20090113121A1 (en) * 2004-02-26 2009-04-30 Super Talent Electronics Inc. Swappable Sets of Partial-Mapping Tables in a Flash-Memory System With A Command Queue for Combining Flash Writes
US20100180069A1 (en) * 2009-01-15 2010-07-15 Phison Electronics Corp. Block management method for flash memory, and storage system and controller using the same
US20100287328A1 (en) * 2009-05-07 2010-11-11 Seagate Technology Llc Wear leveling technique for storage devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US7113432B2 (en) * 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7464240B2 (en) * 2006-05-23 2008-12-09 Data Ram, Inc. Hybrid solid state disk drive with controller
US7461229B2 (en) * 2006-05-23 2008-12-02 Dataram, Inc. Software program for managing and protecting data written to a hybrid solid-state disk drive
US7424587B2 (en) * 2006-05-23 2008-09-09 Dataram, Inc. Methods for managing data writes and reads to a hybrid solid-state disk drive
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
CN101354681B (zh) * 2008-09-23 2010-12-01 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8411519B2 (en) * 2010-06-04 2013-04-02 Apple Inc. Selective retirement of blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070118688A1 (en) * 2000-01-06 2007-05-24 Super Talent Electronics Inc. Flash-Memory Card for Caching a Hard Disk Drive with Data-Area Toggling of Pointers Stored in a RAM Lookup Table
US20090113121A1 (en) * 2004-02-26 2009-04-30 Super Talent Electronics Inc. Swappable Sets of Partial-Mapping Tables in a Flash-Memory System With A Command Queue for Combining Flash Writes
EP1936632A1 (en) * 2006-12-18 2008-06-25 Samsung Electronics Co., Ltd Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device
US20100180069A1 (en) * 2009-01-15 2010-07-15 Phison Electronics Corp. Block management method for flash memory, and storage system and controller using the same
US20100287328A1 (en) * 2009-05-07 2010-11-11 Seagate Technology Llc Wear leveling technique for storage devices

Also Published As

Publication number Publication date
IT1404161B1 (it) 2013-11-15
US20140025869A1 (en) 2014-01-23
WO2012089333A1 (en) 2012-07-05
BR112013016748A2 (pt) 2016-10-11
EP2659379A1 (en) 2013-11-06
EP2659379B1 (en) 2014-12-03

Similar Documents

Publication Publication Date Title
JP2017506391A5 (it)
CN103456352A (zh) 半导体器件及其操作方法
US9400746B2 (en) Data storage device and flash memory control method
JP2014239880A5 (it)
ITMI20102475A1 (it) Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato
CN105453029A (zh) 处理用于数据存取的存取属性
US20120221773A1 (en) Nonvolatile semiconductor memory device
CN104750459A (zh) 带有事务功能以及报告事务操作的日志记录电路的处理器
JP2014239879A5 (it)
CN108446181A (zh) 对资源限制访问的方法、装置及终端设备
CN107608885A (zh) 内存泄漏点的定位方法、装置、系统及可读存储介质
JP2013117840A (ja) メモリアクセス制御装置および方法
CN101515242B (zh) 一种查找改写内存的任务的方法和系统
JP2014208100A5 (it)
JP6060892B2 (ja) 車載データ記憶装置及びデータ記憶方法
CN105893877A (zh) 安全数据读取的方法和数据处理系统
US20100131698A1 (en) Memory sharing method for flash driver
CN100334555C (zh) 智能型固化软件的升级控制方法
JP5991239B2 (ja) 不揮発性半導体メモリの書き込み制御方法およびマイクロコンピュータ
JP5590667B2 (ja) サブルーチン実行監視装置及びサブルーチン実行監視方法
JP5621914B2 (ja) 情報処理装置、修正適用判定プログラムおよび修正適用判定方法
US9465730B2 (en) Flash memory device
ITMI20120595A1 (it) Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio
JP2013045177A5 (it)
US20150248358A1 (en) System on chip and method of executing a process in a system on chip