ITMI20120595A1 - Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio - Google Patents

Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio Download PDF

Info

Publication number
ITMI20120595A1
ITMI20120595A1 IT000595A ITMI20120595A ITMI20120595A1 IT MI20120595 A1 ITMI20120595 A1 IT MI20120595A1 IT 000595 A IT000595 A IT 000595A IT MI20120595 A ITMI20120595 A IT MI20120595A IT MI20120595 A1 ITMI20120595 A1 IT MI20120595A1
Authority
IT
Italy
Prior art keywords
pages
service page
service
location
value
Prior art date
Application number
IT000595A
Other languages
English (en)
Inventor
Rosarioroberto Grasso
Giovanni Matranga
Mario Micciche
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 IT000595A priority Critical patent/ITMI20120595A1/it
Priority to US13/860,056 priority patent/US9240243B2/en
Publication of ITMI20120595A1 publication Critical patent/ITMI20120595A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

DESCRIZIONE
La soluzione in accordo con una o più forme di realizzazione della presente invenzione riguarda il settore dell’elettronica. Più specificamente, tale soluzione riguarda dispositivi di memoria flash.
I dispositivi di memoria flash sono utilizzati in qualsivoglia applicazione che richiede l’immagazzinamento di informazioni che devono essere mantenute anche quando i dispositivi di memoria flash non sono alimentati.
In generale, ciascun dispositivo di memoria flash comprende una matrice di celle di memoria. Ciascuna cella di memoria tipicamente comprende un transistore di tipo MOS a gate flottante; tale transistore possiede un terminale di raccolta (drain), un terminale di sorgente (source) ed un terminale di controllo (gate), in maniera del tutto analoga ad un transistore MOS standard, con l’aggiunta di un’ulteriore regione di controllo flottante (gate flottante) che à ̈ sepolta in uno strato di ossido in modo da essere elettricamente isolata.
Un bit di informazione viene immagazzinato fisicamente in ogni cella di memoria sotto forma di carica elettrica nella gate flottante, la quale definisce una corrispondente tensione di soglia del transistore; in particolare, la cella di memoria à ̈ programmata ad una tensione di soglia alta (cariche elettriche intrappolate nella gate flottante) e cancellata ad una tensione di soglia bassa (gate flottante libera di cariche elettriche); il dispositivo di memoria flash può essere programmato a livello di celle di memoria singolarmente selezionate, mentre può essere cancellato solo a livello di gruppi di celle di memorie selezionate (ad esempio, una o più pagine di celle di memoria ciascuna realizzata in una corrispondente sacca isolata).
Come à ̈ noto, la cancellazione delle pagine selezionate avviene applicando a ciascuna di esse una serie di impulsi di cancellazione con valore crescente, fino a che tutte le rispettive celle di memoria non sono state cancellate. Tuttavia, ciò può generare (in tali pagine selezionate) celle di memoria deplete, i cui transistori presentano tensioni di soglia inferiori alla tensione di soglia bassa (per cui possono essere in conduzione anche se non selezionati). Per questo motivo, la cancellazione tipicamente comprende, a valle dell’applicazione della serie di impulsi di cancellazione, una fase di ripristino in cui eventuali celle di memoria deplete sono identificate e sottoposte ad un’operazione di programmazione dolce (soft) per ripristinarle alla condizione (cancellata) non depleta.
Se però tale fase di ripristino non viene effettuata (o completata), come a seguito di indesiderate interruzioni di potenza elettrica con conseguente spegnimento non corretto del dispositivo di memoria flash, la presenza di celle di memoria deplete può causare malfunzionamenti (ad esempio, errori in lettura).
Al fine di evitare ciò, nello stato della tecnica esistono soluzioni che prevedono di memorizzare informazioni relative alla cancellazione delle pagine selezionate in un registro di celle di memoria di servizio. A tale scopo, un indirizzo delle pagine selezionate à ̈ scritto all’avvio della loro cancellazione, ed un corrispondente marcatore (flag) à ̈ scritto al completamento della cancellazione delle stesse (programmando corrispondenti celle di memoria del registro di servizio); in questo modo, ad ogni accensione del dispositivo di memoria flash, eventuali pagine selezionate non completamente cancellate (indirizzo scritto e marcatore non scritto) possono essere identificate e nuovamente sottoposte a cancellazione (con relativa soft-programmazione). Tuttavia, un volta che il registro di servizio à ̈ stato riempito (dopo un certo numero di cancellazioni), à ̈ necessario cancellarlo completamente prima di poterlo utilizzare nuovamente. Pertanto, il registro di servizio dovrebbe essere relativamente grande (per limitare le sue cancellazioni), con conseguente considerevole occupazione di area. In ogni caso, ad ogni (inevitabile) cancellazione del registro di servizio il dispositivo di memoria flash presenta tempi di latenza lunghi, e quindi una ridotta efficienza.
In aggiunta, la presenza di accoppiamenti parassiti implica un isolamento non completo tra le celle di memoria, per cui la selezione di una o più celle di memoria (o pagine) può causare disturbi elettrici su celle di memoria (o pagine) non selezionate, e quindi un’alterazione dei bit di informazione in esse immagazzinati. Pertanto, le celle di memoria sono periodicamente sottoposte ad un rinfresco (refresh) del loro contenuto, ad esempio mediante uno specifico algoritmo di ri-programmazione. Tuttavia il refresh, essendo solitamente eseguito su interi settori del dispositivo di memoria (ciascuno tipicamente comprendente un numero elevato di pagine), necessita di tempi di esecuzione lunghi, il che riduce ulteriormente l’efficienza del dispositivo di memoria flash.
In termini generali, la soluzione in accordo con una o più forme di realizzazione della presente invenzione à ̈ basata sull’idea di memorizzare informazioni relative alla cancellazione di pagine operative in pagine di servizio.
In particolare, uno o più aspetti della soluzione in accordo con specifiche forme di realizzazione dell’invenzione sono indicati nelle rivendicazioni indipendenti e caratteristiche vantaggiose della stessa soluzione sono indicate nelle rivendicazioni dipendenti, con il testo di tutte le rivendicazioni che à ̈ incorporato nella presente alla lettera per riferimento (con qualsiasi caratteristica vantaggiosa fornita con riferimento ad uno specifico aspetto della soluzione in accordo con una forma di realizzazione dell’invenzione che si applica mutatis mutandis ad ogni altro suo aspetto).
Più specificamente, un aspetto della soluzione in accordo con una forma di realizzazione della presente invenzione propone un metodo di gestione di un dispositivo di memoria flash, in cui informazioni relative alla cancellazione di pagine operative sono memorizzate in due o più pagine di servizio; ad ogni cancellazione di un insieme di pagine operative selezionate, tali informazioni sono scritte in una pagina di servizio in uso ed almeno un impulso di cancellazione à ̈ applicato a ciascuna pagina di servizio da cancellare.
Un altro aspetto della soluzione in accordo con una forma di realizzazione dell’invenzione propone un corrispondente dispositivo di memoria flash.
Un ulteriore aspetto della soluzione in accordo con una forma di realizzazione dell’invenzione propone un sistema comprendente uno o più di tali dispostivi di memoria flash.
Un diverso aspetto della soluzione in accordo con una forma di realizzazione dell’invenzione propone un programma per eseguire tale metodo.
La soluzione in accordo con una o più forme di realizzazione dell'invenzione, come pure ulteriori caratteristiche ed i relativi vantaggi, sarà meglio compresa con riferimento alla seguente descrizione dettagliata, data puramente a titolo indicativo e non limitativo, da leggersi congiuntamente alle figure allegate (in cui elementi corrispondenti sono indicati con riferimenti uguali o simili e la loro spiegazione non à ̈ ripetuta per brevità). In particolare:
FIG.1 mostra uno schema a blocchi di principio di un dispositivo di memoria flash in cui la soluzione in accordo con una forma di realizzazione della presente invenzione può essere applicata;
FIG.2 mostra una rappresentazione schematica di pagine di servizio incluse in tale dispositivo di memoria flash che possono essere utilizzate per implementare una procedura di gestione in accordo con una forma di realizzazione della presente invenzione, e
FIGG.3 e 4 mostrano diagrammi di attività semplificati del flusso di operazioni di rispettive fasi della procedura di gestione in accordo con una forma di realizzazione della presente invenzione.
Con riferimento in particolare a FIG.1, essa mostra uno schema a blocchi di principio di un dispositivo di memoria flash 100 (ad esempio, un dispositivo di memoria flash NAND) in cui la soluzione in accordo con una forma di realizzazione della presente invenzione può essere applicata.
Il dispositivo di memoria flash 100 à ̈ integrato in una piastrina (chip) di materiale semiconduttore; il dispositivo di memoria flash 100 comprende una matrice di memoria 105, la quale à ̈ formata da una pluralità di celle di memoria 110 programmabili e cancellabili elettricamente, ciascuna per memorizzare un corrispondente bit di informazione (rappresentato da una tensione di soglia di un corrispondente transistore MOS a gate flottante); convenzionalmente, la cella di memoria 110 cancellata (tensione di soglia bassa) à ̈ associata al valore logico 1, mentre la cella di memoria 110 programmata (tensione di soglia alta) à ̈ associata al valore logico 0.
Le celle di memoria 110 sono fisicamente organizzate in pagine (ad esempio, righe realizzate in corrispondenti sacche isolate della piastrina) 115i(i=1, 2,…, 512 nell’esempio illustrato) – ad esempio, ciascuna formata da 2048 celle di memoria 110. Le celle di memoria 110 possono essere programmate e lette singolarmente, mentre esse possono essere cancellate solo a livello di un’intera pagina 115i.
Come à ̈ noto, il dispositivo di memoria flash 100 comprende circuiti periferici, quali decodificatori, multiplexer, driver, buffer, sense amplifier, i quali, non essendo rilevanti per la presente descrizione, sono rappresentati in figura mediante un unico blocco funzionale, denotato con il riferimento numerico 120. Tali circuiti periferici 120 sono configurati, in generale, per accedere a celle di memoria 110 selezionate e/o a pagine 115iselezionate (come concettualmente rappresentato in figura mediante il generico collegamento a freccia tra i circuiti periferici 120 e la matrice di memoria 105) ed eseguire operazioni selezionate sulle stesse (ossia, lettura, programmazione o cancellazione).
Il dispositivo di memoria flash 100 ulteriormente comprende un circuito di controllo (ad esempio, un microcontrollore) 125, il quale, in generale, assolve a funzioni di gestione e controllo (ad esempio, coordinando opportunamente abilitazione e/o disabilitazione dei circuiti periferici 120, come concettualmente rappresentato in figura mediante il generico collegamento a freccia tra il microcontrollore 125 ed i circuiti periferici 120).
Nella soluzione in accordo con una forma di realizzazione della presente invenzione, la matrice di memoria 105 à ̈ logicamente divisa in una pluralità di pagine operative (differenziate con il riferimento 115Ox, con x=2, 3, …, 512) ed una pluralità di pagine di servizio (differenziate con il riferimento 115SPy, con y=0, 1 nell’esempio in questione); le pagine operative 115Ox(le quali occupano la maggior parte della matrice di memoria 105) sono utilizzate normalmente per memorizzare valori operativi, mentre le pagine di servizio 115SPysono utilizzate per memorizzare informazioni relative alla cancellazione della pagine operative 115Ox.
Come descritto in dettaglio nel seguito, le pagine di servizio 115SP0,115SP1sono usate alternativamente, con una pagina di servizio 115SP0,115SP1che à ̈ cancellata di volta in volta mentre l’altra pagina di servizio 115SP1,115SP0à ̈ in uso. Ciò consente di gestire dinamicamente le pagine di servizio 115SP0,115SP1contestualmente alla cancellazione dell’insieme di pagine operative 115Oxselezionate. Inoltre, la cancellazione della pagina di servizio 115SP0,115SP1non in uso avviene in maniera distribuita. In questo modo, almeno una pagina di servizio 115SP0,115SP1vuota à ̈ disponibile al riempimento della pagina di servizio 115SP1,115SP0in uso, il che consente di diminuire i tempi di latenza del dispositivo di memoria flash 100.
Inoltre, la procedura di gestione à ̈ in grado di operare in maniera ottimale con un numero estremamente ridotto di pagine di servizio 115SP0,115SP1; pertanto, non à ̈ necessario impiegare, come nelle soluzioni note, registri di memoria non volatili esterni alla matrice di memoria 105, che comporterebbero una considerevole occupazione di area dell’intero dispositivo di memoria flash 100.
FIG.2 mostra una rappresentazione schematica delle pagine di servizio 115SP0e 115SP1in accordo con una forma di realizzazione della presente invenzione; più in particolare, tale figura mostra una esemplificativa organizzazione logica di ciascuna pagina di servizio 115SP0,115SP1che può essere utilizzata per implementare una procedura di gestione in accordo con una forma di realizzazione dell’invenzione.
Ciascuna pagina di servizio 115SP0,115SP1comprende una pluralità di parole Wk(nell’esempio in questione, k=0,1,2…, N, con N=63) - ad esempio, ciascuna formata da 32 bit. Ogni parola Wkcomprende, come visibile nel dettaglio illustrato in figura per la generica parola Wk, una o più (ad esempio, due) locazioni di memoria, o semplicemente locazioni, Lak,Lbk(di 16 bit l’una), ciascuna per memorizzare le informazioni relative alla cancellazione di un corrispondente insieme di pagine operative selezionate. Più in particolare, la locazione Lak,Lbkcomprende una sezione indirizzo Aak,Abk(ad esempio, formata dai primi 10 bit, in grado di indirizzare sino a 2<10>=1028 pagine della matrice di memoria) per memorizzare un indirizzo dell’insieme di pagine operative selezionate, ed un indicatore di locazione Cak,Cbk(ad esempio, formato dai successivi 4 bit) per memorizzare valori indicativi di uno stato della locazione Lak,Lbke della cancellazione dell’insieme di pagine operative selezionate – con i rimanenti 4 bit di ciascuna parola Wkche sono inutilizzati (ad eccezione dell’ultima parola W63, come descritto nel seguito).
Ciascun indicatore di locazione Cak,Cbkpuò assumere un valore libero (ad esempio, pari a 1111) indicante che la locazione Lak,Lbkà ̈ libera, un valore di selezione (ad esempio, pari a 0111) indicante che la locazione Lak,Lbkà ̈ stata selezionata, un valore di verifica (ad esempio, pari a 0011) indicante l’avvenuta verifica di pagine di servizio in cancellazione, un valore di scrittura (ad esempio, pari a 0001) indicante l’avvenuta scrittura nella sezione indirizzo Aak,Abkdell’indirizzo dell’insieme di pagine operative selezionate, ed un valore cancellato (ad esempio, pari a 0000) indicante il completamento della cancellazione dell’insieme di pagine operative selezionate.
I valori libero, di selezione, di verifica, di scrittura e cancellato riflettono, in quest’ordine, una sequenza di passi della procedura di gestione (come sarà descritto nel seguito); essi sono stati quindi scelti in modo tale da differire tra loro per numero crescente di bit programmati – ossia 1111, 0111, 0011, 0001 e 0000, rispettivamente. In questo modo, a partire dal valore libero 1111 (ottenuto dopo la cancellazione della corrispondente pagina di servizio), l’indicatore di locazione Cak,Cbkpuò essere aggiornato mediante programmazioni successive di bit diversi, fino al valore cancellato 0000.
I rimanenti 4 bit dell’ultima parola W63di ciascuna pagina comprendono due indicatori di pagina PSPy,PSPy’(ad esempio, formati dai due bit finali e dai due bit iniziali, rispettivamente, nell’esempio illustrato), il primo (ovvero, l’indicatore PSP0,PSP1) indicativo di uno stato di occupazione della rispettiva pagina di servizio 115SP0,115SP1(o indicatore di occupazione) ed il secondo (ovvero, l’indicatore PSP0’,PSP1’) indicativo di uno stato di cancellazione dell’altra pagina di servizio 115SP1,115SP0(o indicatore di cancellazione). Ogni indicatore di occupazione PSPypuò assumere un valore vuoto (ad esempio, pari a 11) indicante che la pagina di servizio à ̈ vuota, un valore in uso (ad esempio, pari a 10) indicante che la pagina di servizio à ̈ in uso, ed un valore pieno (ad esempio, pari a 00) indicante che la pagina di servizio à ̈ piena, mentre ogni indicatore di cancellazione PSPy’può assumere un valore da avviare (ad esempio, pari a 11) indicativo che la cancellazione della pagina di servizio non à ̈ stata ancora avviata, un valore in corso (ad esempio, pari a 10) indicante che la cancellazione della pagina di servizio à ̈ in corso, ed un valore completato (ad esempio, pari a 00) indicante che la cancellazione della pagina di servizio à ̈ stata completata.
Anche in questo caso, i valori vuoto, in uso e pieno, ed i valori da avviare, in corso e completato riflettono, in quest’ordine, una sequenza di passi della procedura di gestione (come sarà descritto nel seguito); essi sono stati quindi scelti in modo tale da differire tra loro per numero crescente di bit programmati – ossia 11, 10, 00, rispettivamente. In questo modo, a partire dal valore (vuoto o da avviare) 11, ciascun indicatore di pagina PSPy,PSPy’può essere aggiornato mediante programmazioni successive di bit diversi, fino al valore (pieno o completato) 00.
FIGG.3 e 4 mostrano diagrammi di attività semplificati del flusso di operazioni della procedura di gestione in accordo con una forma di realizzazione della presente invenzione. Tali operazioni sono eseguite sotto il controllo di un corrispondente programma, il quale à ̈ memorizzato in una memoria di base del microcontrollore (ad esempio, una ROM), ed à ̈ caricato (almeno in parte) in una sua memoria di lavoro (ad esempio, una RAM) quando il programma à ̈ in esecuzione. Il programma implementa un metodo per eseguire la procedura di gestione, la quale comprende una fase di cancellazione (descritta in FIG.3, ed eseguita ad ogni comando di cancellazione di un insieme di pagine operative selezionate), ed una fase di riparazione (descritta in FIG.4, ed eseguita ad ogni accensione del dispositivo di memoria flash).
Con riferimento in particolare a FIG.3, la fase di cancellazione del metodo (nel seguito, metodo 300) inizia al cerchio nero di partenza 305.
Il metodo 300 passa quindi al blocco 310, in cui viene determinata una pagina di servizio in uso. Ciò viene effettuato individuando la pagina di servizio avente il corrispondente indicatore di occupazione (memorizzato nella stessa) al valore in uso. In caso di prima accensione del dispositivo di memoria flash, condizione in cui tutti gli indicatori di occupazione sono al valore vuoto, può essere scelta una qualunque delle pagine di servizio in accordo con un opportuno criterio (ad esempio, la prima pagina di servizio), dopodiché l’indicatore di occupazione associato alla pagina di servizio scelta à ̈ aggiornato al valore in uso – ossia, da 11 ad 10 (passi non mostrati).
A questo punto viene selezionata una locazione libera nella pagina di servizio in uso (blocco 315); ciò viene effettuato individuando una locazione avente il corrispondente indicatore di locazione al valore libero. Nel caso in cui nessuna locazione libera à ̈ disponibile nella pagina di servizio in uso (ossia, la pagina di servizio à ̈ piena), l’indicatore di occupazione della pagina di servizio in uso à ̈ aggiornato al valore pieno (ossia, da 10 a 00), l’indicatore di occupazione dell’altra pagina di servizio (che, come si comprenderà nel seguito, in tale fase à ̈ al valore vuoto) à ̈ impostato al valore in uso (ossia, da 11 ad 10), ed una locazione libera nella (nuova) pagina di servizio in uso (sempre disponibile) à ̈ selezionata. In ogni caso, il metodo prosegue al blocco 320, in cui l’indicatore di locazione della locazione selezionata à ̈ aggiornato al valore di selezione (ossia, da 1111 a 0111).
Il metodo 300 continua quindi al blocco decisionale 325, in cui viene verificata se l’altra pagina di servizio à ̈ da cancellare; ciò avviene quando il corrispondente indicatore di cancellazione (memorizzato nella pagina di servizio in uso) à ̈ al valore da avviare o in corso. In caso affermativo, ramo di uscita Y del blocco decisionale 325, viene applicato un impulso di cancellazione all’altra pagina di servizio (blocco 330), e, se il corrispondente indicatore di cancellazione à ̈ al valore da avviare, esso viene aggiornato al valore in corso (passo non mostrato). Si noti che in questo modo l’indicatore di occupazione della pagina di servizio in cancellazione (memorizzato nella stessa) assume un valore indefinito; sebbene in generale ciò non costituisca un problema, nel caso particolare in cui invece tale valore diventi accidentalmente pari proprio al valore in uso, la determinazione della reale pagina di servizio in uso alla successiva fase di cancellazione può essere effettuata, ad esempio, analizzando la distribuzione dei valori degli indicatori di locazione – caotica nella pagina di sevizio in cancellazione ed organizzata coerentemente con il presente metodo nella pagina di sevizio in uso. L’applicazione anche di un solo impulso di cancellazione ad ogni comando di cancellazione assicura che tutte le celle di memoria della pagina di servizio in cancellazione sono sicuramente state cancellate ben prima del riempimento della pagina di servizio in uso (infatti, tipicamente a tale scopo sono richiesti 5 o 6 impulsi di cancellazione – e quindi 5 o 6 comandi di cancellazione). A valle dell’applicazione dell’impulso di cancellazione, à ̈ anche eseguita una fase di ripristino in cui eventuali celle di memoria deplete nella pagina di servizio in cancellazione sono identificate e sottoposte ad un’operazione di soft-programmazione per ripristinarle alla condizione (cancellata) non depleta.
Il metodo 300 prosegue quindi al blocco decisionale 335, in cui viene verificato se la pagina di servizio in cancellazione à ̈ stata completamente cancellata (senza celle di memoria deplete, per quanto sopra). In caso affermativo, ramo di uscita Y del blocco decisionale 335, al blocco 340 l’indicatore di cancellazione della pagina di servizio in cancellazione (memorizzato nella pagina di servizio in uso) à ̈ aggiornato al valore completato (ossia, da 01 a 00); allo stesso tempo, l’indicatore di occupazione della pagina di servizio appena cancellata à ̈ automaticamente impostato al valore vuoto (11). Il metodo 300 prosegue quindi al blocco 345. In caso contrario, ramo di uscita N del blocco decisionale 335, indicante che l’impulso di cancellazione applicato non à ̈ stato sufficiente a cancellare completamente la pagina di servizio in cancellazione, il metodo 300 prosegue comunque al blocco 355. Tale blocco à ̈ anche raggiunto direttamente nel caso in cui, dopo la selezione della locazione libera nella pagina di servizio in uso, non sia stata trovata alcuna pagina di servizio da cancellare (ramo di uscita N del blocco decisionale 325).
Al blocco 345 l’indicatore di locazione della locazione selezionata viene aggiornato al valore di verifica (ossia, da 0111 a 0011) indicante l’avvenuta verifica della presenza di una pagina di servizio da cancellare e l’eventuale applicazione ad essa dell’impulso di cancellazione (e la conseguente verifica della sua completa cancellazione).
Il metodo 300 prosegue al blocco 350, in cui nella sezione indirizzo della locazione selezionata della pagina di servizio in uso viene scritto l’indirizzo dell’insieme di pagine operative selezionate; continuando al blocco 355, l’indicatore di locazione della locazione selezionata viene aggiornato al valore di scrittura (ossia, da 0011 a 0001).
A questo punto, l’insieme di pagine operative selezionate viene cancellato (blocco 360); ciò può essere effettuato, in maniera nota, applicando una serie di impulsi di cancellazione con valore crescente (fino a che tutte le rispettive celle di memoria non sono state cancellate), e successivamente soft-programmando eventuali celle di memoria deplete.
Il metodo 300 continua al blocco 365, in cui viene effettuato un rinfresco di un insieme di pagine predefinite; tali pagine predefinite hanno un indirizzo associato in modo predefinito ad una posizione della locazione selezionata nella pagina di servizio in uso. Ad esempio, nel caso in questione in cui il dispositivo di memoria flash comprende, tra le 512 pagine, due pagine di servizio ciascuna comprendente 64 parole aventi due locazioni ciascuna, alla locazione j-esima (con j=0,1, 2,.., 127) della y-esima pagina di servizio in uso à ̈ possibile associare una coppia di pagine di servizio consecutive a partire dall’indirizzo 2*j+h*256 (in modo da rinfrescare a coppie le prime 256 pagine quando la prima pagina di servizio à ̈ in uso e quindi le altre 256 pagine quando la seconda pagina di servizio à ̈ in uso). Ciò consente di rinfrescare tutte le pagine entro il riempimento delle due pagine di servizio.
In questo modo, rispetto alla tecnica nota, in cui il rinfresco viene eseguito periodicamente su interi settori al termine di una cancellazione, il rinfresco à ̈ distribuito su diverse cancellazioni, il che determina una maggiore efficienza del dispositivo di memoria flash.
Il metodo 300 prosegue al blocco 370, in cui l’indicatore di locazione della locazione selezionata viene aggiornato al valore cancellato (ossia, da 0001 a 0000). Il metodo 300 termina quindi al doppio cerchio nero di fine 375.
Con riferimento ora a FIG.4, la fase di riparazione del metodo (nel seguito, metodo 400) inizia al cerchio nero di partenza 405.
Come menzionato in precedenza, il metodo 400 à ̈ invocato ad ogni accensione del dispositivo di memoria flash. In generale, il metodo 400 à ̈ volto a verificare se l’accensione del dispositivo di memoria flash à ̈ successiva ad uno spegnimento non corretto del dispositivo di memoria flash (ad esempio, causato da indesiderate interruzioni di potenza durante la fase di cancellazione).
Il metodo 400 prosegue al blocco decisionale 410, in cui viene verificata, nelle pagine di servizio, la presenza di una locazione di memoria ibrida, ovvero una locazione di memoria avente l’indicatore di locazione al valore di selezione, al valore di verifica o al valore di scrittura. In caso negativo (ramo di uscita N del blocco decisionale 410), il metodo termina al doppio cerchio di fine 475, ad indicare che il precedente spegnimento del dispositivo di memoria flash à ̈ avvenuto in maniera corretta (oppure che, al momento dello spegnimento, la fase di cancellazione era già stata completata). In caso affermativo, invece, il metodo 400 si divide in accordo con il valore dell’indicatore di locazione della locazione di memoria ibrida.
In particolare, se la locazione di memoria ibrida ha l’indicatore di locazione al valore di selezione (ramo di uscita YIdel blocco decisionale 410), viene verificato se l’altra pagina di servizio à ̈ da cancellare (blocco decisionale 425). In caso affermativo, ramo di uscita Y del blocco decisionale 425, viene applicato un impulso di cancellazione a tale pagina di servizio con successiva fase di ripristino (blocco 430), e viene verificato se la pagina di servizio in cancellazione à ̈ stata completamente cancellata (blocco decisionale 435). In caso affermativo, ramo di uscita Y del blocco decisionale 435, al blocco 440 l’indicatore di cancellazione della pagina di servizio ora vuota (memorizzato nella pagina di servizio in uso) à ̈ aggiornato al valore completato; il metodo 400 prosegue quindi al blocco 465. Tale blocco à ̈ anche raggiunto direttamente nel caso in cui non sia stata trovata alcuna pagina di servizio da cancellare (ramo di uscita N del blocco decisionale 425), e nel caso in cui non sia stata completata la cancellazione della pagina di servizio in cancellazione (ramo di uscita N del blocco decisionale 435).
Invece, se la locazione di memoria ibrida ha l’indicatore di locazione al valore di scrittura (ramo di uscita YIIdel blocco decisionale 410), l’insieme di pagine operative selezionate corrispondente all’indirizzo memorizzato nella locazione di memoria ibrida viene cancellato (blocco 460), ed il metodo prosegue al blocco 465. Infine, se la locazione di memoria ibrida ha l’indicatore di locazione al valore di verifica (ramo di uscita YIIIdel blocco decisionale 410), il metodo prosegue direttamente al blocco 465.
Come in precedenza, al blocco 465 viene effettuato un rinfresco delle pagine operative predefinite associate alla locazione ibrida, ed il corrispondente indicatore di locazione della locazione ibrida viene aggiornato al valore cancellato (blocco 470).
Il metodo 400 termina quindi al doppio cerchio nero di fine 475.
La soluzione descritta à ̈ ulteriormente vantaggiosa in quanto, in caso di interruzione indesiderata di potenza elettrica durante la fase di cancellazione, essa consente di ripristinare una corretta gestione delle pagine di servizio (e delle pagine operative). In particolare, ciò assicura (oltre alla cancellazione del corrispondente insieme di pagine operative selezionate, se necessaria), anche la corretta gestione del refresh delle pagine operative.
Naturalmente, al fine di soddisfare esigenze contingenti e specifiche, un tecnico del ramo potrà apportare alla soluzione sopra descritta numerose modifiche e varianti logiche e/o fisiche. Più specificamente, sebbene tale soluzione sia stata descritta con un certo livello di dettaglio con riferimento ad una o più sue forme di realizzazione, à ̈ chiaro che varie omissioni, sostituzioni e cambiamenti nella forma e nei dettagli così come altre forme di realizzazione sono possibili. In particolare, diverse forme di realizzazione dell’invenzione possono essere messe in pratica anche senza gli specifici dettagli (come gli esempi numerici) esposti nella precedente descrizione per fornire una loro più completa comprensione; al contrario, caratteristiche ben note possono essere state omesse o semplificate al fine di non oscurare la descrizione con particolari non necessari. Inoltre, à ̈ espressamente inteso che specifici elementi e/o passi di metodo descritti in relazione ad ogni forma di realizzazione della soluzione esposta possono essere incorporati in qualsiasi altra forma di realizzazione come una normale scelta di disegno. In ogni caso, qualificatori ordinali o altro sono usati meramente come etichette per distinguere elementi con lo stesso nome ma non connotano per sé stessi alcuna priorità, precedenza o ordine. Inoltre, i termini includere, comprendere, avere, contenere e comportare (e qualsiasi loro forma) dovrebbero essere intesi con un significato aperto e non esauriente (ossia, non limitato agli elementi recitati), i termini basato su, dipendente da, in accordo con, secondo, funzione di (e qualsiasi loro forma) dovrebbero essere intesi con un rapporto non esclusivo (ossia, con eventuali ulteriori variabili coinvolte) ed il termine uno/una dovrebbe essere inteso come uno o più elementi (a meno di espressa indicazione contraria).
Ad esempio, una forma di realizzazione della presente invenzione propone un metodo di gestione di un dispositivo di memoria flash comprendente una pluralità di pagine di celle di memoria; il dispositivo di memoria à ̈ cancellabile a livello di dette pagine. Le pagine comprendono una pluralità di pagine operative per memorizzare valori operativi ed una pluralità di pagine di servizio per memorizzare informazioni relative alla cancellazione della pagine operative. In risposta ad una richiesta di cancellazione di un insieme di (una o più) pagine operative selezionate, il metodo comprende i seguenti passi. Una pagina di servizio in uso à ̈ determinata tra dette pagine di servizio in accordo con informazioni di servizio memorizzate nelle pagine di servizio. La presenza di almeno una pagina di servizio da cancellare à ̈ verificata tra dette pagine di servizio in accordo con dette informazioni di servizio. Almeno un impulso di cancellazione à ̈ applicato a ciascuna pagina di servizio da cancellare. Nella pagina di servizio in uso à ̈ scritto un indirizzo dell’insieme di pagine operative selezionate. L’insieme di pagine operative selezionate à ̈ cancellato. Nella pagina di servizio in uso à ̈ scritto un’indicazione di un completamento della cancellazione dell’insieme di pagine operative selezionate.
Ad ogni modo, la soluzione in accordo con una forma di realizzazione dell’invenzione si presta ad essere implementata con un metodo equivalente (usando passi simili, rimovendo alcuni passi non essenziali, o aggiungendo ulteriori passi opzionali); inoltre, i passi possono essere eseguiti in ordine diverso, in parallelo o sovrapposti (almeno in parte). Ad esempio, nulla vieta di prevedere più pagine di servizio, o di utilizzare diverse informazioni di servizio (vedi sotto). Inoltre, l’indirizzo dell’insieme di pagine selezionate può avere un qualsiasi formato (ad esempio, solo uguale all’indirizzo della prima pagina dell’insieme, con l’eventuale aggiunta di un contatore indicante il numero di pagine dell’insieme successive alla prima). Inoltre, sebbene in descrizione si sia fatto esplicito riferimento ad un singolo impulso di cancellazione, ciò non à ̈ da intendersi in maniera limitativa. A tale proposito, infatti, à ̈ possibile prevedere che la cancellazione distribuita (delle pagine di servizio) sopra descritta venga effettuata applicando un segnale di cancellazione comprendente più impulsi (ad esempio, secondo una percentuale stabilita - come il 10% - della serie di impulsi stimata per il completamento della cancellazione).
In accordo con una forma di realizzazione della presente invenzione il metodo ulteriormente comprende, dopo il passo di applicare almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare, i passi di verificare la presenza di almeno una cella di memoria depleta nella pagina di servizio da cancellare, e soft-programmare ogni cella di celle di memoria depleta.
Comunque, la possibilità di eseguire il ripristino solo dopo il completamento della cancellazione della pagina di servizio non à ̈ esclusa.
In accordo con una forma di realizzazione della presente invenzione, il metodo ulteriormente comprende, dopo il passo di determinare una pagina di servizio in uso tra dette pagine di servizio, i passi di selezionare una tra una pluralità di locazioni di memoria della pagina di servizio in uso (la locazione selezionata avendo un indicatore di locazione memorizzato in essa ad un valore libero indicante che la locazione selezionata à ̈ libera), ed aggiornare l’indicatore di locazione della locazione selezionata ad un valore di selezione indicante l’avvenuta selezione della locazione di memoria della pagina di servizio in uso. Inoltre, il passo di scrivere nella pagina di servizio in uso un’indicazione di un completamento della cancellazione dell’insieme di pagine operative selezionate comprende aggiornare l’indicatore di locazione della locazione selezionata ad un valore cancellato indicante il completamento della cancellazione dell’insieme di pagine operative selezionate.
Comunque, i valori sopra indicati dell’indicatore di locazione possono essere rappresentati in modo diverso, e possono essere memorizzati in diverse posizioni nelle pagine di servizio; in ogni caso, le stesse informazioni possono anche essere fornite in modo diverso (ad esempio, tramite un contatore comune che punta alla prima locazione libera della pagina di servizio in uso).
In accordo con una forma di realizzazione della presente invenzione, il metodo ulteriormente comprende il passo di rinfrescare un insieme di pagine predefinite, le pagine predefinite avendo un indirizzo associato in modo predefinito ad una posizione della locazione selezionata nella pagina di servizio in uso.
Comunque, numero e tipo dell’insieme di pagine predefinite possono essere scelti sulla base di specifiche considerazioni progettuali; ad esempio, à ̈ possibile prevedere che ciascun insieme comprenda corrispondenti quattro pagine predefinite associate alla posizione (in qualsiasi pagina di servizio) della parola anziché della locazione, oppure à ̈ possibile rinfrescare una singola pagina alla volta (con il completamento del rinfresco della matrice che può anche richiedere più usi di ciascuna pagina di servizio). In ogni caso, nulla vieta di utilizzare un algoritmo di rinfresco standard.
In accordo con una forma di realizzazione della presente invenzione, il passo di determinare una pagina di servizio in uso comprende determinare la pagina di servizio cui à ̈ associato un indicatore di occupazione, compreso nelle informazioni di servizio, ad un valore in uso indicante che la pagina di servizio à ̈ in uso. Il passo di verificare la presenza di almeno una pagina di servizio da cancellare comprende determinare ogni pagina di servizio cui à ̈ associato un indicatore di cancellazione, compreso nelle informazioni di servizio, ad un valore da avviare o ad un valore in corso indicanti che la cancellazione della pagina di servizio non à ̈ stata ancora avviata o à ̈ in corso, rispettivamente (con l’indicatore di cancellazione che assume un valore completato in risposta ad un completamento della cancellazione della pagina di servizio da cancellazione associata). Il passo di selezionare una tra una pluralità di locazioni di memoria della pagina di servizio in uso ulteriormente comprende, in risposta ad un’assenza di indicatori di locazione al valore libero nella pagina di servizio in uso, il passo di aggiornare l’indicatore di occupazione della pagina di servizio in uso ad un valore pieno indicante che la pagina di servizio in uso à ̈ diventata piena, e l’indicatore di occupazione associato ad una pagina di servizio avente il valore vuoto al valore in uso.
Comunque, i valori sopra indicati dell’indicatore di occupazione e dell’indicatore di cancellazione possono essere rappresentati in modo diverso, e possono essere memorizzati in diverse posizioni nelle pagine di servizio. Ad ogni modo, à ̈ possibile omettere il passo di verificare il completamento della cancellazione di ogni pagina di servizio da cancellare; in tale caso, il valore completato dell’indicatore di cancellazione potrebbe anche non essere necessario – e quindi sarebbe possibile prevedere un minore numero di bit per ciascun indicatore di pagina.
In accordo con una forma di realizzazione della presente invenzione, il metodo ulteriormente comprende, dopo il passo di verificare la presenza di almeno una pagina di servizio in cancellazione e/o il passo di applicare almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare, il passo di aggiornare l’indicatore di locazione della locazione selezionata ad un valore di verifica indicante la verifica della presenza di almeno una pagina di servizio da cancellare e/o l’applicazione dell’impulso di cancellazione a ciascuna pagina di servizio da cancellare.
Comunque, tale passo (ed il corrispondente valore dell’indicatore di locazione) non à ̈ strettamente necessario, e può anche essere omesso in una implementazione di base.
In accordo con una forma di realizzazione della presente invenzione, il metodo ulteriormente comprendente, dopo il passo di scrivere nella pagina di servizio in uso un indirizzo dell’insieme di pagine operative selezionate, il passo di aggiornare l’indicatore di locazione della locazione selezionata ad un valore di scrittura indicante l’avvenuta scrittura nella pagina di servizio in uso dell’indirizzo dell’insieme di pagine operative selezionate.
Comunque, anche in questo caso tale passo (ed il corrispondente valore dell’indicatore di locazione) non à ̈ strettamente necessario, e può anche essere omesso in una implementazione di base.
In accordo con una forma di realizzazione della presente invenzione, il metodo ulteriormente comprende, ad ogni accensione del dispositivo di memoria, i seguenti passi. E’ verificata la presenza nelle pagine di servizio di una locazione di memoria ibrida avente l’indicatore di locazione al valore di selezione, al valore di verifica o al valore di scrittura. Se la locazione di memoria ibrida ha l’indicatore di locazione al valore di selezione, à ̈ verificata la presenza di almeno una pagina di servizio da cancellare tra le pagine di servizio in accordo con le informazioni di servizio, ed à ̈ applicato almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare (con l’indicatore di cancellazione associato alla pagina di servizio da cancellare che assume il valore completato in risposta al completamento della cancellazione della pagina di servizio da cancellare). Oppure, se la locazione di memoria ibrida ha l’indicatore di locazione al valore di scrittura, à ̈ cancellato l’insieme di pagine operative selezionate corrispondente all’indirizzo memorizzato nella locazione di memoria ibrida. In entrambi i casi, l’indicatore di locazione della locazione ibrida à ̈ aggiornato al valore cancellato.
Comunque, il ripristino delle pagine di servizio può essere eseguito in qualsiasi altro modo (ad esempio, anche solo cancellando l’insieme di pagine operative selezionate quando necessario, senza applicare alcun impulso di cancellazione alle eventuali pagine di servizio da cancellare).
In accordo con una forma di realizzazione della presente invenzione, il metodo ulteriormente comprende, prima del passo di aggiornare l’indicatore di locazione della locazione ibrida al valore cancellato, il passo di rinfrescare le pagine predefinite associate alla locazione ibrida.
Comunque, come sopra tale passo non à ̈ strettamente necessario, e può anche essere omesso in una implementazione di base.
In accordo con una forma di realizzazione della presente invenzione, le pagine di servizio comprendono due pagine di servizio, con ciascuna pagina di servizio che comprende l’indicatore di occupazione della pagina di servizio e l’indicatore di cancellazione dell’altra pagina di servizio.
Comunque, nulla vieta di memorizzare l’indicatore di occupazione e l’indicatore di cancellazione in altre posizioni.
Una forma di realizzazione della presente invenzione propone un dispositivo di memoria flash comprendente mezzi per eseguire i passi del metodo sopra descritto.
Considerazioni analoghe si applicano se il dispositivo di memoria ha una diversa struttura o include componenti equivalenti. In ogni caso, qualsiasi suo componente può essere separato in più elementi, o due o più componenti possono essere combinati in un singolo elemento; inoltre, ogni componente può essere replicato per supportare l’esecuzione delle corrispondenti operazioni in parallelo. Si fa anche notare che (a meno di indicazione contraria) qualsiasi interazione tra diversi componenti generalmente non necessita di essere continua, e può essere sia diretta sia indiretta tramite uno o più intermediari.
Ad esempio, le pagine sono da intendersi in termini meramente topologici (e non fisici). A tale proposito, sebbene le pagine siano state descritte e rappresentate come righe della matrice di memoria, esse possono comprendere qualsiasi raggruppamento fisico e/o topologico di celle di memoria non cancellabili individualmente.
Dovrebbe essere evidente che la struttura proposta può far parte della progettazione di un circuito integrato. Il progetto può anche essere creato in un linguaggio di descrizione hardware; inoltre, se il progettista non fabbrica i circuiti integrati o le maschere, il progetto può essere trasmesso attraverso mezzi fisici ad altri. In ogni caso, il circuito integrato risultante può essere distribuito dal relativo produttore in forma di fetta (wafer) grezza, come piastrina nuda, o in contenitori (package). Inoltre, la struttura proposta può essere integrata con altri circuiti nella stessa piastrina, o può essere montata in prodotti intermedi (come schede madri) ed accoppiato ad una o più altre piastrine (come un processore). In ogni caso, il circuito integrato à ̈ adatto ad essere usato in sistemi complessi (come applicazioni automotive o microcontrollori).
Una forma di realizzazione della presente invenzione propone un sistema (ad esempio, una telefono cellulare, un computer, e simili) comprendente uno o più di tali dispostivi di memoria flash.
Comunque, il dispositivo di memoria flash può essere utilizzato in qualsiasi altra applicazione, e può ovviamente essere realizzato e messo in commercio come prodotto a sé stante.
Una forma di realizzazione della presente invenzione propone un programma comprendente mezzi a codice per provocare un sistema di elaborazione dati a realizzare i passi del metodo sopra descritto quando il programma per elaboratore à ̈ eseguito sul sistema di elaborazione dati.
In ogni caso, considerazioni simili si applicano se il programma à ̈ strutturato in modo diverso, o se sono previsti moduli o funzioni aggiuntivi. Il programma può assumere qualsiasi forma adatta ad essere usata da un sistema di elaborazione dati o in connessione con esso, con ciò configurando il sistema ad eseguire le operazioni desiderate. Inoltre, à ̈ possibile fornire il programma su un qualsiasi supporto utilizzabile da elaboratore (ed in particolare come un articolo di manifattura su un supporto non-transitorio). In ogni caso, la soluzione in accordo con una forma di realizzazione della presente invenzione si presta ad essere implementata anche con una struttura hardware (ad esempio, integrata in una piastrina di materiale semiconduttore), o con una combinazione di software ed hardware opportunamente programmati o in altro modo configurati.

Claims (10)

  1. RIVENDICAZIONI 1. Un metodo di gestione (300,400) di un dispositivo di memoria flash (100) comprendente una pluralità di pagine (115i, 115Oi,115SP0,115SP1) di celle di memoria (110), il dispositivo di memoria essendo cancellabile a livello di dette pagine, in cui le pagine comprendono una pluralità di pagine operative (115Ox) per memorizzare valori operativi ed una pluralità di pagine di servizio (115SP0,115SP1) per memorizzare informazioni relative alla cancellazione della pagine operative, in risposta ad una richiesta di cancellazione di un insieme di pagine operative selezionate il metodo comprendendo i passi di: determinare (310) una pagina di servizio in uso tra dette pagine di servizio in accordo con informazioni di servizio memorizzate nelle pagine di servizio; verificare (325) la presenza di almeno una pagina di servizio da cancellare tra dette pagine di servizio in accordo con dette informazioni di servizio; applicare (330) almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare; scrivere nella pagina di servizio in uso un indirizzo dell’insieme di pagine operative selezionate (350); cancellare (360) l’insieme di pagine operative selezionate, e scrivere (370) nella pagina di servizio in uso un’indicazione di un completamento della cancellazione dell’insieme di pagine operative selezionate.
  2. 2. Il metodo secondo la Rivendicazione 1, ulteriormente comprendente, dopo il passo di applicare (330) almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare, i passi di: verificare la presenza di almeno una cella di memoria depleta nella pagina di servizio da cancellare, soft-programmare ogni cella di memoria depleta.
  3. 3. Il metodo secondo la Rivendicazione 1 o 2, ulteriormente comprendente, dopo il passo di determinare una pagina di servizio in uso tra dette pagine di servizio, i passi di: selezionare (315) una tra una pluralità di locazioni di memoria (LaK,LbK) della pagina di servizio in uso, la locazione selezionata avendo un indicatore di locazione (CaK,CbK) memorizzato in essa ad un valore libero indicante che la locazione selezionata à ̈ libera, ed aggiornare (320) l’indicatore di locazione della locazione selezionata ad un valore di selezione indicante l’avvenuta selezione della locazione di memoria della pagina di servizio in uso, ed in cui il passo di scrivere (370) nella pagina di servizio in uso un’indicazione di un completamento della cancellazione dell’insieme di pagine operative selezionate comprende: aggiornare l’indicatore di locazione della locazione selezionata ad un valore cancellato indicante il completamento della cancellazione dell’insieme di pagine operative selezionate.
  4. 4. Il metodo secondo la Rivendicazione 3, ulteriormente comprendente il passo di: rinfrescare (365) un insieme di pagine predefinite, le pagine predefinite avendo un indirizzo associato in modo predefinito ad una posizione della locazione selezionata nella pagina di servizio in uso.
  5. 5. Il metodo secondo la Rivendicazione 3 o 4, in cui il passo di determinare (310) una pagina di servizio in uso comprende determinare la pagina di servizio cui à ̈ associato un indicatore di occupazione (PSPy), compreso nelle informazioni di servizio, ad un valore in uso indicante che la pagina di servizio à ̈ in uso, in cui il passo di verificare (325) la presenza di almeno una pagina di servizio da cancellare comprende determinare ogni pagina di servizio cui à ̈ associato un indicatore di cancellazione (PSPy’), compreso nelle informazioni di servizio, ad un valore da avviare o ad un valore in corso indicanti che la cancellazione della pagina di servizio non à ̈ stata ancora avviata o à ̈ in corso, rispettivamente, l’indicatore di cancellazione assumendo un valore completato in risposta ad un completamento della cancellazione della pagina di servizio da cancellare associata, ed in cui il passo di selezionare (315) una tra una pluralità di locazioni di memoria della pagina di servizio in uso ulteriormente comprende, in risposta ad un’assenza di indicatori di locazione al valore libero nella pagina di servizio in uso: aggiornare l’indicatore di occupazione associato alla pagina di servizio in uso ad un valore pieno indicante che la pagina di servizio in uso à ̈ diventata piena, e l’indicatore di occupazione associato ad una pagina di servizio avente il valore vuoto al valore in uso.
  6. 6. Il metodo secondo la Rivendicazione 5, ulteriormente comprendente, dopo il passo di verificare (325) la presenza di almeno una pagina di servizio da cancellare e/o il passo di applicare (330) almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare, il passo di: aggiornare (345) l’indicatore di locazione della locazione selezionata ad un valore di verifica indicante la verifica della presenza di almeno una pagina di servizio da cancellare e/o l’applicazione di detto almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare.
  7. 7. Il metodo secondo la Rivendicazione 6, ulteriormente comprendente, dopo il passo di scrivere (350) nella pagina di servizio in uso un indirizzo dell’insieme di pagine operative selezionate, il passo di: aggiornare (355) l’indicatore di locazione della locazione selezionata ad un valore di scrittura indicante l’avvenuta scrittura nella pagina di servizio in uso dell’indirizzo dell’insieme di pagine operative selezionate.
  8. 8. Il metodo secondo la Rivendicazione 7, ulteriormente comprendente, ad ogni accensione del dispositivo di memoria, i passi di: a) verificare (410) la presenza nelle pagine di servizio di una locazione di memoria ibrida avente l’indicatore di locazione al valore di selezione, al valore di verifica o al valore di scrittura, b) se la locazione di memoria ibrida ha l’indicatore di locazione al valore di selezione: b1) verificare (425) la presenza di almeno una pagina di servizio da cancellare tra le pagine di servizio in accordo con le informazioni di servizio; ed b2) applicare (430) almeno un impulso di cancellazione a ciascuna pagina di servizio da cancellare, l’indicatore di cancellazione associato alla pagina di servizio da cancellare assumendo il valore completato in risposta al completamento della cancellazione della pagina di servizio da cancellare, oppure c) se la locazione di memoria ibrida ha l’indicatore di locazione al valore di scrittura: c1) cancellare (460) l’insieme di pagine operative selezionate corrispondente all’indirizzo memorizzato nella locazione di memoria ibrida, ed d) aggiornare (470) l’indicatore di locazione della locazione ibrida al valore cancellato.
  9. 9. Il metodo secondo la Rivendicazione 8 quando dipendente direttamente o indirettamente dalla Rivendicazione 4, ulteriormente comprendente, prima del passo di aggiornare (470) l’indicatore di locazione della locazione ibrida al valore cancellato: rinfrescare (465) le pagine predefinite associate alla locazione ibrida.
  10. 10. Il metodo secondo una qualsiasi delle Rivendicazioni da 5 a 9, in cui le pagine di servizio comprendono due pagine di servizio (115SP0,115SP1), ciascuna pagina di servizio comprendendo l’indicatore di occupazione (PSP0,PSP1) della pagina di servizio e l’indicatore di cancellazione (PSP0’,PSP1’) dell’altra pagina di servizio (115SP1,115SP0).
IT000595A 2012-04-12 2012-04-12 Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio ITMI20120595A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT000595A ITMI20120595A1 (it) 2012-04-12 2012-04-12 Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio
US13/860,056 US9240243B2 (en) 2012-04-12 2013-04-10 Managing of the erasing of operative pages of a flash memory device through service pages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000595A ITMI20120595A1 (it) 2012-04-12 2012-04-12 Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio

Publications (1)

Publication Number Publication Date
ITMI20120595A1 true ITMI20120595A1 (it) 2013-10-13

Family

ID=46262165

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000595A ITMI20120595A1 (it) 2012-04-12 2012-04-12 Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio

Country Status (2)

Country Link
US (1) US9240243B2 (it)
IT (1) ITMI20120595A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI657453B (zh) * 2017-05-04 2019-04-21 旺宏電子股份有限公司 記憶體系統及其操作方法
US10261721B2 (en) * 2017-05-05 2019-04-16 Macronix International Co., Ltd. Memory system and operating method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381177B1 (en) * 1999-10-29 2002-04-30 Stmicroelectronics S.R.L. Method for controlled soft programming of non-volatile memory cells, in particular of the flash EEPROM and EPROM type
US20020085433A1 (en) * 2000-12-07 2002-07-04 Nobuaki Tomori Data management system and data management method
US20050144362A1 (en) * 2003-12-31 2005-06-30 Jason Lin Flash storage system with write/erase abort detection mechanism
US6977847B2 (en) * 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
US20080055990A1 (en) * 2006-08-31 2008-03-06 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage device and non-volatile storage system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
JP4129381B2 (ja) * 2002-09-25 2008-08-06 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US6829174B2 (en) 2003-01-30 2004-12-07 Macronix International Co., Ltd. Method of narrowing threshold voltage distribution
DE60306488D1 (de) * 2003-02-27 2006-08-10 St Microelectronics Srl Eingebautes Testverfahren in einem Flash Speicher
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381177B1 (en) * 1999-10-29 2002-04-30 Stmicroelectronics S.R.L. Method for controlled soft programming of non-volatile memory cells, in particular of the flash EEPROM and EPROM type
US20020085433A1 (en) * 2000-12-07 2002-07-04 Nobuaki Tomori Data management system and data management method
US6977847B2 (en) * 2001-11-23 2005-12-20 M-Systems Flash Disk Pioneers Ltd. Detecting partially erased units in flash devices
US20050144362A1 (en) * 2003-12-31 2005-06-30 Jason Lin Flash storage system with write/erase abort detection mechanism
US20080055990A1 (en) * 2006-08-31 2008-03-06 Kabushiki Kaisha Toshiba Non-volatile semiconductor storage device and non-volatile storage system

Also Published As

Publication number Publication date
US9240243B2 (en) 2016-01-19
US20130272068A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
CN101782871B (zh) 信息处理装置、处理器及存储器管理方法
KR100926195B1 (ko) 불휘발성 반도체 기억 장치
US7663933B2 (en) Memory controller
US6906961B2 (en) Erase block data splitting
CN102623042B (zh) 存储器系统及其操作方法
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US7870328B2 (en) Memory controller and flash memory system
CN109643274B (zh) 多个数据温度区的交叉点存储器的磨损均衡方法
US9569354B2 (en) System and method to emulate an electrically erasable programmable read-only memory
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US20170125104A1 (en) Non-Volatile Memory Systems with Multi-Write Direction Memory Units
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US20110055460A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
US9053011B2 (en) Selective protection of lower page data during upper page write
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
KR20060133570A (ko) 불휘발성 반도체 기억장치 및 블록 용장 구제 방법
ITMI20120595A1 (it) Gestione della cancellazione di pagine operative di un dispositivo di memoria flash tramite pagine di servizio
JP4501881B2 (ja) メモリコントローラ及びフラッシュメモリシステム
CN117636980A (zh) 部分块读取电压偏移
JP2007179479A (ja) メモリコントローラおよびフラッシュメモリシステム
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005316793A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
US20140052896A1 (en) System and method for emulating an eeprom in a non-volatile memory device
JP4539621B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法