[go: up one dir, main page]

DE69623720T2 - Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht - Google Patents

Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht

Info

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
Application number
DE69623720T
Other languages
English (en)
Other versions
DE69623720D1 (de
Inventor
Detlef Jenett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Identiv Inc
Original Assignee
SCM Microsystems Inc
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 SCM Microsystems Inc filed Critical SCM Microsystems Inc
Application granted granted Critical
Publication of DE69623720D1 publication Critical patent/DE69623720D1/de
Publication of DE69623720T2 publication Critical patent/DE69623720T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, 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

    Querverweis auf eine verwandte Anmeldung
  • 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.
  • Technisches Gebiet der Erfindung
  • 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.
  • Hintergrund
  • 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.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • 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.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • - 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.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 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).
DE69623720T 1995-10-27 1996-10-21 Verfahren zum Aufräumen eines Flash-Speichers mit Übersetzungsschicht Expired - Fee Related DE69623720T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置

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