DE102008057219B4 - Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem - Google Patents

Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem Download PDF

Info

Publication number
DE102008057219B4
DE102008057219B4 DE102008057219.5A DE102008057219A DE102008057219B4 DE 102008057219 B4 DE102008057219 B4 DE 102008057219B4 DE 102008057219 A DE102008057219 A DE 102008057219A DE 102008057219 B4 DE102008057219 B4 DE 102008057219B4
Authority
DE
Germany
Prior art keywords
metadata
solid state
partition
state storage
memory
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.)
Active
Application number
DE102008057219.5A
Other languages
English (en)
Other versions
DE102008057219A1 (de
Inventor
Sang-Jin Oh
Moon-wook OH
Sung-Chul Kim
Chan-ik Park
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102008057219A1 publication Critical patent/DE102008057219A1/de
Application granted granted Critical
Publication of DE102008057219B4 publication Critical patent/DE102008057219B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

Verfahren zum Betreiben eines Solid-State-Speichersystems (14), umfassend:- logisches Partitionieren des Solid-State-Speichersystems (14),- Aktualisieren von Metadaten des logisch partitionierten Solid-State-Speichersystems (14) und- Überwachen der aktualisierten Metadaten, um ungültige Daten zu lokalisieren, die in dem Solid-State-Speichersystem (14) gespeichert sind,- wobei die Metadaten Speicherebene-Metadaten sind, und- wobei die Metadaten in einer Partitionstabelle enthalten sind, wobei ungültige Daten in Abhängigkeit von Änderungen der Metadaten der Partitionstabelle lokalisiert werden.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines Solid-State-Speichersystems (SSM), ein Solid-State-Speichersystem und ein Computersystem.
  • Beispiele des SSM beinhalten einen Hauptspeicher eines Computersystems und ein Solid-State-Laufwerk (SSD) eines Computersystems.
  • Eine Solid-State-Laufwerk (SSD) ist eine Datenspeichereinrichtung, die typischerweise ein herkömmliches Festplattenlaufwerk (HDD) emuliert, wodurch das HDD in den meisten Anwendungen leicht zu ersetzen ist. Im Gegensatz zum sich drehenden Plattenmedium eines HDD, verwendet das SSD einen Solid-State-Speicher (Festkörperspeicher) zum Speichern von Daten. Ohne bewegliche Teile kann ein SSD Zugriffszeit, Latenz und andere elektromechanische Verzögerungen und Ausfälle, die in Zusammenhang mit einem herkömmlichen HDD auftreten, weitgehend eliminieren.
  • Ein SSD ist gewöhnlich entweder aus einem NAND-Flash (nichtflüchtig) oder einem SDRAM (flüchtig) gebildet.
  • SSDs auf Basis eines flüchtigen Speichers, wie SDRAM, zeichnen sich durch einen schnellen Datenzugriff aus und werden primär dazu verwendet, Anwendungen zu beschleunigen, die ansonsten durch die Latenz der Plattenlaufwerke gebremst werden. Der flüchtige Speicher der DRAM-basierten SSDs erfordert typischerweise den Einsatz einer internen Batterie und eines Backup-Plattensystems, um Datenerhalt zu gewährleisten. Bei Stromausfall hält die Batterie die Energiezufuhr über eine ausreichende Zeitdauer aufrecht, so dass Daten vom SDRAM in das Backup-Plattensystem kopiert werden können. Bei Wiederherstellung der Energiezufuhr werden die Daten von der Backup-Platte in den SDRAM zurück kopiert, worauf das SSD seine normalen Funktionen wieder aufnimmt.
  • Die meisten SSD-Hersteller verwenden jedoch nichtflüchtige Flash-Speicher, um robustere und kompaktere Alternativen zu DRAM-basierten SSDs herzustellen. Diese auf Flash-Speichern basierten SSDs, die auch als Flash-Drive bekannt sind, benötigen keine Batterien, was es den Herstellern ermöglicht, Standardfestplattenlaufwerke leichter abzugleichen. Außerdem halten nichtflüchtige Flash-SSDs den Speicherinhalt bei einem Energieausfall.
  • Die US 2006/0020744 A1 offenbart Techniken, um Daten in einem Flash-Speicher zu verwalten. Hierzu kann ein Kontroller Informationen eines Host-Datensystems nutzen, um zu ermitteln, ob ein oder mehrere Cluster allokiert sind. Diese Information wird genutzt, damit nicht ein oder mehrere Cluster während eines Löschvorgangs von einem Speicherort zu einem anderen Speicherort kopiert werden müssen.
  • Die US 2007/0233941 A1 offenbart ein Verfahren, um ein Flash-Dateisystem zu initialisieren, zu betreiben und ein Programm zu speichern.
  • Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zum Betreiben eines Solid-State-Speichersystems, ein Solid-State-Speichersystem und ein Computersystem zur Verfügung zu stellen, die im Vergleich zu Ausführungsformen aus dem Stand der Technik verbesserte Eigenschaften aufweisen.
  • Die Erfindung löst diese Aufgabe dadurch, dass sie ein Verfahren zum Betreiben eines Solid-State-Speichersystems mit den Merkmalen des Anspruch 1 oder 4, ein Solid-State-Speichersystem mit den Merkmalen des Anspruch 8 und ein Computersystem mit den Merkmalen des Anspruch 11 zur Verfügung stellt.
  • Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angeführt, deren Wortlaut hiermit durch Bezugnahme zum Inhalt der Beschreibung gemacht wird, um unnötige Textwiederholungen zu vermeiden.
  • Vorteilhafte Ausführungsformen der Erfindung, wie sie unten ausführlich beschrieben werden, sind in den Zeichnungen dargestellt. Hierbei zeigt:
    • 1 ein Blockdiagramm einer Solid-State-Platte (SSD) gemäß einer Ausführungsform der vorliegenden Erfindung,
    • 2 eine schematische Darstellung einer logischen Partition eines Speichers einer Solid-State-Platte,
    • 3 eine schematische Darstellung einer Struktur eines Master-Boot-Records (MBR),
    • 4 eine schematische Darstellung, die einen im MBR von 3 enthaltenen Partitionsrecord darstellt,
    • 5 eine Tabelle mit Partitionstypen und zugehörigen ID-Werten,
    • 6 und 7 ein Flussbild bzw. ein schematisches Diagramm zum Beschreiben eines Verfahrens zum Lokalisieren eines ungültigen Datenbereichs gemäß einer Ausführungsform der vorliegenden Erfindung,
    • 8 und 9 ein Flussbild bzw. ein schematisches Diagramm zum Beschreiben eines Verfahrens zum Lokalisieren eines ungültigen Datenbereichs gemäß einer Ausführungsform der vorliegenden Erfindung,
    • 10 und 11 ein Flussbild bzw. ein schematisches Diagramm zum Beschreiben eines Verfahrens zum Lokalisieren eines ungültigen Datenbereichs gemäß einer Ausführungsform der vorliegenden Erfindung und
    • 12 ein Systemebenendiagramm eines Speichersystems gemäß Ausführungsformen der vorliegenden Erfindung.
  • 1 stellt ein Blockdiagramm einer Solid-State-Platte (SSD) 1000 gemäß einer Ausführungsform der vorliegenden Erfindung dar. Wie gezeigt ist, beinhaltet die SSD 1000 dieses Beispiels eine SSD-Steuereinheit 1200 und ein nichtflüchtiges Speichermedium 1400.
  • Die SSD-Steuereinheit 1200 umfasst eine erste und eine zweite Schnittstelle 1210 und 1230, eine Steuereinheit 1200 und einen Speicher 1240.
  • Die erste Schnittstelle 1210 dient als Dateneingangs-/ausgangs(I/O)-Schnittstelle zu einer Hosteinrichtung, wie einer Hostzentralverarbeitungseinheit (CPU) (nicht gezeigt). Nicht einschränkende Beispiele der ersten Schnittstelle 1210 umfassen Universal-Serial-Bus(USB)-Schnittstellen, Advanced-Technology-Attachment(ATA)-Schnittstellen, Serial-ATA(SATA)-Schnittstellen und Small-ComputerSystem-Interface(SCSI)-Schnittstellen.
  • Die zweite Schnittstelle 1230 dient als Daten-I/O-Schnittstelle zu dem nichtflüchtigen Speichermedium 1400. Insbesondere wird die zweite Schnittstelle 1230 zum Übertragen/Empfangen verschiedener Befehle, Adressen und Daten zum/vom nichtflüchtigen Speichermedium 1400 verwendet. Es versteht sich, dass eine Reihe unterschiedlicher Strukturen und Konfigurationen der zweiten Schnittstelle 1230 möglich sind, weshalb eine ausführliche Beschreibung hierzu unterbleiben kann.
  • Die Steuereinheit 1220 und der Speicher 1240 sind in Wirkverbindung zwischen die erste und zweite Schnittstelle 1210 und 1230 eingeschleift und dienen gemeinsam zum Steuern/Verwalten des Stroms von Daten zwischen der Hosteinrichtung (nicht gezeigt) und dem nichtflüchtigen Speichermedium 1400. Der Speicher 1240 kann beispielsweise eine Speichereinrichtung vom DRAM-Typ sein und die Steuereinheit 1220 kann beispielsweise eine Zentralverarbeitungseinheit (CPU), eine Direktzugriffspeicher(DMA)-Steuereinheit und eine Fehlerkorrektursteuer(ECC)-Maschine umfassen. Beispiele der Funktionalität der Steuereinheit sind in der US-Patentveröffentlichung 2006-0152981 zu finden, deren Inhalt hiermit durch Bezugnahme zum Bestandteil der Beschreibung gemacht wird. Die von der Steuereinheit 1220 (und dem Speicher 1240) in der Regel ausgeführten Operationen, um Daten zwischen der Hosteinrichtung (nicht gezeigt) und SSD-Speicherbänken zu übertragen, sind den Fachleuten bekannt. weshalb eine ausführliche Beschreibung hierzu unterbleiben kann. Vielmehr ist die nachfolgend hier ausgeführte Funktionsbeschreibung auf erfinderische Aspekte gerichtet, die verschiedene Ausführungsformen der Erfindung betreffen.
  • Weiterhin mit Bezug zu 1 umfasst das nichtflüchtige Speichermedium 1400 dieses Beispiels einen schnellen nichtflüchtigen Speicher (NVM) 1410 und einen langsamen nichtflüchtigen Speicher (NVM) 1420. Die hier angegebenen Ausführungsformen sind jedoch nicht auf Konfigurationen beschränkt, die Speicher mit zwei Geschwindigkeiten enthalten. Das heißt, die nichtflüchtigen Speichermedien 1400 können stattdessen aus einem einfachen Speicher gebildet sein, der bei einer einzigen Geschwindigkeit arbeitet.
  • Wie die Bezeichnungen nahelegen, ist der schnelle NVM 1410 dazu ausgebildet im Vergleich zum langsamen NVM 1420 bei einer relativ höheren Geschwindigkeit (z. B. beliebiger Schreibgeschwindigkeit) zu operieren.
  • In einer beispielhaften Ausführungsform ist der schnelle NVM 1410 ein Single-Level-Cell(SLC)-Flashspeicher und der langsame NVM 1420 ist ein Multi-Level-Cell(MLC)-Flashspeicher. Die Erfindung ist jedoch nicht darauf beschränkt. Zum Beispiel kann der schnelle NVM 1410 stattdessen aus einem Phase-Change-Speicher (Phasenwechselspeicher) mit wahlfreiem Zugriff (PRAM) oder einem MLC-Flashspeicher gebildet sein, in dem ein Bit pro Zelle verwendet wird. Ebenso können der schnelle NVM 1410 und der langsame NVM 1420 aus dem gleichen Speichertyp gebildet sein (z. B. SLC oder MLC oder PRAM), wobei die Betriebsgeschwindigkeit durch feingranuliertes Mapping beim schnellen NVM 1410 und grobgranuliertes Mapping beim langsamen NVM 1420 differenziert ist.
  • In der Regel wird der schnelle NVM 1410 zum Speichern von Daten verwendet, auf die häufig zugegriffen (geschrieben) wird, wie Metadaten, und der langsame NVM 1420 wird zum Speichern von Daten verwendet, auf die weniger häufig zugegriffen (geschrieben) wird, wie Mediendaten. Mit anderen Worten und wie nachfolgend noch diskutiert wird, ist eine Schreibfrequenz von Daten im schnellen NVM 1410 statistisch gesehen höher als eine Schreibfrequenz von Daten im langsamen NVM 1420. Ebenso ist aufgrund der Natur der jeweils zu speichernden Daten die Speicherkapazität des langsamen NVM 1420 typischerweise viel höher als die des schnellen NVM 1410. Eine ausführlichere Diskussion von Beispielen, in denen schnelle und langsame Speicher effizient eingesetzt werden, um unterschiedliche Arten von Daten zu speichern, sind in der am 17. Januar 2008 eingereichten US-Patentanmeldung Nr. 12/015,548 zu finden, deren gesamter Inhalt durch Bezugnahme zum Bestandteil dieser Beschreibung gemacht wird. Wiederum sind jedoch die Ausführungsformen darin nicht auf die Verwendung von zwei oder mehr Speichern, die bei unterschiedlichen Geschwindigkeiten arbeiten, beschränkt.
  • 2 stellt ein Beispiel der logischen Partitionierung des nichtflüchtigen Speichermediums 1400 dar. Wie gezeigt ist, enthält der erste „Sektor“ des Solid-State-Speichers einen Master-Boot-Record (MBR) und verbleibende Sektoren des Speichers sind in eine Anzahl von Partitionen aufgeteilt. Außerdem beinhaltet jede Partition in der Regel einen Bootrecord (Startprogramm) an einem logischen Anfang.
  • 3 stellt ein bekanntes Beispiel des in 2 gezeigten MBR mit 512 Bytes dar. In der Regel wird der MBR zum Beispiel dazu verwendet, die primäre Partitionstabelle des Solid-State-Speichers zu behalten. Er kann auch für Bootstrapping-Operationen verwendet werden, nachdem das BIOS des Computersystems die Ausführung auf Maschinenkodeinstruktionen überträgt, die im MBR enthalten sind. Der MBR kann auch dazu verwendet werden, einzelne Speichermedien eindeutig zu identifizieren.
  • 4 stellt ein Beispiel des Aufbaus eines einzelnen 16 Byte Partitionsrecords des in 3 dargestellten MBR dar. In dem Beispiel des IBM-Partitionstabellenstandards sind vier (4) der in 4 dargestellten Partitionsrecords in der Partitionstabelle des MBR enthalten.
  • 5 ist eine Tabelle, die Partitionstypen und zugehörige ID-Werte darstellt. Hierbei kann das Betriebssystem (O/S) zusätzlich eine Mehrzahl von Partitionen in einer spezifizierten primären Partition erzeugen. Diese Partitionen werden als „erweiterte Partitionen“ bezeichnet. Jede auf der erweiterten Partition erzeugte Partition wird als logische Partition bezeichnet und jede logische Partition kann das gleiche oder ein anderes Dateisystem einsetzen.
  • Es wird hier angemerkt, dass das oben beschriebene MBR-Schema nur einen von verschiedenen Standards in einer sich ständig weiterentwickelnden Industrie darstellt. Zum Beispiel wurde der Extensible-Firmware-Interface(EFI)-Standard als Ersatz für den PC-BIOS-Standard vorgeschlagen. Während der PC-BIOS das oben beschriebene MBR-Schema einsetzt, verwendet der EFI-Standard eine GUID-Partitionstabelle (GPT) als Standard für den Aufbau einer Partitionstabelle in einer logisch partitionierten Solid-State-Laufwerk. Die vorliegende Erfindung ist nicht auf einen speziellen Partitionsstandard beschränkt.
  • In der MBR- oder (GUID-)Partitionstabelle von 3 gezeigte Daten sind ein Beispiel von „Speicherebenen“-Metadaten, d. h. Metadaten, die logischen Speicherbereichen des Solid-State-Speichers zugeordnet sind. Dies ist im Gegensatz zu „Dateiebenen“-Metadaten, die Metadaten darstellen, die dem Dateisystem des Computersystems zugeordnet sind. Dateisystembeispiele beinhalten File-Allocation-Table (FAT), New-Technology-File-System (NTFS) und Second- und Third-Extended-File-Systeme (ext2 und ext3).
  • Das heißt, wenn ein Benutzer eine Datei im Solid-State-Speicher 1400 löscht, verarbeitet das auf dem System laufende Dateisystem den Löschbefehl und scheint aus Sicht des Benutzers die Datei aus dem Speicher 1400 zu entfernen. In Wirklichkeit belassen herkömmliche Dateisysteme jedoch die Dateidaten in einem physikalischen Speicher und stattdessen werden die Daten als „ungültig“ betrachtet. Ein Hostsystem beinhaltet ein Anwendungsprogramm, das mit einem Dateisystem kommuniziert. Eine Flash-Translation-Layer (FTL) bildet die physikalische Lage von Speichereinheiten, die Dateien im Solid-State-Speicher 1400 zugeordnet sind, ab, damit das Dateisystem nur auf logische Speichereinheiten Bezug zu nehmen braucht.
  • Wie unten ausführlicher beschrieben wird, sind Ausführungsformen der Erfindung mindestens teilweise auf eine Überwachung aktualisierter Metadaten gerichtet, um die Positionen von ungültigen Daten zu lokalisieren, die im Solid-State-Speichersystem gespeichert sind.
  • Die Metadaten, die überwacht werden, können Speicherebene-Metadaten oder Dateisystemebene-Metadaten sein. Zum Beispiel können im Falle von Speicherebene-Metadaten die Metadaten in einer Partitionstabelle enthalten sein und ungültige Daten werden in Abhängigkeit von Änderungen in den Metadaten der Partitionstabelle lokalisiert.
  • In einer Ausführungsform wird beispielsweise eine Bestimmung vorgenommen, ob Partitions-Metadaten des Solid-State-Speichers geändert wurden, und wenn dies der Fall ist, werden die Partitions-Metadaten analysiert, um ungültige Daten zu lokalisieren, die im Solid-State-Speicher gespeichert sind. Diese Analyse kann eine Bestimmung umfassen, dass ein Dateisystemtyp einer Partition geändert wurde und Daten in Abhängigkeit von dem geänderten Dateisystemtyp ungültig gemacht wurden. Alternativ oder zusätzlich kann die Analyse eine Bestimmung umfassen, dass eine Partition geändert wurde und Daten in Abhängigkeit von der geänderten Partition ungültig gemacht wurden.
  • Nun wird bezüglich eines Verfahrens zum Ungültigmachen eines gelöschten Datenbereichs eines Solid-State-Speichers gemäß einer Ausführungsform der vorliegenden Erfindung auf die 6 und 7 Bezug genommen.
  • Allgemein betrifft diese Ausführungsform das Überwachen von Metadaten, die in einer Partitionstabelle enthalten sind, wie der Standardtabelle von primären Partitionen eines MBR in einem BIOS-System. In Schritt 601 und 602 von 6 wird der MBR-Adressenbereich überwacht, um zu bestimmen, ob auf eine MBR-Adresse zugegriffen wurde. Beispiele von MBR, primären Partitionen und Partitionsrecord sind in 7 dargestellt.
  • Sobald bestimmt worden ist, dass auf eine MBR-Adresse zugegriffen wurde, wird in Schritt 603 eine Bestimmung vorgenommen, ob die Partitionstabelle geändert wurde. Zum Beispiel kann die Partitionstabelle in der Situation verändert werden, wenn eine Partition geteilt wird. In diesem Fall werden alle Daten in der geteilten Partition ungültig.
  • Im Falle einer positiven Bestimmung in Schritt 603 werden die Startposition der Partition und der Typ des Dateisystems (Partitionstyp) in Schritt 604 von 6 konfiguriert. Dann werden in Schritt 605 die Metadaten entsprechend dem Dateisystemtyp analysiert und der gelöschte Datenbereich wird ungültig gemacht.
  • Nun wird bezüglich eines Verfahrens zum Ungültigmachen eines gelöschten Datenbereichs eines Solid-State-Speichers gemäß einer Ausführungsform der vorliegenden Erfindung auf die 8 und 9 Bezug genommen.
  • Allgemein betrifft diese Ausführungsform das Überwachen von Metadaten, die in einer File-Allocation-Table (FAT) enthalten sind. Insbesondere durch Untersuchen von Clusterverknüpfungen (oder deren Fehlen) wird eine Bestimmung vorgenommen, ob den Clustern zugeordnete Daten gelöschte Daten sind.
  • Allgemein ist bei einem Dateisystem, das verwendet werden kann, um Dateien in einem Flashspeicher eines Solid-State-Speichers zu speichern, eine Speichereinheitenzuweisung definiert, die den kleinsten logischen Umfang an Plattenraum spezifiziert, der zum Aufnehmen einer Datei zugewiesen werden kann. Zum Beispiel nennt das MS-DOS-Dateisystem, das als File-Allocation-Table (FAT) bekannt ist, diese Einheit zur Speicherzuweisung einen Cluster.
  • Beim Verfahren von 8 wird der Dateieintrag zunächst in Schritt 801 geprüft und in Schritt 802 wird eine Bestimmung vorgenommen, ob der Dateieintrag [00 00 00 00] lautet. Wenn die Bestimmung in Schritt 802 positiv ist, sind die passenden Cluster nicht verknüpft und ihre Daten werden in Schritt 803 ungültig gemacht.
  • Nun wird bezüglich eines Verfahrens zum Ungültigmachen eines gelöschten Datenbereichs eines Solid-State-Speichers gemäß einer Ausführungsform der vorliegenden Erfindung auf die 10 und 11 Bezug genommen.
  • Allgemein betrifft diese Ausführungsform das Überwachen von Metadaten, die in einem New-Technology-File-System (NTFS) enthalten sind. In einem Anfangsschritt 1001 wird der Start der Master-File-Table (MFT) vom NTFS-Bootrecord geprüft. In diesem Beispiel wird die $Bitmap, die der sechste (6-te) Eintrag der MFT ist, in Schritt 1002 aufgesucht und dann wird die Bitmaptabelle in Schritt 1003 geprüft. Es wird dann in Schritt 1004 eine Bestimmung vorgenommen, ob in der Bitmaptabelle ein gelöschter Bereich vorliegt, und wenn die Antwort positiv ist, wird der passende Datenbereich ungültig gemacht.
  • Durch Ungültigmachen von Daten oder Datenbereichen, wie es oben beschrieben wurde, wird es möglich, eine Merge(Zusammenfüge)-Operation im Solid-State-Disk(SSD)-Drive vorzunehmen, ohne die ungültigen Daten zu kopieren. Außerdem können beispielsweise Speicherbereinigungssysteme effizienter gemacht werden.
  • 12 ist ein Blockdiagramm eines Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung. Wie gezeigt ist, umfasst das Computersystem ein Bussystem 10 und einen Nurlesespeicher (ROM) 11, der mit dem Bussystem 10 verbunden ist und Software (z. B. BIOS) speichert, die zum Initialisieren des Computersystems verwendet wird. Das Computersystem umfasst ebenso einen Speicher mit wahlfreiem Zugriff (RAM) 12, der als Arbeitsspeicher dient, eine Zentralverarbeitungseinheit 13 und ein Solid-State-Speichersystem 14, die alle mit dem Bussystem 10 verbunden sind. Das Solid-State-Speichersystem beinhaltet einen Solid-State-Speicher und eine Steuereinheit (siehe z. B. 1). Ebenso umfasst im Beispiel, das in 12 dargestellt ist, das Solid-State-Speichersystem einen Master-Boot-Record und ist logisch in eine Mehrzahl von Partitionen unterteilt. Wie hier in Zusammenhang mit vorhergehenden Ausführungsformen beschrieben wurde, ist die Steuereinheit des Solid-State-Speichersystems so ausgebildet, dass der Solid-State-Speicher logisch partitioniert ist, Metadaten des logisch partitionierten Solid-State-Speichers aktualisiert werden und die aktualisierten Metadaten überwacht werden, um ungültige Daten zu lokalisieren, die im Solid-State-Speichersystem gespeichert sind.

Claims (11)

  1. Verfahren zum Betreiben eines Solid-State-Speichersystems (14), umfassend: - logisches Partitionieren des Solid-State-Speichersystems (14), - Aktualisieren von Metadaten des logisch partitionierten Solid-State-Speichersystems (14) und - Überwachen der aktualisierten Metadaten, um ungültige Daten zu lokalisieren, die in dem Solid-State-Speichersystem (14) gespeichert sind, - wobei die Metadaten Speicherebene-Metadaten sind, und - wobei die Metadaten in einer Partitionstabelle enthalten sind, wobei ungültige Daten in Abhängigkeit von Änderungen der Metadaten der Partitionstabelle lokalisiert werden.
  2. Verfahren nach Anspruch 1, wobei die Partitionstabelle in einem Master-Boot-Record (MBR) enthalten ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Partitionstabelle in einer GUID-Partitionstabelle (GPT) enthalten ist.
  4. Verfahren zum Betreiben eines logisch partitionierten Solid-State-Speichersystems (14), umfassend: - Bestimmen, ob sich Partitions-Metadaten des Solid-State-Speichersystems geändert haben, und - Analysieren der Partitions-Metadaten, um ungültige Daten zu lokalisieren, die in dem Solid-State-Speichersystem gespeichert sind, wobei das Analysieren der Partitions-Metadaten umfasst, - Bestimmen, dass sich ein Dateisystemtyp einer Partition geändert hat, und - Ungültigmachen von Daten in Abhängigkeit von dem geänderten Dateisystemtyp.
  5. Verfahren nach Anspruch 4, wobei das Analysieren der Partitions-Metadaten umfasst: - Bestimmen, dass sich eine Partition geändert hat, und - Ungültigmachen von Daten in Abhängigkeit von der geänderten Partition.
  6. Verfahren nach Anspruch 4 oder 5, wobei die Partitions-Metadaten in einem Master-Boot-Record (MBR) enthalten sind.
  7. Verfahren nach Anspruch 4 oder 5, wobei die Partitions-Metadaten in einer GUID-Partitionstabelle (GPT) enthalten sind.
  8. Solid-State-Speichersystem (14) mit einem Solid-State-Speicher (1400) und einer Steuereinheit (1200), wobei die Steuereinheit (1200) dazu ausgebildet ist, den Solid-State-Speicher (1400) logisch zu partitionieren, Metadaten des logisch partitionierten Solid-State-Speichers (1400) zu aktualisieren und die aktualisierten Metadaten zu überwachen, um ungültige Daten zu lokalisieren, die in dem Solid-State-Speichersystem gespeichert sind, - wobei die Metadaten Speicherebene-Metadaten sind, und - wobei die Metadaten in einer Partitionstabelle enthalten sind, wobei ungültige Daten in Abhängigkeit von Änderungen der Metadaten der Partitionstabelle lokalisiert werden.
  9. Solid-State-Speichersystem (14) nach Anspruch 8, wobei die Partitionstabelle in einem Master-Boot-Record (MBR) enthalten ist.
  10. Solid-State-Speichersystem (14) nach Anspruch 8, wobei die Partitionstabelle in einer GUID-Partitionstabelle (GPT) enthalten ist.
  11. Computersystem, umfassend: - ein Bussystem (10), - einen Nurlesespeicher (11), der mit dem Bussystem (10) verbunden ist und Software speichert, die zum Initialisieren des Computersystems dient, - einen Speicher (12) mit wahlfreiem Zugriff, der mit dem Bussystem (10) verbunden ist und als Arbeitsspeicher dient, - eine Zentralverarbeitungseinheit (13), die mit dem Bussystem (10) verbunden ist, und - ein Solid-State-Speichersystem (14) nach einem der Ansprüche 8 bis 10, das mit dem Bussystem (10) verbunden ist.
DE102008057219.5A 2007-11-06 2008-11-06 Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem Active DE102008057219B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2007-0112791 2007-11-06
KR1020070112791A KR101404083B1 (ko) 2007-11-06 2007-11-06 반도체 디스크 및 그것의 동작 방법
US12/255,759 US8135901B2 (en) 2007-11-06 2008-10-22 Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US12/255,759 2008-10-22

Publications (2)

Publication Number Publication Date
DE102008057219A1 DE102008057219A1 (de) 2009-07-30
DE102008057219B4 true DE102008057219B4 (de) 2018-06-28

Family

ID=40589278

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008057219.5A Active DE102008057219B4 (de) 2007-11-06 2008-11-06 Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem

Country Status (5)

Country Link
US (1) US8135901B2 (de)
JP (1) JP5554489B2 (de)
KR (1) KR101404083B1 (de)
CN (1) CN101661473B (de)
DE (1) DE102008057219B4 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101716348B1 (ko) * 2010-03-16 2017-03-15 삼성전자주식회사 메모리 시스템, 그것의 동작 방법, 그리고 그것을 포함하는 컴퓨팅 시스템
US9881039B2 (en) * 2009-05-26 2018-01-30 International Business Machines Corporation Rebalancing operation using a solid state memory device
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
US20120221609A1 (en) * 2009-07-10 2012-08-30 Jaap-Jan Boor Data Storage System and Method
US8255627B2 (en) * 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US9785561B2 (en) 2010-02-17 2017-10-10 International Business Machines Corporation Integrating a flash cache into large storage systems
US8316176B1 (en) 2010-02-17 2012-11-20 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
KR101095046B1 (ko) * 2010-02-25 2011-12-20 연세대학교 산학협력단 솔리드 스테이트 디스크 및 이를 포함하는 사용자 시스템
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8700949B2 (en) 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
US8635494B2 (en) * 2010-04-30 2014-01-21 Taejin Info Tech Co., Ltd. Backup and restoration for a semiconductor storage device
CN102262591B (zh) * 2010-05-31 2014-03-19 国际商业机器公司 用于内存复制系统进行垃圾回收的方法和系统
US8667248B1 (en) 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
TWI579692B (zh) 2010-10-29 2017-04-21 三星電子股份有限公司 記憶體系統、資料儲存系統、使用者裝置及其資料管理方法
KR101893897B1 (ko) * 2010-10-29 2018-08-31 삼성전자주식회사 메모리 시스템 및 사용자 장치 그리고 그것의 데이터 관리 방법
KR101301840B1 (ko) * 2010-12-08 2013-08-29 삼성전자주식회사 비휘발성 메모리 장치의 데이터 처리 방법
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US9870232B2 (en) 2012-05-29 2018-01-16 Fujitsu Limited Extensible method and system for storage metadata
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
KR102190670B1 (ko) * 2014-03-03 2020-12-14 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US10140055B2 (en) 2015-12-21 2018-11-27 Memory Technologies Llc Ensuring that memory device actions are valid using reference values
CN106909351B (zh) * 2015-12-22 2021-04-20 中电科技(北京)有限公司 一种基于uefi固件的ext文件系统的实现方法
CN110223728A (zh) 2018-03-02 2019-09-10 深圳市时创意电子有限公司 固态硬盘的批量自动测试方法与批量自动测试装置
TWI739075B (zh) * 2019-01-03 2021-09-11 慧榮科技股份有限公司 閃存的資料寫入方法及電腦程式產品
US11199991B2 (en) 2019-01-03 2021-12-14 Silicon Motion, Inc. Method and apparatus for controlling different types of storage units
US11507298B2 (en) * 2020-08-18 2022-11-22 PetaIO Inc. Computational storage systems and methods
US20230367507A1 (en) * 2022-05-13 2023-11-16 Western Digital Technologies, Inc. Hybrid terabytes written (tbw) storage systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1554808A (en) 1925-02-26 1925-09-22 Agatha C S Gatti Attachment for automobile tail lamps
US20060020744A1 (en) 2004-07-21 2006-01-26 Sandisk Corporation Method and apparatus for maintaining data on non-volatile memory systems
US20070233941A1 (en) 2006-04-04 2007-10-04 Yang Sup Lee Method for initializing and operating flash memory file system and computer-readable medium storing related program

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671388A (en) * 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
CN1109979C (zh) 1999-01-12 2003-05-28 李增胜 计算机硬盘数据快速保护与恢复方法
KR100308874B1 (ko) 1999-11-17 2001-11-07 이채홍 하드 디스크의 조각난 데이터 복원 방법 및 이를 저장한컴퓨터가 판독 가능한 기록 매체
CN1340765A (zh) * 2000-08-29 2002-03-20 廖瑞民 使一个硬盘分割为多个完全独立分区的方法
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
JP2002318714A (ja) * 2001-04-23 2002-10-31 Casio Comput Co Ltd フラッシュメモリ最適化装置及びプログラム
KR100389206B1 (ko) * 2001-04-25 2003-06-27 주식회사 성진씨앤씨 컴퓨터 운영 시스템 보호 방법 및 장치
US7398348B2 (en) * 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
JP2006099648A (ja) * 2004-09-30 2006-04-13 Canon Inc メモリ制御装置
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
JP2006228138A (ja) * 2005-02-21 2006-08-31 Canon Inc 半導体記憶装置、記憶制御方法および情報機器
JP4384618B2 (ja) 2005-05-13 2009-12-16 株式会社日立製作所 データ記録装置、データ記録方法及びデータ管理システム
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US8161226B2 (en) * 2005-12-27 2012-04-17 Intel Corporation Methods and apparatus to share a thread to reclaim memory space in a non-volatile memory file system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1554808A (en) 1925-02-26 1925-09-22 Agatha C S Gatti Attachment for automobile tail lamps
US20060020744A1 (en) 2004-07-21 2006-01-26 Sandisk Corporation Method and apparatus for maintaining data on non-volatile memory systems
US20070233941A1 (en) 2006-04-04 2007-10-04 Yang Sup Lee Method for initializing and operating flash memory file system and computer-readable medium storing related program

Also Published As

Publication number Publication date
KR20090046567A (ko) 2009-05-11
DE102008057219A1 (de) 2009-07-30
CN101661473A (zh) 2010-03-03
US8135901B2 (en) 2012-03-13
JP2009116873A (ja) 2009-05-28
KR101404083B1 (ko) 2014-06-09
JP5554489B2 (ja) 2014-07-23
CN101661473B (zh) 2015-07-08
US20090119353A1 (en) 2009-05-07

Similar Documents

Publication Publication Date Title
DE102008057219B4 (de) Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem
DE102017113439B4 (de) Abbildungstabellen für Speichervorrichtungen
DE102020106971A1 (de) Datenschreibverwaltung im nichtflüchtigen speicher
Rho et al. {FStream}: Managing flash streams in the file system
DE112014006118B4 (de) Spekulatives Vorab-Holen von in einem Flash-Speicher gespeicherten Daten
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
US9489297B2 (en) Pregroomer for storage array
US8966205B1 (en) System data management using garbage collection and hybrid self mapping
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
US9639275B2 (en) Managing data within a storage device based on file system metadata
DE102018105427A1 (de) Beibehalten von Daten bei einer Stromabschaltung
DE102018105854A1 (de) Dynamische Größenanpassung logischer Speicherblöcke
DE112015004863T5 (de) Verfolgen der Vermischung von Schreibvorgängen und Entabbildungsbefehlen über Stromversorgungszyklen
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE102013106242A1 (de) Halbleiterlaufwerk mit Konvertierungsschicht (ETL) und Umleitung von temporären Dateien zur Verschleissminderung von Flashspeichern
DE112015004873T5 (de) Verarbeitung von Entabbildungsbefehlen zur Verbesserung der Leistungsfähigkeit und Standzeit einer Speicherungsvorrichtung
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
DE102013020269A1 (de) Umordnen des Zurückschickens für einen Host-Lesebefehl basierend auf der Zeitschätzung des Abschlusses eines Flash-Lesebefehls
DE102017104150A1 (de) Abnutzungsausgleich in Speichervorrichtungen
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE102005031525A1 (de) Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem
DE112020005787T5 (de) Verbesserte dateisystem-unterstützung für zonen-namespace-speicher
DE102019128491A1 (de) Betriebsverfahren für Open-Channel-Speichervorrichtung
DE112020006215T5 (de) Blockfamilien-basierte Fehlervermeidung für Speichervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G11C0008000000

R012 Request for examination validly filed

Effective date: 20141127

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012000000

Ipc: G11C0008000000

Effective date: 20141205

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final