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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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 - Die
US 2007/0233941 A1 - 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 von3 enthaltenen Partitionsrecord darstellt, -
5 eine Tabelle mit Partitionstypen und zugehörigen ID-Werten, -
6 und7 ein Flussbild bzw. ein schematisches Diagramm zum Beschreiben eines Verfahrens zum Lokalisieren eines ungültigen Datenbereichs gemäß einer Ausführungsform der vorliegenden Erfindung, -
8 und9 ein Flussbild bzw. ein schematisches Diagramm zum Beschreiben eines Verfahrens zum Lokalisieren eines ungültigen Datenbereichs gemäß einer Ausführungsform der vorliegenden Erfindung, -
10 und11 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 SSD1000 dieses Beispiels eine SSD-Steuereinheit1200 und ein nichtflüchtiges Speichermedium1400 . - Die SSD-Steuereinheit
1200 umfasst eine erste und eine zweite Schnittstelle1210 und1230 , eine Steuereinheit1200 und einen Speicher1240 . - 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 Schnittstelle1210 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 Speichermedium1400 . Insbesondere wird die zweite Schnittstelle1230 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 Schnittstelle1230 möglich sind, weshalb eine ausführliche Beschreibung hierzu unterbleiben kann. - Die Steuereinheit
1220 und der Speicher1240 sind in Wirkverbindung zwischen die erste und zweite Schnittstelle1210 und1230 eingeschleift und dienen gemeinsam zum Steuern/Verwalten des Stroms von Daten zwischen der Hosteinrichtung (nicht gezeigt) und dem nichtflüchtigen Speichermedium1400 . Der Speicher1240 kann beispielsweise eine Speichereinrichtung vom DRAM-Typ sein und die Steuereinheit1220 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öffentlichung2006 -0152981 zu finden, deren Inhalt hiermit durch Bezugnahme zum Bestandteil der Beschreibung gemacht wird. Die von der Steuereinheit1220 (und dem Speicher1240 ) 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 Speichermedium1400 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 Speichermedien1400 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 NVM1420 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 NVM1410 und der langsame NVM1420 aus dem gleichen Speichertyp gebildet sein (z. B. SLC oder MLC oder PRAM), wobei die Betriebsgeschwindigkeit durch feingranuliertes Mapping beim schnellen NVM1410 und grobgranuliertes Mapping beim langsamen NVM1420 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 NVM1420 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 NVM1410 statistisch gesehen höher als eine Schreibfrequenz von Daten im langsamen NVM1420 . Ebenso ist aufgrund der Natur der jeweils zu speichernden Daten die Speicherkapazität des langsamen NVM1420 typischerweise viel höher als die des schnellen NVM1410 . 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. Januar2008 eingereichtenUS-Patentanmeldung Nr. 12/015,548 -
2 stellt ein Beispiel der logischen Partitionierung des nichtflüchtigen Speichermediums1400 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 in2 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 in3 dargestellten MBR dar. In dem Beispiel des IBM-Partitionstabellenstandards sind vier (4 ) der in4 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 Speicher1400 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-Speicher1400 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 und7 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 und602 von6 wird der MBR-Adressenbereich überwacht, um zu bestimmen, ob auf eine MBR-Adresse zugegriffen wurde. Beispiele von MBR, primären Partitionen und Partitionsrecord sind in7 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 Schritt604 von6 konfiguriert. Dann werden in Schritt605 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 und9 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 Schritt801 geprüft und in Schritt802 wird eine Bestimmung vorgenommen, ob der Dateieintrag [00 00 00 00] lautet. Wenn die Bestimmung in Schritt802 positiv ist, sind die passenden Cluster nicht verknüpft und ihre Daten werden in Schritt803 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 und11 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 Schritt1002 aufgesucht und dann wird die Bitmaptabelle in Schritt1003 geprüft. Es wird dann in Schritt1004 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 Bussystem10 und einen Nurlesespeicher (ROM)11 , der mit dem Bussystem10 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 Zentralverarbeitungseinheit13 und ein Solid-State-Speichersystem14 , die alle mit dem Bussystem10 verbunden sind. Das Solid-State-Speichersystem beinhaltet einen Solid-State-Speicher und eine Steuereinheit (siehe z. B.1 ). Ebenso umfasst im Beispiel, das in12 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)
- 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.
- Verfahren nach
Anspruch 1 , wobei die Partitionstabelle in einem Master-Boot-Record (MBR) enthalten ist. - Verfahren nach
Anspruch 1 oder2 , wobei die Partitionstabelle in einer GUID-Partitionstabelle (GPT) enthalten ist. - 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.
- 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. - Verfahren nach
Anspruch 4 oder5 , wobei die Partitions-Metadaten in einem Master-Boot-Record (MBR) enthalten sind. - Verfahren nach
Anspruch 4 oder5 , wobei die Partitions-Metadaten in einer GUID-Partitionstabelle (GPT) enthalten sind. - 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.
- Solid-State-Speichersystem (14) nach
Anspruch 8 , wobei die Partitionstabelle in einem Master-Boot-Record (MBR) enthalten ist. - Solid-State-Speichersystem (14) nach
Anspruch 8 , wobei die Partitionstabelle in einer GUID-Partitionstabelle (GPT) enthalten ist. - 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 bis10 , das mit dem Bussystem (10) verbunden ist.
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)
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)
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)
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 |
-
2007
- 2007-11-06 KR KR1020070112791A patent/KR101404083B1/ko active IP Right Grant
-
2008
- 2008-10-22 US US12/255,759 patent/US8135901B2/en active Active
- 2008-10-31 JP JP2008282231A patent/JP5554489B2/ja active Active
- 2008-11-06 DE DE102008057219.5A patent/DE102008057219B4/de active Active
- 2008-11-06 CN CN200810154763.6A patent/CN101661473B/zh active Active
Patent Citations (3)
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 |