-
Ausführungsformen des erfinderischen Konzepts betreffen Halbleiterspeichervorrichtungen, und insbesondere Halbleiterspeichervorrichtungen, die Adressabbildungstechniken verwenden. Ausführungsformen des erfinderischen Konzepts betreffen auch Datenschreibverfahren, die in Halbleiterspeichervorrichtungen unter Verwendung solcher Adressabbildungstechniken durchgeführt werden. Noch weitere Ausführungsformen des erfinderischen Konzepts betreffen Benutzervorrichtungen, die solche Halbleiterspeichervorrichtungen und/oder Datenschreibverfahren beinhalten.
-
Halbleiterspeichervorrichtungen können in ihrer Funktionsweise als flüchtig oder nichtflüchtig charakterisiert werden. Flüchtige Speichervorrichtungen führen Lese-/Schreiboperationen in der Regel bei hoher Geschwindigkeit aus, verlieren gespeicherte Daten jedoch bei Fehlen einer angelegten Energie. Hingegen behalten nichtflüchtige Speichervorrichtungen gespeicherte Daten bei Fehlen einer angelegten Energie. Dementsprechend werden nichtflüchtige Speichervorrichtungen zum Speichern von Daten verwendet, die ungeachtet der Energieversorgungsbedingungen behalten werden müssen. Insbesondere zeichnen sich in der breiten Klasse von nichtflüchtigen Speichervorrichtungen sogenannte Flash-Speichervorrichtungen im Vergleich zu anderen Arten von elektrisch löschbaren programmierbaren Nur-Lese-Speichern EEPROMs (Electrically Erasable Programmable Read-Only Memory) durch eine hohe Speicherzellenintegrationsdichte aus. Daher haben sich Flash-Speichervorrichtungen als besonders nützlich erwiesen, wenn sie in Benutzervorrichtungen und Systeme integriert werden, die eine Massendatenspeicherung erfordern (z. B. Verwendung als Hilfsspeichervorrichtungen).
-
Derzeitige Flash-Speichervorrichtungen arbeiten gemäß einer definierten Löscheinheit (d. h., einer Datenblockgröße, die in einer Löschoperation gelöscht wird) und einer definierten Schreibeinheit (d. h., einer Datenblockgröße, die in einer Schreib- oder Programmieroperation geschrieben oder programmiert wird). Eine Differenz in der Blockgröße zwischen der Löscheinheit und der Schreibeinheit macht in der Regel die Verwendung eines speziellen Softwaretools notwendig, das allgemein als Flash-Übersetzungsschicht oder FTL (Flash Translation Layer) bezeichnet wird.
-
Die FTL ist im Wesentlichen ein Adressabbildungsschema, das eine gegebene Adresse (z. B. eine logische Adresse), die in einer Domäne definiert ist, in eine zugehörige Adresse (z. B. eine physikalische Adresse), die in einer anderen Domäne definiert ist, umwandelt. Auf diese Weise übersetzt die FTL in üblicher Anwendung Adressentypen über Domänengrenzen. Zum Beispiel kann eine logische Adresse (LA), die von einem Host (z. B. einer Steuereinheit, einem Prozessor oder einer hochwertigen Anwendung) definiert ist, in eine zugehörige physikalische Adresse (PA), die von einer Anordnung von Speicherzellen in einer Flash-Speichervorrichtung definiert ist, hin und wieder zurück gewandelt werden. Daher wandelt die FTL entsprechende, jedoch korrespondierende, Adressen zwischen einer Hostdomäne und einer Flash-Speichervorrichtungsdomäne.
-
Eine Adressenabbildung kann unter Verwendung von Seitenabbildung, Blockabbildung oder Hybridabbildung erreicht werden. Zur Seitenabbildung wird eine Seitenabbildungstabelle verwendet. Das heißt, eine Seitenabbildungstabelle kann dazu verwendet werden, eine seitenweise Abbildungsoperation zwischen logischen Seitenadressen und zugehörigen physikalischen Seitenadressen durchzuführen.
-
Zur Blockabbildung wird eine Blockabbildungstabelle verwendet. Das heißt, die Blockabbildungstabelle kann dazu verwendet werden, eine blockweise Abbildungsoperation zwischen logischen Blockadressen und zugehörigen physikalischen Blockadressen durchzuführen.
-
Hybride Abbildungsverfahren verwenden im Wesentlichen sowohl Seitenabbildungstechniken wie Blockabbildungstechniken.
-
Ein Speicherblock beinhaltet typischerweise mehrere Seiten. Der Umfang einer zur Seitenabbildung verwendeten Seitenabbildungstabelle ist daher um zehn- oder hundertfach größer als eine analoge Abbildungstabelle, die zur Blockabbildung eingesetzt wird. Daher erfordert eine Seitenabbildungstabelle viel mehr Speicherplatz als eine Blockabbildungstabelle.
-
Ein Speicherblock ist jedoch ziemlich groß und die Seitenorte in jedem Block sind festgelegt, trotz häufiger Aktualisierungen (Updates) der Seiten. Aus diesem Grund erfordert eine Blockabbildung die Verwendung vieler Merge-Operationen, um eine ausreichende Verfügbarkeit von Speicherplatz zu gewährleisten.
-
Der Erfindung liegt die technische Aufgabe zugrunde, ein Adressabbildungsverfahren, eine Datenspeichervorrichtung und eine Benutzervorrichtung, die die Effizienz von Merge-Operationen erhöhen, zur Verfügung zu stellen.
-
Die Erfindung löst diese Aufgabe dadurch, dass ein Adressabbildungsverfahren mit den Merkmalen des Anspruch 1 oder 8, eine Datenspeichervorrichtung mit den Merkmalen des Anspruch 11 und eine Benutzervorrichtung mit den Merkmalen des Anspruch 18 zur Verfügung gestellt wird.
-
Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben, deren Wortlaut hiermit durch Bezugnahme zum Inhalt dieser Beschreibung gemacht wird, um unnötige Textwiederholungen zu vermeiden.
-
Ein Aspekt von Ausführungsformen des erfinderischen Konzepts ist darauf gerichtet, ein Adressabbildungsverfahren für eine Datenspeichervorrichtung unter Verwendung einer Hybridabbildung zur Verfügung zu stellen, wobei das Adressabbildungsverfahren umfasst: Bestimmen, ob Schreibdaten mindestens einen supersequentiellen Block (SSB) aufweisen, und wenn die Schreibdaten mindestens einen SSB aufweisen, Verwenden eines Blockabbildungsmodus zum Abbilden einer logischen Adresse, die Schreibdaten in dem mindestens einen SSB zugeordnet ist, auf eine zugehörige physikalische Adresse, wobei ein Seitenabbildungsmodus verwendet wird, um eine logische Adresse, die einem verbleibenden Teil der Schreibdaten ausgenommen die Schreibdaten in dem mindestens einen SSB zugeordnet ist, auf eine zugehörige physikalische Adresse abzubilden.
-
Ein anderer Aspekt von Ausführungsformen des erfinderischen Konzepts ist darauf gerichtet, ein Adressabbildungsverfahren für ein System mit einem Host und einer Datenspeichervorrichtung unter Verwendung eines hybriden Abbildungsschemas zur Verfügung zu stellen, wobei das Adressabbildungsverfahren umfasst: Kommunizieren eines Schreibbefehls von dem Host an die Datenspeichervorrichtung, wobei der Schreibbefehl Schreibdaten und eine logische Adresse für die Schreibdaten beinhaltet, Bestimmen, ob die Schreibdaten mindestens einen supersequentiellen Block (SSB) umfassen, Auswählen eines Blockabbildungsmodus zum Abbilden eines ersten Teils der logischen Adresse, die den Schreibdaten in dem mindestens einen SSB zugeordnet ist, auf eine zugehörige physikalische Adresse und Auswählen eines Seitenabbildungsmodus zum Abbilden eines zweiten Teils der logischen Adresse, die einem Teil der Schreibdaten außer den Schreibdaten in dem mindestens einem SSB zugeordnet ist, auf eine zugehörige physikalische Adresse.
-
Ein anderer Aspekt von Ausführungsformen des erfinderischen Konzepts ist darauf gerichtet, eine Datenspeichervorrichtung zur Verfügung zu stellen, die umfasst: einen Pufferspeicher, der dazu ausgebildet ist, extern bereitgestellte Schreibdaten mit einer logischen Adresse temporär zu speichern, eine nichtflüchtige Speichervorrichtung, die dazu ausgebildet ist, die Schreibdaten zu speichern, und eine Speichersteuereinheit, die dazu ausgebildet ist, die logische Adresse der Schreibdaten auf eine physikalische Adresse der nichtflüchtigen Speichervorrichtung abzubilden, wobei die Speichersteuereinheit weiter dazu ausgebildet ist, einen Blockabbildungsmodus zum Abbilden eines ersten Teils der logischen Adresse, die Schreibdaten in dem mindestens einen supersequentiellen Block (SSB) zugeordnet ist, auf eine zugehörige physikalische Adresse auszuwählen, und einen Seitenabbildungsmodus zum Abbilden eines zweiten Teils der logischen Adresse, die einem Teil der Schreibdaten außer den Schreibdaten in dem mindestens einen SSB zugeordnet ist, auf eine zugehörige physikalische Adresse auszuwählen.
-
Ein anderer Aspekt von Ausführungsformen des erfinderischen Konzepts ist darauf gerichtet, eine Benutzervorrichtung zur Verfügung zu stellen, die umfasst: einen Host, der dazu ausgebildet ist, eine Adressabbildungsmodusindikation und eine logische Adresse zu erzeugen, die dazu verwendet werden, Schreibdaten in eine nichtflüchtige Speichervorrichtung zu programmieren, und eine Datenspeichervorrichtung, die dazu ausgebildet ist, einen Abbildungsmodus aus einer Mehrzahl von Abbildungsmodi gemäß der Adressabbildungsmodusindikation auszuwählen und die logische Adresse auf eine zugehörige physikalische Adresse der nichtflüchtigen Speichervorrichtung gemäß dem ausgewählten Abbildungsmodus aus der Mehrzahl von Abbildungsmodi abzubilden.
-
Vorteilhafte Ausführungsformen der Erfindung, wie sie nachfolgend ausführlich beschrieben werden, sind in den Zeichnungen dargestellt, in denen:
-
1 eine Prinzipskizze zeigt, die eine hierarchische Softwarestruktur gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
2 ein Blockdiagramm zeigt, das eine Datenspeichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
3 eine Prinzipskizze zeigt, die die Softwarestruktur von 1 genauer darstellt.
-
4 ein Schaubild zeigt, das beispielhafte Verbindungen zwischen einer Speichersteuereinheit und nichtflüchtigen Speichervorrichtungen darstellt.
-
5 eine Prinzipskizze zeigt, die Verschränkungstechniken für Daten gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
6 eine Prinzipskizze zeigt, die eine mögliche Beziehung zwischen einer logischen Adresse und einem supersequentiellen Block darstellt.
-
7 ein Systemblockdiagramm zeigt, das einen Ansatz zum Bestimmen eines Adressabbildungsmodus für eine Pufferschicht darstellt.
-
8 eine Prinzipskizze zeigt, die mögliche Beziehungen zwischen einer logischen Adresse für sequentielle Daten und einem supersequentiellen Block darstellt.
-
9 und 10 Schaubilder zeigen, die Adressabbildungsschemata gemäß einiger Ausführungsformen des erfinderischen Konzepts darstellen.
-
11 ein Flussbild zeigt, das ein Adressabbildungsverfahren gemäß einer Ausführungsform des erfinderischen Konzepts zusammenfassend darstellt.
-
12 ein Blockdiagramm einer Benutzervorrichtung zeigt, die eine Datenspeichervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
13 ein Schaubild zeigt, das ein mögliches Format für eine Schreibanfrage darstellt, die von einem Host an eine Datenspeichervorrichtung übertragen wird.
-
14 ein Blockdiagramm zeigt, das eine Softwareschichtstruktur für die Benutzervorrichtung von 12 darstellt.
-
15 ein Flussbild zeigt, das zusammengefasst ein Adressabbildungsverfahren gemäß einer anderen Ausführungsform des erfinderischen Konzepts darstellt.
-
16 ein Blockdiagramm zeigt, das ein Festkörperlaufwerk(SSD)-System gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
17 ein Blockdiagramm zeigt, das ein Speichersystem gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
18 ein Blockdiagramm zeigt, das ein Computersystem gemäß einer Ausführungsform des erfinderischen Konzepts darstellt.
-
Es versteht sich, dass, wenn ein Element oder eine Schicht als ”auf”, ”verbunden mit”, ”gekoppelt mit” oder ”angrenzend an” einem anderen Element oder einer Schicht bezeichnet ist, es (sie) direkt auf, verbunden mit, gekoppelt mit oder angrenzend an dem anderen Element oder der Schicht angeordnet sein kann oder dazwischen liegende Elemente oder Schichten vorhanden sein können. Wenn hingegen ein Element als ”direkt auf”, ”direkt verbunden mit”, ”direkt gekoppelt mit” oder ”unmittelbar angrenzend an” einem anderen Element oder einer Schicht bezeichnet ist, sind keine dazwischen liegenden Elemente oder Schichten vorhanden.
-
Nachfolgend werden einige Ausführungsformen des erfinderischen Konzepts beschrieben, wobei eine oder mehrere Flash-Speichereinrichtung(en) als operatives Beispiel aller Arten von nichtflüchtigen Speichermedien angenommen werden. Solche nichtflüchtigen Speichermedien können aus anderen nichtflüchtigen Speichermedien, wie PRAM, MRAM, ReRAM, FRAM und NOR-Flashspeichern, oder einem Speichersystem gebildet sein, das verschiedene Arten von Speichern beinhaltet.
-
Eine mit Massendatenspeicherung (z. B. Mediendaten) in Zusammenhang stehende Schreibleistung ist eine bedeutende Überlegung für eine nichtflüchtige Speichereinrichtung, wie einen NAND-Flashspeicher. Eine Schreibleistung für häufig aktualisierte Daten, wie Metadaten, ist eine weitere bedeutende Überlegung für nichtflüchtige Speichereinrichtungen. Solche häufig aktualisierten Daten können wahlfrei in eine nichtflüchtige Speichereinrichtung geschrieben werden. In einigen Ausführungsformen des erfinderischen Konzepts wird eine hybride Abbildung angewendet, die gemäß einem oder mehrerer Attribute der Daten, die in den Speicher zu schreiben und/oder daraus zu lesen sind, Blockabbildung und Seitenabbildung selektiv anwendet.
-
In einigen Ausführungsformen des erfinderischen Konzepts wird die Schreibleistung eines Speicherelements unter Verwendung von Hybridabbildung in beträchtlichem Maß durch die Effizienz (oder ihr Fehlen) bestimmt, mit der ein geeigneter Abbildungsmodus bei Schreiboperationen bestimmt werden kann. Es ist zum Beispiel möglich, eine Schreibleistung durch effizientes Auswählen aus einem Seitenabbildungsmodus und einem Blockabbildungsmodus gemäß einem identifizierten Attribut (z. B. Datenmuster, Größe und/oder Sequenz) der ”Schreibdaten”, die während einer Schreiboperation (oder Programmieroperation) übertragen werden, zu erhöhen. Dies gilt, weil die Schreibleistung inhärent über die Art(en) von angewendeten Merge-Operationen und/oder die Anzahl an erforderlichen Merge-Operationen vorhergesagt wird. Es ist zum Beispiel möglich, die Anzahl an Merge-Operationen oder die Anzahl an Seitenkopieroperationen zu reduzieren, indem ein Adressabbildungsmodus für spezielle Schreibdaten richtig ausgewählt wird.
-
1 zeigt eine Prinzipskizze, die eine hierarchische Struktur für Software, die auf einer Benutzervorrichtung oder einem Benutzersystem läuft, gemäß einer Ausführungsform des erfinderischen Konzepts darstellt. Mit Bezug zu 1 beinhalten die Softwarekomponenten der Benutzervorrichtung (vom höchsten zum niedrigsten Abstraktionsniveau) eine Anwendung 10, ein Dateisystem 20, eine Pufferschicht 30, eine Flash-Übersetzungsschicht (FTL) 40 und gewisse interne Schaltungssoftware, die die Programmierung und das Lesen von Speicherzellen im nichtflüchtigen Speicher (NVM) 50 steuert.
-
Eine Betriebssystem(OS)-Schicht kann funktionell über die Anwendung 10 und das Dateisystem 20 verteilt sein. Das Dateisystem 20 kann dazu verwendet werden, einen Satz abstrakter Datenstrukturen (z. B. ein Dateisystem) zu definieren, der Speichern, Suche, Zugriff und Handhabung von in der Datenspeichereinrichtung gespeicherten Daten erleichtert.
-
Die Pufferschicht 30 kann dazu verwendet werden, im Pufferspeicher gespeicherte Daten gemäß Anfragen und/oder Instruktionen, die vom Dateisystem 20 empfangen worden sind, zu verwalten. Zum Beispiel kann die Pufferschicht 30 in einem Arbeitsspeicher (z. B. einem RAM), der in der Benutzervorrichtung vorgesehen ist, gespeicherte Daten verwalten. Alternativ kann die Pufferschicht 30 in einem Pufferspeicher (z. B. einem RAM), der in einer Datenspeichervorrichtung vorgesehen ist, gespeicherte Daten verwalten. Insbesondere kann die Pufferschicht 30 dazu verwendet werden, einen Adressabbildungsmodus basierend auf der Größe und der Art der im Arbeitsspeicher und/oder im Pufferspeicher gespeicherten Schreibdaten zu bestimmen. Das heißt, die Pufferschicht 30 kann einen ”Abbildungsmodus” (AM_mode) für die von der Datenspeichervorrichtung ausgeführte Programmier-/Schreiboperation ansteuern (z. B. Auswählen aus verfügbaren Adressabbildungsmodi, die von einem Hybridabbildungsschema freigegeben sind). Mit dem von der Pufferschicht 30 bestimmten Abbildungsmodus ist es möglich, die Anzahl an Kopier-/Merge-Operationen, die während des Seitenkopierens ausgeführt werden, zu verringern.
-
Die Flash-Übersetzungsschicht (FTL) 40 kann dazu verwendet werden, eine oder mehrere funktionelle Schnittstelle(n) zwischen dem Dateisystem 20, der Pufferschicht 30 und/oder der nichtflüchtigen Speichervorrichtung 50 vorzusehen. In einer funktionellen Operation verbirgt die FTL 40 Löschoperationen, die routinemäßig von der nichtflüchtigen Speichervorrichtung 50 durchgeführt werden, vor der Perspektive von höheren Softwarekomponenten. Unter Verwendung der FTL 40 ist es möglich, viele der potentiellen Nachteile zu überwinden, die mit gewissen nichtflüchtigen Speichervorrichtungen 50, wie Flash-Speichereinrichtungen, in Zusammenhang stehen, darunter die Erfordernis eine Löschoperation vor einer Schreiboperation auszuführen, Größenunverträglichkeit von Löscheinheit und Schreibeinheit usw. Weiter kann bei einer Schreiboperation, die auf die nichtflüchtige Speichervorrichtung 50 gerichtet ist, die FTL 40 dazu verwendet werden, eine logische Adresse, die vom Dateisystem 20 erzeugt ist, in eine physikalische Adresse der nichtflüchtigen Speichervorrichtung 50 abzubilden. Insbesondere kann die FTL 40 dazu verwendet werden, Adressen zum Schreiben von Daten gemäß einem von der Pufferschicht 30 bestimmten Abbildungsmodus auszuführen.
-
Bei der oben beschriebenen hierarchischen Struktur von Software können die Pufferschicht 30 und die FTL 40 dazu verwendet werden, eine Adressabbildung von Daten in einer Datenspeichervorrichtung kooperativ zu steuern. Zum Beispiel kann die Pufferschicht dazu verwendet werden, ein spezielles ”Datenattribut” (z. B. eine Größe, ein Muster, einen Typ usw.) für in einem Arbeitsspeicher der Benutzervorrichtung und/oder einen Speicherpuffer der Datenspeichervorrichtung gespeicherte (oder zu speichernde) Daten (nachfolgend allein oder zusammen als ”gepufferte Daten” bezeichnet) zu detektieren oder zu bestimmen. Die FTL 40 kann dazu verwendet werden, einen Adressabbildungsmodus gemäß dem detektierten Datenattribut für die gepufferten Daten zu bestimmen. Auf diese Weise ist es möglich, den für eine Merge-Operation erforderlichen Betriebsaufwand dadurch zu verringern, dass ein Abbildungsmodus im Zusammenhang mit einem definierten Hybridabbildungsschema effizient ausgewählt wird. In diesem Zusammenhang kann die Pufferschicht 30 von der Benutzervorrichtung oder einer Schnittstelle der Datenspeichervorrichtung ”angetrieben” (d. h., zum Betrieb aufgerufen oder veranlasst) werden.
-
2 zeigt ein Blockdiagramm, das eine Benutzervorrichtung 100 gemäß einer Ausführungsform des erfinderischen Konzepts darstellt. Die Benutzervorrichtung umfasst einen Host 110 und eine Datenspeichervorrichtung 120. Die Datenspeichervorrichtung 120 kann eine Speichersteuereinheit 122, eine nichtflüchtige Speichervorrichtung 124 und einen Pufferspeicher 126 beinhalten.
-
Nach Empfang einer Schreibanfrage (d. h., eines Befehls oder einer Instruktion, die angibt, dass eine Schreiboperation durchgeführt werden sollte), überträgt der Host 110 Schreibdaten und eine zugehörige logische Adresse (LA) an die Datenspeichervorrichtung 120. Wenn die Benutzervorrichtung 100 beispielsweise ein Personalcomputer (PC) oder ein Notebook ist, kann die logische Adresse LA gemäß einer Sektorennummer bereitgestellt werden. Das heißt, nach Empfang einer Schreibanfrage kann der Host 110 eine Startadresse (LAB) für die Schreibdaten und eine Sektorennummer (nSC) an die Datenspeichervorrichtung 120 bereitstellen.
-
Der Pufferspeicher 126 der Datenspeichervorrichtung 120 kann aufgefordert werden, die vom Host 110 empfangenen Schreibdaten zu ”puffern” oder vorübergehend zu speichern. Die gepufferten Schreibdaten der Datenspeichervorrichtung 120 können dann in die nichtflüchtige Speichervorrichtung 124 geschrieben oder programmiert werden.
-
Die Speichersteuereinheit 122 dient als Schnittstelle zwischen dem Host 110 und der nichtflüchtigen Speichervorrichtung 124. Die Speichersteuereinheit 122 spricht typischerweise auf Befehle an wie die Schreibanfrage oder eine Leseanfrage), die von Host 110 empfangen worden ist, und steuert dementsprechend eine Operation der nichtflüchtigen Speichervorrichtung 124, um ein Speichern oder Aufrufen von Daten aus der nichtflüchtigen Speichervorrichtung 124 zu bewirken.
-
Insbesondere, wenn die Speichersteuereinheit 122 das Speichern von Schreibdaten steuert, die vom Host 110 zum Pufferspeicher 126 bereitgestellt sind, bestimmt sie einen Abbildungsmodus, der in Zusammenhang mit den Schreibdaten zu verwenden ist. Diese Bestimmung eines Abbildungsmodus kann gemäß einem detektierten Datenattribut für die gepufferten Daten vorgenommen werden. Wenn zum Beispiel die Schreibdaten eine Größe gleich oder größer als eine spezifizierte Einheitsgröße aufweisen, werden sie im Pufferspeicher 126 sequentiell gespeichert. Dann kann die Speichersteuereinheit 122 einen Blockabbildungsmodus als Adressabbildungsschema für die im Pufferspeicher 126 gespeicherten Pufferdaten auswählen. Alternativ, wenn die Schreibdaten eine Größe kleiner als die spezifizierte Einheitsgröße aufweisen, werden sie im Pufferspeicher 126 blockgespeichert. Dann kann die Speichersteuereinheit 122 einen Seitenabbildungsmodus als Adressabbildungsschema für die im Pufferspeicher 126 gespeicherten Pufferdaten auswählen.
-
Weiter ist anzumerken, dass die nichtflüchtige Speichervorrichtung 124 auch Lösch-, Lese- und Schreiboperationen unter der Steuerung der Speichersteuereinheit 122 durchführt. Der von der nichtflüchtigen Speichervorrichtung 124 bereitgestellte Datenspeicherplatz kann in eine Mehrzahl von Speicherblöcken aufgeteilt sein, wobei jeder Speicherblock weiter in eine Mehrzahl von Seiten unterteilt sein kann. Wenn die nichtflüchtige Speichervorrichtung 124 unter Verwendung einer Mehrzahl von nichtflüchtigen Speichervorrichtungen ausgebildet ist, die durch zahlreiche Kanäle mit dem Host 110 verbunden sind, können in eine der vorgesehenen nichtflüchtigen Speichervorrichtungen geschriebene Daten gemäß einem Datenverschränkungsschema (Interleaving-Scheme) gesteuert werden, um die Leistung weiter zu erhöhen.
-
Wenn ein einzelner Kanal mit der Mehrzahl von vorgesehenen Speichervorrichtungen verbunden ist, können die Speichervorrichtungen über einen gemeinsamen Datenbus unter Verwendung herkömmlicher bekannter Techniken verbunden sein. Nachfolgend wird eine beispielhafte Beschreibung angeführt, in der eine oder mehrere NAND-Flachspeichervorrichtungen dazu verwendet sind, die Datenspeichervorrichtung 120 mindestens teilweise auszubilden, die in einigen Ausführungsformen des erfinderischen Konzepts mit gutem Wirkungsgrad als Medien-Massenspeicher verwendet werden kann. Die Fachleute werden erkennen, dass die im folgenden Beispiel eines NAND-Flashspeichers identifizierten Lehren und Konzepte auf Datenspeicher ausgedehnt werden können, die ganz oder teilweise mit anderen Formen von nichtflüchtigen Speichern ausgebildet sind, wie PRAM, MRAM, ReRAM, FRAM oder NOR-Flashspeicher. Einige Datenspeichervorrichtungen im Rahmen des erfinderischen Konzepts können einen oder mehrere nichtflüchtige Speichereinrichtungen umfassen (z. B. DRAM).
-
Nochmals mit Bezug zu 2 kann der Pufferspeicher 126 dazu verwendet werden, vom Host 110 bereitgestellte Schreibdaten temporär zu speichern oder von der nichtflüchtigen Speichervorrichtung 124 aufgerufene Daten zu lesen. Wenn von der nichtflüchtigen Speichervorrichtung 124 aufgerufene Lesedaten in Abhängigkeit von einer Leseanfrage vom Host 110 cache-gespeichert werden, kann der Pufferspeicher 126 dann dazu verwendet werden, die cache-gespeicherten Daten direkt dem Host 110 bereitzustellen. Das heißt, der Pufferspeicher 126 kann dazu verwendet werden, eine Lesedaten-Cachefunktion und/oder eine Schreibdaten-Pufferfunktion auszubilden. Ein Zugriff auf die nichtflüchtige Speichervorrichtung 124 ist jedoch in der Regel auf eine Verfahrensweise in Einzeloperationen beschränkt. Wenn eine Lese-/Schreiboperation durchgeführt wird, hat eine andere Operation keinen Zugriff auf die nichtflüchtige Speichervorrichtung 124. Die Geschwindigkeit, mit der auf Daten von der nichtflüchtigen Speichervorrichtung 124 zugegriffen werden kann, insbesondere, wenn eine Datenbusstruktur und ein Protokoll (z. B. SATA oder SAS) verwendet werden, stellt eine beträchtliche Engstelle beim Datenzugriff dar, da der Host 110 geeignet ist, Daten bei einer viel höheren Geschwindigkeit zu übertragen als der Speicherkanal, der die Speichersteuereinheit 122 mit der nichtflüchtigen Speichervorrichtung 124 verbindet. Das heißt, bei einer viel höheren Betriebsgeschwindigkeit für den Host 110 ist die Leistungsfähigkeit eines Speichersystems durch die Geschwindigkeit begrenzt, mit der der Speicherkanal (einschließlich eines relativ großen Pufferspeichers 126) arbeiten kann.
-
In einigen Ausführungsformen des erfinderischen Konzepts ist der Pufferspeicher 126 unter Verwendung eines oder mehrerer synchroner DRAMs (SDRAMs) ausgebildet, um eine ausreichend hohe Schreibdatenpufferfunktion und/oder Lesedaten-Cachefunktion zwischen dem Host 110 und der Datenspeichereinrichtung 120 vorzusehen. Dies gilt insbesondere, wenn die Datenspeichereinrichtung 120 zum Speichern und Bereitstellen einer großen Menge an Mediendaten verwendet wird. Die Fachleute werden jedoch erkennen, dass der Pufferspeicher 126 auf verschiedene Weise ausgebildet sein kann.
-
Wenn man jedoch die obige Beschreibung als Arbeitsbeispiel heranzieht, bestimmt die Datenspeichereinrichtung 120 einen Adressabbildungsmodus gemäß einer Größe oder einem Muster der gepufferten Daten, die im Pufferspeicher 126 gespeichert sind. Hier sind die Größe oder das Muster der gepufferten Daten praktische Beispiele einer breiten Klasse von Datenattributen, die zum Bestimmen eines Adressabbildungsmodus verwendet werden können. In einem Ansatz, der mit einer Ausführungsform des erfinderischen Konzepts übereinstimmt, werden Schreibdaten unter Verwendung einer Blockabbildungstabelle (z. B.) auf Basis von Referenzgrößeneinheiten verwaltet, wenn die Schreibdaten ein sequentielles Schreibmuster aufweisen, das gleich oder größer als eine Referenzgröße ist (d. h. die Bedingung erfüllt). Wenn die Schreibdaten jedoch kein sequentielles Schreibmuster aufweisen, das mindestens gleich der Referenzgröße ist, werden die Schreibdaten unter Verwendung einer Seitenabbildungstabelle verwaltet. Der Ausdruck ”sequentielles Schreibmuster” bezeichnet eine Dateneinheit, die zusammenhängend angeordnete (d. h., sequentielle) Adressorte aufweist, wobei ein beliebiges Adresszuordnungsschema verwendet sein kann.
-
Unter Verwendung dieses Ansatzes ist es möglich, die Anzahl an Merge-Operationen, die mit häufigem Seitenkopieren verbunden sind, zu reduzieren. Dementsprechend ist es möglich, die Schreibleistung zu verbessern, wenn die Gesamtleistung des Speichersystems weitgehend durch die Effizienz von Merge-Operationen definiert ist. Weiter kann die Lebensdauer von nichtflüchtigen Speicherzellen in der nichtflüchtigen Speichervorrichtung 124 durch Verringern der Anzahl an erforderlichen Merge-Operationen verlängert werden.
-
Einige Ausführungsformen des erfinderischen Konzepts können dazu verwendet werden, ein Speichersystem auszubilden, das als Festkörperlaufwerk (Solid State Disk, SSD) arbeitet. In solchen Ausführungsformen kann die Speichersteuereinheit 122 dazu ausgebildet sein, dass sie mit einem externen Gerät (z. B. dem Host 110) unter Verwendung eines oder mehrerer Schnittstellenprotokolle, wie USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, IDE und dergleichen kommuniziert.
-
3 zeigt eine Prinzipskizze, die die Softwarestruktur von 1 in Zusammenhang mit dem Speichersystem von 2 genauer darstellt. Diese Softwareschichten können auf einer Mikrosteuereinheit und/oder einer Ansammlung von verschiedenen logischen Steuerschaltungen (darunter die Speichersteuereinheit 122) betrieben werden, die im Host 110 und/oder der Datenspeichervorrichtung 120 angeordnet sind. Mit Bezug zu 3 wird eine Ansammlung von Softwareschichten 200 ganz oder teilweise unter Verwendung der Speichersteuereinheit 122 von 2 betrieben. Auf diese Weise wird weiter angenommen, dass die Speichersteuereinheit 122 Hardware- und/oder Softwarekomponenten beinhaltet, die dazu geeignet sind, eine Hostschnittstellenschicht 211, eine Flash-Übersetzungsschicht 213 und eine Flash-Schnittstellenschicht 214 auszubilden.
-
Die Hostschnittstellenschicht (HIL) 211 kann dazu verwendet werden, eine Schnittstelle zwischen dem Host 110 und der Datenspeichervorrichtung 120 zu bilden. Die Hostschnittstellenschicht 211 kann auch dazu verwendet werden, Cachefunktionen im Inneren der Datenspeichervorrichtung 120 anzusteuern und/oder vom Host 110 bereitgestellte Leseanfragen und Schreibanfragen anzusteuern.
-
Um ein direktes Lesedaten-Cache auszubilden, kann die Hostschnittstellenschicht 211 dazu verwendet werden, gepufferte Daten (z. B. zuvor im Pufferspeicher 126 gespeicherte Daten in Funktion einer Schreibanfrage oder einer Leseanfrage), die im Pufferspeicher 126 gespeichert sind, an eine ”anstehende” (z. B. eben empfangene) Leseanfrage anzupassen. Wenn die angeforderten Daten als im Pufferspeicher 126 gespeicherte Pufferdaten identifiziert sind, kann die Hostschnittstellenschicht 211 die angeforderten Daten direkt zum Host 110 übertragen, ohne auf die nichtflüchtige Speichervorrichtung 124 zuzugreifen. Diese besondere Funktionalität kann von einem Pufferverwaltungsmodul 212 gesteuert werden, das in der Hostschnittstellenschicht 211 ausgebildet ist.
-
Das Pufferverwaltungsmodul 212 kann auch dazu verwendet werden, Datenattribute von gepufferten Daten zu detektieren, wie ein sequentielles Schreibmuster einer gewissen Größe. Dementsprechend kann das Pufferverwaltungsmodul 212 einen geeigneten Adressabbildungsmodus für die gepufferten Daten in Abhängigkeit vom ermittelten Datenattribut auswählen. Wenn ein sequentielles Schreibmuster einer gewissen Größe (z. B. gleich oder größer als eine Referenzgröße) ermittelt ist, zeigt das Pufferverwaltungsmodul 212 einen zugehörigen Adressabbildungsmodus (AM_mode) dem FTL 213 an und verwaltet die gepufferten Daten gemäß einer spezifischen Dateneinheit unter Verwendung einer Blockabbildungstabelle. Alternativ kann im Falle, dass ein sequentielles Schreibmuster kleiner ist als die Referenzgröße, das Pufferverwaltungsmodul 212 dem FTL 213 einen anderen Adressabbildungsmodus (AM_mode) anzeigen und die gepufferten Daten unter Verwendung einer Seitenabbildungstabelle oder eines Zufallsdatenabbildungsalgorithmus verwalten.
-
Die FTL 213 führt eine Adressabbildung zwischen einer logischen Adresse LA, die von der Hostschnittstellenschicht 211 empfangen worden ist, und einer zugehörigen physikalischen Adresse aus, die zum tatsächlichen Schreiben der gepufferten Daten in Speicherzellen der nichtflüchtigen Speichervorrichtung 124 verwendet wird. Das Adressabbilden erfolgt auf Grundlage des ausgewählten Adressabbildungsmodus. Wenn der Adressabbildungsmodus ein Blockabbildungsmodus ist, wandelt die FTL 213 die logische Adresse LA der schreibangeforderten Pufferdaten (d. h., im Pufferspeicher 126 gespeicherte Schreibdaten, die durch eine anstehende Schreibanfrage angezeigt sind) blockweise in eine zugehörige physikalische Adresse um. Wenn der Adressabbildungsmodus ein Seitenabbildungsmodus ist, wandelt die FTL 213 die logische Adresse LA der schreibangeforderten Pufferdaten seitenweise in eine zugehörige physikalische Adresse PA um.
-
Außerdem kann die FTL 213 in Abhängigkeit von Leseanfragen und/oder Schreibanfragen, die vom Dateisystem 20 des Hosts 110 empfangen worden sind, ein Wear-Levelling und eine Speicherbereinigung (Garbage Collection) durchführen. Im Zusammenhang mit NAND-Flash-Speichersystemen ist es allgemein bekannt, dass ein Wear-Levelling angewendet werden kann, um eine Speicherzellennutzung gemäß (beispielsweise) einer Zählung von Löschoperationen für einzelne Speicherblöcke der nichtflüchtigen Speichervorrichtung 124 zu mitteln. Eine Speicherbereinigung ist ebenso bekannt und kann angewendet werden, um über die verschiedenen Speicherblöcke der nichtflüchtigen Speichervorrichtung 124 verteilte gültige Daten sinnvoll zu gruppieren und dadurch die gültigen Daten in weniger Speicherblöcke zu kondensieren und größere Blöcke von freiem Speicherraum verfügbar zu machen.
-
Die Flash-Schnittstellenschicht (FIL) 214 führt in der Regel gewisse Operationen auf niedrigem Niveau aus, um die Schnittstelle zwischen der Speichersteuereinheit 122 und der nichtflüchtigen Speichervorrichtung 124 freizugeben. Zum Beispiel kann die Flash-Schnittstellenschicht 214 Low-Level-Driver (LLD), die Hardware der nichtflüchtigen Speichervorrichtung 124 ansteuern, einige Fehlerdetektions- und -korrektur(EEC)-Funktionen zur Verwendung bei Lesedaten, die von der nichtflüchtigen Speichervorrichtung 124 aufgerufen sind, und/oder Bad-Block-Management(BBM)-Funktionen, die defekten Speicherraum aufspüren, beinhalten. Unter der Steuerung von FTL 213 kann die Flash-Schnittstellenschicht 214 im Wesentlichen den Austausch von Daten zwischen der Speichersteuereinheit 122 und der nichtflüchtigen Speichervorrichtung 124 steuern. Insbesondere, wenn bei Schreib- und Leseoperationen über eine Mehrzahl von einzelnen Speichervorrichtungen und/oder Kanälen ein Speicher-Interleaving durchgeführt wird, kann die Flash-Schnittstellenschicht 214 die Verwendung der zahlreichen Kanäle steuern, um das Interleaving (die Verschränkungsfunktion) der Daten zu bewirken.
-
Wie oben angemerkt kann die Datenspeichervorrichtung 120 einen geeigneten Abbildungsmodus (z. B. entweder einen Blockabbildungsmodus oder einen Seitenabbildungsmodus) basierend auf der ermittelten Größe eines sequentiellen Schreibmusters für gepufferte Daten, die im Pufferspeicher 126 gespeichert sind, auswählen. Die Schreiboperationsverwaltung der gepufferten Daten, wenn ein Blockabbildungsmodus ausgewählt ist, kann unter Verwendung einer Swap-/Merge-Operation erreicht werden. Unter Verwendung dieses Ansatzes ist es möglich, die Lebensdauer (Nutzungsdauer) der Speicherzellen des nichtflüchtigen Speichers 124 zu verlängern (z. B. übermäßige Abnutzung zu vermeiden), indem die Anzahl an Seitenkopieroperationen, die bei einer Merge-Operation ausgeführt werden, reduziert wird. Der vorgeschlagene Ansatz kann auch dazu beitragen, die Geschwindigkeit der erforderlichen Merge-Operationen zu erhöhen.
-
4 zeigt ein Blockdiagramm, das einen möglichen Satz von Verbindungen zwischen einer Speichersteuereinheit 122 und einer Mehrzahl von nichtflüchtigen Speichervorrichtungen unter Verwendung mehrerer Kanäle darstellt. Mit Bezug zu 4 ist die Speichersteuereinheit 122 mit nichtflüchtigen Speichervorrichtungen NVM_00, NVM_01, NVM_10 und NVM_11 über (beispielsweise) Kanäle CH0 und CH1 verbunden. Die Fachleute werden erkennen, dass dieses einfache Beispiel auf eine sinnvolle Anzahl und Anordnungen von Kanälen und nichtflüchtigen Speichervorrichtungen erweitert werden kann.
-
Der erste Kanal CH0 ist mit Eingangs-/Ausgangs(I/O)-Ports (z. B. acht I/O-Ports) jeder der nichtflüchtigen Speichervorrichtungen NVM_00 und NVM_01 verbunden. Der zweite Kanal CH1 ist mit dem I/O jeder der nichtflüchtigen Speichervorrichtungen NVM_10 und NVM_11 verbunden. Eine Speichersteuereinheit 122 speichert gepufferte Schreibdaten vom Pufferspeicher 126 in den nichtflüchtigen Speichervorrichtungen NVM_00, NVM_01, NVM_10 und NVM_11. Es ist zu erkennen, dass die Schreibdaten verteilt oder verstreut über die nichtflüchtigen Speichervorrichtungen NVM_00, NVM_01, NVM_10 und NVM_11 gespeichert werden können. Ein Daten-Interleaving (Daten-Verschränkung) ist ein Ansatz, um Daten über mehrere Speicher zu schreiben, was zu einer Datenstreuung führt, und insbesondere bei sequentiell angeordneten Daten. Zum Beispiel können bei Schreibdaten eine oder mehrere Datenverschränkungsoperationen unter Verwendung der Flash-Schnittstellenschicht 214 durchgeführt werden.
-
Daten-Interleaving kann von einem Kanal, einer nichtflüchtigen Speichervorrichtung, einer Anordnung von Speichervorrichtungen, die ”ein Weg” genannt wird, einer Speicherbank usw. verwaltet werden. Um die parallele Verteilung von Schreibdaten über eine Anzahl von nichtflüchtigen Speichervorrichtungen, die mit einem oder mehreren Kanälen verbunden sind, zu maximieren, kann die Speichersteuereinheit 122 aufeinanderfolgend angeordnete Schreibdaten (gemäß ihrer logischen Adresse) aufbrechen, um sie über mehrere Kanäle und Speichervorrichtungen zu streuen. Alternativ können die Schreibdaten mit einem sequentiellen Schreibmuster ausreichender Größe (d. h., nicht weniger als eine Referenzgröße) nach Aufbrechen in seitenweise Daten über die nichtflüchtigen Speichervorrichtungen (z. B. NVM_00 und NVM_10), die in einem speziellen Weg verbunden sind (z. B. einem ersten Weg 124a), unter Verwendung verfügbarer Kanäle (z. B. der ersten und zweiten Kanäle CH0 und CH1) geschrieben werden. Nachdem eine Schreiboperation für den ersten Weg 124a durchgeführt worden ist, können Seitendaten sequentiell in die nichtflüchtigen Speichervorrichtungen NVM_01 und NVM_11 des zweiten Wegs 124b über die Kanäle CH0 und CH1 geschrieben werden.
-
Wenn zum Beispiel vier Seiten fortlaufend geordneter (d. h., sequentiell geschriebener) Schreibdaten empfangen werden, kann eine erste der vier Seiten in eine erste nichtflüchtige Speichervorrichtung NVM_00 im ersten Weg 124a über den ersten Kanal CH0 geschrieben werden. Bevor ein Programmieren der ersten Seite abgeschlossen ist, kann eine zweite der vier Seiten in eine zweite nichtflüchtige Speichervorrichtung NVM_10 im ersten Weg 124a über den zweiten Kanal CH1 geschrieben werden. Dann kann eine dritte der vier Seiten in eine dritte nichtflüchtige Speichervorrichtung NVM_01 im zweiten Weg 124b über den ersten Kanal CH0 geschrieben werden, der nun nach Schreiben der ersten Seite verfügbar ist. Bevor ein Programmieren der dritten Seite abgeschlossen ist, kann eine vierte der vier Seiten in eine vierte nichtflüchtige Speichervorrichtung NVM_11 im zweiten Weg 124b über den zweiten Kanal CH1 geschrieben werden.
-
Das Vorstehende ist ein einfaches und erläuterndes Beispiel eines Interleaving über 2 Wege unter Verwendung von 2 Kanälen. Die Fachleute werden erkennen, dass ein viel komplexeres Interleaving über mehrere Vorrichtungen, Wege und/oder Banken unter Verwendung mehrerer Kanäle vorgenommen werden kann.
-
5 zeigt eine Prinzipskizze, die einen möglichen Ansatz zu Verschränkungstechniken für Daten gemäß einer Ausführungsform des erfinderischen Konzepts darstellt. Mit Bezug zu 5 kann ein spezieller Typ von Dateneinheit definiert werden, um ein Daten-Interleaving zu erleichtern. Dabei wird eine Interleaving-Einheit, die aus fortlaufenden Schreibdaten gebildet ist, ”supersequentieller Block” oder SSB genannt. Ein SSB kann als Einheit von Daten definiert werden, die einen gegebenen Speicherblock in vorgesehenen nichtflüchtigen Speichervorrichtungen eines Speichersystems vollständig füllen, wenn ein Daten-Interleavingansatz für eine Schreiboperation verwendet wird.
-
In einem Beispiel dieses Ansatzes ist ein einzelner SSB aus Schreibdaten mit einem sequentiellen Schreibmuster gebildet, die eine Referenzgröße erfüllen, wobei die Referenzgröße mit einer Interleaving-Einheit korrespondiert, oder einer Dateneinheit, die ausreicht, um definierte Dateneinheiten über einen festgelegten Bereich von verschränkten Vorrichtungen, Wegen oder Bänken (z. B. vier (4) Speicherblöcken, die die Architektur von 4 annehmen) vollständig zu füllen. Die Fachleute werden erkennen, dass dies ein einfaches Beispiel ist, es jedoch ausreicht, um die zugrundeliegenden Konzepte zu vermitteln.
-
Mit Bezug zu 5 ist ein erster supersequentieller Block (SSB_0) 310 aus Speicherblöcken 311, 312, 313 und 314 gebildet, die jeweils in zugehörigen nichtflüchtigen Speichervorrichtungen NVM_00, NVM_01, NVM_10 und NVM_11 angeordnet sind. Wenn diese Daten als gepufferte Schreibdaten im Pufferspeicher 126 gespeichert sind, können sie sequentiell in zugehörige Speicherblöcke in dem definierten Interleaving-Muster seitenweise eingeschrieben werden. Zum Beispiel kann eine logische Seite LPN0 einem Speicherblock 311 zugeordnet sein, eine logische Seite LPN1 kann einem Speicherblock 312 zugeordnet sein, eine logische Seite LPN2 kann einem Speicherblock 313 zugeordnet sein und eine logische Seite LPN3 kann einem Speicherblock 314 zugeordnet sein. In der Struktur mit vier Speicherblöcken des Beispiels zum Interleaving-Ansatz kann eine logische Seite LPN4 dem Speicherblock 311 zugeordnet sein. Auf diese Weise kann eine Schreibordnung für die Daten, die den SSB bilden, in 5 mit den Pfeilen dargestellt werden ((1) → (2) → (3) → (4) → ...).
-
Anders ausgedrückt, N (z. B. 512) Seiten von SSB-Daten werden mit Interleaving sequentiell über M (z. B. 4) Speicherblöcke geschrieben, wobei die Speicherblöcke in P Wegen angeordnet sind, die durch Q Kanäle verbunden sind. N, M, P und Q sind positive ganze Zahlen. Im vorstehenden Beispiel füllt der erste SSB 310 (unter Verwendung des definierten sequentiellen Daten-Interleaving) seitenweise vier (4) Speicherblöcke (311, 312, 313 und 314) vollständig, die jeweils in vier (4) nichtflüchtigen Speichervorrichtungen (z. B. NVM_00, NVM_01, NVM_10 und NVM_11) angeordnet sind, die auf einem ersten und einem zweiten Weg über den ersten und den zweiten Kanal CH0 und CH1 angeordnet sind.
-
5 zeigt eine Mehrzahl von supersequentiellen Blöcken SSB_0, SSB_1, SSB_2 und SSB_3. Gemäß einer Ausführungsform des erfinderischen Konzepts wird eine Adressabbildung für die gepufferten Schreibdaten, die als supersequentieller Block (SSB) identifiziert sind, unter Verwendung eines Blockabbildungsmodus und einer zugehörigen Blockabbildungstabelle durchgeführt. Alternativ wird, wenn gepufferte Schreibdaten als ”nicht SSB” identifiziert sind, eine Adressabbildung unter Verwendung eines Seitenabbildungsmodus und einer zugehörigen Seitenabbildungstabelle durchgeführt. Gepufferte Schreibdaten können als nicht SSB identifiziert werden, wenn ihnen die Attribute eines SSB fehlen (z. B., wenn sie ein sequentielles Schreibmuster mit einer Größe aufweisen, die kleiner ist als eine gegebene Referenzgröße).
-
6 zeigt eine Prinzipskizze, die eine beispielhafte Beziehung zwischen einem Bereich von logischen Adressen für gepufferte Schreibdaten und einem supersequentiellen Block (SSB) darstellt. In 6 wird eine Sequenz von logischen Adressen, die vom Host 110 bereitgestellt sind, in eine Ansammlung von supersequentiellen Blöcken unterteilt.
-
Es wird angenommen, dass die Sequenz von logischen Adressen vom Host 110 unter Verwendung eines Ansatzes zur Sektoridentifizierung (z. B. 512 Byte) bereitgestellt wird. Wenn eine Seite gleich 32 Sektoren ist, dann ist ein Block gleich 128 Seiten und ein supersequentieller Block SSB ist gleich 16384 Sektoren. Dementsprechend, wenn ein logischer Adressenbereich (LBA, nSC) für sequentielle Schreibdaten eine Größe von mindestens gleich einem supersequentiellen Block aufweist, dann wird eine Adressabbildung für die enthaltenen Schreibdaten in dem mindestens einen SSB unter Verwendung eines Blockabbildungsmodus durchgeführt. Wenn hingegen der logische Adressenbereich (LBA, nSC) für die sequentiellen Schreibdaten eine Größe von weniger als einem SSB aufweist, dann wird eine Adressabbildung für die enthaltenen Schreibdaten unter Verwendung eines Seitenabbildungsmodus durchgeführt.
-
Wenn ein Hybridabbildungsschema für eine vorgesehene FTL verwendet wird, werden physikalische Adressen für die relevanten Speicherblöcke, die mit der empfangenen logischen Adresse korrespondieren, festgelegt. Dementsprechend wird auch der Adressenbereich für den supersequentiellen Block festgelegt.
-
7 zeigt ein Blockdiagramm, das einen Ansatz zum Bestimmen eines geeigneten Adressabbildungsmodus für eine Pufferschicht genauer darstellt. In 7 wird ein Ansatz zum Bestimmen eines Abbildungsmodus in Zusammenhang mit der Hostschnittstellenschicht (HIL) 410 beschrieben, die in Abhängigkeit von einer Schreibanfrage arbeitet, die vom Host 110 empfangen wird.
-
In Verbindung mit einer Schreibanfrage sendet der Host 110 eine logische Adresse (LBA, nSC) und einen Schreibbefehl an die Datenspeichervorrichtung 120. Hierbei ist die LBA (logische Blockadresse) eine Startadresse eines Speicherbereichs, in den Daten zu schreiben sind, und wird als HDD-basierte logische Adresse bezeichnet. Die nSC gibt eine Anzahl an Sektoren an, in die Schreibdaten geschrieben werden, wobei mit der Startadresse begonnen wird. Damit kann die Kombination von LBA und nSC dazu verwendet werden, einen ”Adressbereich” anzugeben, in dem die Schreibdaten gespeichert sind.
-
Die Hostschnittstellenschicht 410 empfängt die vom Host 110 bereitgestellte logische Adresse (LBA, nSC). Die Hostschnittstellenschicht 410 speichert dann die Schreibdaten, die mit der logischen Adresse (LBA, nSC) korrespondieren, in den Pufferspeicher 126. Die Hostschnittstellenschicht 410 bestimmt dann, ob die gepufferten Schreibdaten (z. B. die nun im Pufferspeicher 126 gespeicherten Schreibdaten) einen supersequentiellen Block SSB bilden. Diese Bestimmung kann bei Berücksichtigung des von der logischen Adresse (LBA, nSC) angegebenen Adressbereichs vorgenommen werden. Das heißt, ein sequentielles Schreibmuster, das einen Adressbereich von mindestens gleich der Größe des definierten SSB einnimmt.
-
Wenn alle oder ein Teil der gepufferten Schreibdaten einen oder mehrere SSB bilden, wählt die Hostschnittstellenschicht 410 Blockabbildung als den geeigneten Adressabbildungsmodus für die gepufferten Schreibdaten aus, die dem mindestens einen SSB zugeordnet sind. Ansonsten, wenn die logische Adresse und der zugehörige Adressbereich keinen SSB angeben, wählt die Hostschnittstellenschicht 410 Seitenabbildung als den geeigneten Adressabbildungsmodus für die gepufferten Schreibdaten aus. Teile der gepufferten Schreibdaten, die einen identifizierten SSB übersteigen (z. B. Schreibdaten außerhalb eines bezeichneten SSB), die aber nicht ausreichend groß sind, um einen weiteren vollen SSB zu bilden, können von der Hostschnittstellenschicht 410 zur Adressabbildung unter Verwendung des Seitenabbildungsmodus bezeichnet werden. Daher kann der Blockabbildungsmodus effizient zum Abbilden von SSBs angewendet werden, während die Seitenabbildung zum Abbilden nichtsequentieller (d. h., zufälliger) Schreibdaten oder sequentieller Schreibdaten mit einer Größe von weniger als einem vollen SSB verwendet wird. Auf diese Weise kann ein beliebiger Datenblock mit einem sequentiellen Schreibmuster durch Herunterbrechen des Blocks in SSB, die unter Verwendung des Blockabbildungsmodus abgebildet werden, und dann Abbilden eines verbliebenen Teils der Schreibdaten mit einer Größe von weniger als einem SSB unter Verwendung des Seitenabbildungsmodus effektiv abgebildet werden.
-
Wie in 7 dargestellt kann die Hostschnittstellenschicht 410 einen Entscheidungsblock 415 für die supersequentiellen Blöcke (SSB) beinhalten, der dazu geeignet ist, SSBs aus der empfangenen logischen Adresse zu identifizieren und dann einen geeigneten Adressabbildungsmodus auszuwählen. Der ausgewählte Adressabbildungsmodus (AM_mode) kann dann zur Flash-Übersetzungsschicht (FTL) 420 übertragen werden.
-
Die FTL 420 führt eine Adressabbildung für die gepufferten Schreibdaten gemäß dem von der Hostschnittstellenschicht 410 ausgewählten Adressabbildungsmodus AM_mode durch. Wenn der Blockabbildungsmodus als Adressabbildungsmodus für die gepufferten Schreibdaten ausgewählt ist, verwaltet die FTL 420 eine Umwandlung von logischen Adressen unter Verwendung einer Blockabbildungstabelle 422. Wenn ein Seitenabbildungsmodus als Adressabbildungsmodus für die gepufferten Schreibdaten ausgewählt ist, verwaltet die FTL 420 eine Umwandlung von logischen Adressen unter Verwendung einer Seitenabbildungstabelle 424.
-
8 zeigt eine Prinzipskizze, die den Empfang von logischen Adressen für vier (4) verschiedene Dateneinheiten (Data1, Data2, Data3 und Data4), die Identifizierung von zugehörigen Schreibdaten mit einem sequentiellen Schreibmuster, die Identifizierung von supersequentiellen Blöcken SSB und eine zugehörige Auswahl eines Abbildungsmodus darstellt. In 8 ist angenommen, dass vier sequentielle Dateneinheiten Data1, Data2, Data3 und Data4 im Pufferspeicher 126 gespeichert sind und eine entsprechende Bestimmung eines Abbildungsmodus erwarten, bevor sie in den nichtflüchtigen Speicher 124 geschrieben werden.
-
Data1 sind durch eine logische Adresse (LBA = 0, nSC = 16384) angegeben. Mit den vorstehenden Annahmen bezüglich der Definition eines SSB sind alle Data1 als SSB_0 bezeichnet und werden unter Verwendung des Blockabbildungsmodus abgebildet.
-
Data2 sind durch eine logische Adresse (LBA = 8192, nSC = 11809) angegeben. Während die enthaltenen Schreibdaten von Data2 ein sequentielles Schreibmuster aufweisen, sind sie nicht ausreichend groß, um einen vollen SSB bilden. Dementsprechend werden sie unter Verwendung des Seitenabbildungsmodus abgebildet.
-
Data3 sind durch eine logische Adresse (LBA = 8192, nSC_41809) angegeben. Hierbei sind zwei (2) volle SSBs (SSB_1 und SSB_2) aus den im Pufferspeicher 126 gespeicherten sequentiellen Schreibdaten identifiziert. Es bleiben jedoch von Data3 nach der Definition der vollen SSBs restliche gepufferte Schreibdaten, die nicht ausreichend groß sind, um einen dritten SSB zu füllen. Unter diesen Umständen werden SSB_1 und SSB_2 unter Verwendung des Blockabbildungsmodus abgebildet, während die verbliebenen sequentiellen gepufferten Schreibdaten unter Verwendung des Seitenabbildungsmodus abgebildet werden.
-
Data4 sind durch eine logische Adresse (LBA = 10000, nSC = 6001) angegeben. Obwohl die Data4 ein sequentielles Schreibmuster aufweisen, wie Data2, sind sie nicht ausreichend groß, um einen ganzen SSB zu füllen. Dementsprechend werden Data4 unter Verwendung des Seitenabbildungsmodus abgebildet.
-
Die 9 und 10 zeigen Prinzipskizzen, die Bestimmungen des Adressabbildungsmodus gemäß einiger Ausführungsformen des erfinderischen Konzepts genauer darstellen.
-
In 9 ist wiederum angenommen, dass der Blockabbildungsmodus zur Adressabbildung von Daten unter den sequentiellen Eingangsschreibdaten, die einen SSB bilden, verwendet wird, und das Seitenabbildungsverfahren zur Adressabbildung von Daten unter den sequentiellen Eingangsschreibdaten, die keinen SSB bilden, verwendet wird.
-
Ein sequentielles Schreibmuster kann bei den im Pufferspeicher 126 gespeicherten Schreibdaten festgestellt werden, wenn sie sich in einen ungebrochenen Bereich über eine fortlaufende logische Adresse (”fortlaufende LBA”) erstrecken. Unter der Annahme, dass eine SSB-Definition in Bezug auf ein Adressenschema mit definierten Sektoren eines Dateisystems erfolgt ist, umfassen die in 9 gezeigten gepufferten Schreibdaten zwei (2) SSBs, SSB_n und SSB_n + 1. Die gepufferten Schreibdaten von 9 beinhalten auch zwei verbliebene Teile von Schreibdaten, die sich teilweise über zugeordnete supersequentielle Blöcke SSB_n – 1 und SSB_n + 2 erstrecken, sie aber nicht ausfüllen. Mit der Datenkonfiguration und den Annahmen von 9 wird der Blockabbildungsmodus zum Abbilden von SSB_n und SSB_n + 1 verwendet, während der Seitenabbildungsmodus zum Abbilden der verbleibenden Daten der ”teilweise gefüllten” SSB_n – 1 und SSB_n + 2 verwendet wird. Daher können bei einer festgelegten Anordnung von potentiellen SSBs (d. h., einer Anordnung, die beispielsweise von einem Adressenschema basierend auf Restsektoren definiert ist), zugehörige ”gefüllte” SSBs durch Adressen in Bezug auf eine Einheit von gepufferten Schreibdaten identifiziert werden.
-
Dieses Konzept ist in 10 genauer dargestellt. Hier sind SSB_m und SSB_m + 1 gemäß einer vorliegenden Unterteilung von logischen Adressen definiert. Obwohl die Einheit von Schreibdaten größer ist als eine Referenzgröße, die einem SSB zugeordnet ist, führt der Bereich von aufeinanderfolgenden logischen Blockadressen zu nicht gefüllten SSBs und zwei (2) teilweise gefüllten SSBs. Dementsprechend wird der Seitenabbildungsmodus ausgewählt.
-
Zum Beispiel wird angenommen, dass gepufferte Schreibdaten von 10 eine Größe aufweisen, die größer ist als eine Referenzgröße für einen SSB (z. B. 8 MBytes). Da aber die den gepufferten Schreibdaten zugewiesene Adresse nur teilweise sowohl über SSB_m und SSB_m + 1 reicht, werden die gepufferten Schreibdaten nicht als voller supersequentieller Block identifiziert. In diesem Fall wird der Seitenabbildungsmodus als Adressabbildung der gegebenen gepufferten Schreibdaten gewählt.
-
11 zeigt ein Flussbild, dass ein Adressabbildungsverfahren gemäß einer Ausführungsform des erfinderischen Konzepts zusammenfassend darstellt. Mit Bezug zu 11 können eine Pufferschicht und eine Flash-Übersetzungsschicht dazu verwendet werden, einen geeigneten Adressabbildungsmodus auf Basis einer empfangenen logischen Adresse, die Daten der Schreibanfrage zugeordnet sind, zu bestimmen. Es wird angenommen, dass die Schreibdaten mit der zugehörigen logischen Adresse vom Host 110 bereitgestellt sind und die Speichersteuereinheit 122 (2) führt eine Adressabbildungsoperation durch.
-
In Operation S110 speichert die Speichersteuereinheit 122 in Abhängigkeit von einer Schreibanfrage, die vom Host 110 empfangen worden ist, die Schreibdaten temporär im Pufferspeicher 126.
-
In Operation S120 detektiert die Speichersteuereinheit 122 ein sequentielles Schreibmuster in den gepufferten Schreibdaten. Die die Speichersteuereinheit 122 kann zum Beispiel auf Basis der logischen Adresse, die den gepufferten Schreibdaten zugeordnet ist, bestimmen, ob die gepufferten Schreibdaten mit einem sequentiellen Schreibmuster oder einem ungeordneten (zufälligen) Schreibmuster korrespondieren.
-
In Operation S130 wird der Seitenabbildungsmodus ausgewählt (S170), wenn die gepufferten Schreibdaten als nichtsequentiell oder ungeordnet (zufällig) bestimmt sind. Wenn jedoch die gepufferten Schreibdaten als sequentiell bestimmt sind, wird eine Bestimmung vorgenommen, ob die gepufferten Schreibdaten einen oder mehrere supersequentielle Blöcke SSB enthalten.
-
In Operation S140 identifiziert die Speichersteuereinheit 122 auf Basis der logischen Adresse (LBA, nSC), die vom Host 110 bereitgestellt ist, ob ein oder mehrere SSBs in den gepufferten Schreibdaten vorliegen. Gemäß gewisser Dateisystem- und/oder Speichersystemdefinitionen kann die logische Adresse für die gepufferten Schreibdaten ganz oder teilweise einen oder mehrere supersequentielle Blöcke SSB mit festgelegten Adresswerten füllen. Dementsprechend kann die Speichersteuereinheit 122 einen oder mehrere supersequentielle Blöcke SSB in den gepufferten Schreibdaten auf Basis ihrer logischen Adresse identifizieren.
-
In Operation S150 bestimmt die Speichersteuereinheit 122, ob einer oder mehrere SSBs in den gepufferten Schreibdaten vorliegen. Wenn nicht, wird der Seitenabbildungsmodus zur Verwendung bei der FTL zum Ausführen von Adressumwandlungen an den gepufferten Schreibdaten ausgewählt, S170. Ansonsten wird, wenn die gepufferten Schreibdaten einen oder mehrere identifizierte SSBs enthalten, der Blockabbildungsmodus zur Verwendung bei der FTL zum Ausführen von Adressabbildungen an Teilen der gepufferten Schreibdaten mit einem identifizierten SSB gewählt, während verbleibende Teile der gepufferten Schreibdaten unter Verwendung des Seitenabbildungsmodus abgebildet werden, S160.
-
Wie aus dem Vorstehenden ersichtlich ist, kann die Identifizierung von supersequentiellen Blöcken in gepufferten Schreibdaten auf Basis von Schreibmuster und Größe vorgenommen werden. Eine Seitenabbildungstabelle kann zum Abbilden von gepufferten Schreibdaten verwendet werden, die aufgrund ihres Musters, ihrer Größe oder ihres Adressortes keinen SSB darstellen. Eine Blockabbildungstabelle kann zum Abbilden von gepufferten Schreibdaten mit identifiziertem supersequentiellem Block oder Blöcken verwendet werden. Eine Swap-/Merge-Operation kann für Speicherblöcke unter Verwendung des Blockabbildungsmodus durchgeführt werden. Dementsprechend ist es möglich, eine Anzahl von Seitenkopieroperationen merklich zu reduzieren, die ansonsten für eine Merge-Operation erforderlich wären.
-
12 zeigt ein Blockdiagramm einer Benutzervorrichtung gemäß einer Ausführungsform des erfinderischen Konzepts. Mit Bezug zu 12 umfasst eine Benutzervorrichtung 500 einen Host 510 und eine Datenspeichervorrichtung 520. Die Speichervorrichtung 520 kann eine Speichersteuereinheit 522, eine nichtflüchtige Speichervorrichtung 524 und einen Pufferspeicher 526 beinhalten.
-
Bei einer Schreibanfrage kann der Host 510 Schreibdaten und eine logische Adresse LA an die Speichervorrichtung 520 senden. Der Host 510 kann jedoch eine Schreibanfrage auf einem Dateisystem erzeugen, bevor sie an die Speichervorrichtung 520 gesendet wird. Weiter können Daten, die Gegenstand einer Schreibanfrage sind, in einem Arbeitsspeicher 512 des Host 510 gespeichert werden, bevor sie zur Speichervorrichtung 520 übertragen werden. Der Host 510 kann einen Adressabbildungsmodus der Speichervorrichtung 520 basierend auf den im Arbeitsspeicher 512 gespeicherten Daten bewerten. Das heißt, der Host 510 kann einen Adressabbildungsmodus für die Schreibanfragedaten oder einen Teil der Schreibanfragendaten basierend auf Informationen entscheiden, die erzeugt worden sind, als die Schreibanfragedaten im Arbeitsspeicher 512 des Host 510 gespeichert wurden.
-
Zum Beispiel kann ein Gerätetreiber 514 des Host 510 einen supersequentiellen Block basierend auf einer logischen Adresse, die den im Arbeitsspeicher 512 gepufferten Schreibdaten zugeordnet ist, identifizieren. (In diesem Zusammenhang ist anzumerken, dass ”gepufferte Schreibdaten” auf verschiedene Weise in Speichern des Host 510 und/oder der Datenspeichervorrichtung 520 gespeichert werden können). Um diese Funktion zu erfüllen, kann der Host 510 eine Adressentabelle 516 für supersequentielle Blöcke (SSB) beinhalten, die eine Auflistung definierter logischer Adressbereiche enthält, die supersequentiellen Blöcken zugeordnet sind.
-
Der Gerätetreiber 514 bestimmt dann einen geeigneten Abbildungsmodus für die gepufferten Schreibdaten im Vergleich mit der SSB-Adressentabelle 516. Nach Übermittlung einer Schreibanfrage, die gepufferten Schreibdaten zugeordnet ist, kann der Gerätetreiber 514 der Speichervorrichtung 520 auch einen Adressabbildungsmodus (AM_mode) angeben.
-
Die Speichersteuereinheit 522 der Datenspeichervorrichtung 520 stellt eine Schnittstelle zwischen dem Host 510 und der nichtflüchtigen Speichervorrichtung 524 bereit. Die Speichersteuereinheit 522 führt typischerweise eine Adressabbildung zwischen einer logischen Adresse und einer physikalischen Adresse auf Basis einer empfangenen logischen Adresse (LBA, nSC), die in der Schreibanfrage enthalten ist, und in Hinblick auf einen angezeigten Adressabbildungsmodus durch.
-
Die nichtflüchtige Speichervorrichtung 524 führt Lösch-, Lese- oder Schreiboperationen unter der Steuerung der Speichersteuereinheit 522 durch. Die nichtflüchtige Speichervorrichtung 524 kann eine Mehrzahl von Speicherblöcken beinhalten, wobei jeder eine Mehrzahl von Seiten umfasst. Im Falle, dass die zahlreichen nichtflüchtigen Speicher mit zahlreichen Kanälen gekoppelt sind, kann die nichtflüchtige Speichervorrichtung 524 gemäß einer Speicher-Verschränkungsfunktion (Speicher-Interleaving-Funktion) gesteuert werden, um die Leistung zu erhöhen.
-
Die Speichervorrichtung 520 beinhaltet einen Pufferspeicher 526. Weiter kann ein geeigneter Abbildungsmodus vom Host 510 bestimmt werden, wenn die Datenspeichervorrichtung 520 keine ausreichenden Rechenkapazitäten aufweist.
-
13 zeigt eine Konzeptskizze, die ein mögliches Format für eine Schreibanfrage darstellt, die von einem Host an eine Datenspeichervorrichtung übertragen wird. Mit Bezug zu 13 kann die Schreibanfrage einen Schreibbefehl 531, eine logische Adresse (533, 535), eine Adressabbildungsmodusangabe 537 und Schreibdaten 539 beinhalten.
-
Die Adressabbildungsmodusangabe 537 kann beispielsweise verschiedene Adressabbildungsmodi für zugehörige Teile der Schreibdaten mit speziellen logischen Adressen beinhalten. Das heißt, die Adressabbildungsmodusangabe 537 kann mehreren Datenbereichen zugeordnet sein, die mit einer logischen Adresse (LBA, nSC) korrespondieren.
-
14 zeigt ein Blockdiagramm, das eine Softwareschichtstruktur darstellt, die in Verbindung mit der Benutzervorrichtung von 12 verwendet werden kann. Mit Bezug zu 14 umfasst eine Hostschicht 610 ein Dateisystem 612 und einen Gerätetreiber 614. Eine Datenspeichervorrichtungsschicht 620 kann eine Hostschnittstellenschicht 622, eine Flash-Übersetzungsschicht 624 und eine Flash-Schnittstellenschicht 626 beinhalten.
-
Das Dateisystem 612 kann zum Beispiel eine Zugriffsanfrage an eine Datenspeichervorrichtung 520 nach Dateierstellung und Dateilöschung erzeugen. Wenn eine Schreibanfrage für eine Datei in einem Pufferspeicher des Host 510 erfolgt, kann das Dateisystem 612 eine Schreibanfrage für eine zugehörige Datei an den Gerätetreiber 614 senden. Der Gerätetreiber 614 kann basierend auf der logischen Adresse der Schreibdaten und der Definition von supersequentiellen Blöcken SSB bestimmen, ob die Schreibdaten einen oder mehrere SSBs enthalten. Der Gerätetreiber 614 kann dann einen Adressabbildungsmodus für alle oder für definierte Teile der Schreibdaten bestimmen. Der bestimmte Adressabbildungsmodus wird dann an die Datenspeichervorrichtungsschicht 620 gesendet, wenn der Schreibanfragebefehl bereitgestellt ist.
-
Die Datenspeichervorrichtungsschicht 620 kann dann, in Abhängigkeit von der Schreibanfrage, die vom Host 510 übermittelt ist, die logische Adresse der Schreibdaten auf eine zugehörige physikalische Adresse in einer oder mehreren nichtflüchtigen Speichervorrichtungen abbilden. Die Schreibdaten können dann in die eine oder mehreren nichtflüchtigen Speichervorrichtungen abgebildet werden, wobei beispielsweise eine Verschränkungsfunktion bei der physikalischen Adresse angewendet wird. Um diese Funktionalität zu erreichen, kann die Datenspeichervorrichtungsschicht 620 eine Hostschnittstellenschicht 622, eine Flash-Übersetzungsschicht 624 und eine Flash-Schnittstellenschicht 626 beinhalten, die wie zuvor beschrieben funktionieren.
-
Auf diese Weise können Bestimmungen von SSBs und zugehörige Bestimmungen eines Abbildungsmodus in Abhängigkeit von einer jeweiligen Verfügbarkeit der Einrichtung und ihrer Kapazität, einer Speichersystemarchitektur und Systembetriebseinschränkungen im Host 510 oder in der Datenspeichervorrichtung 520 vorgenommen werden.
-
15 zeigt ein Flussbild, das zusammengefasst ein anderes Adressabbildungsverfahren gemäß einer Ausführungsform des erfinderischen Konzepts darstellt. Entsprechende Schritte des in 15 zusammengefasst dargestellten beispielhaften Verfahrens sind analog zu den mit Bezug zu 12 beschriebenen, mit Ausnahme der Funktionsweise der Schritte S260 und S270. Die Fachleute werden erkennen, dass diese Schritte auf den Host zentriert sind, während im Vergleich dazu die Schritte S160 und S170 von 11 auf die Datenspeichervorrichtung zentriert sind. Der Host 510 von 12 ”instruiert” nämlich die Datenspeichervorrichtung 520, entweder eine Seitenabbildung oder eine Blockabbildung als Teil eines kompetenten Schreibanfragebefehls zu verwenden. Die Datenspeichervorrichtung 520 bildet dann die empfangenen Schreibdaten entsprechend ab und speichert sie.
-
16 zeigt ein Blockdiagramm, das ein Festkörperlaufwerk(SSD)-System gemäß einer Ausführungsform des erfinderischen Konzepts darstellt. Mit Bezug zu 16 kann ein SSD-System 1000 einen Host 1100 und ein SSD 1200 umfassen. Das SSD 1200 kann eine SSD-Steuereinheit 1210, einen Pufferspeicher 1220 und eine nichtflüchtige Speichervorrichtung 1230 beinhalten.
-
Die SSD-Steuereinheit 1210 kann eine physikalische Verbindung zwischen dem Host 1100 und dem SSD 1200 bereitstellen. Das heißt, die SSD-Steuereinheit 1210 kann eine Schnittstelle mit dem SSD 1200 so ausbilden, dass es mit einem Busformat des Host 1100 korrespondiert. Insbesondere kann die SSD-Steuereinheit 1210 so konfiguriert sein, dass sie einen vom Host 1100 bereitgestellten Befehl dekodiert. Die SSD-Steuereinheit 1210 kann gemäß dem Dekodierungsergebnis auf die nichtflüchtige Speichervorrichtung 1230 Zugriff nehmen. Das Busformat des Host 1100 kann USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCI-Express, ATA, PATA (Parallel-ATA), SATA (Serial-ATA), SAS (Serial Attached SCSI) und dergleichen umfassen.
-
Hierbei kann die SSD-Steuereinheit 1210 eine hybride Abbildung anwenden, die sowohl einen Blockabbildungsmodus wie einen Seitenabbildungsmodus einsetzt, um eine Adressabbildung zu erreichen. Detektieren eines Supersequenzblocks und Bestimmen eines Adressabbildungsmodus können von einem Host 1100 durchgeführt werden. Alternativ kann die SSD-Steuereinheit 1210 einen Abbildungsmodus basierend auf logischen Adressen LBA und nSC bestimmen, die mit einer Schreibanfrage übermittelt werden.
-
Der Pufferspeicher 1220 kann dazu verwendet werden, vom Host 1100 bereitgestellte Schreibdaten oder von der nichtflüchtigen Speichervorrichtung 1230 ausgelesene Daten temporär zu speichern. Wenn in der nichtflüchtigen Speichervorrichtung 1230 gespeicherte Daten bei einer Leseanfrage des Host 1100 im Cache gespeichert (zwischengespeichert) werden, kann der Pufferspeicher 1220 die cache-gespeicherten Daten dem Host 1100 direkt bereitstellen. Das heißt, der Pufferspeicher 1220 kann eine Cachefunktion unterstützen. Eine vom Busformat (z. B. SATA oder SAS) bestimmte Datenübertragungsgeschwindigkeit des Host 1100 kann merklich höher sein als die eines Speicherkanals des SSD 1200. Das heißt, wenn eine Schnittstellengeschwindigkeit des Host 1100 außerordentlich hoch ist, kann eine Leistungsminderung aufgrund einer Geschwindigkeitsdifferenz zwischen dem Busformat und dem Speicherkanal durch Verwenden eines großen Pufferspeichers 1220 minimiert werden.
-
Der Pufferspeicher 1220 kann aus einem synchronen DRAM (SDRAM) gebildet sein, um eine ausreichende Pufferung zum SSD 1200 vorzusehen, der als großes Volumen einer Hilfsspeichervorrichtung verwendet wird. Es versteht sich jedoch, dass der Pufferspeicher 1220 nicht auf diese Offenbarung beschränkt ist.
-
Die nichtflüchtige Speichervorrichtung 1230 kann als Speichermedium der SSD 1200 vorgesehen sein. Zum Beispiel kann die nichtflüchtige Speichervorrichtung 1230 aus einem Flash-Speicher vom NAND-Typ mit einer großen Speicherkapazität gebildet sein. Die nichtflüchtige Speichervorrichtung 1230 kann aus einer Mehrzahl von Speichervorrichtungen gebildet sein. In diesem Fall können die Speichervorrichtungen mit der SSD-Steuereinheit 1210 durch den Kanal gekoppelt sein. Die nichtflüchtige Speichervorrichtung 1230 als Speichermedium ist nicht auf diese Offenbarung beschränkt. Zum Beispiel können nichtflüchtige Speichervorrichtungen wie PRAM, MRAM, ReRAM, FRAM, NOR-Flashspeicher und dergleichen als Speichermedien verwendet werden. Ein Speichersystem mit unterschiedlichen Typen von Speichern kann für eine Massendatenspeicherung (oder Mediendatenspeicherung) verwendet werden. Alternativ kann eine flüchtige Speichervorrichtung (z. B. DRAM) als Speichermedium verwendet werden.
-
17 zeigt ein Blockdiagramm, das ein Speichersystem gemäß einer anderen Ausführungsform des erfinderischen Konzepts darstellt. Mit Bezug zu 17 kann ein Speichersystem 2000 eine nichtflüchtige Speichervorrichtung 2200 und eine Speichersteuereinheit 2100 umfassen.
-
Die Speichersteuereinheit 2100 kann dazu ausgebildet sein, die nichtflüchtige Speichervorrichtung 2200 anzusteuern. Die nichtflüchtige Speichervorrichtung 2200 und die Speichersteuereinheit 2100 können eine Speicherkarte ausbilden. SRAM 2110 kann als Arbeitsspeicher einer Zentraleinheit (CPU) 2120 als Verarbeitungseinheit verwendet werden. Eine Hostschnittstelle 2130 kann das Protokoll zum Datenaustausch mit einem Host beinhalten, der mit dem Speichersystem 2000 gekoppelt ist. Ein Fehlerkorrektur(ECC)-Block 2140 (ECC bedeutet Error-Correction Code) kann dazu ausgebildet sein, Fehler in Lesedaten, die von der nichtflüchtigen Speichervorrichtung 2200 aufgerufen sind, zu detektieren und zu korrigieren. Eine Speicherschnittstelle 2150 kann dazu ausgebildet sein, eine Schnittstelle mit der nichtflüchtigen Speichervorrichtung 2200 auszubilden. Die CPU 2120 kann eine Gesamtoperation zum Datenaustausch der Speichersteuereinheit 2100 durchführen. Obwohl es nicht gezeigt ist, kann das Speichersystem 2000 weiter eine ROM umfassen, die Kodedaten für eine Schnittstelle mit einem Host speichert.
-
Hierbei kann die Speichersteuereinheit 2100 gemäß einem Hybridabbildungsansatz eine logische Adresse von einem Host auf eine physikalische Adresse der nichtflüchtigen Speichervorrichtung 2200 abbilden. Detektieren eines Supersequenzblocks und Bestimmen eines Adressabbildungsmodus können von einem Host ausgeführt werden (nicht gezeigt). Alternativ kann die Speichersteuereinheit 2100 einen Abbildungsmodus basierend auf logischen Adressen LBA und nSC, die mit einer Schreibanfrage übertragen werden, bestimmen. Die Speichersteuereinheit 2100 kann basierend auf im SRAM 1210 gespeicherten Schreibdaten gemäß einer Schreibanfrage von einem Host entweder ein Blockabbildungsverfahren oder ein Seitenabbildungsverfahren bestimmen.
-
Die nichtflüchtige Speichervorrichtung 2200 kann aus einer Multichippackung gebildet sein, die eine Mehrzahl von Flash-Speicherchips beinhaltet. Das Speichersystem 2000 kann als Speichermedium mit hoher Zuverlässigkeit und geringer Fehlerwahrscheinlichkeit zur Verfügung gestellt werden. In diesem Fall kann die Speichersteuereinheit 2100 so ausgebildet sein, dass sie mit einer externen Einrichtung (z. B. einem Host) durch eines von verschiedenen Schnittstellenprotokollen kommuniziert, wie USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, IDE und dergleichen.
-
18 zeigt ein Blockdiagramm, das ein Computersystem gemäß einer Ausführungsform des erfinderischen Konzepts darstellt. Ein Computersystem 3000 kann eine CPU 3200, einen RAM 3300, eine Benutzerschnittstelle 3400, ein Modem 3500, wie ein Basisband-Chipset, und ein Speichersystem 3100 umfassen, die mit einem Systembus 3600 gekoppelt sind.
-
Wenn das Computersystem 3000 ein mobiles Gerät ist, kann es weiter eine Batterie (nicht gezeigt) beinhalten, die das System mit Energie versorgt. Obwohl es in 18 nicht gezeigt ist, kann das Computersystem 3000 weiter ein Anwendungs-Chipset, einen Kamerabildprozessor (CIS), einen mobilen DRAM und dergleichen beinhalten. Das Speichersystem 3100 kann ein Festkörperlaufwerk/-platte (SSD) sein, das (die) beispielsweise einen nichtflüchtigen Speicher zum Speichern von Daten nutzt. Alternativ kann das Speichersystem 3100 aus einem Fusionsspeicher (z. B. One-NAND-Flashspeichervorrichtung) gebildet sein.
-
Hierbei kann das Speichersystem 3100 eine Speichersteuereinheit 3110 und einen Flash-Speicher 3120 beinhalten. Die Speichersteuereinheit 3110 kann gemäß einem Hybridabbildungsverfahren eine logische Adresse von einem Host auf eine physikalische Adresse des Flash-Speichers 3120 abbilden. Detektieren eines Supersequenzblocks und Bestimmen eines Adressabbildungsmodus können von einem Host (z. B. der CPU) ausgeführt werden. Alternativ kann die Speichersteuereinheit 3110 einen Abbildungsmodus basierend auf logischen Adressen LBA und nSC, die bei einer Schreibanfrage übertragen werden, bestimmen.
-
Die zugehörigen nichtflüchtigen Speichervorrichtungen und/oder eine Speichersteuereinheit wie oben beschrieben und in Ausführungsformen des erfinderischen Konzepts ausgebildet können unter Verwendung verschiedener Verpackungstechniken verpackt sein, wie PoP (Package an Package), BGAs (Ball Grid Arrays), CSPs (Chip Scale Packages), PLCC (Plastic Leaded Chip Carrier), PDIP (Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB (Chip an Board), CERDIP (Ceramid Cual In-Line Package), MQFP (Plastic Metric Quad Flat Pack), TQFP (Thin Quad Flatpack), SOIC (Small Outline Integrated Circuit), SSOP (Shrink Small Outline Package), TSOP (Thin Small Outline), TQFP (Thin Quad Flatpack), SIP (System In Package), MCP (Multi Chip Package), WFP (Wafer-Level Fabricated Package), WSP (Wafer-Level Processed Stack Package) und dergleichen.