DE112010003577T5 - Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen - Google Patents

Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen Download PDF

Info

Publication number
DE112010003577T5
DE112010003577T5 DE112010003577T DE112010003577T DE112010003577T5 DE 112010003577 T5 DE112010003577 T5 DE 112010003577T5 DE 112010003577 T DE112010003577 T DE 112010003577T DE 112010003577 T DE112010003577 T DE 112010003577T DE 112010003577 T5 DE112010003577 T5 DE 112010003577T5
Authority
DE
Germany
Prior art keywords
data
semiconductor memory
memory
alternative
control logic
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.)
Ceased
Application number
DE112010003577T
Other languages
English (en)
Inventor
Evangelos S. Eleftheriou
Robert Haas
Xiaoyu Hu
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003577T5 publication Critical patent/DE112010003577T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Abstract

Es werden Verfahren und Vorrichtungen zum Verwalten von Daten in einem Datenspeichersystem (10), das eine Halbleiterspeicher-Einheit (11) und alternative Speicher (12, 13) aufweist, bereitgestellt. In einem in der Halbleiterspeicher-Einheit (11) durchgeführten internen Verwaltungsprozess wie einer Speicherbereinigung oder einem Ausgleich nachlassender Funktionsfähigkeit werden Daten identifiziert, die in der Einheit (11) zur internen Verwaltung des Halbleiterspeichers (14) verschoben werden müssen. Zumindest einige der derart identifizierten Daten werden auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) verschoben. Metadaten, welche die Position von Daten in der Halbleiterspeicher-Einheit (11) und dem alternativen Speicher (12, 13) anzeigen, werden gepflegt, um Datenbewegungen zu verfolgen.

Description

  • Diese Erfindung betrifft allgemein die Verwaltung von Daten in Halbleiterspeicher-Einheiten und mehrstufigen Datenspeichersystemen. Es werden Verfahren und eine Vorrichtung zur Verwaltung von Daten in mehrstufigen Datenspeichersystemen, darunter Halbleiterspeicher-Einheiten, bereitgestellt. Ebenfalls werden Halbleiterspeicher-Einheiten und Datenspeichersysteme, die derartige Verfahren einsetzen, bereitgestellt.
  • Ein Halbleiterspeicher ist nichtflüchtiger Speicher, der an Stelle von herkömmlichen magnetischen oder optischen Medien wie Festplatten und Bändern elektronische Schaltungen, üblicherweise in integrierten Schaltungen (ICs), zum Speichern von Daten verwendet. Halbleiterspeicher-Einheiten (SSDs, solid state storage devices), insbesondere Flash-Speichereinheiten, revolutionieren derzeit die Datenspeicherlandschaft. Dies liegt daran, dass sie eine außergewöhnliche Bandbreite bieten und ihre wahlfreie E/A-Leistung (Eingabe/Ausgabe) um mehrere Größenordnungen besser ist als die von Festplattenlaufwerken (HDDs, hard disk drives). Außerdem bieten SSDs beträchtliche Einsparungen beim Stromverbrauch, und sie sind unempfindlicher als herkömmliche Speichereinheiten, da sie keine beweglichen Teile aufweisen.
  • In Halbleiterspeicher-Einheiten wie Flash-Speichereinheiten ist es erforderlich, eine Art internen Verwaltungsprozess durchzuführen, der mit dem Verschieben von Daten innerhalb des Halbleiterspeichers einhergeht. Der Bedarf für eine derartige interne Verwaltung ergibt sich aus bestimmten Betriebseigenschaften von Halbleiterspeichern. Um die Notwendigkeit der internen Verwaltung zu erklären, konzentriert sich die folgende Beschreibung auf bestimmte Eigenschaften von Flash-Speichern auf der Grundlage von NAND-Gattern, wobei aber auch darauf hingewiesen wird, dass gleichartige Überlegungen auch für andere Arten von Halbleiterspeicher gelten.
  • Flash-Speicher sind in Einheiten von Seiten und Blöcken organisiert. Eine typische Flash-Seite ist 4 KB groß, während ein typischer Flash-Block aus 64 Flash-Seiten (also 256 KB) besteht. Lese- und Schreibvorgänge können auf der Grundlage von Seiten durchgeführt werden, während Löschvorgänge nur auf der Grundlage von Blöcken durchgeführt werden können. Daten können nur in einen Flash-Block geschrieben werden, nachdem dieser erfolgreich gelöscht wurde. Das Auslesen einer Seite aus Flash-Zellen in einen Datenpuffer innerhalb eines Flash-Chips dauert üblicherweise 15 bis 25 μs. Das Schreiben einer Seite in Flash-Zellen dauert etwa 200 μs, während das Löschen eines Flash-Blocks normalerweise etwa 2 ms dauert. Da das Löschen eines Blocks erheblich länger als ein Lese- bzw. Schreibvorgang auf einer Seite dauert, wird zur Verbesserung des Schreibdurchsatzes und der Latenzzeit allgemein ein Schreibschema angewendet, das sich ”außerhalb schreiben” (write-out-of-place) nennt. Eine gespeicherte Datenseite wird in dem Speicher nicht an der eigentlichen Stelle aktualisiert. Stattdessen wird die aktualisierte Seite auf eine andere freie Flash-Seite geschrieben, und die zugehörige alte Flash-Seite wird als ungültig markiert. Es ist dann ein interner Verwaltungsprozess nötig, um durch Auswählen eines belegten Flash-Blocks, Kopieren aller noch gültigen Datenseiten an eine andere Stelle in dem Speicher und anschließendes Löschen des Blocks freie Flash-Blöcke vorzubereiten. Dieser interne Verwaltungsprozess ist allgemein als Speicherbereinigung (garbage collection) bekannt.
  • Der Speicherbereinigungsprozess wird üblicherweise durch speziell dafür vorgesehene, auch als Flash-Steuereinheit bekannte, dem Flash-Speicher zugehörige Steuervorrichtungen durchgeführt. Die Flash-Steuereinheit verwaltet Daten in dem Flash-Speicher allgemein und steuert alle internen Verwaltungsvorgänge. Insbesondere führt die Flash-Steuereinheit eine Software-Zwischenebene aus, die ”LBA-PBA-(logische Blockadresse – physische Blockadresse) Abbildung” genannt wird (auch bekannt als ”Flash-Übersetzungsschicht” (flash translation layer, FTL) bzw. ”logische Seitenzahl-Flash-Seitenzahl-Adressenabbildung” (LPN-FPN logical page number-flash Page number address mapping)). Hierbei werden Metadaten in Form eines Adressenabbilds gepflegt, in welchem die logischen Adressen, die Datenseiten von oberen Schichten, zum Beispiel einem Dateisystem oder Host-Rechner, in einem Speichersystem zugehören, auf physische Adressen (Flash-Seitenzahlen) in dem Flash-Speicher abgebildet werden. Diese Software-Schicht verbirgt die Komplexität bezüglich des Löschens vor dem Schreiben von Flash-Speicher und unterstützt transparente Datenschreibvorgänge und -aktualisierungen ohne Eingreifen von Löschvorgängen.
  • Der Ausgleich nachlassender Funktionsfähigkeit ist ein anderer interner Verwaltungsprozess, der von Flash-Steuereinheiten durchgeführt wird. Dieser Prozess nimmt sich der nachlassenden Funktionsfähigkeit von Flash-Speichern an. Insbesondere haben Flash-Speicher eine begrenzte Anzahl an Schreib-Lösch-Zyklen bevor die volle Funktionsfähigkeit des Speichers abzunehmen beginnt. Der Ausgleich nachlassender Funktionsfähigkeit geht mit diversen Datenplatzierungs- und -verschiebungsfunktionen einher, deren Ziel es ist, Schreib-Lösch-Zyklen gleichmäßig auf alle verfügbaren Flash-Blöcke aufzuteilen, um eine ungleichmäßig nachlassende Funktionsfähigkeit zu vermeiden und so die Gesamtlebensdauer zu erhöhen. Insbesondere steuert die Funktionalität des Ausgleichs nachlassender Funktionsfähigkeit das Auswählen von Blöcken, in die neue Daten geschrieben werden sollen, entsprechend der Anzahl von Schreib-Lösch-Zyklen, sowie das Verschieben von gespeicherten Daten innerhalb des Flash-Speichers, um Blöcke mit einer niedrigen Anzahl von Zyklen freizugeben und die Funktionsverschlechterungen gleichmäßig zu verteilen.
  • Die soeben beschriebenen internen Verwaltungsfunktionen sowie andere üblicherweise von SSD-Steuereinheiten durchgeführte Prozesse führen zur so genannten ”Schreibverstärkung” (write amplification). Diese ergibt sich daraus, dass Daten intern in dem Speicher verschoben werden, so dass die Gesamtzahl an Datenschreibvorgängen im Vergleich zu der ursprünglichen Anzahl der von der Einheit empfangenen Datenschreibanforderungen höher ist. Die Schreibverstärkung ist eines der kritischsten Probleme, das die zufällige Schreibleistung und die Schreiblebensdauer in Halbleiterspeicher-Einheiten beschränkt. Um diesen Effekt zu verringern, wenden SSDs normalerweise eine Überversorgung genannte Technik an, bei der mehr Speicherplatz vorgesehen wird, als externen Systemen tatsächlich angezeigt wird. Dadurch sind SSDs vergleichsweise teuer.
  • Der Kosten-Leistungs-Kompromiss bei unterschiedlichen Datenspeichereinheiten bildet den Kern mehrstufiger Datenspeichersysteme. Mehrstufiger Speicher, auch bekannt als hierarchisches Speichermanagement (HSM), ist eine Datenspeicherungstechnik, bei der Daten automatisch zwischen verschiedenen Speichereinheiten in teureren und preiswerteren Speicherstufen bzw. -klassen verschoben werden. Mehrstufige Speichersysteme gibt es, da Hochgeschwindigkeits-Speichereinheiten wie SSDs und FC/SCSI-(fiber channel/small computer system interface)Festplattenlaufwerke (pro gespeichertem Byte) teurer sind als langsamere Einheiten wie SATA-(serial advanced technology attachment)Festplattenlaufwerke, optische Plattenlaufwerke und Magnetbandlaufwerke. Die Schlüsselidee besteht darin, Daten, auf die häufig zugegriffen wird, (”heiße Daten” genannt) in Hochgeschwindigkeits-Speichereinheiten zu speichern und Daten, auf die weniger häufig zugegriffen wird, (”kalte Daten” genannt) in langsameren Speichereinheiten zu speichern. Daten können auch von einer Einheit auf eine andere Einheit verschoben (migriert) werden, wenn ihre Zugriffsmuster sich ändern. Sequenzielle Schreibdaten, bei denen es sich um eine lange Reihe von Daten mit sequenziellen logischen Blockadressen (LBAs) handelt, in einer Schreibanforderung können vorzugsweise auf preiswertere Medien wie Festplatten oder Bänder geschrieben werden. Ein mehrstufiger Speicher kann gemäß der Granularität der Datenplatzierung und -migration in Systeme auf LUN-Ebene (logical unit number, logische Einheitennummer), Datei-Ebene und Block-Ebene kategorisiert werden. Je feiner die Granularität, desto höher die Leistung pro Einheitenkosten.
  • Die allgemeine Architektur eines zuvor vorgeschlagenen mehrstufigen Speichersystems auf Block-Ebene ist in 1 der beigefügten Zeichnungen dargestellt. Das System 1 enthält eine Flash-Speicher-SSD 2 sowie auch einen alternativen, preiswerterem Speicher. In diesem Beispiel umfasst der alternative Speicher einen Festplattenlaufwerkverbund 3 sowie optional auch ein Bandlaufwerk 4. Die SSD 2 umfasst einen Verbund von Flash-Speicher-Chips 5 und eine Flash-Steuereinheit 6, welche die verschiedenen oben erläuterten Flash-Verwaltungs-Vorgänge durchführt. Die Speichermodule 2 bis 4 sind über eine Datenübertragungsverbindung 7 mit einer Speicher-Steuereinheit 8 verbunden, die alle Datenlese- und -schreibanforderungen an das System empfängt. Die Speicher-Steuereinheit 8 verwaltet Daten in dem System allgemein und führt automatisierte Datenplatzierungs- und Datenmigrationsvorgänge durch, wie zum Beispiel das Identifizieren von heißen und kalten Daten und das Platzieren oder Migrieren von Daten in den verschiedenen Speichermedien. Die Speicher-Steuereinheit 8 pflegt ein globales Adressenabbild, um die Position von Daten in dem System sowie das umfangreiche Verschieben von Datenblöcken zwischen Speichereinheiten zu verfolgen. Die oben erläuterte Aktivität der Flash-Steuereinheit 6 ist in dieser Architektur für die Speichersteuereinheit 8 transparent.
  • Ein Aspekt der vorliegenden Erfindung stellt ein Verfahren zum Verwalten von Daten in einem Datenspeichersystem bereit, das eine Halbleiterspeicher-Einheit und alternative Speicher aufweist. Das Verfahren umfasst Folgendes:
    Identifizieren von Daten, die in der Halbleiterspeicher-Einheit für die interne Verwaltung des Halbleiterspeichers verschoben werden müssen;
    Verschieben von zumindest einigen der derart identifizierten Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers; und
    Pflegen von Metadaten, welche die Position von Daten in der Halbleiterspeicher-Einheiten und dem alternativen Speicher anzeigen.
  • Ausführungsformen dieser Erfindung stellen Datenverwaltungsverfahren zur Verwendung in Datenspeichersystemen bereit, die Halbleiterspeicher-Einheiten und alternative Speicher aufweisen, wie zum Beispiel in den oben erläuterten mehrstufigen Datenspeichersystemen. In die Erfindung verkörpernden Verfahren werden wesentliche interne Verwaltungsprozesse in der Halbleiterspeicher-Einheit als Grundlage für die Verwaltung von Datenverschiebungen zwischen verschiedenen Speichermedien verwendet. Insbesondere identifizieren derartige Prozesse, wie oben erläutert, Daten, die aus Gründen der internen Verwaltung in dem Halbleiterspeicher verschoben werden müssen. In Ausführungsformen dieser Erfindung werden zumindest einige dieser Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers verschoben. Es wird eine Art die Position von Daten in der SSD und in dem alternativen Speicher anzeigender Metadaten wie zum Beispiel ein LBA/PBA-Adressenabbild entsprechend gepflegt, um die derart verschobenen Daten zu verfolgen.
  • Diese Erfindung beruht auf der Erkenntnis, dass die Durchführung von routinemäßigen internen Verwaltungsprozessen in SSDs von Natur aus mit Datenzugriffsmustern zusammenhängt. Ausführungsformen der Erfindung können in internen Verwaltungsprozessen ”vergrabene” Informationen über Datenzugriffsmuster verwerten und dies als Grundlage für die Verwaltung von Datenverschiebungen auf Systemebene, d. h. zwischen Speichermedien, verwenden. Insbesondere gehen interne Verwaltungsprozesse in SSDs von Natur aus mit der Identifizierung von Daten einher, die im Vergleich zu anderen Daten in dem Speicher relativ statisch sind (d. h. selten aktualisiert werden). Dies kann als Grundlage für das Auswählen von auf den alternativen Speicher zu verschiebenden Daten genutzt werden, was zu einem einfacheren, leistungsfähigeren Datenverwaltungssystem führt. In hierarchischen Datenspeichersystemen stellen Ausführungsformen der Erfindung zum Beispiel die Grundlage für einfache und wirksame Datenmigrationsrichtlinien auf Systemebene bereit, wodurch die Komplexität der Ausführung verringert wird und im Vergleich zu Systemen nach dem Stand der Technik eine bessere Leistung sowie verringerte Kosten geboten werden. Außerdem kann die Identifizierung der relativ statischen Daten auf Grund der Art der internen SSD-Verwaltungsvorgänge an die Datenzugriffsmuster in dem Halbleiterspeicher insgesamt angepasst werden, insbesondere an die gespeicherte Gesamtdatenmenge und die relative Aktualisierungshäufigkeit unterschiedlicher Daten. Die Datenverwaltung auf Systemebene kann somit entsprechend angepasst werden, wodurch eine bessere Gesamtleistungsfähigkeit bereitgestellt wird. Außerdem hat die Migration von relativ statischen Daten aus dem Halbleiterspeicher erhebliche Vorteile in Bezug auf die Leistungsfähigkeit und die Lebensdauer des Halbleiterspeichers selbst, wodurch sich noch weitere Verbesserungen im Vergleich zu Systemen nach dem Stand der Technik ergeben. Insgesamt bieten Ausführungsformen der Erfindung drastisch verbesserte Datenspeicher- und -verwaltungssysteme.
  • Im Allgemeinen können unterschiedliche SSDs eine Vielfalt verschiedener interner Verwaltungsprozesse anwenden, darunter das Verschieben von Daten innerhalb des Halbleiterspeichers. Wenn ein Speicherbereinigungsprozess eingesetzt wird, wird dies jedoch vorzugsweise wie oben erläutert ausgenutzt. Somit können die Erfindung verkörpernde Verfahren das Identifizieren von in einem Speicherbereinigungsprozess in der Halbleiterspeicher-Einheit zu verschiebenden Daten und das Verschieben von zumindest einigen dieser Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers beinhalten. Gleichermaßen kann der Datenverwaltungsprozess bei Einsatz eines Ausgleichs nachlassender Funktionsfähigkeit in der SSD das Identifizieren von während des Prozesses zum Ausgleich nachlassender Funktionsfähigkeit zu verschiebenden Daten und das Verschieben von zumindest einigen dieser Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers beinhalten.
  • In besonders einfachen Ausführungsformen könnten alle in einem beliebigen internen Verwaltungsprozess zur Verschiebung identifizierten Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers verschoben werden. In anderen Ausführungsformen könnten lediglich einige dieser Daten zum Verschieben auf alternativen Speicher ausgewählt werden, z. B. in Abhängigkeit von einigen zusätzlichen Informationen über die Daten wie zusätzliche in dem System gepflegte Metadaten, die Zugriffsmuster anzeigen. Dies wird nachfolgend näher erläutert.
  • Ein zweiter Aspekt der vorliegenden Erfindung stellt eine Steuervorrichtung für eine Halbleiterspeicher-Einheit in einem alternativen Speicher aufweisenden Datenspeichersystem bereit. Die Vorrichtung umfasst Speicher und Steuerlogik, die so eingerichtet ist, dass sie:
    Daten, die in der Halbleiterspeicher-Einheit für die interne Verwaltung des Halbleiterspeichers verschoben werden müssen, identifiziert;
    das Verschieben von zumindest einigen der derart identifizierten Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers steuert; und
    Metadaten, welche die Position von Daten in der Halbleiterspeicher-Einheit und dem alternativen Speicher anzeigen, in dem Speicher pflegt.
  • Die Steuerlogik enthält vorzugsweise eine integrierte Logik, die so eingerichtet ist, dass sie die interne Verwaltung des Halbleiterspeichers durchführen kann. Somit kann die beschriebene zusätzliche Funktionalität des Steuerns des Verschiebens von Daten auf den alternativen Speicher vollständig in die SSD-Steuerungs-Grundfunktionalität in einer lokalen SSD-Steuereinheit integriert werden.
  • Die Steuervorrichtung kann vorzugsweise diverse weitere Datenplatzierungs- und -migrationsfunktionen auf Systemebene verwalten. In besonders bevorzugten Ausführungsformen kann die Steuerlogik zum Beispiel die Migration von Daten von dem alternativen Speicher zurück auf den Halbleiterspeicher und das Schreiben von sequenziellen Daten auf den alternativen Speicher an Stelle des Halbleiterspeichers steuern. Dies wird nachfolgend genauer beschrieben.
  • Der Grad der Integration der Datenplatzierungs- und -migrationsfunktionalität auf Systemebene insgesamt in eine lokale SSD-Steuereinheit kann in verschiedenen Ausführungsformen unterschiedlich sein. In bevorzugten Ausführungsformen kann die Steuervorrichtung jedoch in einer lokalen SSD-Steuereinheit realisiert werden, die ein unabhängiges, voll funktionsfähiges Datenverwaltungssystem für die Verwaltung von lokalen SSDs sowie der Datenplatzierung und -migration auf Systemebene bereitstellt.
  • Obwohl Alternativen denkbar sind, umfassen die durch die Steuervorrichtung gepflegten Metadaten vorzugsweise mindestens ein Adressenabbild, das eine Verknüpfung zwischen entsprechenden Datenblöcken zugehörigen, logischen Adressen und physischen Adressen anzeigt, welche die Datenpositionen in der Halbleiterspeicher-Einheit und dem zusätzlichen Speicher anzeigen. Die Metadaten werden zumindest für alle durch die oben beschriebenen Prozesse zwischen Speichermedien verschobenen Daten gepflegt, beinhalten jedoch üblicherweise andere Daten, je nach Integrationsgrad der Steuervorrichtung in die Grundlogik der SSD-Steuerung und dem Grad der durch die Steuervorrichtung bereitgestellten Steuerung auf Systemebene. In bevorzugten, hochintegrierten Ausführungsformen kann die Steuervorrichtung jedoch ein globales Adressenabbild pflegen, das Daten in dem gesamten Speichersystem verfolgt.
  • Ein dritter Aspekt der Erfindung stellt ein Rechnerprogramm bereit, das ein Programmcodemittel umfasst, das einen Rechner dazu veranlasst, ein Verfahren nach dem ersten Aspekt der Erfindung durchzuführen oder eine Steuervorrichtung nach dem zweiten Aspekt der Erfindung umzusetzen.
  • Es wird darauf hingewiesen, dass der Begriff ”Rechner” in seiner allgemeinsten Bedeutung verwendet wird und jede Einheit, jede Komponente und jedes System beinhaltet, das eine Datenverarbeitungsfähigkeit zur Ausführung eines Rechnerprogramms aufweist. Außerdem kann ein die Erfindung verkörperndes Rechnerprogramm ein unabhängiges Programm darstellen oder ein Element eines größeren Programms sein und zum Beispiel physisch auf einem durch einen Rechner lesbaren Medium wie einer Festplatte oder durch elektronische Übertragung zum Laden auf einen Rechner bereitgestellt werden. Das Programmcodemittel des Rechnerprogramms kann jeden beliebigen Ausdruck in jeder beliebigen Sprache, jedem beliebigen Code bzw. jeder beliebigen Schreibweise einer Reihe von Anweisungen umfassen, die einen Rechner zur Durchführung des betreffenden Verfahrens veranlassen, entweder direkt oder nach (a) Umwandlung in eine andere Sprache, einen anderen Code oder eine andere Schreibweise und/oder (b) Reproduktion in einer anderen Materialform.
  • Ein vierter Aspekt der vorliegenden Erfindung stellt eine Halbleiterspeicher-Einheiten für ein alternative Speicher aufweisendes Datenspeichersystem bereit, wobei die Einheit Halbleiterspeicher und eine Steuervorrichtung gemäß dem zweiten Aspekt der Erfindung umfasst.
  • Ein fünfter Aspekt der vorliegenden Erfindung stellt ein Datenspeichersystem bereit, das eine Halbleiterspeicher-Einheit nach dem vierten Aspekt der Erfindung und alternative Speicher sowie eine Datenübertragungsverbindung für den Datenaustausch zwischen der Halbleiterspeicher-Einheit und dem alternativen Speicher umfasst.
  • Im Allgemeinen können, wenn hierin Eigenschaften in Bezug auf eine Ausführungsform eines Aspekts der Erfindung beschrieben werden, entsprechende Eigenschaften auch in Ausführungsformen eines anderen Aspekts der Erfindung bereitgestellt werden.
  • Bevorzugte Ausführungsformen der Erfindung werden nun beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen:
  • 1 die Architektur eines zuvor vorgeschlagenen Datenspeichersystems;
  • 2 die Architektur eines die Erfindung verkörpernden Datenspeichersystems;
  • 3 ein schematisches Blockschaltbild einer Flash-Steuereinheit in dem System aus 2;
  • 4 die Datenplatzierungsfunktionalität der Flash-Steuereinheit aus 3;
  • 5 einen Datenverwaltungsprozess, der als Teil von internen Verwaltungsvorgängen in der Flash-Steuereinheit durchgeführt wird;
  • 6 eine Abwandlung des Prozesses aus 5;
  • 7 den Betrieb der Flash-Steuereinheit als Reaktion auf eine Leseanforderung; und
  • 8 ein Beispiel von durch die Flash-Steuereinheit gepflegten Metadaten.
  • 2 stellt die allgemeine Architektur eines Beispiels eines die Erfindung verkörpernden Datenspeichersystems dar. Das System 10 ist ein mehrstufiges Speichersystem mit einer weitgehend gleichartigen Speicherstruktur wie das System 1 aus 1, wobei es eine SSD 11 und einen alternativen, durch einen Festplattenlaufwerkverbund 12 und ein Bandlaufwerkmodul 13 bereitgestellten Speicher aufweist. Die SSD 11 weist einen Verbund von Flash-Speicher-Chips 14 sowie eine Flash-Steuereinheit 15 auf. Der Festplattenlaufwerkverbund 12 umfasst eine Vielzahl von Festplattenlaufwerken. Zusätzlich zu der üblichen internen Steuerfunktionalität in einzelnen Festplattenlaufwerken kann der Verbund von Festplattenlaufwerken optional eine durch die Strichlinien in der Figur angedeutete Array-Steuereinheit 16 enthalten. Eine derartige Array-Steuereinheit kann auf bekannte Art und Weise in dem Verbund 12 Steuerfunktionen auf Verbundebene durchführen wie zum Beispiel eine RAID-Verwaltung (redundant array of independent devices, redundante Anordnung unabhängiger Einheiten). Eine Verbindungsleitung 17 stellt eine Datenübertragungsverbindung zwischen den hierarchischen Speichermodulen 11 bis 13 bereit.
  • Im Gegensatz zur Architektur nach dem Stand der Technik werden alle Daten-Schreib-/Lese-Anforderungen von das System 10 verwendenden Host-Rechnern direkt an das SSD 11 geleitet und von der Flash-Steuereinheit 15 empfangen. Die Flash-Steuereinheit 15 wird in 3 ausführlicher gezeigt. Dieses schematische Blockschaltbild zeigt die Hauptelemente der Flash-Steuereinheit 15, die mit den zu beschreibenden Datenverwaltungsprozessen einhergeht. Die Steuereinheit 15 beinhaltet die Steuerlogik 20, eine Host-Rechner-Schnittstelle (I/F) 21 zum Austauschen von Daten mit System-Host-Rechnern, und eine Flash-Verbindungs-Schnittstelle 22 zum Übertragen von Daten an den Verbund von Flash-Chips 14 über Verbindungsleitungen. Die Flash-Steuereinheit 15 beinhaltet ferner eine Schnittstellenschaltung 23 zum Austauschen von Daten mit den alternativen Speichereinheiten, hier dem Festplattenlaufwerkverbund 12 und dem Bandlaufwerk 13, über die Verbindungsleitung 17. Die Steuerlogik 20 steuert den Betrieb der SSD 11 und führt die üblichen Steuerfunktionen für Lesen/Schreiben sowie interne Verwaltungsvorgänge durch, wobei diese Prozesse, wie nachfolgend ausführlich beschrieben, abgewandelt werden. Insbesondere führt die Steuerlogik 20 einen abgewandelten Speicherbereinigungsprozess bzw. Prozess zum Ausgleich nachlassender Funktionsfähigkeit sowie Datenplatzierungs- und -migrationsvorgänge auf Systemebene durch, die nachfolgend beschrieben werden. Andere Routinefunktionen der Flash-Steuereinheit wie Flash-Verbindungs-Verwaltung, Schreibvorgangsverringerung und Defektblockverwaltung können auf übliche Weise durchgeführt werden und müssen hier nicht beschrieben werden. Im Allgemeinen könnte die Steuerlogik 20 in Hardware, Software oder einer Kombination daraus realisiert werden. In diesem Beispiel ist die Steuerlogik jedoch durch Software realisiert, die einen Prozessor der Steuereinheit 15 so konfiguriert, dass er die beschriebenen Funktionen ausführt. Geeignete Software erschließt sich einem Fachmann aus der hierin enthaltenen Beschreibung. Die Flash-Steuereinheit 15 beinhaltet ferner den Speicher 24 zum Speichern verschiedener Metadaten, die, wie nachfolgend beschrieben, im Betrieb der Steuereinheit verwendet werden.
  • Im Betrieb des Systems 10 empfängt die Flash-Steuereinheit 15 Lese-/Schreib-Anforderungen von Host-Rechnern über die Host-Rechner-Schnittstelle 21. Die Steuerlogik 20 steuert das Speichern und Abrufen von Daten in dem lokalen Flash-Speicher 14 und über die Speicher-Schnittstelle 23 auch in den alternativen Speichereinheiten 12, 13 als Reaktion auf Anforderungen von einem Host-Rechner. Außerdem setzt die Steuerlogik eine systemweite Datenplatzierungs- und -migrationsrichtlinie um, welche die erstmalige Speicherung von Daten in dem System sowie das nachfolgende Verschieben von Daten zwischen Speichermedien steuert, um System-Ressourcen wirksam einzusetzen. Zur Verfolgung der Positionen von Daten in dem System enthalten die in dem Speicher 24 gespeicherten Metadaten ein Adressenabbild, das die Verknüpfung zwischen entsprechenden Datenblöcken zugehörigen, logischen Adressen und physischen Adressen anzeigt, welche die Datenpositionen in dem Flash-Speicher 14 und dem alternativen Speicher 12, 13 anzeigen. Insbesondere wird das übliche protokollstrukturierte, Daten innerhalb des Flash-Speichers 14 verfolgende LBA/PBA-Abbild auf Systemebene ausgeweitet, um Daten in den Speichermodulen 11 bis 13 zu verfolgen. Dieses Abbild auf Systemebene wird durch die Steuerlogik 20 in dem Speicher 24 als Teil des Datenverwaltungsprozesses insgesamt gepflegt. Die protokollstrukturierte Form dieses Abbilds bedeutet, dass gleichzeitig in dem Speichersystem vorhandene alte und aktualisierte Versionen von Daten in dem Abbild verknüpft sind, wodurch entsprechende interne Verwaltungsprozesse alte Daten nach Bedarf überwachen und löschen können. Ein bestimmtes Beispiel eines Adressenabbilds für dieses System wird nachfolgend ausführlich beschrieben. In diesem Beispiel verwaltet die Steuerlogik 20 auch das Speichern von Sicherungs- bzw. Archivkopien von Daten in dem System 10. Derartige Kopien können gemäß Host-Rechner-Anweisungen erforderlich sein und/oder gemäß einer durch die Steuerlogik 20 durchgesetzten allgemeinen Richtlinie gepflegt werden. In dieser Ausführungsform beinhalten daher die durch die Steuerlogik 20 gepflegten Metadaten ein Abbild der Sicherungs-/Archivkopie, welche die Position der Sicherungs- bzw. Archivdaten in dem System 10 anzeigt.
  • Der Betrieb der Flash-Steuereinheit 15 als Reaktion auf eine Schreibanforderung von einem Host-Rechner ist in dem Ablaufplan in 4 angegeben. Diese stellt Schlüsselschritte des durch die Steuerlogik 20 umgesetzten Datenplatzierungsprozesses dar. Bei Empfang einer Schreibanforderung in Schritt 30 überprüft die Steuerlogik 20 zunächst, ob die Anforderung bestimmte Speicheranweisungen für die Schreibdaten angibt. Host-Rechner könnten zum Beispiel angeben, dass Daten auf einem bestimmten Medium gespeichert oder dass Daten in dem System archiviert oder gesichert werden sollen. Wenn für die Schreibdaten eine Datenplatzierung festgelegt ist, wie bei Entscheidungsblock 31 durch ein ”Ja” (J) angegeben, fährt der Prozess mit Schritt 32 fort. Hier führt die Steuerlogik 20 die Schreibanforderung aus und steuert das Schreiben von Daten auf das entsprechende Medium 14, 12, 13 über die Flash-Schnittstelle 22 oder die Speicher-Schnittstelle 23. Als Nächstes stellt die Steuerlogik in Schritt 33 fest, ob durch eine Host-Rechner-Anweisung oder vorgegeben Richtlinie eine Sicherungskopie der Daten benötigt wird, und, falls ja, kehrt der Prozess zu Schritt 32 zurück, um das Schreiben der Sicherungskopie auszuführen. Das hier ausgewählte Medium kann, wie nachfolgend erläutert, durch eine Richtlinie festgelegt werden. Nach Ausführung des Schreibens der Sicherungskopie kehrt der Prozess zu Schritt 33 zurück und fährt dieses Mal (über Zweig ”Nein” (N) in Schritt 33) mit Schritt 34 fort. Hier aktualisiert die Steuerlogik 20 die Metadaten in dem Speicher 24 und trägt die Position der geschriebenen Daten in dem Adressenabbild bzw. den Adressenabbildern entsprechend ein.
  • Zurück zu Schritt 31: wenn hier keine bestimmte Platzierung für Schreibdaten festgelegt ist (N in diesem Entscheidungsblock), fährt der Prozess mit Schritt 35 fort, wo die Steuerlogik überprüft, ob die Schreibanforderung sequenzielle Daten betrifft. Sequenzielle Daten können, wie einem Fachmann bekannt ist, auf verschiedenste Arten und Weisen erkannt werden. In diesem Beispiel vergleicht die Steuerlogik 20 jedoch die Anforderungsgröße für sequenziell adressierte Schreibdaten mit einem vorbestimmten Schwellwert Tseq. Das heißt, dass bei Schreibdaten mit einer sequenziellen Reihe von logischen Blockadressen (LBAs) die Daten für sequenziell erachtet werden, wenn die Datenmenge Tseq überschreitet. In diesem Fall (J in Entscheidungsblock 35) fährt der Prozess mit Schritt 36 fort, wo die Logik 20 das Schreiben der sequenziellen Daten auf den Festplattenlaufwerkverbund 12 steuert. Der Prozess fährt dann mit Schritt 33 fort. Zurück zu Entscheidungsblock 35: bei nichtsequenziellen Schreibdaten (N in diesem Schritt) fährt der Prozess mit Schritt 37 fort, wo die Steuerlogik die Daten in den Flash-Speicher 14 schreibt, woraufhin der Prozess wiederum mit Schritt 33 fortfährt. Nachdem Daten in Schritt 36 bzw. 37 auf Festplatte oder in Flash-Speicher geschrieben wurden, können in Schritt 33 bei Bedarf Sicherungskopien geschrieben werden, und die Metadaten werden in Schritt 34 wie zuvor aktualisiert, damit sie die Position aller geschriebenen Daten widerspiegeln. Der Datenplatzierungsprozess ist dann abgeschlossen.
  • Aus 4 ist ersichtlich, dass die Flash-Steuereinheit 15 eine Datenplatzierungsrichtlinie auf Systemebene umsetzt. Insbesondere werden in diesem Beispiel sequenzielle Daten auf Festplatte geschrieben, wohingegen nichtsequenzielle Daten in Flash-Speicher geschrieben werden, es sei denn, Host-Rechner-Anweisungen oder andere Richtlinien schreiben Anderweitiges vor. Zusätzlich zu dieser Datenplatzierungsfunktionalität verwaltet die Flash-Steuereinheit 15 auch die Migration von Daten zwischen Medien. Der Prozess der Datenmigration von Flash-Speicher 14 zu alternativen Speichern ist eng verbunden mit den wesentlichen internen Verwaltungsvorgängen, die von der Flash-Steuereinheit 15 durchgeführt werden. Dies ist in dem Ablaufplan in 5 dargestellt, der die Schlüsselschritte des von der Flash-Steuereinheit 15 zum internen Verwalten des Flash-Speichers 14 durchgeführten Speicherbereinigungsprozesses zeigt. Wenn in Schritt 40 in 5 der Speicherbereinigungsprozess initiiert wird, wählt die Steuerlogik 20, wie in Schritt 41 angegeben ist, zunächst einen Flash-Block zum Löschen aus. Diese Auswahl wird auf übliche Weise durchgeführt, üblicherweise durch Identifizieren des Blocks mit den meisten ungültigen Seiten. Als Nächstes stellt die Steuerlogik 20 in Schritt 42 fest, ob die erste Seite in dem Block noch gültig ist. Falls dies nicht der Fall ist, fährt der Prozess mit Schritt 43 fort, wo die Steuerlogik entscheidet, ob es weitere Seiten in dem Block gibt. Mit dieser Annahme kehrt der Prozess für die nächste Seite zu Schritt 42 zurück. Wenn in Schritt 42 eine gültige Seite entdeckt wird, fährt der Prozess mit Schritt 44 fort. Hier verschiebt die Steuerlogik 20 die Seite auf eine Festplatte, anstatt die Seite auf eine andere Position in dem Flash-Speicher 14 zu kopieren. Somit sendet die Steuerlogik 20 die Seite in Schritt 44 über die Schnittstelle 23, damit sie in den Festplattenlaufwerkverbund 12 geschrieben wird. In Schritt 45 aktualisiert die Steuerlogik dann die Metadaten in dem Speicher 24 und trägt die neue Position der verschobenen Seite ein. Der Prozess fährt dann mit Schritt 43 fort und macht mit der nächsten Flash-Seite weiter. Wenn alle Flash-Seiten in dem Block behandelt wurden (N in Schritt 43), ist der Speicherbereinigungsprozess für den aktuellen Block abgeschlossen. Dieser Prozess kann dann nach Bedarf für weitere Blöcke wiederholt werden. Sobald für einen Block die Speicherbereinigung durchgeführt wurde, kann dieser Block anschließend gelöscht werden, damit nach Bedarf neue Daten in diesen geschrieben werden können. Das Löschen könnte sofort oder zu jeder beliebigen Zeit später durchgeführt werden, wenn es erforderlich ist, Flash-Speicher für neue Daten verfügbar zu machen. Auf jeden Fall aktualisiert die Steuerlogik 20 die Metadaten in dem Speicher 24 durch Löschen der alten Flash-Speicheradresse von auf eine Festplatte verschobenen Seiten, wenn ein Block gelöscht wird.
  • Durch die Verwendung der Speicherbereinigung als Grundlage für die Migration von Daten von Flash-Speichern auf eine Festplatte nutzt die Flash-Steuereinheit 15 die Informationen über Datenzugriffsmuster, die dem Speicherbereinigungsprozess von Natur aus zugehören. Insbesondere ist die Art des Prozesses derart, dass während des Prozesses als zu verschiebend identifizierte Daten (gültige Seiten) im Vergleich zu anderen Daten in dem Flash-Speicher wie neueren Versionen ungültiger Seiten in demselben Block tendenziell relativ statisch sind (selten aktualisiert werden). Die Flash-Steuereinheit 15 nutzt diese Tatsache und verschiebt die derart identifizierten (vergleichsweise) statischen Daten auf eine Festplatte an Stelle des Flash-Speichers. Außerdem ist die Identifizierung statischer Daten durch diesen Prozess von Natur aus anpassungsfähig an die Datenzugriffsmuster in dem Flash-Speicher insgesamt, da früher oder später eine Speicherbereinigung durchgeführt wird, wenn die Gesamtspeicherlast zu- oder abnimmt. Folglich stehen Datenseiten wirksam in Wettbewerb zueinander, um in dem Flash-Speicher zu bleiben, wobei dieser Prozess an Gesamtnutzungsmuster angepasst werden kann.
  • In dem einfachen Prozess von 5 werden alle während der Speicherbereinigung als zu verschiebend identifizierte Daten auf eine Festplatte an Stelle des Flash-Speichers 14 verschoben. Eine mögliche Abwandlung dieses Prozesses wird jedoch in 6 gezeigt. Es wird eine Alternative zu Schritt 44 in 5 dargestellt. In dem abgewandelten Prozess werden in Schritt 42 identifizierte gültige Datenseiten anfangs innerhalb des Flash-Speichers 14 verschoben, und die Steuerlogik 20 pflegt einen Zähler, der angibt, wie häufig eine bestimmte Datenseite derart verschoben wurde. Diese Verschiebungszählwerte können als zusätzliche Metadaten in dem Speicher 24 gepflegt werden. Unter Bezugnahme auf 6 vergleicht die Steuerlogik 20 nach Identifizierung einer gültigen Seite in Schritt 42 aus 4 den Verschiebungszählwert für diese Seite mit einem vorgegebenen Zählerschwellwert Tc. Wenn der Verschiebungszählwert den Schwellwert nicht überschreitet (N in Entscheidungsschritt 50), wird die Seite in Schritt 51 einfach an eine andere Position in dem Flash-Speicher 14 kopiert. Der Verschiebungszählwert für diese Seite wird dann in Schritt 52 aktualisiert, und der Prozess fährt mit Schritt 45 aus 5 fort. Kehren wir zu Schritt 50 zurück, wenn der Verschiebungszählwert den Schwellwert dort überschreitet (J), wird die Seite in Schritt 53 auf eine Festplatte kopiert. Die Steuerlogik 20 stellt dann den Verschiebungszähler für diese Seite in Schritt 54 auf Null, und der Prozess wird wie zuvor fortgesetzt. Während dieser abgewandelte Prozess mit dem Pflegen von Verschiebungszählern als zusätzliche Metadaten einhergeht, gestattet der Zählerschwellwert Tc eine Einschränkung der Migration auf die Situationen, in denen Daten wiederholt verschoben wurden, was eher der Fall ist, wenn Nutzungsmuster komplex (heavy) sind und der Nutzungsgrad von Flash-Speichern durch Migration von statischen Daten verbessert werden kann. Der Schwellwert Tc könnte im Betrieb sogar dynamisch als Reaktion auf Nutzungsmuster angepasst werden, z. B. durch eine Leistungsüberwachung auf höherer Ebene in der Steuerlogik 20.
  • Die Flash-Steuereinheit 15 kann ebenfalls den Datenmigrationsprozess aus 5 in Verbindung mit dem internen Prozess zum Ausgleich nachlassender Funktionsfähigkeit in der SSD 11 durchführen. Insbesondere geht die normale Funktionalität des Ausgleichs nachlassender Funktionsfähigkeit der Steuerlogik 20 mit dem Identifizieren von Flash-Blöcken mit vergleichsweise niedrigen Schreib-Lösch-Zyklus-Zählerwerten und dem Verschieben von derart identifizierten Daten einher, um Blöcke zum Wiederbeschreiben freizugeben, wodurch sich die Zykluszählwerte einpendeln und die Funktionsverschlechterung vermindert wird. Wiederum sind durch diesen internen Verwaltungsprozess als zu verschiebend identifizierte Daten im Vergleich zu anderen Daten relativ statisch, und dies wird für die durch die Flash-Steuereinheit 15 durchgeführte Datenmigration auf Systemebene genutzt. Somit kann der Prozess aus 5, wie in Schritt 40 angegeben, während der Speicherbereinigung identisch durchgeführt werden, wobei die Blockauswahl in Schritt 41 üblicherweise den Block mit dem niedrigsten Zykluszählwert auswählt. Wiederum können die Identifizierung und Verschiebung von vergleichsweise statischen Daten in diesem Prozess an die Gesamtnutzungsmuster in dem Flash-Speicher 14 angepasst werden. Außerdem könnte die Abwandlung von 6 auch für den Ausgleich nachlassender Funktionsfähigkeit eingesetzt werden, wobei der Prozess aus 5 jedoch aus Gründen der Einfachheit bevorzugt wird.
  • Neben dem Unterscheiden von statischen und dynamischen Daten, wie oben beschrieben, kann die durch die Flash-Steuereinheit 15 umgesetzte Datenmigrationsrichtlinie ferner zwischen heißen und kalten Daten gemäß der Lesezugriffshäufigkeit unterscheiden. Insbesondere handelt es sich hier bei kalten Daten um Daten, die (vergleichsweise) selten gelesen oder aktualisiert werden, während es sich bei statischen Daten um in diesem System vergleichsweise selten aktualisierte Daten handelt. Diese Unterscheidung wird durch die Handhabung von Leseanforderungen durch die Flash-Steuereinheit 15 realisiert. Die Schlüsselschritte dieses Prozesses sind in dem Ablaufplan in 7 angegeben. Als Reaktion auf eine in Schritt 60 empfangene Leseanforderung prüft die Steuerlogik 20 zunächst mit Hilfe des Adressenabbilds in dem Speicher 24, ob die angeforderten Daten derzeit in dem Flash-Speicher 14 gespeichert sind. Falls dies so ist (J in Entscheidungsschritt 61), werden in Schritt 62 lediglich Daten ausgelesen, und der Prozess endet. Wenn sich die benötigten Daten in Schritt 61 nicht in dem Flash-Speicher befinden, dann steuert die Steuerlogik in Schritt 63 das Lesen der Daten von der entsprechenden Adressposition in dem Festplattenlaufwerkverbund 12 bzw. dem Bandlaufwerk 13, wie jeweils zutreffend. Als Nächstes entscheidet die Steuerlogik in Entscheidungsschritt 64, ob die Leseanforderung sequenzielle Daten betrifft. Dies kann zum Beispiel wiederum durch Vergleichen der Anforderungsgröße mit dem Schwellwert Tseq wie zuvor durchgeführt werden. Bei Identifizierung als sequenzielle Daten an diesem Punkt (J in Schritt 64) ist keine weitere Aktion erforderlich. Wenn die Lesedaten jedoch nicht für sequenziell erachtet werden, kopiert die Steuerlogik 20 in Schritt 65 die Lesedaten zurück in den Flash-Speicher 14. In Schritt 66 wird das Adressenabbild in dem Speicher 24 aktualisiert, um die neuen Datenpositionen widerzuspiegeln, und der Leseprozess ist abgeschlossen.
  • Der soeben beschriebene Leseprozess bewirkt, dass Daten, die durch die vorher beschriebenen internen Verwaltungsprozesse von Flash-Speicher auf eine Festplatte migriert wurden, als Reaktion auf eine Leseanforderung für diese Daten zurück in den Flash-Speicher verschoben werden. Statische, Nur-Lese-Daten werden folglich periodisch zurück in den Flash-Speicher geschrieben, während wahrhaft kalte Daten, die nicht gelesen werden, in dem alternativen Speicher bleiben. Da es normalerweise einige Zeit dauert, bis eine Seite für statisch erachtet wird, nachdem sie in Flash-Speicher geschrieben wurde, bleibt eine Seite, die häufig nur gelesen wird, für einige Zeit in dem Flash-Speicher, bevor sie auf eine Festplatte migriert wird. Sequenzielle Daten verbleiben unabhängig von der Lesehäufigkeit tendenziell auf der Festplatte oder dem Band. Auf diese Art werden die unterschiedlichen Eigenschaften der verschiedenen Speichermedien für unterschiedliche Datenkategorien wirksam genutzt.
  • 8 ist eine schematische Darstellung des in diesem Beispiel durch die Steuerlogik 20 als Metadaten gepflegten Adressenabbilds. Die linke Tabelle in dieser Figur stellt das aktive LBA/PBA-Abbild 70 dar, während die rechte Tabelle das Sicherungs-/Archivkopie-Abbild 71 darstellt. Für dieses Beispiel nehmen wir an, dass das Bandlaufwerk 13 hauptsächlich für das Archivieren von Daten und für Sicherungskopien von anderweitig auf Festplatten oder Bändern gespeicherten Daten verwendet wird. Wenn Sicherungskopien von im Flash-Speicher vorhandenen Daten benötigt werden, werden diese in dem Festplattenlaufwerkverbund 12 gespeichert. Sieht man sich die erste Zeile in dem Adressenabbild an, so zeigt das aktive Abbild 70 an, dass die Daten mit der logischen Blockadresse 0×0000...0000 derzeit in dem Flash-Speicher unter der Adresse F5-B7-245 gespeichert sind (wobei dieses Format die 45ste Seite (P) in dem siebenten Block (B) auf dem fünften Flash-Chip (F) angibt). Eine alte Version dieser Daten ist ebenfalls in dem Flash-Speicher unter der Adresse F56-B4-P12 gespeichert. Das Abbild 71 gibt an, dass eine Sicherungskopie dieser Daten unter der Adresse D5-LBN00000 gespeichert ist (wobei dieses Format die 00000-te logische Blocknummer (LBN). in dem fünften Festplattenlaufwerk (D) des Festplattenverbunds 12 angibt). Die zweite Zeile gibt an, dass die Daten mit LBA 0×0000...0001 in dem Flash-Speicher unter der Adresse F9-B0-P63 gespeichert sind, wobei es eine Sicherungskopie auf einer Festplatte unter D5-LBN00001 gibt. Die vierte Zeile gibt an, dass LBA 0×0000...0003 derzeit auf einer Festplatte unter D5-LBN34789 gespeichert ist, wobei eine ältere Version dieser Daten noch immer auf einer Festplatte unter D0-LBN389 gespeichert ist (z. B. nach einer Aktualisierung dieser Daten auf einer Festplatte in Hinzufügen-Betriebsart (append mode)). Die nächste Zeile zeigt an, dass LBA 0×0000...0004 aktuell auf einem Band unter T5-C6-LBN57683 gespeichert ist (wobei dieses Format die 57683ste logische Blocknummer in der sechsten Kassette (C) des fünften Bandlaufwerks (m) angibt). Eine Sicherungskopie ist unter T7-C0-LBN00000 gespeichert. LBA 0×0000...0005 ist ohne Sicherungskopie unter T7-C0-LBN00001 archiviert. In der vorletzten Zeile ist LBA 0×FFFF...FFFE aktuell in dem Flash-Speicher gespeichert, wobei eine ältere Version auf Festplatte gespeichert ist, z. B. nach dem Kopieren von migrierten Daten zurück in den Flash-Speicher in Schritt 65 in 7.
  • Es ist ersichtlich, dass es durch die protokollstrukturierten Adressenabbildtabellen 70, 71 möglich ist, Datenverschiebungen in dem gesamten Speichersystem 10 zu verfolgen, wobei alte und neue Versionen derselben Daten in dem aktiven Abbild 70 zugehörig sind, um nachfolgende interne Verwaltungsprozesse wie die Speicherbereinigung zu ermöglichen. Man wird jedoch verstehen, dass verschiedene andere Metadaten durch die Steuerlogik 20 gepflegt werden könnten. Die Metadaten könnten zum Beispiel weitere Abbilder wie ein Replikationsabbild zur Aufzeichnung von Positionen von replizierten Daten beinhalten, wenn z. B. aus Sicherheitsgründen mehrere Kopien gespeichert werden. Es könnten auch weitere Metadaten wie Einzelheiten über Zugriffsmuster, Zeiten, Besitzer, Zugriffssteuerungslisten (access control lists, ACLs) usw. gepflegt werden, wie ein Fachmann verstehen wird.
  • Es wird klar, dass die Flash-Steuereinheit 15 eine vollintegrierte Steuereinheit für die Verwaltung von lokalen SSDs sowie von Daten auf Systemebene bereitstellt. Die Datenmigrationsrichtlinie auf Systemebene nutzt die eigenen internen Flash-Verwaltungsprozesse und schafft Synergien zwischen der Flash-Verwaltungsfunktionalität und der Datenverwaltungsfunktionalität auf Systemebene. Hierdurch werden eine sehr leistungsfähige Systemarchitektur und ein sehr leistungsfähiger Datenverwaltungsprozess bereitgestellt, der einfacher, schneller und preiswerter als Systeme nach dem Stand der Technik ist. Das System kann heiße/kalte, statische/dynamische sowie sequenzielle/zufällige Daten auf einfache und äußerst wirksame Art und Weise verwalten, die an die Datenzugriffsmuster insgesamt angepasst werden kann. Außerdem erhöht die automatische Migration statischer Daten aus dem Flash-Speicher erheblich die Leistungsfähigkeit und die Lebensdauer des Flash-Speichers selbst. Ein weiterer Vorteil liegt darin, dass Sicherungs- und Archivkopien im Gegensatz zu dem normalen, auf Dateiebene funktionierenden Prozess auf Blockebene bearbeitet werden können. Hierdurch ergeben sich eine schnellere Ausführung und eine schnellere Wiederherstellung.
  • Natürlich können diverse Änderungen und Abwandlungen an den oben beschriebenen bevorzugten Ausführungsformen vorgenommen werden. Einige Beispiele sind nachfolgend beschrieben.
  • Obwohl die Flash-Steuereinheit 15 eine voll funktionsfähige, unabhängige, Datenverwaltungs-Steuereinheit auf Systemebene bereitstellt, können zusätzliche Techniken zur Unterscheidung von heißen/kalten bzw. und/oder statischen/dynamischen Daten und zur entsprechenden Platzierung/Migration von Daten mit dem beschriebenen System kombiniert werden. Diese Funktionalität könnte in die Flash-Steuereinheit 15 integriert werden oder auf der Ebene einer Speicher-Steuereinheit 8 in der Architektur in 1 realisiert werden. Das erste Erkennen von heißen/kalten Daten könnte zum Beispiel in einer Speicher-Steuereinheit 8 ausgeführt werden, wobei kalte Daten auf einer Festplatte oder einem Band geschrieben werden, ohne zuerst in den Flash-Speicher geschrieben zu werden. Die Genauigkeit des Erkennens von heißen/kalten Daten wäre natürlich entscheidend, um hier eine Verbesserung zu erzielen.
  • Die Richtlinie zur Datenplatzierung/-migration wird in dem beschriebenen System mit feinster Granularität auf Block-(Flash-Seiten-)Ebene durchgesetzt. Ein Fachmann wird jedoch verstehen, dass das System leicht abgewandelt werden kann, um variable Blockgrößen bis hin zur Dateiebene zu verarbeiten, wobei das Adressenabbild die Granularitätsebene widerspiegelt.
  • Der alternative Speicher kann allgemein durch eine oder mehrere Speichereinheiten bereitgestellt werden. Diese können von den bestimmten oben beschriebenen Beispielen abweichen und könnten eine andere Halbleiterspeicher-Einheit beinhalten.
  • Während das SSD 11 oben als UND-Flash-Speichereinheit (NAND flash memory decice) angenommen wird, können auch andere Arten von SSDs die Erfindung verkörpernde Techniken einsetzen. Beispiele dafür sind NICHT-ODER-Flash-Speichereinheiten (NOR flash memory devices) bzw. Phasenwechsel-Speichereinheiten. Derartige alternative Einheiten können andere interne Verwaltungsprozesse als die beschriebenen anwenden, wobei jedoch im Allgemeinen jeder beliebige interne Verwaltungsprozess, der mit dem Verschieben von Daten in dem Halbleiterspeicher einhergeht, auf die oben beschriebene Art und Weise genutzt werden kann. Es sei auch bemerkt, dass das System, obwohl das SSD 11 die oberste Stufe des obigen Speichers bereitstellt, auch eine oder mehrere höhere Speicherstufen enthalten könnte.
  • Man wird verstehen, dass an den beschriebenen beispielhaften Ausführungsformen viele andere Änderungen und Abwandlungen vorgenommen werden können, ohne von dem Umfang der Erfindung abzuweichen.

Claims (16)

  1. Verfahren zum Verwalten von Daten in einem Datenspeichersystem (10), das eine Halbleiterspeicher-Einheit (11) und alternative Speicher (12, 13) aufweist, wobei das Verfahren Folgendes umfasst: Identifizieren von Daten, die in der Halbleiterspeicher-Einheit (11) für die interne Verwaltung des Halbleiterspeichers (14) verschoben werden müssen; Verschieben von zumindest einigen der derart identifizierten Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14); und Pflegen von Metadaten, welche die Position von Daten in der Halbleiterspeicher-Einheit (11) und dem alternativen Speicher (12, 13) anzeigen.
  2. Verfahren nach Anspruch 1, welches das Identifizieren von in einem Speicherbereinigungsprozess in der Halbleiterspeicher-Einheit (11) zu verschiebenden Daten und das Verschieben von zumindest einigen dieser Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) beinhaltet.
  3. Verfahren nach einem der vorhergehenden Ansprüche, welches das Identifizieren von während eines Prozesses zum Ausgleich nachlassender Funktionsfähigkeit in der Halbleiterspeicher-Einheit (11) zu verschiebenden Daten und das Verschieben von zumindest einigen dieser Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) beinhaltet.
  4. Steuervorrichtung (15) für eine Halbleiterspeicher-Einheit (11) in einem Datenspeichersystem (10), das einen alternativen Speicher (12, 13) aufweist, wobei die Vorrichtung (15) einen Speicher (24) und eine Steuerlogik (20) umfasst, die so eingerichtet ist, dass sie: Daten, die in der Halbleiterspeicher-Einheit (11) für die interne Verwaltung des Halbleiterspeichers (14) verschoben werden müssen, identifiziert; das Verschieben von zumindest einigen der derart identifizierten Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) steuert; und Metadaten, welche die Position von Daten in der Halbleiterspeicher-Einheit (11) und dem alternativen Speicher (12, 13) anzeigen, in dem Speicher (24) pflegt.
  5. Vorrichtung nach Anspruch 4, bei der die Steuerlogik (20) so eingerichtet ist, dass sie in einer Speicherbereinigungsprozess in dem Halbleiterspeicher-Einheiten (11) zu verschiebende Daten identifiziert und das Verschieben von zumindest einigen dieser Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) steuert.
  6. Vorrichtung nach Anspruch 5, bei der die Steuerlogik (20) so eingerichtet ist, dass sie das Verschieben aller in dem Speicherbereinigungsprozess zu verschiebender Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) steuert.
  7. Vorrichtung nach Anspruch 5, bei der: die Steuerlogik (20) so eingerichtet ist, dass sie für in der Halbleiterspeicher-Einheit (11) während des Speicherbereinigungsprozesses verschobene Daten einen Zähler für die Häufigkeit, mit der Daten derartig verschoben wurden, pflegt; und die Steuerlogik (20) so eingerichtet ist, dass sie bei Identifizierung von während des Speicherbereinigungsprozesses zu verschiebenden Daten das Verschieben dieser Daten auf den alternativen Speicher (12, 13) steuert, wenn der Zählwert für diese Daten einen Schwellwert überschreitet.
  8. Vorrichtung nach einem der Ansprüche 4 bis 7, bei der die Steuerlogik (20) so eingerichtet ist, dass sie während eines Prozesses zum Ausgleich nachlassender Funktionsfähigkeit in der Halbleiterspeicher-Einheit (11) zu verschiebende Daten identifiziert und das Verschieben von zumindest einigen dieser Daten auf den alternativen Speicher (12, 13) an Stelle des Halbleiterspeichers (14) steuert.
  9. Vorrichtung nach einem der Ansprüche 4 bis 8, bei der die Steuerlogik (20) eine integrierte Logik enthält, die so eingerichtet ist, dass sie die interne Verwaltung des Halbleiterspeichers (14) durchführen kann.
  10. Vorrichtung nach einem der Ansprüche 4 bis 9, bei der die Steuerlogik (20) so eingerichtet ist, dass sie: Leseanforderungen zum Lesen von Daten empfängt; und als Reaktion auf eine Leseanforderung für von dem Halbleiterspeicher (14) auf den alternativen Speicher (12, 13) verschobene Daten das Schreiben dieser Daten zurück auf den Halbleiterspeicher (14) steuert.
  11. Vorrichtung nach einem der Ansprüche 4 bis 10, bei der die Steuerlogik (20) so eingerichtet ist, dass sie: Schreibanforderungen zum Schreiben von Daten empfängt; feststellt, ob eine empfangene Schreibanforderung das Schreiben sequenzieller Daten betrifft; falls nicht, das Schreiben der Daten auf den Halbleiterspeicher (14) steuert, und falls ja, das Schreiben der Daten auf den alternativen Speicher (12, 13) steuert.
  12. Vorrichtung nach einem der Ansprüche 4 bis 11, bei der: der Halbleiterspeicher einen Flash-Speicher (14) umfasst, und/oder der alternative Speicher zumindest einen Festplattenspeicher (12) und/oder einen Bandlaufwerkspeicher (13) umfasst.
  13. Vorrichtung nach einem der Ansprüche 4 bis 12, bei der die Metadaten mindestens ein Adressenabbild, das eine Verknüpfung zwischen entsprechenden Datenblöcken zugehörigen, logischen Adressen und physischen Adressen anzeigt, die Datenpositionen in der Halbleiterspeicher Einheit (11) und dem alternativen Speicher (12, 13) anzeigen.
  14. Rechnerprogramm, das ein Programmcodemittel umfasst, das einen Rechner dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 3 durchzuführen oder eine Steuervorrichtung (15) nach einem der Ansprüche 4 bis 13 zu realisieren.
  15. Halbleiterspeicher-Einheit (11) für ein Datenspeichersystem (10), das alternative Speicher (12, 13) aufweist, wobei die Einheit (11) einen Halbleiterspeicher (14) und eine Steuervorrichtung (15), nach einem der Ansprüche 4 bis 13, umfasst.
  16. Datenspeichersystem (10), das eine Halbleiterspeicher-Einheit (11) und alternative Speicher (12, 13) nach Anspruch 15 sowie eine Datenübertragungsverbindung (17) für den Datenaustausch zwischen der Halbleiterspeicher Einheiten (11) und dem alternativen Speicher (12, 13) umfasst.
DE112010003577T 2009-09-08 2010-09-07 Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen Ceased DE112010003577T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP09169726 2009-09-08
EP09169726.8 2009-09-08
PCT/IB2010/054028 WO2011030290A1 (en) 2009-09-08 2010-09-07 Data management in solid-state storage devices and tiered storage systems

Publications (1)

Publication Number Publication Date
DE112010003577T5 true DE112010003577T5 (de) 2012-06-21

Family

ID=43088076

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003577T Ceased DE112010003577T5 (de) 2009-09-08 2010-09-07 Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen

Country Status (4)

Country Link
US (2) US20120166749A1 (de)
CN (1) CN102576293B (de)
DE (1) DE112010003577T5 (de)
WO (1) WO2011030290A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013112368A1 (de) * 2013-11-11 2015-05-13 Fujitsu Technology Solutions Intellectual Property Gmbh Bandspeicherlaufwerk

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US9483398B2 (en) * 2010-11-29 2016-11-01 International Business Machines Corporation Partitioning data for storage in a dispersed storage network
US20130111104A1 (en) * 2011-10-31 2013-05-02 Moon J. Kim Asynchronous data shift and backup between asymmetric data sources
US8892828B2 (en) 2011-11-18 2014-11-18 Micron Technology, Inc. Apparatuses and methods for storing validity masks and operating apparatuses
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
KR20130102816A (ko) * 2012-03-08 2013-09-23 삼성전자주식회사 데이터 액세스 메모리 및 그것의 데이터 손실 방지 방법
US8639665B2 (en) * 2012-04-04 2014-01-28 International Business Machines Corporation Hybrid backup and restore of very large file system using metadata image backup and traditional backup
US9703500B2 (en) 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
CN102831088A (zh) * 2012-07-27 2012-12-19 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据迁移方法和装置
US9015413B2 (en) 2012-10-02 2015-04-21 International Business Machines Corporation Management of data using inheritable attributes
US8959281B1 (en) * 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
CN103049349B (zh) * 2012-11-29 2016-02-24 记忆科技(深圳)有限公司 基于分层存储的快照方法及系统
CN103927265B (zh) * 2013-01-04 2017-09-01 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
US10073851B2 (en) * 2013-01-08 2018-09-11 Apple Inc. Fast new file creation cache
US20140229654A1 (en) * 2013-02-08 2014-08-14 Seagate Technology Llc Garbage Collection with Demotion of Valid Data to a Lower Memory Tier
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9262313B2 (en) 2013-03-14 2016-02-16 Microsoft Technology Licensing, Llc Provisioning in heterogenic volume of multiple tiers
US9141626B2 (en) 2013-03-14 2015-09-22 Microsoft Technology Licensing, Llc Volume having tiers of different storage traits
US9952969B1 (en) * 2013-03-14 2018-04-24 EMC IP Holding Company LLC Managing data storage
US9116904B2 (en) 2013-03-14 2015-08-25 Microsoft Technology Licensing, Llc File system operation on multi-tiered volume
US9524300B2 (en) 2013-03-14 2016-12-20 Microsoft Technology Licensing, Llc Heterogenic volume generation and use system
US9971796B2 (en) * 2013-04-25 2018-05-15 Amazon Technologies, Inc. Object storage using multiple dimensions of object information
US9092159B1 (en) * 2013-04-30 2015-07-28 Emc Corporation Object classification and identification from raw data
JP2014235677A (ja) * 2013-06-05 2014-12-15 株式会社東芝 データ記憶装置およびデータ記憶制御方法
US20190042405A1 (en) * 2013-06-21 2019-02-07 Western Digital Technologies, Inc. Storing data based on writing frequency in data storage systems
US9645920B2 (en) * 2013-06-25 2017-05-09 Marvell World Trade Ltd. Adaptive cache memory controller
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US20150039825A1 (en) * 2013-08-02 2015-02-05 Seagate Technology Llc Federated Tiering Management
US9311252B2 (en) 2013-08-26 2016-04-12 Globalfoundries Inc. Hierarchical storage for LSM-based NoSQL stores
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
CN104516678B (zh) 2013-09-29 2017-09-26 国际商业机器公司 用于数据存储的方法和设备
US9298389B2 (en) 2013-10-28 2016-03-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Operating a memory management controller
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US9229640B2 (en) * 2013-11-15 2016-01-05 Microsoft Technology Licensing, Llc Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table
CN104679661B (zh) * 2013-11-27 2019-12-10 阿里巴巴集团控股有限公司 混合存储的控制方法及混合存储系统
CN103631538B (zh) 2013-12-05 2017-04-05 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
US9928166B2 (en) 2013-12-24 2018-03-27 International Business Machines Corporation Detecting hot spots through flash memory management table snapshots
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
WO2015109128A1 (en) * 2014-01-16 2015-07-23 Pure Storage, Inc. Data replacement based on data properties and data retention in a tiered storage device system
JP2015135620A (ja) * 2014-01-17 2015-07-27 株式会社東芝 記憶装置、及びデータの記憶方法
US10331457B2 (en) 2014-01-22 2019-06-25 Hewlett-Packard Development Company, L.P. Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9448742B2 (en) * 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
CN104951242B (zh) * 2014-03-28 2018-05-01 伊姆西公司 用于在存储阵列之间自动重定位数据的方法和装置
BR112016024412B1 (pt) * 2014-04-22 2022-10-18 Huawei Technologies Co., Ltd Método de gerenciamento de arquivos e sistema de arquivos
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) * 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9658781B2 (en) 2014-11-19 2017-05-23 International Business Machines Corporation Tier based data file management
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9696913B1 (en) * 2015-04-13 2017-07-04 Cohesity, Inc. Tier-optimized write scheme
KR102397582B1 (ko) * 2015-06-22 2022-05-13 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 이의 작동 방법
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10496277B1 (en) * 2015-12-30 2019-12-03 EMC IP Holding Company LLC Method, apparatus and computer program product for storing data storage metrics
KR102652293B1 (ko) * 2016-03-03 2024-03-29 에스케이하이닉스 주식회사 메모리 관리방법
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
CN105959720B (zh) * 2016-04-28 2018-08-31 东莞市华睿电子科技有限公司 一种视频流数据处理方法
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US10459658B2 (en) * 2016-06-23 2019-10-29 Seagate Technology Llc Hybrid data storage device with embedded command queuing
US10628045B2 (en) * 2016-06-23 2020-04-21 Seagate Technology Llc Internal data transfer management in a hybrid data storage device
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10540095B1 (en) * 2016-08-12 2020-01-21 Pure Storage, Inc. Efficient garbage collection for stable data
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10437800B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US10437799B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access
US11126544B2 (en) * 2016-12-14 2021-09-21 Via Technologies, Inc. Method and apparatus for efficient garbage collection based on access probability of data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10891201B1 (en) * 2017-04-27 2021-01-12 EMC IP Holding Company LLC Dynamic rule based model for long term retention
US11321402B2 (en) * 2017-05-05 2022-05-03 Microsoft Technology Licensing, Llc. Index storage across heterogenous storage devices
US10705767B2 (en) * 2017-07-20 2020-07-07 International Business Machines Corporation Optimizing user satisfaction when training a cognitive hierarchical storage-management system
US10572407B2 (en) * 2017-08-11 2020-02-25 Western Digital Technologies, Inc. Hybrid data storage array
US10908940B1 (en) 2018-02-26 2021-02-02 Amazon Technologies, Inc. Dynamically managed virtual server system
CN110471788B (zh) * 2018-05-08 2024-03-15 美光科技公司 异步功率损耗影响的数据结构
CN108920107B (zh) * 2018-07-13 2022-02-01 深圳忆联信息系统有限公司 筛选冷数据的方法、装置、计算机设备及存储介质
CN108984124B (zh) * 2018-07-13 2022-03-25 深圳忆联信息系统有限公司 减少写放大的方法、装置、计算机设备及存储介质
US10809934B2 (en) * 2018-12-11 2020-10-20 Intel Corporation NAND direct access horizontal queue
TWI692955B (zh) * 2019-01-16 2020-05-01 香港商希瑞科技股份有限公司 伺服器及相關的電腦程式產品
US10877683B2 (en) 2019-04-09 2020-12-29 International Business Machines Corporation Tiered storage optimization and migration
CN110531927B (zh) * 2019-08-06 2023-05-09 深圳大普微电子科技有限公司 一种基于块分级的垃圾回收方法及非易失性的存储设备
CN112799585A (zh) * 2019-11-14 2021-05-14 百度在线网络技术(北京)有限公司 数据处理方法、装置、电子设备及可读存储介质
US11106580B2 (en) 2020-01-27 2021-08-31 Hewlett Packard Enterprise Development Lp Deduplication system threshold based on an amount of wear of a storage device
US20220171713A1 (en) * 2020-11-30 2022-06-02 Micron Technology, Inc. Temperature-aware data management in memory sub-systems
WO2023061569A1 (en) * 2021-10-13 2023-04-20 Huawei Technologies Co., Ltd. Smart defragmentation of a data storage system
CN115951846B (zh) * 2023-03-15 2023-06-13 苏州浪潮智能科技有限公司 数据写入方法、装置、设备及介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7788427B1 (en) * 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
WO2006026645A2 (en) * 2004-08-30 2006-03-09 Silicon Storage Technology, Inc. Systems and methods for providing nonvolatile memory management in wireless phones
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
KR100801015B1 (ko) * 2006-08-30 2008-02-04 삼성전자주식회사 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8099554B1 (en) * 2007-12-31 2012-01-17 Emc Corporation System and method for flash-based data caching
US8271515B2 (en) * 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
CN101436152B (zh) * 2008-12-02 2013-01-23 成都市华为赛门铁克科技有限公司 一种数据备份的方法和装置
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013112368A1 (de) * 2013-11-11 2015-05-13 Fujitsu Technology Solutions Intellectual Property Gmbh Bandspeicherlaufwerk

Also Published As

Publication number Publication date
US20120290779A1 (en) 2012-11-15
WO2011030290A1 (en) 2011-03-17
CN102576293B (zh) 2015-08-26
US20120166749A1 (en) 2012-06-28
CN102576293A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
DE112010003577T5 (de) Datenverwaltung in Halbleiterspeicher-Einheiten und mehrstufigen Speichersystemen
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112010004969B4 (de) Hybrides Speicherteilsystem und Verfahren zum Verwalten eines solchen
DE60035151T2 (de) Hardware-Anordnung zur Verwaltung von Cachespeicherstrukturen in einem Datenspeichersystem
DE102008057219B4 (de) Verfahren zum Betreiben eines Solid-State-Speichersystems, Solid-State-Speichersystem und Computersystem
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE69839126T2 (de) Verschiebung aufeinander folgender sektoren innerhalb eines datenblocks in einem flash-massenspeicher
DE60025749T2 (de) Dateisystemabbildübertragung zwischen ungleichen dateisystemen
DE60319407T2 (de) Verfolgen der am häufigsten gelöschten blöcke eines nichtflüchtigen speichersystems
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE60213867T2 (de) Vorrichtung zur verwaltung von datenreplikation
DE60217883T2 (de) Verfahren zum schreiben von daten in einen nicht-flüchtigen speicher
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE102009031125A1 (de) Nand-Fehlerbehandlung
DE102005063250A1 (de) Datenspeicherungssteuersystem, Speicher- und Rechnersystem und Betriebsverfahren
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112015004873T5 (de) Verarbeitung von Entabbildungsbefehlen zur Verbesserung der Leistungsfähigkeit und Standzeit einer Speicherungsvorrichtung
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE112016004527T5 (de) Implementieren eines Hardware-Beschleunigers für das Management eines Speicher-Schreibcachespeichers
DE112013006655T5 (de) Speichervorrichtung und Verfahren zum Steuern der Speichervorrichtung
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

Effective date: 20120712

R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final