DE102009048179A1 - Prozess und Verfahren für eine Löschstrategie in Festkörperplatten - Google Patents

Prozess und Verfahren für eine Löschstrategie in Festkörperplatten Download PDF

Info

Publication number
DE102009048179A1
DE102009048179A1 DE102009048179A DE102009048179A DE102009048179A1 DE 102009048179 A1 DE102009048179 A1 DE 102009048179A1 DE 102009048179 A DE102009048179 A DE 102009048179A DE 102009048179 A DE102009048179 A DE 102009048179A DE 102009048179 A1 DE102009048179 A1 DE 102009048179A1
Authority
DE
Germany
Prior art keywords
blocks
storage device
management
invalid
mass storage
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.)
Withdrawn
Application number
DE102009048179A
Other languages
English (en)
Inventor
Torsten Hinz
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102009048179A1 publication Critical patent/DE102009048179A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • 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/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein Ausführungsbeispiel der Erfindung betrifft eine nichtflüchtige Massenspeicherungsvorrichtung, wie etwa eine Flash-Speichervorrichtung, die mit Löschblöcken ausgebildet ist, die in Speicherverwaltungsblöcke aufgeteilt sind. Ein Löschblock wird identifiziert, der wenigstens eine minimale Anzahl an Verwaltungsblöcken enthält, die als ungültig markiert sind, aus dem Daten kopiert, gemischt und in einem neuen Verwaltungsblock gespeichert werden. Der Löschblock wird dann gelöscht. Löschblöcke, die wenigstens die minimale Anzahl an ungültigen Verwaltungsblöcken enthalten, können gelöscht werden, bis ein minimaler Betrag an Verwaltungsblöcken frei ist. Alternativ dazu können alle Löschblöcke, die wenigstens die minimale Anzahl an ungültigen Verwaltungsblöcken enthalten, gelöscht werden. Eine Verwaltungstabelle, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken auflistet, kann in der Massenspeicherungsvorrichtung enthalten sein. Vorzugsweise befindet sich der neue Verwaltungsblock zum Speichern der gemischten Daten in einem Löschblock, der verschieden von dem identifizierten Löschblock ist.

Description

  • Ein Ausführungsbeispiel der vorliegenden Erfindung betrifft allgemein Massenspeicherungsvorrichtungen und -verfahren, und insbesondere betrifft es eine Löschstrategie für Löschblöcke in einer Flash-Speichervorrichtung.
  • Massenspeicherungs-Speichervorrichtungen wie zum Beispiel Flash-Speicherkarten, USB-(„universeller serieller Bus”)-Sticks oder Festkörperplatten (Solid State Disks) verwenden Flash-Halbleiterstrukturen, um Daten in einer nichtflüchtigen Speichervorrichtung zu speichern. Eine nichtflüchtige Speichervorrichtung bezieht sich auf eine Speichervorrichtung, für die eine Stromquelle „ab”-geschaltet werden kann, ohne dass die Inhalte des Speichers verloren gehen. Nichtflüchtige Speichervorrichtungen umfassen Flash-Speichervorrichtungen, die eine elektrische Ladung semipermanent halten können, um ein oder mehrere Bits darzustellen, oder ein „Festplattenlaufwerk” bzw. eine „Festplatte” (die auch als Hard Disk oder Hard Drive bezeichnet werden), das bzw. die eine magnetische Ladung semipermanent halten kann, um ein oder mehrere Bits zu speichern. Halbleitervorrichtungen wie etwa SRAMs (Static Random Access Memories; statische RAM-Speicher) und DRAMs (Dynamic Random Access Memories; dynamische RAM-Speicher) werden als flüchtige Speichervorrichtungen bezeichnet, weil sie die Inhalte ihrer Speicher verlieren, wenn eine Vorspannungsquelle abgeschaltet wird.
  • Die heutigen, auf Magnetkraft basierenden Massenspeicherungsvorrichtungen, wie zum Beispiel Disketten (Floppy Disks) oder Festplatten (Hard Disks), sind in sogenannte Sektoren organisiert (wobei ein Sektor ein Teil einer „Spur” auf der Diskette bzw. Platte ist), wobei jeder Sektor (bei Magnetplatten) typischerweise 512 Byte speichert und jeder Sektor mit einer individuellen logischen Blockadresse (LBA) gekennzeichnet ist. Eine LBA ist ein logisches Adressierungsverfahren, bei dem eine feste Eins-zu-Eins-Beziehung zwischen einem Sektor von Daten und der physischen Stelle auf der Diskette bzw. Platte, an der der jeweilige Datensektor gespeichert ist, hergestellt wird. Das Betriebssystem eines Computers handhabt die LBAs der Massenspeicherungsvorrichtung kollektiv und baut darauf ein Dateisystem auf. Das Betriebssystem des Computers liest bzw. schreibt sequentielle Mengen von LBAs mit unterschiedlichen Blockgrößen aus der Massenspeicherungsvorrichtung aus bzw. in diese hinein. Bei einer Festplatte können Daten in einer Art und Weise von jeweils einem oder mehreren Sektoren sequentiell frei geschrieben, gelesen oder ersetzt bzw. neu geschrieben werden.
  • Anders als bei magnetischen Speichervorrichtungen gibt es bei Flash-Speichervorrichtungen einige Beschränkungen bezüglich des Lesens und Schreibens von Daten. Flash-Speichervorrichtungen sind in Speicherseiten bzw. Seiten, typischerweise mit einer Größe von 4 kB (Kilobyte) plus Spielraum für den Datenschutz, und in Löschblöcke (die hier auch als „Block” bezeichnet werden) organisiert, wobei ein Löschblock zum Beispiel eine Größe von 64 Seiten aufweist. Dementsprechend kann eine 4 kB-Seite eines Flash-Speichers acht 512-Byte-Sektoren speichern. Eine Seite eines Flash-Speichers, die nicht programmiert ist, d. h., eine Seite, die nicht bereits Daten enthält, kann nur als eine ganze Seite beschrieben werden. In ähnlicher Weise können Daten nur jeweils seitenweise gelesen werden. Ein Flash-Speicher weist eine weitere Beschränkung dahingehend auf, dass immer nur ein Block gleichzeitig gelöscht werden kann. Somit muss ein ganzer Block gelesen, gelöscht, die neuen Daten mit den vorhergehenden Daten gemischt und die gemischten Daten als ein Block wieder neu eingeschrieben werden, damit ausgewählte Daten in einem Abschnitt des Speichers neu geschrieben werden können, d. h., eine Kopier- und Mischoperation muss durchgeführt werden. Somit können Daten nur als ein ganzer Block überschrieben werden.
  • Das Schreiben und Neuschreiben bzw. Ersetzen wird allgemein als Programmieren bezeichnet. In einem typischen (NAND-strukturierten) Flash-Speicher wird eine Seite komplett insgesamt auf 1en geschrieben, um vorher gespeicherte Daten zu löschen, und kann dann mit den zugedachten Daten neu beschrieben werden. Ein Block von Daten in einer Flash-Speichervorrichtung wird typischerweise in einen anderen physischen Abschnitt der Flash-Speichervorrichtung geschrieben, um ein Verschleißproblem abzuschwächen, das mit einem wiederholten Speichern von Daten an derselben Speicherstelle verbunden ist. Eine Übersetzungs-(Mapping-)Tabelle, die in dem nichtflüchtigen Speicher der Flash-Speichervorrichtung gespeichert ist, wird somit in der Datenübertragungsverbindung mit einem Hostcomputer benötigt, um einen Sektor von Daten logisch mit seiner physischen Speicherstelle zu assoziieren. Eine Übersetzungstabelle wird im Allgemeinen auch jedes Mal dann, wenn sie neu beschrieben wird, woanders hin verschoben. Die Beschränkungen bezüglich des Lesens, Schreibens und Neuschreibens in einer Flash-Speichervorrichtung sind auch auf die Übersetzungstabelle zutreffend, die darin gespeichert ist.
  • Zum Ausführen einer Kopier- und Mischoperation müssen nicht programmierte Speicherblöcke zur Verfügung stehen. Deshalb gibt es nach mehreren Kopier- und Mischoperationen Löschoperationen, die notwendig sind, um eine Verfügbarkeit von leeren Blöcken für weitere Löschoperationen aufrecht zu erhalten.
  • Während des normalen Betriebs einer Flash-Speichervorrichtung, d. h., einer Festkörperplatte („SSD”; Solid-State Disk), die mit einem Host-Computer gekoppelt ist, gibt es typischerweise kleine Beträge an neuen Daten, die kopiert und mit alten Daten, die in einem Löschblock gespeichert sind, gemischt werden müssen. Die gemischten Daten werden in einer neuen Flash-Speicherstelle gespeichert. Dies führt dazu, dass für einen kleinen Betrag an neuen Daten, die gespeichert werden sollen, ein beträchtlicher Betrag an Daten kopiert und gemischt werden muss, und zwar bedingt durch die Notwendigkeit, dass alle unveränderten Daten, die ursprünglich in dem Löschblock gespeichert worden sind, kopiert und gemischt werden müssen.
  • Eine herkömmliche Art und Weise zur Handhabung von freien Speicherblöcken in einem USB-Flash-Speicher-Stick ist die Verwendung von sogenannten Log-Blöcken. Ein Log-Block stellt einen temporären Speicherbereich (d. h., einen vorher gelöschten Löschblock) bereit, um fortlaufend gemischte Daten mit entsprechenden Aktualisierungen der Mapping-Tabelle anzusammeln. Nachdem gültige Daten in einem Löschblock in einen Log-Block gemischt sind, wird die vorherige Löschblockstelle als ungültig gekennzeichnet und kann gelöscht werden, wodurch sie für eine andere Löschblock-Mischoperationen verfügbar gemacht wird. Diese Prozedur wird fortgesetzt, bis alle Sektoren des Log-Blocks gefüllt sind. Wenn ein Log-Block voll ist, dann kann ein neuer Log-Block gestartet werden. Ein Speicherbereinigungsprozess bezieht sich auf das Löschen von Löschblöcken, die ungültige Daten enthalten, um den Löschblock für die Wiederverwendung frei zu geben.
  • Der Nachteil dieser Prozedur liegt darin, dass typischerweise ein enormer Betrag an Daten kopiert wird, bevor ein einziger (ungültiger) Block gelöscht werden kann. Für einen USB-Speicher-Stick, bei dem normalerweise große Mengen an aufeinanderfolgenden Sektoren geschrieben werden, stellt diese Prozedur eine einigermaßen zufriedenstellende Leistung bereit, da Sektoren aufeinanderfolgend in dem Log-Block gespeichert werden. Aber für eine SSD mit häufigen zufälligen Schreibvorgängen von kleinen Beträgen an Daten führt diese Prozedur zu einer beträchtlichen Ineffizienz für Löschoperationen.
  • In Folge der Beschränkungen beim Schreiben von neuen Daten in Flash-Speichervorrichtungen unter Verwendung von herkömmlichen Prozeduren, wie sie oben beschrieben worden sind, bei denen ein großer Betrag an Daten für jeden Schreibzugriff kopiert und gemischt werden muss, bevor ein einziger Block gelöscht werden kann, wird eine effizientere Lösung für die Verwaltung der Speicherung von neuen Daten in solchen Vorrichtungen benötigt. Somit besteht ein Bedarf an einem Prozess und einem damit verbundenen Verfahren für eine effiziente Löschoperation, die für die Speicherung von neuen Daten in dem nichtflüchtigen Speicher einer Flash-Speichervorrichtung durchgeführt werden muss, der die Ineffizienzen der herkömmlichen Prozesse vermeidet.
  • Die Erfindung löst diese bzw. andere Aufgaben durch die Gegenstände der Ansprüche 1 und 11. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
  • In Übereinstimmung mit einem exemplarischen Ausführungsbeispiel werden eine Massenspeicherungsvorrichtung und ein damit verbundenes Verfahren bereitgestellt. In einem Ausführungsbeispiel wird die Massenspeicherungsvorrichtung mit einer nichtflüchtigen Speichervorrichtung, wie etwa einer Flash-Speichervorrichtung, gestaltet, wobei die nichtflüchtige Speichervorrichtung eine Vielzahl von Löschblöcken umfasst und jeder Löschblock mit Speicherverwaltungsblöcken ausgebildet ist. Ein Controller ist mit der nichtflüchtigen Speichervorrichtung gekoppelt. In einem Ausführungsbeispiel ist der Controller so konfiguriert, dass er einen Löschblock in der nichtflüchtigen Speichervorrichtung identifiziert, der wenigstens eine Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, um Daten aus dem Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, zu kopieren und zu mischen, um die gemischten Daten in einem neuen Verwaltungsblock zu speichern, und um den Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, zu löschen. Vorzugsweise ist die Anzahl k größer als Null. In einem Ausführungsbeispiel ist der Controller des Weiteren so konfiguriert, dass er weitere Löschblöcke, die wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthalten, löscht, bis ein Betrag an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung frei ist. In einem Ausführungsbeispiel ist der Controller des Weiteren so konfiguriert, dass er alle Löschblöcke in der Massenspeicherungsvorrichtung, die wenigstens die Anzahl k an Verwaltungsblöcken aufweisen, die als ungültig markiert sind, löscht. In einem Ausführungsbeispiel ist der Controller des Weiteren so konfiguriert, dass er eine Identifikation des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, auf den Löschblock oder die Löschblöcke in der Massenspeicherungsvorrichtung begrenzt, der bzw. die die größte Anzahl an Verwaltungsblöcken, die als ungültig markiert sind, aufweist/aufweisen. Der Controller kann eine Verwaltungstabelle umfassen, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken in der Massenspeicherungsvorrichtung auflistet. Die Verwaltungstabelle kann in einer flüchtigen Speichervorrichtung gespeichert werden, die mit dem Controller gekoppelt ist. Vorzugsweise befindet sich der neue Verwaltungsblock zum Speicher der gemischten Daten in einem Löschblock, der verschieden von dem identifizierten Löschblock ist, also ein anderer als der identifizierte Löschblock ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Einzelheiten von einem oder mehreren Ausführungsbeispielen der vorliegenden Erfindung sind in den beigefügten Zeichnungen und der unten gegebenen Beschreibung dargelegt. Weitere Merkmale, Aufgaben und Vorteile der vorliegenden Erfindung werden aus der Beschreibung und den Zeichnungen sowie aus den Patentansprüchen deutlich. In den Figuren bezeichnen identische Bezugszeichen im Allgemeinen die gleichen Bauteile quer durch die verschiedenen Ansichten, die im Interesse der Kürze im Allgemeinen nicht noch einmal beschrieben werden. Für ein vollständigeres Verständnis der vorliegenden Erfindung wird nun Bezug auf die nachfolgenden Beschreibungen genommen, die in Verbindung mit den beigefügten Zeichnungen vorgenommen werden, in denen:
  • 1 ein Blockdiagramm eines Löschblocks einer Massenspeicherungsvorrichtung, der in Verwaltungsblöcke organisiert ist, aufgebaut in Übereinstimmung mit einem exemplarischen Ausführungsbeispiel veranschaulicht; und
  • 2 ein Blockdiagramm einer Massenspeicherungsvorrichtung, die flüchtige und nichtflüchtige Speicher umfasst, die mit einem Controller gekoppelt sind, aufgebaut in Übereinstimmung mit einem exemplarischen Ausführungsbeispiel veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG VON VERANSCHAULICHENDEN AUSFÜHRUNGSBEISPIELEN
  • Die Ausführung und die Verwendung der vorliegend bevorzugten Ausführungsbeispiele werden unten im Einzelnen erörtert. Es sollte aber klar sein, dass die vorliegende Erfindung viele anwendbare erfinderische Konzepte bereitstellt, die in einer breiten Vielfalt von spezifischen Kontexten verwirklicht werden können. Die erörterten spezifischen Ausführungsbeispiele dienen lediglich zur Veranschaulichung spezifischer Möglichkeiten, wie die Erfindung umgesetzt und verwendet werden kann, und beschränken nicht den Schutzumfang der vorliegenden Erfindung.
  • Die vorliegende Erfindung wird im Hinblick auf exemplarische Ausführungsbeispiele in einem spezifischen Kontext beschrieben werden, nämlich einer Massenspeicherungsvorrichtung, in der Daten in Blöcken gelöscht werden, um die Speicherung neuer Daten zu ermöglichen.
  • Ein Ausführungsbeispiel der Erfindung kann auf eine Massenspeicherungsvorrichtung angewendet werden, zum Beispiel auf ein Festkörperlaufwerk (Solid State Drive), das mit einer Flash-Speichervorrichtung ausgebildet ist. Andere Massenspeicherungsvorrichtungen können gestaltet werden, die eine Speichervorrichtung umfassen, bei der Daten in Blöcken gelöscht werden, um die Speicherung neuer Daten zu ermöglichen, wie dies hier in unterschiedlichen Kontexten unter Verwendung erfinderischer Konzepte, die hier beschrieben werden, eingeführt wird, wie zum Beispiel ein Festkörper-Speicher-Stick (Solid State Memory Stick) für eine Digitalkamera.
  • Unter Verwendung von Prozessen und Verfahren, wie sie hier eingeführt werden, wird der Betrag an Daten in einer Festkörperplatte, der aus einem Löschblock heraus kopiert und gemischt werden muss, um einen vollständig ungültigen Löschblock für eine Löschoperation zu erzeugen, reduziert. Die Beziehung zwischen dem Betrag an Verwaltungsblöcken, die kopiert und gemischt werden müssen, und Verwaltungsblöcken, die mit einer Löschoperation frei gesetzt werden, wird in hohem Maße verbessert. Der Begriff „Verwaltungsblock”, wie er hier verwendet wird, bezieht sich auf eine Gruppe von Speicherseiten, die dies hier weiter unten noch beschrieben werden wird. Ein Löschblock wird als eine Sequenz von Verwaltungsblöcken gebildet.
  • Wie dies hier eingeführt wird, wird ein ausgewogener Betrag an benutzten, freien und ungültigen Blöcken aufrecht erhalten, und ein Lösungsweg, der von einer Anzahl an ungültigen Verwaltungsblöcken in einem Löschblock abhängt, wird dafür verwendet zu entscheiden, welche Löschblöcke für eine Löschoperation ausgewählt werden sollen. In einem Ausführungsbeispiel wird eine Löschoperation bei Löschblöcken durchgeführt, die die meisten ungültigen Verwaltungsblöcke in einer Speichervorrichtung enthalten, bis ein festgelegter Betrag an Verwaltungsblöcken in den Löschblöcken frei ist. In einem weiteren Ausführungsbeispiel wird eine Löschoperation bei Löschblöcken in einer Speichervorrichtung durchgeführt, bis alle Löschblöcke, die eine Anzahl k oder eine größere Anzahl an ungültigen Verwaltungsblöcken aufweisen, kopiert und gemischt und dann gelöscht worden sind. In einem anderen Ausführungsbeispiel wird eine Kombination aus diesen Löschoperationen durchgeführt. Somit werden diejenigen Löschblöcke mit dem meisten ungültigen Verwaltungsblöcken kopiert und gelöscht. Vorzugsweise wird die Löschoperation im Hintergrund durchgeführt, wenn nicht gerade aktiv Daten in der Speichervorrichtung gespeichert werden oder nicht gerade aktiv Daten aus der Speichervorrichtung ausgelesen werden.
  • Nun wird Bezug auf 1 genommen, in der eine repräsentative Zeichnung eines Abschnitts eines Speichers einer Flash-Speichervorrichtung veranschaulicht ist, die einen repräsentativen Löschblock 101 aus den vielen, die in der Figur veranschaulicht sind, und mehrere repräsentative Verwaltungsblöcke 102 in einem Löschblock 101 identifiziert. Die Verwaltungsblöcke werden als benutzt, ungültig oder frei bezeichnet. Verwaltungsblöcke, die (nur) gültige Daten enthalten, werden als „benutzt” markiert, und Verwaltungsblöcke, die alte, nun ungültige Daten enthalten, die vorher kopiert und in benutzte Verwaltungsblöcke gemischt worden sind, aber noch nicht gelöscht worden sind, werden als „ungültig” bezeichnet. Verwaltungsblöcke, die gelöscht worden sind und nun für die Speicherung neuer Daten zur Verfügung stehen, sind in der Figur als „frei” gekennzeichnet. Die meisten der Verwaltungsblöcke in der Figur enthalten gültige Daten, was in vielen Anwendungen häufig vorkommt, und relativ wenige Verwaltungsblöcke sind als ungültig oder frei gezeigt.
  • Anstatt herkömmlicherweise eine Kopier-, Misch- und Löschoperation sofort dann durchzuführen, wenn ein oder mehrere Verwaltungsblöcke eines Löschblocks als ungültig markiert worden sind, identifiziert in einem Ausführungsbeispiel ein Controller zunächst Löschblöcke, die eine große Anzahl an Verwaltungsblöcken enthalten, die als ungültig markiert sind. Der Vorteil liegt darin, dass nur die wenigen restlichen gültigen Verwaltungsblöcke in einem solchen Löschblock, die eine beträchtliche Anzahl an ungültigen Verwaltungsblöcken enthalten, kopiert und gemischt werden müssen, um den gesamten Löschblock ungültig zu machen und deshalb für eine Löschoperation vorzubereiten. Dieser Lösungsweg ist insbesondere dann hilfreich, wenn es wahrscheinlich ist, dass eine vernünftige Anzahl an Löschblöcken mit vielen Verwaltungsblöcken, die als ungültig markiert sind, gefunden wird. Dies kommt häufig vor, wie dies unten beschrieben werden wird.
  • Da Löschoperationen hauptsächlich während Ruhezuständen der SSD durchgeführt werden, d. h., wenn gerade keine Daten aktiv von einem Host in der SSD gespeichert werden oder aktiv von einem Host aus der SSD gelesen werden, ist es notwendig, einen wohldefinierten Betrag an Blöcken für Schreiboperationen frei zu halten, um eine Lese-/Schreib-Geschwindigkeit der SSD aufrecht zu erhalten. Wenn ein Host eine Schreiboperation initiiert, dann sollte es nicht von der SSD verlangt werden, die Löschprozedur zu starten und somit die Schreiboperation des Host zu verzögern.
  • Der Prozess kann darüber hinaus mit einem numerischen Beispiel erläutert werden. Eine beispielhafte SSD, die einen Gesamtspeicherbereich von 256 GB mit einer Seitengröße von 4 kB aufweist, wobei ein Verwaltungsblock 4 Seiten umfasst, weist eine Löschblockgröße von 64 Seiten auf. Somit gibt es in diesem Beispiel 16 Verwaltungsblöcke pro Löschblock. In dieser exemplarischen SSD ist 1/32 des gesamten Speicherbereichs für Verwaltungsdaten, schadhafte Blöcke, Firmware, etc., reserviert, 1/32 des gesamten Speicherbereichs soll als freie Blöcke bewahrt werden, und 1/16 des gesamten Speicherbereichs ist für ungültige Blöcke reserviert. Als Folge wird der restliche Speicherbereich für Benutzerdaten 7/8 (d. h., 1 – 1/32 – 1/32 – 1/16) des gesamten Speicherbereichs betragen (wobei 1 GB = 1024 MB = 10242 kB = 10243 Byte).
  • Deshalb gibt es in diesem Beispiel insgesamt 64 M Seiten, 16 M Verwaltungsblöcke (von jeweils 4 Seiten) und 1 M Löschblöcke (von jeweils 64 Seiten). Folglich sind 1 M ungültige Verwaltungsblöcke über 15 M Verwaltungsblöcke (etwa 960 k Löschblöcke) verteilt. Da die ungültigen Verwaltungsblöcke willkürlich über den Speicherbereich verteilt sind, beträgt die Wahrscheinlichkeit, dass ein Verwaltungsblock als ungültig markiert ist, 1/15. Die Wahrscheinlichkeit „p”, dass ein Löschblock von 16 Verwaltungsblöcken (von denen im Durchschnitt ein einziger Verwaltungsblock kollektiv für Verwaltungsdaten, schadhafte Blöcke, Firmware und freie Blöcke reserviert ist) „k” Verwaltungsblöcke, die als ungültig markiert sind, aufweist, kann mit der folgenden Gleichung (1) berechnet werden: p = (115 )k· (1415 )16_k·(16k ) (1)wobei die Notation ( 16 / k) die kombinatorische Funktion 16!/{[k!]·[(16 – k)!]} repräsentiert.
  • Die Tabelle I unten zeigt die Wahrscheinlichkeiten für verschiedene Werte von k von 0 bis 16 und auch die erwartete Anzahl an Löschblöcken un ter den insgesamt 960 k Löschblöcken. Genauer gesagt wird in der Tabelle I die „Anzahl an Löschblöcken” (natürlich mit einer numerischen Rundung) als (1024)2·(15/16)·p(k) berechnet. Die Spalte „Ausbeute” ist das Verhältnis der Anzahl k an Verwaltungsblöcken in einem Löschblock, die ungültige Daten enthalten und die pro Kopier- und Mischoperation bei einem einzigen Löschblock während der Löschprozedur frei werden, zu der Anzahl 16 – k an Verwaltungsblöcken, die gültige Daten enthalten, die in den neuen Löschblock gemischt werden müssen. Somit ist die Zahl der Ausbeute k/(16 – k). Aus der Tabelle I wird ersichtlich, dass es vorteilhaft ist, eine Kopier- und Mischoperation bei einem Löschblock durchzuführen, der eine große Anzahl an ungültigen Verwaltungsblöcken enthält, d. h., die „Ausbeute” ist groß. Aus der Tabelle 1 wird auch ersichtlich, dass es statistisch gesehen sehr unwahrscheinlich ist, dass ein bestimmter Löschblock eine beträchtliche Anzahl an ungültigen Verwaltungsblöcken enthalten wird. Tabelle I
    k p(k) Anzahl an Löschblöcken Ausbeute
    0 3,3158010E–01 325956 0
    1 3,7894870E–01 372522 0,0667
    2 2,0300820E–01 199565 0,1429
    3 6,7669400E–02 66522 0,2308
    4 1,5708970E–02 15443 0,3333
    5 2,6929660E–03 2647 0,4545
    6 3,5265030E–04 347 0,6000
    7 3,5984730E–05 35 0,7778
    8 2,8916300E–06 3 1,0000
    9 1,8359550E–07 0 1,2857
    10 9,1797770E–09 0 1,6667
    11 3,5765370E–10 0 2,2000
    12 1,0644450E–11 0 3,0000
    13 2,3394400E–13 0 4,3333
    14 3,5807760E–15 0 7,0000
    15 3,4102630E–17 0 15,000
    16 1,5224390E–19 0 00
  • Statistisch gesehen gibt es gute Löschblockkandidaten für die Löschprozedur, wenn eine beträchtliche Anzahl an Verwaltungsblöcken bereits als ungültig markiert ist. Wenn man bedenkt, dass eine Menge an Daten in einer SSD oft statische Daten bzw. Stammdaten sind, die sequentiell gespeichert sind, dann enthalten die Löschblöcke, die diese Daten enthalten, nicht gemeinhin ungültige Verwaltungsblöcke. Angenommen, dass von den 14 M Verwaltungsblöcken 7 M Verwaltungsblöcke in den gesamten Löschblöcken mit statischen Daten gefüllt sind (d. h., 458.752 Löschblöcke sind statisch, wobei k = 0), dann ändern sich die Wahrscheinlichkeiten geringfügig, da nun die Wahrscheinlichkeit, dass ein Verwaltungsblock als ungültig markiert ist, gleich 1/8 ist: p = (18 )k· (78 )(16_k)·(16k ). (2)
  • Diese Ergebnisse sind unten in der Tabelle II veranschaulicht. Tabelle II
    k p(k) Anzahl an Löschblöcken Ausbeute
    0 1,180671E–01 462855 0
    1 2,698676E–01 159174 0,0667
    2 2,891439E–01 170544 0,1429
    3 1,927626E–01 113696 0,2308
    4 8,949692E–02 52787 0,3333
    5 3,068466E–02 18099 0,4545
    6 8,036458E–03 4740 0,6000
    7 1,640093E–03 967 0,7778
    8 2,635864E–04 155 1,0000
    9 3,347129E–05 20 1,2857
    10 3,347129E–06 2 1,6667
    11 2,608153E–07 0 2,2000
    12 1,552472E–08 0 3,0000
    13 6,824052E–10 0 4,3333
    14 2,088996E–11 0 7,0000
    15 3,979039E–13 0 15,000
    16 3,552714E–15 0
  • In einem Ausführungsbeispiel ist eine Verwaltungstabelle aufgebaut, die die Anzahl an ungültigen Verwaltungsblöcken in jedem Löschblock identifiziert. Anstatt eine Löschoperation für einen Löschblock zu initiieren, nachdem die ersten Löschblöcke als ungültig markiert worden sind, ist es effektiver, einen Betrag an Speicherbereich für ungültige Blöcke reserviert zu haben, zu warten, bevor die Löschoperation gestartet wird, und eine Verwaltungstabelle zu besitzen, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken auflistet. Die Verwaltungstabelle kann Löschblockkandidaten identifizieren, die bereits eine beträchtliche Anzahl an Verwaltungsblöcken enthalten, die als ungültig markiert sind. Eine Löschoperation wird bei Löschblöcken durchgeführt, die wenigstens eine Anzahl k an ungültigen Verwaltungsblöcken enthalten. Somit wird eine Löschoperation bei Löschblöcken durchgeführt, die die meisten ungültigen Verwaltungsblöcke enthalten. Die Löschoperation kann fortgesetzt werden, bis ein festgelegter Betrag an Verwaltungsblöcken in den Löschblöcken frei für die Speicherung neuer Daten ist. Alternativ dazu kann eine Löschoperation bei Löschblöcken durchgeführt werden, bis alle Löschblöcke, die eine Anzahl k oder eine größere Anzahl an ungültigen Verwaltungs blöcken enthalten, kopiert und gemischt und dann gelöscht worden sind, wodurch Verwaltungsblöcke für die Speicherung neuer Daten frei gemacht werden. Es kann auch eine Kombination aus diesen Löschoperationen durchgeführt werden. Je größer der Betrag an Speicherbereich ist, der für ungültige Blöcke reserviert ist, und je größer der Betrag an statischen Daten ist, desto effektiver ist die Löschprozedur, wie sie hier eingeführt worden ist.
  • Nun wird Bezug auf 2 genommen, in der ein repräsentatives Blockdiagramm einer Massenspeicherungsvorrichtung 200 veranschaulicht ist, die in Übereinstimmung mit einem Ausführungsbeispiel gestaltet ist. Die Massenspeicherungsvorrichtung umfasst einen nichtflüchtigen Speicher 202, der durch eine Leitung 204 mit einem Host, wie zum Beispiel einem Host-Computer (nicht gezeigt), gekoppelt ist, und einen SSD-Controller 201. Die Leitung 204 kann eine Vielzahl von Stromleitern umfassen, um einen Stromversorgungs-Schaltkreis ausgehend von dem Host-Computer zu der Massenspeicherungsvorrichtung zu vervollständigen. Die Massenspeicherungsvorrichtung umfasst des Weiteren einen flüchtigen Speicher 203, wie etwa einen SDRAM, der mit dem Controller 201 gekoppelt ist. Der flüchtige Speicher 203 repräsentiert einen Speicher, der für Datenpflegefunktionen und temporäre Datenspeicherungsfunktionen im Allgemeinen leicht überschrieben werden kann, wie zum Beispiel jeweils ein Wort nach dem anderen. Eine Batterie kann in der Massenspeicherungsvorrichtung enthalten sein, um den flüchtigen Speicher 302 während Perioden ohne Strom von dem Host-Computer zu schützen. Wenn die Stromquelle für den Host-Computer zum Beispiel abgeschaltet bzw. deaktiviert wird, oder wenn die Massenspeicherungsvorrichtung unsachgemäß von dem Host-Computer abgekoppelt bzw. getrennt wird, dann kann der Controller 201 die Batterie benutzen, um die Massenspeicherungsvorrichtung mit Strom zu versorgen, so dass Daten von dem flüchtigen Speicher zu dem nichtflüchtigen Speicher transferiert werden können. Auf diese Weise können sensible Daten, die in dem flüchtigen Speicher enthalten sind, im Falle eines Stromausfalls ausgehend von dem Host-Computer geschützt werden. Der SSD-Controller umfasst die allgemeinen Funktionen eines Mikroprozessors und verwaltet die Operationen der SSD-Speichervorrichtung.
  • Somit ist das Konzept eingeführt worden, eine Massenspeicherungsvorrichtung mit einer nichtflüchtigen Speichervorrichtung zu gestalten, wobei eine nichtflüchtige Speichervorrichtung, wie etwa eine Flash-Speichervorrichtung, eine Vielzahl von Löschblöcken umfasst und jeder Löschblock in Speicherverwaltungsblöcke formiert ist. Ein Controller ist mit der nichtflüchtigen Speichervorrichtung gekoppelt. In einem Ausführungsbeispiel ist der Controller so konfiguriert, dass er einen Löschblock in der nichtflüchtigen Speichervorrichtung identifiziert, der wenigstens eine Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, um Daten aus dem Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, zu kopieren und zu mischen, um die gemischten Daten in einem neuen Verwaltungsblock zu speichern, und um den Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, zu löschen. Vorzugsweise befindet sich der neue Verwaltungsblock in einem Löschblock, der verschieden von dem identifizierten Löschblock ist.
  • In einem Ausführungsbeispiel ist der Controller des Weiteren so konfiguriert, dass er weitere Löschblöcke löscht, die wenigstens eine Anzahl k an Verwaltungsblöcken enthalten, die als ungültig markiert sind, bis ein Betrag an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung frei ist. In einem Ausführungsbeispiel ist der Controller des Weiteren so konfiguriert, dass er alle Löschblöcke in der Massenspeicherungsvorrichtung löscht, die wenigstens eine Anzahl k an Verwaltungsblöcken enthalten, die als ungültig markiert sind. In einem Ausführungsbeispiel ist der Controller des Weiteren so konfiguriert, dass er die Identifikation des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, auf den Löschblock in der Massenspeicherungsvorrichtung begrenzt, der die größte Anzahl an Verwaltungsblöcken, die als ungültig markiert sind, enthält. Natürlich kann die Anzahl k den Wert eins annehmen, wobei der Controller nur den Löschblock (oder die Löschblöcke) identifiziert, der (bzw. die) die größte Anzahl an Verwaltungsblöcken, die als ungültig markiert sind, enthält (enthalten). Wenn mehr als ein Löschblock die größte Anzahl an Verwaltungsblöcken, die als ungültig markiert sind, enthalten, dann kann der Controller einen von diesen oder mehr als einen von diesen auswählen.
  • Der Controller kann eine Verwaltungstabelle umfassen, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken in der Massenspeiche rungsvorrichtung auflistet. Die Verwaltungstabelle kann in einer flüchtigen Speichervorrichtung gespeichert werden, die mit dem Controller gekoppelt ist.
  • Die Anzahl k kann so angepasst werden, dass eine Anzahl an freien Verwaltungsblöcken aufrecht erhalten wird. Wenn die Anzahl an freien Verwaltungsblöcken zum Beispiel über eine Anzahl von Speicherlese- oder -schreibzyklen hindurch wächst oder kleiner wird, dann kann die Anzahl k im Verhältnis zu einer gewünschten Änderung bezüglich der Anzahl an freien Verwaltungsblöcken inkrementiert oder dekrementiert werden. Vorzugsweise ist die Anzahl k auf einen vorbestimmten Bereich beschränkt. In einem Ausführungsbeispiel wird das Identifizieren des Löschblocks in der nichtflüchtigen Speichervorrichtung, das Kopieren und Mischen der Daten aus dem Löschblock und das Löschen des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält, vorzugsweise dann durchgeführt, wenn gerade keine Daten von einem Host in der Massenspeicherungsvorrichtung gespeichert werden bzw. wenn gerade keine Daten von einem Host aus der Massenspeicherungsvorrichtung ausgelesen werden.
  • Ein anderes exemplarisches Ausführungsbeispiel stellt ein Verfahren zum Gestalten einer Massenspeicherungsvorrichtung bereit. In einem Ausführungsbeispiel umfasst das Verfahren das Gestalten der Massenspeicherungsvorrichtung mit einer nichtflüchtigen Speichervorrichtung, die mit einer Vielzahl von Löschblöcken ausgebildet ist. Das Verfahren umfasst das Aufteilen bzw. Partitionieren der Löschblöcke in Speicherverwaltungsblöcke, das Markieren von Speicherverwaltungsblöcken, die Daten enthalten, die geändert wurden, als ungültig, das Identifizieren eines Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens eine Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, das Kopieren von gültigen Daten aus dem Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält, das Mischen der kopierten gültigen Daten in eine Liste von Daten, das Speichern der Liste von Daten in einem neuen Verwaltungsblock und das Löschen des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält. In einem Ausführungsbeispiel umfasst das Verfahren des Weiteren das Bilden der Liste von Daten als eine sequentielle Liste.
  • In einem Ausführungsbeispiel umfasst das Verfahren des Weiteren das Ermitteln eines Betrags an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung, der frei ist, und wenn der Betrag an Verwaltungsblöcken in der Massenspeicherungsvorrichtung, der als frei ermittelt wurde, kleiner als ein gewünschter Betrag ist, dann das Identifizieren eines weiteren Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, das Kopieren von gültigen Daten aus dem weiteren Löschblock, das Mischen der kopierten gültigen Daten aus dem weiteren Löschblock in die Liste von Daten, das Speicher der Liste von Daten in einem neuen Verwaltungsblock und das Löschen des weiteren Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind.
  • In einem Ausführungsbeispiel umfasst das Identifizieren eines Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens eine Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, des Weiteren das Begrenzen der Identifikation auf einen Löschblock in der Massenspeicherungsvorrichtung, der die größte Anzahl an Verwaltungsblöcken, die als ungültig markiert sind, enthält.
  • In einem Ausführungsbeispiel umfasst das Verfahren des Weiteren das Bilden einer Verwaltungstabelle, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken in der Massenspeicherungsvorrichtung auflistet. Vorzugsweise umfasst das Verfahren das Speichern der Verwaltungstabelle in einer flüchtigen Speichervorrichtung, die mit dem Controller gekoppelt ist. In einem Ausführungsbeispiel wird der neue Verwaltungsblock in einem Löschblock gespeichert, der verschieden von dem identifizierten Löschblock ist.
  • In einem Ausführungsbeispiel umfasst das Verfahren des Weiteren das Anpassen der Anzahl k, um eine Anzahl an freien Verwaltungsblöcken in der Massenspeicherungsvorrichtung aufrecht zu erhalten. Wenn zum Beispiel die Anzahl an freien Verwaltungsblöcken über eine Anzahl von Speicherlese- oder -schreibzyklen hindurch wächst oder kleiner wird, dann umfasst das Verfahren das Inkrementieren oder Dekrementieren der Anzahl k im Verhältnis zu einer gewünschten Änderung bezüglich der Anzahl an freien Verwaltungsblöcken. In einem Ausführungsbeispiel umfasst das Verfahren des Weiteren das Begrenzen der Anzahl k auf einen vorbestimmten Bereich.
  • In einem Ausführungsbeispiel umfasst das Verfahren des Weiteren das Ermitteln, wann gerade keine Daten von einem Host aktiv in der Massenspeicherungsvorrichtung gespeichert werden bzw. wann gerade keine Daten von einem Host aktiv aus der Massenspeicherungsvorrichtung ausgelesen werden, und wenn dies der Fall ist, dann das Ermitteln eines Betrags an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung, der frei ist, und wenn der Betrag an Verwaltungsblöcken in der Massenspeicherungsvorrichtung, der als frei ermittelt wurde, kleiner als ein gewünschter Betrag ist, dann das Identifizieren eines Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält, das Kopieren von gültigen Daten aus dem Löschblock, das Mischen der kopierten gültigen Daten aus dem Löschblock in die Liste von Daten, das Speichern der Liste von Daten in einem neuen Verwaltungsblock und das Löschen des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält.
  • Obwohl eine Massenspeicherungsvorrichtung und darauf bezogene Verfahren für die Anwendung in digitalen Datensystemen, wie etwa einem Host-Computer, beschrieben worden sind, sollte es klar sein, dass andere Anwendungen einer Massenspeicherungsvorrichtung, wie zum Beispiel etwa der Mobilfunk und photographische Systeme, innerhalb des breiten Schutzumfangs der Erfindung in Betracht gezogen werden und nicht auf die Anwendungen in digitalen Datensystemen beschränkt zu sein brauchen.
  • Obwohl die vorliegende Erfindung vor allem in Verbindung mit spezifischen exemplarischen Ausführungsbeispielen gezeigt und beschrieben worden ist, sollte es den Fachleuten auf diesem Gebiet klar sein, dass diverse Änderungen bezüglich der Konfiguration und der Einzelheiten davon durchgeführt werden können, ohne dass von dem Erfindungsgedanken und dem Schutzumfang der Erfindung, wie sie von den nachfolgenden Patentansprüchen definiert sind, abgewichen wird. Der Schutzumfang der Erfindung wird daher von den angehängten Patentansprüchen bestimmt, und alle Abänderungen, die in dem Be reich der Bedeutung und dem Bereich der Äquivalenz der Patentansprüche liegen, sollen von den Patentansprüchen eingeschlossen sein.

Claims (20)

  1. Massenspeicherungsvorrichtung, die Folgendes umfasst: eine nichtflüchtige Speichervorrichtung, die eine Vielzahl von Löschblöcken umfasst, wobei jeder Löschblock Speicherverwaltungsblöcke umfasst; und einen Controller, der mit der nichtflüchtigen Speichervorrichtung gekoppelt ist, wobei der Controller so konfiguriert ist, dass er einen Löschblock in der nichtflüchtigen Speichervorrichtung identifiziert, der wenigstens eine Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, Daten aus dem Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält, kopiert und mischt und die gemischten Daten in einem neuen Verwaltungsblock speichert, und den Löschblock löscht, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält.
  2. Massenspeicherungsvorrichtung nach Anspruch 1, wobei der Controller des Weiteren so konfiguriert ist, dass er weitere Löschblöcke löscht, die wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthalten, bis ein Betrag an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung frei ist.
  3. Massenspeicherungsvorrichtung nach Anspruch 1 oder 2, wobei der Controller des Weiteren so konfiguriert ist, dass er alle Löschblöcke in der Massenspeicherungsvorrichtung, die wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthalten, löscht.
  4. Massenspeicherungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei der Controller des Weiteren so konfiguriert ist, dass er die Identifikation des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, auf den Lösch block in der Massenspeicherungsvorrichtung begrenzt, der eine größte Anzahl an Verwaltungsblöcken enthält, die als ungültig markiert sind.
  5. Massenspeicherungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei der Controller eine Verwaltungstabelle umfasst, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken in der Massenspeicherungsvorrichtung auflistet.
  6. Massenspeicherungsvorrichtung nach Anspruch 5, wobei die Verwaltungstabelle in einer flüchtigen Speichervorrichtung gespeichert wird, die mit dem Controller gekoppelt ist
  7. Massenspeicherungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei sich der neue Verwaltungsblock in einem Löschblock befindet, der verschieden von dem identifizierten Löschblock ist.
  8. Massenspeicherungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei die Anzahl k angepasst wird, um eine Anzahl an freien Verwaltungsblöcken aufrecht zu erhalten.
  9. Massenspeicherungsvorrichtung nach Anspruch 8, wobei die Anzahl k auf einen vorbestimmten Bereich begrenzt ist.
  10. Massenspeicherungsvorrichtung nach einem der vorhergehenden Ansprüche, wobei das Identifizieren des Löschblocks in der nichtflüchtigen Speichervorrichtung, das Kopieren und Mischen der Daten aus dem Löschblock und das Löschen des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, durchgeführt wird, wenn gerade keine Daten von einem Host in der Massenspeicherungsvorrichtung gespeichert werden bzw. wenn gerade keine Daten von einem Host aus der Massenspeicherungsvorrichtung ausgelesen werden.
  11. Verfahren zum Gestalten einer Massenspeicherungsvorrichtung, wobei das Verfahren Folgendes umfasst: Gestalten einer nichtflüchtigen Speichervorrichtung, die eine Vielzahl von Löschblöcken umfasst; Partitionieren der Löschblöcke in Speicherverwaltungsblöcke; Markieren von Speicherverwaltungsblöcken, die Daten enthalten, die geändert worden sind, als ungültig; Identifizieren eines Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens eine Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind; Kopieren von gültigen Daten aus dem Löschblock, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind; Mischen der kopierten gültigen Daten in eine Liste von Daten; Speichern der Liste von Daten in einem neuen Verwaltungsblock; und Löschen des Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind.
  12. Verfahren nach Anspruch 11, das des Weiteren das Ausbilden der Liste von Daten als eine sequentielle Liste umfasst.
  13. Verfahren nach Anspruch 11 oder 12, das des Weiteren Folgendes umfasst: Ermitteln eines Betrags an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung, der frei ist; und wenn der Betrag an Verwaltungsblöcken in der Massenspeicherungsvorrichtung, der als frei ermittelt wurde, kleiner als ein gewünschter Betrag ist, dann Identifizieren eines weiteren Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, Kopieren von gültigen Daten aus dem weiteren Löschblock, Mischen der kopierten gültigen Daten aus dem weiteren Löschblock in die Liste von Daten, Speichern der Liste von Daten in einem neuen Verwaltungsblock, und Löschen des weiteren Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind.
  14. Verfahren nach einem der vorhergehenden Ansprüche 11 bis 13, wobei das Identifizieren des Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, des Weiteren das Begrenzen der Identifikation auf einen Löschblock in der Massenspeicherungsvorrichtung umfasst, der eine größte Anzahl an Verwaltungsblöcken, die als ungültig markiert sind, enthält.
  15. Verfahren nach einem der vorhergehenden Ansprüche 11 bis 14, das des Weiteren das Bilden einer Verwaltungstabelle umfasst, die die Anzahl an ungültigen Verwaltungsblöcken in Löschblöcken in der Massenspeicherungsvorrichtung auflistet.
  16. Verfahren nach Anspruch 15, das des Weiteren das Speichern der Verwaltungstabelle in einem flüchtigen Speicher umfasst, der mit dem Controller gekoppelt ist.
  17. Verfahren nach einem der vorhergehenden Ansprüche 11 bis 16, wobei der neue Verwaltungsblock in einem Löschblock gespeichert wird, der verschieden von dem identifizierten Löschblock ist.
  18. Verfahren nach einem der vorhergehenden Ansprüche 11 bis 17, das des Weiteren das Anpassen der Anzahl k umfasst, um eine Anzahl an freien Verwaltungsblöcken aufrecht zu erhalten.
  19. Verfahren nach einem der vorhergehenden Ansprüche 11 bis 18, das des Weiteren das Begrenzen der Anzahl k auf einen vorbestimmten Bereich umfasst.
  20. Verfahren nach einem der vorhergehenden Ansprüche 11 bis 19, wobei das Ermitteln eines Betrags an Verwaltungsblöcken in den Löschblöcken in der Massenspeicherungsvorrichtung als frei, und wenn der Betrag an Verwaltungsblöcken in der Massenspeicherungsvorrichtung, der als frei ermittelt wurde, kleiner als ein gewünschter Betrag ist, dann das Identifizieren eines weiteren Löschblocks in der nichtflüchtigen Speichervorrichtung, der wenigstens die Anzahl k an Verwaltungsblöcken enthält, die als ungültig markiert sind, das Kopieren von gültigen Daten aus dem weiteren Löschblock, das Mischen der kopierten gültigen Daten aus dem weiteren Löschblock in die Liste von Daten, das Speichern der Liste von Daten in einem neuen Verwaltungsblock, und das Löschen des weiteren Löschblocks, der wenigstens die Anzahl k an Verwaltungsblöcken, die als ungültig markiert sind, enthält, dann durchgeführt wird, wenn gerade keine Daten von einem Host in der Massenspeicherungsvorrichtung gespeichert werden bzw. wenn gerade keine Daten von einem Host aus der Massenspeicherungsvorrichtung ausgelesen werden.
DE102009048179A 2008-10-02 2009-10-02 Prozess und Verfahren für eine Löschstrategie in Festkörperplatten Withdrawn DE102009048179A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/244,587 US8046530B2 (en) 2008-10-02 2008-10-02 Process and method for erase strategy in solid state disks
US12/244,587 2008-10-02

Publications (1)

Publication Number Publication Date
DE102009048179A1 true DE102009048179A1 (de) 2010-05-06

Family

ID=42063235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009048179A Withdrawn DE102009048179A1 (de) 2008-10-02 2009-10-02 Prozess und Verfahren für eine Löschstrategie in Festkörperplatten

Country Status (2)

Country Link
US (1) US8046530B2 (de)
DE (1) DE102009048179A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4691122B2 (ja) * 2008-03-01 2011-06-01 株式会社東芝 メモリシステム
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI450271B (zh) * 2009-09-02 2014-08-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
KR20110046232A (ko) * 2009-10-27 2011-05-04 삼성전자주식회사 데이터 무효화 동작을 수행하는 저장 장치 및 그것의 데이터 무효화 방법
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US9405668B1 (en) * 2011-02-15 2016-08-02 Western Digital Technologies, Inc. Data storage device initialization information accessed by searching for pointer information
US9514838B2 (en) 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US20130080731A1 (en) * 2011-09-28 2013-03-28 Ping-Yi Hsu Method and apparatus for performing memory management
CN103378986A (zh) * 2012-04-28 2013-10-30 鸿富锦精密工业(深圳)有限公司 系统事件日志记录系统及方法
CN103970669A (zh) 2013-02-06 2014-08-06 Lsi公司 用于加速在固态设备中的回收操作的物理到逻辑地址映射
IN2015CH04361A (de) 2015-08-20 2015-09-04 Wipro Ltd
US10353814B2 (en) * 2016-02-08 2019-07-16 Wipro Limited Method and system for optimized garbage collection in a storage device
KR20190088293A (ko) * 2018-01-18 2019-07-26 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
CN113391755B (zh) * 2020-02-26 2023-09-22 北京君正集成电路股份有限公司 一种并行双片nand flash中物理擦除块动态关联的方法
TWI775143B (zh) * 2020-09-09 2022-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN113434086B (zh) * 2021-06-25 2024-02-02 南京英锐创电子科技有限公司 数据存储方法、装置、非易失性存储器件和存储器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management

Also Published As

Publication number Publication date
US8046530B2 (en) 2011-10-25
US20100088482A1 (en) 2010-04-08

Similar Documents

Publication Publication Date Title
DE102009048179A1 (de) Prozess und Verfahren für eine Löschstrategie in Festkörperplatten
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69430668T2 (de) Flash-speicher mit verringerter löschung und überschreibung
DE69612752T2 (de) Speicheranordnung
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE69226847T2 (de) Datenverwaltungssystem für Halbleiterspeicher mit beschränkter Programmierung und I.C.-Speicherkarte mit solchem Datenverwaltungssystem
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE60319563T2 (de) Verwaltung der anzahl von löschungen in einem nicht-fluchtigem speicher
DE60317551T2 (de) Aufrechterhaltung gleichförmiger löschhäufigkeit in einem nichtflüchtigen speichersystem
DE112014004761B4 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE69710665T2 (de) Methode und Apparat zur Speicherverwaltung
DE69527594T2 (de) Flashspeicherkarte
DE69431795T2 (de) Massenspeicherarchitektur mit flash-speicher
DE69635663T2 (de) vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM
DE69414556T2 (de) Schnell loeschbare datei
DE60017870T2 (de) Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE102009046444A1 (de) An die Software angepasste Abnutzungsausgleichung
DE102009051862A1 (de) Speichervorrichtung und Speicherverfahren
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE69820164T2 (de) Speichervorrichtung sowie Datenlese- und Schreibverfahren
DE102012022728A1 (de) Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
DE112017005782T5 (de) Warteschlange für Speichervorgänge

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee