-
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.