DE69623720T2 - Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht - Google Patents
Verfahren zum Aufräumen eines Flash-Speichers mit ÜbersetzungsschichtInfo
- Publication number
- DE69623720T2 DE69623720T2 DE69623720T DE69623720T DE69623720T2 DE 69623720 T2 DE69623720 T2 DE 69623720T2 DE 69623720 T DE69623720 T DE 69623720T DE 69623720 T DE69623720 T DE 69623720T DE 69623720 T2 DE69623720 T2 DE 69623720T2
- Authority
- DE
- Germany
- Prior art keywords
- unit
- block
- transfer unit
- blocks
- full
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
- Diese Anmeldung ist mit einer weiteren Patentanmeldung, EP-A-0 770 960, verwandt, die zum gleichen Datum unter dem "Titel Flash Translation Layer Block Indication Map Revision System and Method" eingereicht wurde.
- Diese Erfindung bezieht sich auf Verfahren zur Schaffung von Schnittstellen zwischen Flash-Speicherkarten und Personalcomputern und insbesondere auf ein Verfahren zum Löschen von Informationsblöcken in einer Flash-Speicherkarte, die wenigstens eine Flash-Übersetzungsschichttabelle und -gliederung enthält, die eine volle Einheit hat und die eine Transfereinheit mit entsprechenden Speicheradressenstellen hat.
- Rechner, die Personalcomputer (PC) und persönliche digitale Assistenten (PDA) umfassen, ohne jedoch darauf eingeschränkt zu sein, verwenden Betriebssysteme, die vorgegebene Dateigliederungen besitzen. Die Dateigliederungen sind so beschaffen, daß sie eine Schnittstelle mit mechanischen Vorrichtungen (z. B. Festplattenlaufwerken und Diskettenlaufwerken) schaffen. Die Daten können direkt über andere Daten geschrieben werden, die für die Löschung bestimmt sind.
- Flash-Speicherkarten sind in Löschblöcken konfiguriert, die vollständig gelöscht werden müssen, bevor irgendwelche Daten in einen besonderen Löschblock geschrieben werden.
- Es ist eine Flash-Übersetzungsschicht als Schnittstelle zwischen Flash- Speicherkarten-Löschblöcken und dem von einem PC-Betriebssystem verwendeten Dateisystem entwickelt worden. Eine solche FTL ist im 1995 erteilten US- Patent Nr. 5.404.485 beschrieben. Die FTL verbindet Flash-Speicherkarten mit dem von dem Betriebssystem eines besonderen PC verwendeten Dateisystem, wobei sie nicht mehr als ein Schreiben ohne Löschen einer gleichen Adresse zuläßt.
- Das Konzept einer Flash-Übersetzungsschicht ist außerdem in ELEKTRONIK, Bd. 43, Nr. 22, 31. Oktober 1994, S. 146 bis 150, XP 000474171, Strass, H., "Unauffällige Brückenbauer", beschrieben. Falls eine Löscheinheit eine große Anzahl gelöschter Blöcke hat werden die gültigen Daten dieser Löscheinheit ununterbrochen an unbeschriebene physikalische Adressenstellen in einer Transfereinheit geschrieben. Daraufhin wird die Löscheinheit als Ganzes gelöscht, wobei sie als neue Transfereinheit verwendet werden kann.
- Die Dateibereinigung eines Flash-Speichers auf der Grundlage eines Block- Flash-Dateisystems ist beschrieben in Computer Technology Review, 21. Dezember 1994, S. 84, 86, 88, XP 000429678, Friedmann, A., "Block Flash File Systems Deliver Mass Storage For Mobile Computing".
- Außerdem ist aus US-A-S 341 339 ein Verfahren zum Bereinigen einer Flash- EEPROM-Speicheranordnung, die in Blöcke unterteilt ist, die getrennt gelöscht werden können, bekannt, in dem alle gültigen Daten zunächst in andere Blöcke der Anordnung geschrieben werden und daraufhin der Block gelöscht wird. Der zu bereinigende Block wird anhand eines Vergleichs der Anzahl der ungültigen Sektoren, die jeder Block enthält, und der Anzahl der Schaltoperationen, denen jeder Block unterlegen hat, festgestellt.
- EP-A-0 615 184 offenbart ein Verfahren zum Erhalten, Sichern und Aktualisieren von Steuerinformationen eines Flash-Speichers. Der Flash-Speicher umfaßt mehrere Sektoren, von denen jeder die Attributinformationen zur Erkennung hält. Der Speicher kann auf Cluster-Grundlage gelöscht werden, wobei jeder Cluster mehrere Sektoren umfaßt und mit einem Cluster-Informationssektor zum Speichern seiner eigenen Informationen versehen ist. Wenn während des Betriebs ein unbrauchbarer Sektor erfaßt wird, wird er in dem Steuerinformations-Haltebereich richtig widerspiegelt.
- Die herkömmliche Praxis von Hintergrundbereinigungsoperationen, mit denen die primären Lese- und Schreibaktivitäten vermischt sind, erzeugt Komplikationen und Schwierigkeiten bei der Unterhaltung aktualisierter FTL-Tabellen und anderer für den Betrieb wesentlicher Gliederungen der FTL.
- Die Bereinigungsoperation gemäß der vorliegenden Erfindung umfaßt das Erkennen derjenigen Löscheinheit in einer besonderen Flash-Speicherkarte, die die größte Anzahl gelöschter Blöcke enthält. Diejenige Flash-Speicherkarten- Löscheinheit, die die größte Anzahl gelöschter Blöcke hat, wird als die volle Einheit bestimmt. Eine weitere Löscheinheit in der Flash-Speicherkarte wird als die Transfereinheit bestimmt.
- Daraufhin wird festgestellt, ob ein ausgewählter Block in einer Transfereinheit, der einem gültigen Block in einer vollen Einheit entspricht, ein unbrauchbarer Block ist, wobei dann, wenn der ausgewählte Block in der Transfereinheit ein unbrauchbarer Block ist, in dem entsprechenden gültigen Block enthaltene Daten gelesen werden, die gelesenen Daten in einen ausgewählten Block in der Transfereinheit geschrieben werden und die Abbildungsinformationen aktualisiert werden, so daß sie eine neue Stelle der geschriebenen Daten in der Transfereinheit angeben.
- Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung werden nach Beginn der Operationen sämtliche gültigen Blöcke in der vollen Löscheinheit an eine entsprechende Adressenstelle in der Transfereinheit verschoben, während die gelöschten Blöcke in der vollen Einheit verbleiben, die als Ganzes der Löschung ausgesetzt wird. Nachdem daraufhin sämtliche gültigen Blöcke in der vollen Einheit in die Transfereinheit verschoben worden sind, wird die volle Einheit gelöscht und die neue oder nächste Transfereinheit in der Reihenfolge bestimmt.
- - Fig. 1a ist ein Diagramm der vollen und der Transferlöscheinheit einer Flash-Speicherkartenanordnung und eines Mediums, die gemäß der vorliegenden Erfindung zusammenwirken, um vor dem Löschen der vollen Einheit das Entfernen aller gültiger Dateneinheiten in der vollen Einheit in entsprechende Speicherstellen in einer ausgewählten Transfereinheit sicherzustellen;
- - Fig. 1b ist ein Ablaufplan des Blocklöschverfahrens gemäß der vorliegenden Erfindung;
- - Fig. 1c ist ein ausführliches Diagramm einer typischen Löscheinheit gemäß dem Stand der Technik, das die typische Sektororganisation und die Verteilung des Blockbelegungsplans über mehrere Sektoren zeigt;
- - Fig. 1d ist ein Diagramm eines typischen Löscheinheits-Anfangsblocks gemäß dem Stand der Technik, das eine Zählung der Anzahl der Löschblöcke in einem Speicherblock, eine Angabe der Größe der besonderen Löscheinheit und die Größe der Sektoren in der Löscheinheit enthält;
- - Fig. 2a ist ein Diagramm einer vollen und einer Transferlöscheinheit mit gültigen Sektoren der vollen Löscheinheit, die gemäß der vorliegenden Erfindung an die Transferlöscheinheit zu übertragen sind;
- - Fig. 2b ist ein Ablaufplan des Blocklöschverfahrens gemäß der vorliegenden Erfindung, in dem ein unbrauchbarer Block in der Transfereinheit einem gültigen Block in der vollen Einheit entspricht, was es unmöglich macht, den besonderen gültigen Block in der vollen Einheit an die entsprechende Adressenstelle in der Transfereinheit zu verschieben; und
- - Fig. 3 ist ein Ablaufplan eines Verfahrens gemäß der vorliegenden Erfindung zur Bestimmung, wann eine Bereinigung vorzunehmen ist.
- Fig. 1a ist ein Diagramm der ersten bzw. der zweiten Löscheinheit, die als die volle und als die Transferlöscheinheit 3 und 4 bestimmt sind. Wie wohlbekannt ist, sind Flash-Speicherkartenanordnungen und -Medien in Löscheinheiten organisiert. Solche Löscheinheiten 3 und 4 werden unten in Verbindung mit dem begleitenden Text zu Fig. 1c ausführlich beschrieben. Die erste und die zweite Löscheinheit, d. h. die volle und die Transferlöscheinheit 3 bzw. 4, wirken als Teil einer Bereinigungsoperation gemäß der vorliegenden Erfindung zusammen, um vor dem Löschen der vollen Löscheinheit 3 die Entfernung sämtlicher gültiger Dateneinheiten aus der vollen Löscheinheit 3 an entsprechende Speicherstellen in der Transferlöscheinheit 4 sicherzustellen. Wie unten insbesondere anhand von Fig. 3 ausführlich diskutiert wird, wird die Bereinigung ausgeführt, wenn vorgegebene Bedingungen erfüllt sind. Einfach gesagt beginnt die Bereinigung, wenn keine unbrauchbaren Blöcke vorhanden sind, dann, wenn über irgendwelche freien Blöcke, die erforderlich sind, um auf FTL-Gliederungsblöcke zu entfallen, hinaus lediglich zwei freie Blöcke verfügbar sind. Falls es unbrauchbare Blöcke gibt, wird die Bereinigung je nach Anzahl der unbrauchbaren Blöcke wesentlich früher vorgenommen, bevor die Anzahl der freien Blöcke unter einen Schwellenwert sinkt, der eine Funktion von nicht weniger als zweimal der Anzahl der unbrauchbaren Blöcke und zweimal der Anzahl der FTL-Gliederungsblöcke plus einer Konstante, die vorzugsweise zwei ist, ist.
- Wie in Fig. 1a gezeigt ist, enthält die volle Löscheinheit 3 einen Löscheinheits-Anfangsblock 3a; einen Blockbelegungsplan 3b (BAM); mehrere BAM- Angaben des Status besonderer Blöcke in der vollen Löscheinheit 3 als gültig, ungültig oder frei; und mehrere Speicherstellen zur Datenspeicherung in Sektoren, wie unten in dem begleitenden Text zu Fig. 1c ausführlich beschrieben wird.
- Die in Fig. 1a gezeigte Transfereinheit 4 zeigt die Transferlöscheinheit 4, die einen Löscheinheits-Anfangsblock 4a, einen Blockbelegungsplan 4b (BAM), mehrere BAM-Angaben des Status besonderer Blöcke in der Transferlöscheinheit 4 als gültig, ungültig oder frei; und mehrere Speicherstellen zur Datenspeicherung in Sektoren, wie es unten in dem beleitenden Text zu Fig. 10 ausführlich beschrieben wird, enthält. Die zweite und die vorletzte Speicherstelle des Blockbelegungsplans 3b enthält gültige Blöcke. Da gemäß der vorliegenden Erfindung die gültigen Blöcke der vollen Löscheinheit 3 an entsprechende freie Speicherstellen in der Transfereinheit 4 verschoben werden, ist gezeigt, daß die zweite und die vorletzte Speicherstelle des Blockbelegungsplans 4b ähnlich gültige Blöcke enthalten. Somit werden die zweite und die vorletzte Speichereinheit der Transferlöscheinheit 4, die zuvor "frei" waren, durch das Verschieben der zugeordneten Daten in der vollen Löscheinheit 3 an entsprechende Speicherstellen in der Transferlöscheinheit 4 nun als "gültig" bezeichnet.
- Fig. 1b ist ein Ablaufplan des Blocklöschverfahrens gemäß der vorliegenden Erfindung. Insbesondere werden gemäß dem Verfahren der vorliegenden Erfindung wenigstens eine einzelne volle Löscheinheit 3 und wenigstens eine einzelne Transfereinheit erkannt oder festgestellt. Ferner werden gültige Datenblöcke in der vollen Einheit 3 an die entsprechende Adressenstelle in der Transfereinheit 4 übertragen 6. Wenn alle gültigen Datenblöcke in der vollen Einheit 3 in der Transfereinheit 4 an die entsprechenden Stellen verschoben worden sind, wird die volle Einheit 3 gelöscht 7. Nachfolgend wird die gelöschte volle Einheit 3 als neue Transfereinheit 4 neu gestaltet 8. Außerdem werden die FTL-Gliederungen und -Tabellen aktualisiert 9, so daß sie für die Informationen, die aus der vollen Einheit 3 in die Transfereinheit 4 verlagert worden sind, die neuen Adressenstellen widerspiegeln.
- Gemäß der vorliegenden Erfindung werden wenigstens eine einzelne volle Löscheinheit 3 und wenigstens eine einzelne Transfereinheit erkannt oder festgestellt 5. Insbesondere werden gemäß einer Ausführungsform der vorliegenden Erfindung eine bestimmte Löscheinheit in einer bestimmten Flash-Speicherkartenanordnung und einem Medium vorbestimmt, als die Transferlöscheinheit 3 zu dienen. Gemäß einer Ausführungsform der vorliegenden Erfindung wird die im Einzelnen bestimmte Löscheinheit dadurch ausgewählt, daß sie keine momentan in diesem Speichergebiet gespeicherten Daten hat. Somit kann die ausgewählte Transferlöscheinheit 3 als vollständig verfügbare Speichereinheit dienen, die die "Übertragung" von Daten oder Informationen aus einer Transferlöscheinheit, die der Wartung, Revision, Rekonstruktion oder Löschung unterliegen kann, annimmt.
- Gemäß der vorliegenden Erfindung ist die in Fig. 1a gezeigte Transferlöscheinheit 3 ein Gebiet des Flash-Speichers, das zur Aufnahme von Daten während der Bereinigungsoperation aus einer oder aus mehreren anderen Löscheinheiten in einem bestimmten ausgewählten Flash-Medium bestimmt ist. Ferner werden gemäß einer Ausführungsform der vorliegenden Erfindung Daten aus einer Quell- Löscheinheit; die teilweise oder vollständig voll Daten sein kann, an die Transferlöscheinheit 3 geliefert. Gemäß einer Ausführungsform kann die Quell-Löscheinheit 4 für Daten, die an die Transfereinheit übertragen werden, eine Löscheinheit sein, die vollständig voll Daten ist. Eine solche Löscheinheit kann nicht wie etwa eine andere Löscheinheit zusätzliche Daten zur Speicherung von einer zusätzlichen Datenquelle empfangen. Gemäß einer weiteren Ausführungsform kann die Quell-Löscheinheit für Daten, die übertragen werden, eine Löscheinheit sein, die verhältnismäßig voll Daten ist. Diese Fülle von Daten ist relativ im Vergleich zu einer oder zu mehreren anderen Löscheinheiten, die einige Daten enthalten. Solche Löscheinheiten können lediglich begrenzte zusätzliche Daten von einer anderen Quelle zur Speicherung empfangen, bevor sie vollständig voll sind. Außerdem kann die Quell-Löscheinheit eine Löscheinheit sein, die aus einem Pool von Löscheinheiten ausgewählt wird, von denen jede einige Daten enthält. Die Auswahl der Quell-Löscheinheit kann gemäß einem vorgegebenen Auswahlkriterium durchgeführt werden, das beliebig gewählt oder auf formalere Weise aufgestellt werden kann. Gemäß einer Ausführungsform erfordert das Auswahlkriterium zur Bestimmung der Quell-Löscheinheit die Auswahl einer Löscheinheit, die in bezug auf die in der Löscheinheit enthaltenen Daten die vollste Löscheinheit ist. Gemäß einer Ausführungsform der Erfindung ist eine Löscheinheit voll, wenn sie keine freien Speicherplätze besitzt. Die Fülle einer Löscheinheit wird durch Messen der Anzahl der freien Speicherstellen, in denen Daten gespeichert werden können, festgestellt.
- Fig. 1c ist ein ausführlicher Plan oder ein ausführliches Diagramm einer typischen Löscheinheit 25, die gemäß dem Stand der Technik einen Löscheinheits- Anfangsblock 25a und einen Blockbelegungsplan 25b enthält. Insbesondere zeigt Fig. 1c eine typische Sektororganisation der Löscheinheit 25. Die Löscheinheit 25 enthält mehrere Sektoren, 25(1)-25(n), die jeweils eine Größe von 512 Bytes haben können. Ferner enthält die Löscheinheit 25 eine Verteilung des Blockbelegungsplans 25b über mehrere 512-Byte-Sektoren. Wie in Fig. 1c gezeigt ist, befindet sich der Löscheinheits-Anfangsblock im ersten 512-Byte-Sektor 25(1). Der Blockbelegungsplan 25b befindet sich sowohl im ersten als auch im zweiten 512- Byte-Sektor 25(1) und 25(2).
- Fig. 1d ist ein Diagramm eines typischen Löscheinheits-Anfangsblocks 3a gemäß dem Stand der Technik, der eine Zählung der Anzahl der Löscheinheiten 3a(1) in einem Speicherblock enthält, die dem Speichermanagement gemäß der vorliegenden Erfindung unterliegt. Außerdem zeigt das Diagramm aus Fig. 1d, daß der Löscheinheits-Anfangsblock 3a eine Angabe der Größe der besonderen Löscheinheit 3a(2) enthält. Außerdem zeigt das Diagramm aus Fig. 1d, daß der Löscheinheits-Anfangsblock 3a die Größe der Sektoren in der Löscheinheit 3a(3) enthält.
- Fig. 2a ist ein Diagramm der ersten bzw. der zweiten Löscheinheit; die als volle und Transferlöscheinheit 30 und 40 bestimmt sind. Wie in Fig. 2a gezeigt ist, enthält die volle Löscheinheit 30 einen Löscheinheits-Anfangsblock 30a; einen Blockbelegungsplan 30b (BAM); mehrere BAM-Angaben des Status besonderer Blöcke in der vollen Löscheinheit 30 als gültig, ungültig oder frei; und mehrere Speicherstellen zur Datenspeicherung (nicht gezeigt). Die Gültig-Angabe "gültig" ist in Fig. 2a explizit gezeigt; die ungültigen oder freien Speicherstellen sind allgemein durch einen Strich "-" ausgedrückt. Die in Fig. 2a gezeigte Transfereinheit 40 zeigt die Transferlöscheinheit 40, die einen Löscheinheits-Anfangsblock 40a, einen Blockbelegungsplan 40b (BAM), mehrere BAM-Angaben des Status besonderer Blöcke in der Transferlöscheinheit 40 als unbrauchbar oder frei; und mehrere Speicherstellen zur Datenspeicherung (nicht gezeigt) enthält. Die zweite Speicherstelle des Blockbelegungsplans 3b enthält einen unbrauchbaren Block, der mit dem Wort "unbrauchbar" bezeichnet ist. Die vorletzte Speicherstelle des Blockbelegungsplans 40b ist als gültig gezeigt, da entsprechend der vorliegenden Erfindung ein entsprechender gültiger Block der vollen Löscheinheit 30 an seine entsprechende freie Speicherstelle in der Transfereinheit 40 verschoben wird. Somit wird die vorletzte Speichereinheit der Transferlöscheinheit 40, die zuvor "frei" war, durch die Verschiebung der zugeordneten Daten in der vollen Löscheinheit 30 an die entsprechende Speicherstelle in der Transferlöscheinheit 40 nun als "gültig" neu gestaltet. Allerdings können die gültigen Informationen in der vollen Löscheinheit 30, die der unbrauchbaren Stelle in der Transferlöscheinheit 40 entsprechen, wegen ihres unbrauchbaren Zustands nicht an ihre entsprechende Stelle verschoben werden, was es unmöglich macht, diese besonderen Informationen an die entsprechende Stelle in der Transferlöscheinheit 40 zu verschieben.
- Somit ist Fig. 2b ein Ablaufplan des Blocklöschverfahrens gemäß der vorliegenden Erfindung, in dem ein unbrauchbarer Block in der Transfereinheit 40 einem gültigen Block in der vollen Einheit 30 entspricht, was es unmöglich macht, den bestimmten gültigen Block in der vollen Einheit 30 an die entsprechende Adressenstelle in der Transfereinheit 40 zu verschieben. Insbesondere wird gemäß einer Ausführungsform der vorliegenden Erfindung festgestellt 130, ob es in der Transfereinheit 40 einen unbrauchbaren Block gibt, der einem gültigen Block in der vollen Einheit 30 entspricht. Falls es einen solchen unbrauchbaren Block gibt, der einem gültigen Block in der vollen Einheit 30 entspricht, wird nachfolgend der Informationsinhalt des gültigen Blocks gelesen 140. Daraufhin wird der gültige Block, der gelesen worden ist, an eine ausgewählte Speicherstelle in einer ausgewählten Löscheinheit, die an der besonderen ausgewählten Speicherstelle nicht voll ist, geschrieben 150.
- Fig. 3 ist ein Ablaufplan eines Verfahrens gemäß der vorliegenden Erfindung zur Feststellung, wann eine Bereinigung vorgenommen werden soll. Insbesondere wird gemäß der vorliegenden Erfindung festgestellt 300, ob es irgendwelche unbrauchbaren Blöcke gibt. Falls das nicht der Fall ist, wird der Schwellenwert FreeTHold gleich einem Wert von zwei (2) eingestellt. Wenn es aber unbrauchbare Blöcke gibt, wird die Anzahl der unbrauchbaren Blöcke festgestellt, wobei der Schwellenwert, bei dem die Bereinigung vorzunehmen ist, gleich dem Wert von zwei (2) plus zweimal der Anzahl der unbrauchbaren Blöcke plus zweimal der Anzahl der FTL-Gliederungsblöcke ist. Mit anderen Worten, falls die Anzahl der in einer Löscheinheit verfügbar gelassenen freien Blöcke kleiner als der angegebene Schwellenwert ist, wird die Bereinigung vorgenommen. Wenn keine unbrauchbaren Blöcke vorhanden sind, brauchen lediglich zwei freie Blöcke verfügbar zu sein, wobei die Bereinigung verzögert werden kann, bis lediglich zwei freie Blöcke übrig sind. Da ein Block für die Seite des virtuellen Planes reserviert werden muß und einer für an die Löscheinheit übertragene Daten reserviert werden muß, sind wenigstens zwei Blöcke erforderlich.
- Allerdings muß die Bereinigung für irgendwelche unbrauchbaren Blöcke je nach Menge der Gliederungsblöcke, die in einer besonderen Transferlöscheinheit vorhanden sind, wesentlich früher beginnen. Für jeden unbrauchbaren Block in einer Transferlöscheinheit sind zwei zusätzliche freie Sektoren in der Transferlöscheinheit erforderlich, einer für eine Seite des virtuellen Plans und einer zur Speicherung der Daten von der vollen Löscheinheit, die ansonsten an der Stelle des unbrauchbaren Sektors gespeichert würden. Ähnlich sind für jeden Flash- Übersetzungsschicht-Gliederungsblock zwei Sektoren erforderlich, um seine zugeordneten Daten und seine Seite des virtuellen Plans zu speichern. Somit muß für jeden unbrauchbaren Block in der Transferlöscheinheit und für jeden Flash- Übersetzungsgliederungssektor der Schwellenwert, bei dem die Bereinigung erforderlich ist, wenigstens gleich zweimal der Anzahl unbrauchbarer Blöcke und der Flash-Übersetzungsschicht-Gliederungsblöcke oder -Sektoren sein. Ferner wird gemäß einer Ausführungsform der vorliegenden Erfindung ein zusätzlicher Grenzwert von zwei freien Blöcken für Eventualitäten verwendet. Dementsprechend muß die Bereinigung unter der Annahme eines Flash-Übersetzungsschicht- Gliederungsblocks und eines unbrauchbaren Blocks in der Transfereinheit bei einem Schwellenwert von 6 freien Blöcken beginnen.
Claims (6)
1. Verfahren zum Löschen von Informationsblöcken in einer
Flash-Speicherkarte, die wenigstens eine Flash-Übersetzungsschichttabelle und -gliederung
enthält, die eine volle Einheit hat und die eine Transfereinheit mit entsprechenden
Speicheradressenstellen hat, wobei das Verfahren durch die folgenden weiteren
Schritte gekennzeichnet ist:
a) Erkennen der vollen Einheit (3, 30) als diejenige Einheit, welche die größte
Anzahl gelöschter Blöcke enthält, wobei die Transfereinheit (4, 40) eine geringere
Anzahl gelöschter Blöcke hat;
b) es wird festgestellt, ob ein ausgewählter Block in einer Transfereinheit (4,
40), der einem gültigen Block (140) in einer vollen Einheit (3, 30) entspricht, ein
unbrauchbarer Block (130) ist; und
c) sofern der ausgewählte Block in der Transfereinheit (4, 40) ein
unbrauchbarer Block (130) ist,
werden im entsprechenden gültigen Block (140) enthaltene Daten gelesen;
werden die gelesenen Daten in einen ausgewählten Block in der
Transfereinheit (4, 40) geschrieben (150); und
werden Abbildungsinformationen zum Anzeigen einer neuen Stelle der
geschriebenen Daten in der Transfereinheit aktualisiert.
2. Verfahren nach Anspruch 1, das ferner umfaßt:
sofern der ausgewählte Block in der Transfereinheit (4, 40) kein unbrauchbarer
Block (130) ist, werden im gültigen Block (140) der vollen Einheit (3, 30)
enthaltene Daten, der dem ausgewählten Block entspricht, zu dem ausgewählten Block
in der Transfereinheit (4, 40) übertragen (6).
3. Verfahren nach Anspruch 2, das ferner Löschen (7) der vollen Einheit (3,
30), nachdem sämtliche gültigen Blöcke aus der vollen Einheit übertragen worden
sind, umfaßt.
4. Verfahren nach Anspruch 2, das ferner umfaßt:
wenn sämtliche gültigen Blöcke (140) der Daten in der vollen Einheit (3, 30) zur
Transfereinheit (4, 40) übertragen worden sind, wird die volle Einheit (3, 30) als
die Transfereinheit neu bestimmt (8).
5. Verfahren nach Anspruch 1, das ferner vor der Durchführung von Schritt
b) die Durchführung von Folgendem umfaßt:
(a1) es wird eine Zählung der Anzahl freier Blöcke in der Transfereinheit
(4, 40) vorgesehen;
(a2) es wird ein Anfangsschwellenwert mit einem ausgewählten Wert
vorgesehen, der mindestens gleich 1 ist, zur Bestimmung, wann die volle Einheit (3,
30) zu löschen ist;
(a3) es wird bestimmt (300), ob die Transfereinheit (4, 40) wenigstens
einen unbrauchbaren Block (130) enthält;
(a4) sofern die Transfereinheit (4, 40) wenigstens einen unbrauchbaren
Block (130) enthält, wird ein Einstellschwellenwert bestimmt (301), der
mindestens gleich dem Anfangsschwellenwert plus zweimal der Anzahl unbrauchbarer
Blöcke ist;
(a5) sofern die Transfereinheit (4, 40) keine unbrauchbaren Blöcke enthält,
wird der Einstellschwellenwert gleich dem Anfangsschwellenwert gesetzt (301);
und
(a6) sofern die Anzahl freier Blöcke in der Transfereinheit (4, 40) nicht
größer als der Einstellschwellenwert ist, werden die Schritte b) und c) ausgeführt.
6. Verfahren nach Anspruch 5, das ferner Vorsehen einer Zahl, die
mindestens gleich 2 ist, als Anfangsschwellenwert umfaßt (300, 301).
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/549,476 US5867641A (en) | 1995-10-27 | 1995-10-27 | Flash translation layer cleanup system and method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69623720D1 DE69623720D1 (de) | 2002-10-24 |
| DE69623720T2 true DE69623720T2 (de) | 2003-04-30 |
Family
ID=24193177
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69623720T Expired - Fee Related DE69623720T2 (de) | 1995-10-27 | 1996-10-21 | Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5867641A (de) |
| EP (1) | EP0770959B1 (de) |
| DE (1) | DE69623720T2 (de) |
Families Citing this family (63)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2317720A (en) * | 1996-09-30 | 1998-04-01 | Nokia Mobile Phones Ltd | Managing Flash memory |
| US6279069B1 (en) | 1996-12-26 | 2001-08-21 | Intel Corporation | Interface for flash EEPROM memory arrays |
| US6260102B1 (en) * | 1996-12-26 | 2001-07-10 | Intel Corporation | Interface for flash EEPROM memory arrays |
| US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
| US6795890B1 (en) * | 1999-02-19 | 2004-09-21 | Mitsubishi Denki Kabushiki Kaisha | Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory |
| US6571312B1 (en) * | 1999-02-19 | 2003-05-27 | Mitsubishi Denki Kabushiki Kaisha | Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory |
| KR100577380B1 (ko) * | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
| US6578054B1 (en) | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
| CN100442393C (zh) * | 1999-10-21 | 2008-12-10 | 松下电器产业株式会社 | 半导体存储卡的访问装置、初始化方法和半导体存储卡 |
| US6643731B2 (en) * | 1999-12-31 | 2003-11-04 | Texas Instruments Incorporated | Low cost memory management that resists power interruption |
| US20020091965A1 (en) * | 2000-12-22 | 2002-07-11 | Mark Moshayedi | System and method for early detection of impending failure of a data storage system |
| KR100365725B1 (ko) | 2000-12-27 | 2002-12-26 | 한국전자통신연구원 | 플래시 메모리를 이용한 파일 시스템에서 등급별 지움정책 및 오류 복구 방법 |
| US6760805B2 (en) * | 2001-09-05 | 2004-07-06 | M-Systems Flash Disk Pioneers Ltd. | Flash management system for large page size |
| US6909910B2 (en) | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
| US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
| US6621746B1 (en) | 2002-02-27 | 2003-09-16 | Microsoft Corporation | Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations |
| US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
| US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
| US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
| JP3587842B2 (ja) * | 2002-12-17 | 2004-11-10 | 沖電気工業株式会社 | データ書き換え装置およびデータ書き換え方法ならびにフラッシュメモリ装置 |
| US7644376B2 (en) * | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
| JP3942612B2 (ja) * | 2004-09-10 | 2007-07-11 | 東京エレクトロンデバイス株式会社 | 記憶装置、メモリ管理方法及びプログラム |
| KR100650839B1 (ko) * | 2004-10-25 | 2006-11-27 | 에스티마이크로일렉트로닉스 엔.브이. | 플래시 메모리 시스템 및 그 소거방법 |
| US7246195B2 (en) * | 2004-12-30 | 2007-07-17 | Intel Corporation | Data storage management for flash memory devices |
| US7457909B2 (en) * | 2005-01-14 | 2008-11-25 | Angelo Di Sena | Controlling operation of flash memories |
| US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage in flash memories |
| US9104315B2 (en) * | 2005-02-04 | 2015-08-11 | Sandisk Technologies Inc. | Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage |
| US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
| US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
| US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
| US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
| US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
| JP4547028B2 (ja) * | 2005-08-03 | 2010-09-22 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
| US7480766B2 (en) * | 2005-08-03 | 2009-01-20 | Sandisk Corporation | Interfacing systems operating through a logical address space and on a direct data file basis |
| US7949845B2 (en) * | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
| US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
| US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
| KR100739722B1 (ko) * | 2005-08-20 | 2007-07-13 | 삼성전자주식회사 | 플래시 메모리 관리 방법 및 플래시 메모리 시스템 |
| US7814262B2 (en) * | 2005-10-13 | 2010-10-12 | Sandisk Corporation | Memory system storing transformed units of data in fixed sized storage blocks |
| US7529905B2 (en) * | 2005-10-13 | 2009-05-05 | Sandisk Corporation | Method of storing transformed units of data in a memory system having fixed sized storage blocks |
| US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
| US7769978B2 (en) * | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
| US7747837B2 (en) | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
| US7793068B2 (en) * | 2005-12-21 | 2010-09-07 | Sandisk Corporation | Dual mode access for non-volatile storage devices |
| KR100706808B1 (ko) * | 2006-02-03 | 2007-04-12 | 삼성전자주식회사 | 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법 |
| US7564721B2 (en) * | 2006-05-25 | 2009-07-21 | Micron Technology, Inc. | Method and apparatus for improving storage performance using a background erase |
| US9207876B2 (en) | 2007-04-19 | 2015-12-08 | Microsoft Technology Licensing, Llc | Remove-on-delete technologies for solid state drive optimization |
| JP4410271B2 (ja) * | 2007-04-25 | 2010-02-03 | 株式会社東芝 | メモリ制御装置 |
| US20080282024A1 (en) * | 2007-05-09 | 2008-11-13 | Sudeep Biswas | Management of erase operations in storage devices based on flash memories |
| US8041883B2 (en) * | 2007-05-09 | 2011-10-18 | Stmicroelectronics S.R.L. | Restoring storage devices based on flash memories and related circuit, system, and method |
| US7882301B2 (en) * | 2007-05-09 | 2011-02-01 | Stmicroelectronics S.R.L. | Wear leveling in storage devices based on flash memories and related circuit, system, and method |
| US7991942B2 (en) * | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
| US8156392B2 (en) * | 2008-04-05 | 2012-04-10 | Fusion-Io, Inc. | Apparatus, system, and method for bad block remapping |
| US20090271564A1 (en) * | 2008-04-25 | 2009-10-29 | Hitachi, Ltd. | Storage system |
| KR101438072B1 (ko) | 2010-04-15 | 2014-09-03 | 라모트 앳 텔-아비브 유니버시티 리미티드 | 소거 없는 플래시 메모리의 다중 프로그래밍 |
| JP2012203443A (ja) * | 2011-03-23 | 2012-10-22 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
| US9195578B2 (en) | 2012-08-24 | 2015-11-24 | International Business Machines Corporation | Systems, methods and computer program products memory space management for storage class memory |
| US9478271B2 (en) * | 2013-03-14 | 2016-10-25 | Seagate Technology Llc | Nonvolatile memory data recovery after power failure |
| US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
| US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
| US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
| TWI548991B (zh) * | 2014-02-14 | 2016-09-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5535328A (en) * | 1989-04-13 | 1996-07-09 | Sandisk Corporation | Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells |
| DE4215063C2 (de) * | 1991-05-10 | 1999-11-25 | Intel Corp | Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher |
| JP3178909B2 (ja) * | 1992-01-10 | 2001-06-25 | 株式会社東芝 | 半導体メモリ装置 |
| US5375222A (en) * | 1992-03-31 | 1994-12-20 | Intel Corporation | Flash memory card with a ready/busy mask register |
| US5428579A (en) * | 1992-03-31 | 1995-06-27 | Intel Corporation | Flash memory card with power control register and jumpers |
| US5422855A (en) * | 1992-03-31 | 1995-06-06 | Intel Corporation | Flash memory card with all zones chip enable circuitry |
| JPH06119230A (ja) * | 1992-10-06 | 1994-04-28 | Fujitsu Ltd | 半導体記憶装置 |
| JP3641280B2 (ja) * | 1992-10-30 | 2005-04-20 | インテル・コーポレーション | フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 |
| US5341330A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals |
| US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
| JP3078946B2 (ja) * | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
-
1995
- 1995-10-27 US US08/549,476 patent/US5867641A/en not_active Expired - Lifetime
-
1996
- 1996-10-21 EP EP96116858A patent/EP0770959B1/de not_active Expired - Lifetime
- 1996-10-21 DE DE69623720T patent/DE69623720T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0770959A1 (de) | 1997-05-02 |
| US5867641A (en) | 1999-02-02 |
| DE69623720D1 (de) | 2002-10-24 |
| EP0770959B1 (de) | 2002-09-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69623720T2 (de) | Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht | |
| DE69623407T2 (de) | Verfahren zur Überprüfung der Blockzuordnung eines Flash-Speichers mit Übersetzungsschicht | |
| DE69414556T2 (de) | Schnell loeschbare datei | |
| DE60025749T2 (de) | Dateisystemabbildübertragung zwischen ungleichen dateisystemen | |
| DE60129025T2 (de) | Speicherbereichszuordnung in einem dateisystem zum beschreiben beliebiger bereiche | |
| DE69527594T2 (de) | Flashspeicherkarte | |
| DE69031494T2 (de) | Verfahren zum lesen und schreiben von dateien auf nichtlöschbaren speichermedien | |
| DE60317551T2 (de) | Aufrechterhaltung gleichförmiger löschhäufigkeit in einem nichtflüchtigen speichersystem | |
| DE60319563T2 (de) | Verwaltung der anzahl von löschungen in einem nicht-fluchtigem speicher | |
| DE69226847T2 (de) | Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C.-Speicherkarte mit solchem Datenverwaltungssystem | |
| DE60006779T2 (de) | Verfahren zum schreiben eines geänderten bios codes in den rompeicherchip einer hostschnittstelle | |
| DE3856090T2 (de) | Aus Einheitsfunktionsgruppen aufgebaute Dateienspeicherungszuordnungstabellen für Dateienspeichereinheiten grosser Kapazität | |
| DE3784190T2 (de) | Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung. | |
| DE69700574T2 (de) | Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte | |
| DE69722991T2 (de) | Aufzeichnungsbereichsverwaltungsverfahren und Speichergerät | |
| DE69801824T2 (de) | Speicher für informationsteurung eines mehrhostrechnerspeichers | |
| DE60032531T2 (de) | Aufzeichnungsverfahren, Verwaltungsverfahren und Aufzeichnungsgerät | |
| DE68920895T2 (de) | System zur Steuerung von Aufnahmebereichen auf einer beschreibbaren optischen Platte. | |
| DE69801655T2 (de) | System mit schreibbenachrichtigung während eines datensatzkopiervorgang | |
| DE69600754T2 (de) | Aufteilung einer Teilung in einem Plattenspeichersystem | |
| DE3390315T1 (de) | Anpassungsfähige Unterteilung eines Chachespeicherraums in Domainen | |
| DE102007006307A1 (de) | Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement | |
| DE10243586A1 (de) | Speichersteuerung für eine Speicherkarten-Verwaltet-Datei-Zuordnungstabelle | |
| DE69023770T2 (de) | Verfahren zum betrieb eines datenverarbeitungssystems. | |
| DE69129101T2 (de) | Steuerungsanordnung für Cachespeichereinheit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |