DE102011086227A1 - Adress mapping method, data storage device and user device - Google Patents

Adress mapping method, data storage device and user device Download PDF

Info

Publication number
DE102011086227A1
DE102011086227A1 DE102011086227A DE102011086227A DE102011086227A1 DE 102011086227 A1 DE102011086227 A1 DE 102011086227A1 DE 102011086227 A DE102011086227 A DE 102011086227A DE 102011086227 A DE102011086227 A DE 102011086227A DE 102011086227 A1 DE102011086227 A1 DE 102011086227A1
Authority
DE
Germany
Prior art keywords
write data
address
ssb
data
mapping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102011086227A
Other languages
English (en)
Inventor
Kwangsoo Ahn
Hyun Jin Choi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102011086227A1 publication Critical patent/DE102011086227A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Eine Datenspeichervorrichtung (100) umfasst einen Pufferspeicher (126), der dazu ausgebildet ist, extern bereitgestellte Schreibdaten mit einer logischen Adresse temporär zu speichern, eine nichtflüchtige Speichervorrichtung (124), die dazu ausgebildet ist, die Schreibdaten zu speichern, und eine Speichersteuereinheit (122), 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.

Description

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

Claims (23)

  1. Adressabbildungsverfahren für eine Datenspeichervorrichtung unter Verwendung einer hybriden Abbildung, wobei das Adressabbildungsverfahren aufweist: – 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.
  2. Adressabbildungsverfahren nach Anspruch 1, wobei die Schreibdaten in dem mindestens einen SSB ein sequentielles Schreibmuster aufweisen.
  3. Adressabbildungsverfahren nach Anspruch 2, wobei die Schreibdaten in dem mindestens einen SSB eine Größe aufweisen, die größer oder gleich ist wie eine Referenzgröße, die einen SSB definiert.
  4. Adressabbildungsverfahren nach einem der Ansprüche 1 bis 3, weiter aufweisend: – Schreiben des mindestens einen SSB in eine Mehrzahl von Speicherblöcken, die über eine Mehrzahl von nichtflüchtigen Speichervorrichtungen verteilt sind.
  5. Adressabbildungsverfahren nach Anspruch 4, wobei das Schreiben des mindestens einen SSB unter Verwendung einer Verschränkungsfunktion durchgeführt wird.
  6. Adressabbildungsverfahren nach einem der Ansprüche 1 bis 5, weiter aufweisend: – Bestimmen, ob die Schreibdaten nichtsequentielle Daten umfassen, und, wenn die Schreibdaten nichtsequentielle Daten umfassen, Verwenden des Seitenabbildungsmodus, um eine logische Adresse, die den nichtsequentiellen Daten zugeordnet ist, auf eine zugehörige physikalische Adresse abzubilden.
  7. Adressabbildungsverfahren nach einem der Ansprüche 1 bis 6, weiter aufweisend: – Speichern der Schreibdaten in einem Pufferspeicher vor dem Bestimmen, ob die Schreibdaten den mindestens einen SSB aufweisen.
  8. Adressabbildungsverfahren für ein System mit einem Host und einer Datenspeichervorrichtung unter Verwendung eines hybriden Abbildungsschemas, wobei das Adressabbildungsverfahren aufweist: – 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) beinhalten, – 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 einen SSB zugeordnet ist, auf eine zugehörige physikalische Adresse.
  9. Adressabbildungsverfahren nach Anspruch 8, wobei das Bestimmen, ob die Schreibdaten den mindestens einen SSB beinhalten, das Auswählen des Blockabbildungsmodus und das Auswählen des Seitenabbildungsmodus durch den Host ausgeführt werden.
  10. Adressabbildungsverfahren nach Anspruch 8 oder 9, wobei der Schreibbefehl eine Adressabbildungsmodus-Indikationssteueroperation des hybriden Abbildungsschemas der Datenspeichervorrichtung beinhaltet.
  11. Datenspeichervorrichtung (100), aufweisend: – einen Pufferspeicher (126), der dazu ausgebildet ist, extern bereitgestellte Schreibdaten mit einer logischen Adresse temporär zu speichern, – eine nichtflüchtige Speichervorrichtung (124), die dazu ausgebildet ist, die Schreibdaten zu speichern, und – eine Speichersteuereinheit (122), 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.
  12. Datenspeichervorrichtung nach Anspruch 11, wobei die Speichersteuereinheit weiter dazu ausgebildet ist, die Schreibdaten verteilt über eine Mehrzahl von Speicherblöcken zu programmieren, die in der nichtflüchtigen Speichervorrichtung definiert sind.
  13. Datenspeichervorrichtung nach Anspruch 11 oder 12, wobei die Speichersteuereinheit Software mit einer hierarchischen Struktur aufweist, mit: – einer Hostschnittstellenschicht (211), die eine Schnittstelle zwischen dem Pufferspeicher und einem Host zur Verfügung stellt, der die Schreibdaten kommuniziert, – eine Flash-Übersetzungsschicht (213), die entsprechende Teile der logischen Adresse auf entsprechende zugehörige Teile einer physikalischen Adresse der nichtflüchtigen Speichervorrichtung abbildet, und – eine Flash-Schnittstellenschicht (214), die die Schreibdaten in die physikalische Adresse in einer verteilten Weise programmiert.
  14. Datenspeichervorrichtung nach Anspruch 13, wobei die Hostschnittstellenschicht ein Pufferverwaltungsmodul (212) aufweist, das den Blockabbildungsmodus und/oder den Seitenabbildungsmodus auswählt.
  15. Datenspeichervorrichtung nach Anspruch 13 oder 14, wobei die Hostschnittstellenschicht ein SSB-Entscheidungsmodul (415) aufweist, das auf Basis der logischen Adresse detektiert, ob die Schreibdaten den mindestens einen SSB aufweisen.
  16. Datenspeichervorrichtung nach Anspruch 15, wobei dann, wenn die Schreibdaten den mindestens einen SSB aufweisen, das SSB-Entscheidungsmodul die Flash-Übersetzungsschicht derart steuert, dass das Adressabbilden der Schreibdaten ein Verwenden des Blockabbildungsmodus beinhaltet, um den ersten Teil der logischen Adresse, die den Schreibdaten in dem mindestens einen SSB zugeordnet ist, abzubilden.
  17. Datenspeichervorrichtung nach Anspruch 16, wobei dann, wenn der erste Teil der Schreibdaten, der dem mindestens einen SSB zugeordnet ist, in die nichtflüchtige Speichervorrichtung programmiert wird, die Flash-Übersetzungsschicht das Programmieren unter Verwendung einer Swap-/Merge-Operation verwaltet.
  18. Benutzervorrichtung, aufweisend: – einen Host (110), 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 (120), 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 der Mehrzahl von Abbildungsmodi abzubilden.
  19. Benutzervorrichtung nach Anspruch 18, wobei die Mehrzahl von Abbildungsmodi einen Blockabbildungsmodus und einen Seitenabbildungsmodus umfassen.
  20. Benutzervorrichtung nach Anspruch 19, wobei dann, wenn die Schreibdaten mindestens einen supersequentiellen Block (SSB) aufweisen, der Host mindestens einen Teil der logischen Adresse auf eine zugehörige physikalische Adresse unter Verwendung des Blockabbildungsmodus abbildet.
  21. Benutzervorrichtung nach Anspruch 20, wobei der SSB mit einer Mehrzahl von Speicherblöcken korrespondiert, die in der nichtflüchtigen Speichervorrichtung enthalten sind.
  22. Benutzervorrichtung nach Anspruch 21, wobei die logische Adresse auf eine zugehörige physikalische Adresse abgebildet wird, so dass die Schreibdaten verteilt über die Mehrzahl von Speicherblöcken programmiert werden.
  23. Benutzervorrichtung nach einem der Ansprüche 18 bis 22, wobei der Host umfasst: – einen Arbeitsspeicher (512), der dazu ausgebildet ist, die Schreibdaten temporär zu speichern, und – einen Gerätetreiber (514), der dazu ausgebildet ist, einen Adressabbildungsmodus für die Schreibdaten basierend auf einer Größe der Schreibdaten und/oder der logischen Adresse zu bestimmen.
DE102011086227A 2010-11-15 2011-11-11 Adress mapping method, data storage device and user device Withdrawn DE102011086227A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100113466A KR101739556B1 (ko) 2010-11-15 2010-11-15 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
KR10-2010-0113466 2010-11-15

Publications (1)

Publication Number Publication Date
DE102011086227A1 true DE102011086227A1 (de) 2012-05-16

Family

ID=45999107

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011086227A Withdrawn DE102011086227A1 (de) 2010-11-15 2011-11-11 Adress mapping method, data storage device and user device

Country Status (6)

Country Link
US (1) US9563549B2 (de)
JP (1) JP2012108912A (de)
KR (1) KR101739556B1 (de)
CN (1) CN102591589A (de)
DE (1) DE102011086227A1 (de)
TW (1) TW201227741A (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
WO2012166050A1 (en) * 2011-05-30 2012-12-06 Agency For Science, Technology And Research Buffer management apparatus and method
US9619174B2 (en) * 2011-12-30 2017-04-11 Intel Corporation Write mechanism for storage class memory
US9213632B1 (en) 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
US20130326169A1 (en) * 2012-05-31 2013-12-05 Amir Shaharabany Method and Storage Device for Detection of Streaming Data Based on Logged Read/Write Transactions
US9141296B2 (en) 2012-05-31 2015-09-22 Sandisk Technologies Inc. Method and host device for packing and dispatching read and write commands
CN102819494B (zh) * 2012-07-18 2015-09-02 山东华芯半导体有限公司 一种闪存顺序写入时的优化方法
JP2014044490A (ja) * 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
KR20140040998A (ko) * 2012-09-27 2014-04-04 삼성전자주식회사 로그기반 데이터 저장 시스템의 관리방법
US8547745B1 (en) * 2012-11-16 2013-10-01 Avalanche Technology, Inc. Host-managed logical mass storage device using magnetic random access memory (MRAM)
KR102011135B1 (ko) * 2012-12-11 2019-08-14 삼성전자주식회사 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법
TWI497292B (zh) * 2013-01-09 2015-08-21 Memoright Corp A Method of Finding System Data Based on Index Block
TWI528379B (zh) * 2014-02-05 2016-04-01 廣明光電股份有限公司 固態硬碟的讀取方法
KR102157668B1 (ko) * 2014-04-03 2020-09-22 에스케이하이닉스 주식회사 호스트와 통신하는 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 컴퓨팅 시스템
EP3164803B1 (de) * 2014-07-01 2022-09-21 Razer (Asia-Pacific) Pte. Ltd. Datenspeichersysteme, verfahren zur steuerung eines datenspeichersystems
KR20160016421A (ko) * 2014-08-05 2016-02-15 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 장치의 최적화 방법
KR102344834B1 (ko) 2014-09-24 2021-12-29 삼성전자주식회사 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템
US9489141B2 (en) 2014-12-18 2016-11-08 Nimble Storage, Inc. Efficient scheduling of Input/Output requests to reduce latency and maximize throughput in a flash storage device
US10049035B1 (en) * 2015-03-10 2018-08-14 Reniac, Inc. Stream memory management unit (SMMU)
KR20160112135A (ko) * 2015-03-18 2016-09-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9904490B2 (en) * 2015-06-26 2018-02-27 Toshiba Memory Corporation Solid-state mass storage device and method for persisting volatile data to non-volatile media
CN112765006A (zh) * 2015-07-21 2021-05-07 北京忆恒创源科技有限公司 存储设备日志生成方法及其存储设备
KR102491622B1 (ko) 2015-11-17 2023-01-25 삼성전자주식회사 가상 어드레스 생성기의 동작 방법과 이를 포함하는 시스템의 동작 방법
KR102535700B1 (ko) * 2016-02-01 2023-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10296264B2 (en) 2016-02-09 2019-05-21 Samsung Electronics Co., Ltd. Automatic I/O stream selection for storage devices
US20170255387A1 (en) * 2016-03-04 2017-09-07 Intel Corporation Techniques to Cause a Content Pattern to be Stored to Memory Cells of a Memory Device
US9971691B2 (en) * 2016-09-12 2018-05-15 Intel Corporation Selevtive application of interleave based on type of data to be stored in memory
KR20180083093A (ko) * 2017-01-12 2018-07-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN108319618B (zh) * 2017-01-17 2022-05-06 阿里巴巴集团控股有限公司 一种分布式存储系统的数据分布控制方法、系统及装置
KR102398186B1 (ko) * 2017-07-03 2022-05-17 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법
KR102398181B1 (ko) * 2017-07-03 2022-05-17 삼성전자주식회사 쓰기 데이터를 위해 할당될 물리 어드레스를 미리 관리하는 스토리지 장치
TWI645288B (zh) * 2017-07-04 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10719394B2 (en) * 2017-10-25 2020-07-21 Innogrit Technologies Co., Ltd. Systems and methods for fast access of non-volatile storage devices
KR20190083051A (ko) * 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
CN110018897B (zh) 2018-01-09 2023-05-26 阿里巴巴集团控股有限公司 数据处理方法、装置及计算设备
US11709539B2 (en) 2018-01-24 2023-07-25 Western Digital Technologies, Inc. Low power state staging
US10564868B2 (en) * 2018-01-24 2020-02-18 Western Digital Technologies, Inc. Method and apparatus for selecting power states in storage devices
CN109451867B (zh) * 2018-02-12 2022-12-27 北京小米移动软件有限公司 随机接入时机的配置方法及装置、随机接入方法及装置
KR20190107449A (ko) * 2018-03-12 2019-09-20 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
KR102619954B1 (ko) 2018-03-29 2024-01-02 삼성전자주식회사 데이터를 처리하기 위한 방법 및 이를 지원하는 전자 장치
KR102519339B1 (ko) * 2018-04-17 2023-04-07 삼성전자주식회사 무선 통신 시스템에서 동기 개선을 위한 방법 및 장치
KR102620727B1 (ko) 2018-04-18 2024-01-03 에스케이하이닉스 주식회사 전자 장치
JP7131053B2 (ja) * 2018-04-24 2022-09-06 富士通株式会社 記憶装置,情報処理プログラムおよび情報処理システム
KR102545229B1 (ko) 2018-05-04 2023-06-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102520412B1 (ko) * 2018-09-19 2023-04-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10795576B2 (en) 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory
KR20200059780A (ko) 2018-11-21 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102663661B1 (ko) * 2018-12-06 2024-05-10 에스케이하이닉스 주식회사 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
KR20200076946A (ko) * 2018-12-20 2020-06-30 삼성전자주식회사 스토리지 장치의 데이터 기입 방법 및 이를 수행하는 스토리지 장치
KR20200106682A (ko) * 2019-03-05 2020-09-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
TWI724427B (zh) * 2019-05-22 2021-04-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
CN110471861B (zh) * 2019-07-10 2022-02-11 华为技术有限公司 一种闪存设备中的数据存储方法及闪存设备
CN110554298B (zh) * 2019-08-27 2022-03-22 江苏芯盛智能科技有限公司 芯片和芯片测试方法
KR102316271B1 (ko) * 2019-08-29 2021-10-22 동국대학교 산학협력단 데이터 저장장치의 주소 맵핑 테이블 운용 방법
TWI721660B (zh) * 2019-11-22 2021-03-11 財團法人工業技術研究院 控制資料讀寫裝置與方法
KR20220014212A (ko) * 2020-07-28 2022-02-04 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11836074B2 (en) * 2020-10-07 2023-12-05 Micron Technology, Inc. Multiple flash translation layers at a memory device
KR20220052152A (ko) 2020-10-20 2022-04-27 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN112925481B (zh) * 2021-03-09 2024-04-05 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
CN113419675B (zh) * 2021-06-11 2023-03-03 联芸科技(杭州)股份有限公司 用于存储器的写操作方法及读操作方法
US11455110B1 (en) * 2021-09-08 2022-09-27 International Business Machines Corporation Data deduplication
KR102385572B1 (ko) * 2021-11-02 2022-04-13 삼성전자주식회사 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
JP3766396B2 (ja) 2003-04-21 2006-04-12 株式会社東芝 メモリ制御装置およびメモリ制御方法
US7188228B1 (en) 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US9213627B2 (en) 2005-12-21 2015-12-15 Nxp B.V. Non-volatile memory with block erasable locations
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR101086857B1 (ko) 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table

Also Published As

Publication number Publication date
JP2012108912A (ja) 2012-06-07
KR20120052028A (ko) 2012-05-23
KR101739556B1 (ko) 2017-05-24
CN102591589A (zh) 2012-07-18
US20120124276A1 (en) 2012-05-17
US9563549B2 (en) 2017-02-07
TW201227741A (en) 2012-07-01

Similar Documents

Publication Publication Date Title
DE102011086227A1 (de) Adress mapping method, data storage device and user device
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE112020002526B4 (de) Blockmodusumschaltung in datenspeichersystem
DE102020107659A1 (de) Zonenbildung für gezonte namensräume
DE112015000378T5 (de) Selektives Rückkopieren für einen auf einem Chipplättchen gepufferten nichtflüchtigen Speicher
DE102018105750A1 (de) System und Verfahren für Hybrid-Push-Pull-Datenmanagement in einem nichtflüchtigen Datenspeicher
DE112020005060T5 (de) Ratengrenze für den übergang von zonen zum öffnen
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112020000139T5 (de) Nicht sequentiell in zonen aufgeteilte namensräume
DE102013106242A1 (de) Halbleiterlaufwerk mit Konvertierungsschicht (ETL) und Umleitung von temporären Dateien zur Verschleissminderung von Flashspeichern
DE112015005102T5 (de) Systeme und verfahren zum erzeugen von einem hostbefehl zugeordneten hinweisinformationen
DE112017005955T5 (de) Speichersystem und verfahren zur schlanken speicherzuweisung
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102009026178A1 (de) Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE112017005637T5 (de) Verfahren und System zur Schreibverstärkungsanalyse
DE102008036822A1 (de) Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
DE102018123880A1 (de) Adaptive Verwaltung von Zwischenspeichern
DE112019005511T5 (de) Halten von schreibbefehlen in gezonten namensräumen
DE102021115373A1 (de) Identifizierte zonen für zonen mit optimaler paritätsteilung
DE112020004591T5 (de) L2P-Übersetzungstechniken in begrenzten RAM-Systemen
DE112020004958T5 (de) Dynamische zonenaktivgrenze für offenen zns
DE102018123670A1 (de) Speicherungssystem, Rechensystem und Verfahren dafür
DE112019000162T5 (de) Verfahren zum Maximieren von Stromeffizienz in einem Block einer Speicher-Schnittstelle

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee