-
QUERVERWEIS AUF VERWANDTE ANMELDUNG
-
Die vorliegende Anmeldung beansprucht die Priorität gemäß 35 U.S.C. § 119(a) für die koreanische Anmeldung Nr.
10-2019-0103087 , die am 22. August 2019 beim koreanischen Amt für geistiges Eigentum eingereicht wurde und die durch Bezugnahme in ihrer Gesamtheit in diese Anmeldung aufgenommen wird.
-
HINTERGRUND
-
Technisches Anwendungsgebiet
-
Verschiedene Ausführungsformen beziehen sich im Allgemeinen auf eine Halbleitervorrichtung und insbesondere auf ein Datenspeichergerät und ein Betriebsverfahren dafür.
-
Stand der Technik
-
Ein Datenspeichergerät, das eine Speichervorrichtung verwendet, hat insofern Vorteile, als es eine ausgezeichnete Stabilität und Haltbarkeit, eine sehr hohe Zugriffsgeschwindigkeit auf Informationen und einen niedrigen Stromverbrauch aufweist, da es keinen mechanischen Antrieb einschließt. Ein Datenspeichergerät mit solchen Vorteilen umfasst ein USB (Universal Serial Bus) - Speichergerät, eine Speicherkarte mit verschiedenen Schnittstellen, ein UFS (Universal-Flash) - Speichergerät und ein Solid-State-Laufwerk.
-
Solid-State-Laufwerke können einen NAND-Flash-Speicher einschließen. Speicherplätze im NAND-Flash-Speicher werden nicht überschrieben, sondern zwischen den einzelnen Schreibvorgängen gelöscht. Dementsprechend ist es notwendig, eine in einem Host-Gerät verwendete logische Adresse und eine in einem NAND-Flash-Speicher verwendete physikalische Adresse abzugleichen und zu verwalten.
-
Eine Abbildungstabelle zwischen einer logischen Adresse und einer physikalische Adresse kann in einer 4-Kilobyte-Einheit (KB) verwaltet werden, so dass zusammenhängende Blöcke von logischen Adressen, die jeweils 4 KB entsprechen, in entsprechende Blöcke von physikalischen Adressen, die jeweils 4 KB entsprechen, abgebildet werden. Um die Datenzugriffsleistung zu verbessern, kann die Abbildungstabelle in einem flüchtigen Direktzugriffsspeicher (Random Access Memory, RAM), z. B. einem dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory, DRAM), gespeichert werden. In diesem Dokument bezieht sich „wahlfrei“ auf die Fähigkeit, den Speicher in beliebiger Reihenfolge zu lesen und zu schreiben, wozu auch die Möglichkeit gehört, zuvor geschriebene Daten zu überschreiben.
-
ZUSAMMENFASSUNG
-
Verschiedene Ausführungsformen richten sich auf das Bereitstellen eines Datenspeichergeräts mit verbesserter Schreibleistung durch das Sichern eines Datenspeicherplatzes eines flüchtigen Speichers als ein Bereich, der betriebsbereit ist, um wahlfrei zu schreiben, und ein Betriebsverfahren dafür.
-
In einer Ausführungsform enthält ein Datenspeichergerät einen flüchtigen Speicher, wobei der flüchtige Speicher eine Region, in der eine Zonen-Abbildungstabelle und Systeminformationen gespeichert sind, und eine Random Access Zone, die für wahlfreie Schreibzugriffe geeignet ist, einschließt; einen nichtflüchtigen Speicher, der eine Sicherungszone und eine Vielzahl von sequentiellen Zonen, die für sequentielle Schreibvorgänge geeignet sind, enthält; und einen Controller, der konfiguriert ist, um zu ermitteln, ob eine logische Adresse, die mit einem Befehl von einem Host-Gerät empfangen wird, zur Random Access Zone oder zur sequentiellen Zone gehört, und um eine Operation zu steuern, die dem Befehl der ermittelten Zone entspricht, wobei der Controller konfiguriert ist, um Daten, die in der Random Access Zone gespeichert sind, auf der Grundlage eines Kriteriums in der Sicherungszone zu sichern und die in der Sicherungszone gespeicherten Daten in der Random Access Zone wiederherzustellen, wenn ein Zustand des Controllers, nachdem der Strom abgeschaltet ist, in einen eingeschalteten Zustand übergeht.
-
In einer Ausführungsform umfasst ein Betriebsverfahren eines Datenspeichergeräts das Empfangen einer logischen Adresse und eines Befehls von einem Host; das Ermitteln, ob die logische Adresse zu einer Random Access Zone innerhalb eines flüchtigen Speichers oder zu einer sequentiellen Zone innerhalb eines nichtflüchtigen Speichers gehört, wobei der flüchtige Speicher eine Region einschließt, in der eine Zonen-Abbildungstabelle und Systeminformationen gespeichert sind, und die Random Access Zone einschließt, die für wahlfreie Schreibzugriffe geeignet ist, und der nichtflüchtige Speicher eine Sicherungszone und eine Vielzahl von sequentiellen Zonen, die für sequentielle Schreibvorgänge geeignet sind, enthält; und das Durchführen einer dem Befehl entsprechenden Operation auf der Grundlage der ermittelten Random Access Zone oder der sequentiellen Zone.
-
Gemäß den Ausführungsformen kann ein Datenspeicherplatz zum Schreiben von Daten in einem flüchtigen Speicher durch eine Änderung der Struktur einer Abbildungstabelle gesichert werden, und die Leistung einer Schreiboperation kann dadurch verbessert werden, weil eine Schreibgeschwindigkeit aufgrund der Eigenschaft des flüchtigen Speichers erhöht werden kann.
-
Darüber hinaus ist es möglich, einen Datenverlust des flüchtigen Speichers zu verhindern, da die Daten, die in dem im flüchtigen Speicher gesicherten Datenspeicherplatz gespeichert sind, mit Hilfe eines nichtflüchtigen Speichers gesichert und wiederhergestellt werden.
-
Figurenliste
-
Es zeigen:
- 1 ein Datenspeichergerät gemäß einer Ausführungsform.
- 2 einen nichtflüchtigen Speicher gemäß einer Ausführungsform.
- 3 ein Speicherzellenfeld gemäß einer Ausführungsform.
- 4 ein Datenverarbeitungssystem gemäß einer Ausführungsform.
- 5 einen flüchtigen Speicher gemäß einer Ausführungsform.
- 6 ein Beispiel für eine Zonen-Abbildungstabelle gemäß einer Ausführungsform.
- 7 eine Sicherungsoperation gemäß einer Ausführungsform.
- 8 eine Wiederherstellungsoperation gemäß einer Ausführungsform.
- 9 ein Flussdiagramm einer Betriebsoperation des Datenspeichergerätes gemäß einer Ausführungsform.
- 10 ein Flussdiagramm einer Daten-Schreiboperation in 9, gemäß einer Ausführungsform.
- 11 ein Flussdiagramm einer Daten-Leseoperation in 9, gemäß einer Ausführungsform.
- 12 ein Flussdiagramm einer Betriebsoperation des Datenspeichergerätes gemäß einer anderen Ausführungsform.
- 13 ein Datenverarbeitungssystem mit einem Solid State Drive (SSD) gemäß einer Ausführungsform.
- 14 einen Controller in 13, gemäß einer Ausführungsform.
- 15 ein Datenverarbeitungssystem einschließlich eines Datenspeichergeräts gemäß einer Ausführungsform.
- 16 ein Datenverarbeitungssystem einschließlich eines Datenspeichergeräts gemäß einer Ausführungsform.
- 17 ein Netzwerksystem einschließlich eines Datenspeichergerätes gemäß einer Ausführungsform.
-
DETAILLIERTE BESCHREIBUNG
-
Nachfolgend werden ein Datenspeichergerät und ein Betriebsverfahren dafür anhand der beigefügten Figuren anhand verschiedener Ausführungsbeispiele beschrieben.
-
1 ist ein Diagramm, das ein Datenspeichergerät 10 gemäß einer Ausführungsform darstellt.
-
Das Datenspeichergerät 10 kann Daten speichern, auf die ein Host-Gerät (nicht abgebildet) zugreift, z.B. ein Mobiltelefon, ein MP3-Player, ein Laptop-Computer, ein Desktop-Computer, ein Spielgerät, ein Fernseher oder ein bordeigenes Infotainment-System. Das Datenspeichergerät 10 kann als Speichersystem bezeichnet werden.
-
Das Datenspeichergerät 10 kann als eine von verschiedenen Arten von Speichervorrichtungen hergestellt werden, abhängig von einem Schnittstellenprotokoll, das elektrisch mit dem Host-Gerät gekoppelt ist. Zum Beispiel kann das Datenspeichergerät 10 als eines von verschiedenen Arten von Speichergeräten konfiguriert werden, wie z.B. einer Multimediakarte eines Solid State Drive (SSD), MMC, eMMC, RS-MMC oder Mikro-MMC, einer Secure Digital Card einer SD, Mini-SD oder Mikro-SD, einem Speichergerät in der Form eines USB-Speichergeräts (Universal Serial Bus), eines Universal-Flash-Speichergeräts (UFS) oder einer PCMCIA-Speicherkarte (PCMCIA = Personal Computer Memory Card International Association) in Kartenform, einem Speichergerät in Form einer PCI-Karte (PCI = Peripheral Component Interconnection), einem Speichergerät in Form einer PCI-Express-Karte (PCI-E), einer Compact-Flash-Karte (CF), einer Smart-Media-Karte und einem Speicherstick.
-
Das Datenspeichergerät 10 kann als eine von verschiedenen Arten von Gehäuse-Formen hergestellt werden. Zum Beispiel kann das Datenspeichergerät 10 als eine von verschiedenen Arten von Gehäuse-Formen hergestellt werden, wie z.B. ein Package-on-Package (POP), ein System-in-Package (SIP), ein System-on-Chip (SOC), ein Multi-Chip-Package (MCP), ein Chip-on-Board (COB), ein auf Wafer-Ebene hergestelltes Package (WFP) und ein Wafer-Level-Stack-Package (WSP).
-
Wie in 1 dargestellt, kann das Datenspeichergerät 10 einen nichtflüchtigen Speicher 100, einen Controller 200 und einen flüchtigen Speicher 300 einschließen.
-
Der nichtflüchtige Speicher 100 kann als ein Speichermedium des Datenspeichergerätes 10 dienen. Der nichtflüchtige Speicher 100 kann als einer von verschiedenen Typen nichtflüchtiger Speicher konfiguriert werden, wie z.B. ein NAND-Flash-Speichergerät, ein NOR-Flash-Speichergerät, ein Ferroelectric Random Access Memory (FRAM) unter Verwendung eines ferroelektrischen Kondensators, einen Magnetic Random Access Memory (MRAM) unter Verwendung eines Tunneling Magneto-Resistive (TMR) - Films, einen Phase Change Random Access Memory (PRAM) unter Verwendung von Chalkogenid-Legierungen und einen Resistive Random Access Memory (ReRAM) unter Verwendung von Übergangsmetalloxid, abhängig von den verwendeten Speicherzellen, aber die Ausführungsformen sind nicht darauf beschränkt.
-
2 veranschaulicht den nichtflüchtigen Speicher 100 in 1. 3 veranschaulicht ein Speicherzellenfeld 110 in 2.
-
Unter Bezugnahme auf 2 kann der nichtflüchtige Speicher 100 das Speicherzellenfeld 110, einen Zeilendecoder 120, eine Schreib-/Leseschaltung 130, einen Spaltendecoder 140, einen Seitenpuffer 150, einen Spannungsgenerator 160, eine Steuerlogik 170 und eine Ein-/Ausgabe (I/O) - Schaltung 180 umfassen.
-
Das Speicherzellenfeld 110 kann eine Vielzahl von Speicherzellen (nicht abgebildet) enthalten, die in entsprechenden Regionen angeordnet sind, in denen sich eine Vielzahl von Bitleitungen BL und eine Vielzahl von Wortleitungen WL schneiden. Unter Bezugnahme auf 3 kann das Speicherzellenfeld 110 eine Vielzahl von Speicherblöcken BLK1 bis BLKi enthalten. Jeder der Vielzahl von Speicherblöcken BLK1 bis BLKi kann eine Vielzahl von Seiten PG1 bis PGj enthalten. In Ausführungsformen entspricht ein Speicherblock der kleinsten Einheit des Speicherzellenfeldes 110, die unabhängig gelöscht werden kann, und eine Seite entspricht der kleinsten Einheit des Speicherzellenfeldes 110, die unabhängig programmiert werden kann.
-
Jede der Speicherzellen des Speicherzellenfeldes 110 kann eine Ein-Ebenen-Zelle (SLC) sein, in der 1-Bit-Daten gespeichert werden, eine Mehr-Ebenen-Zelle (MLC), in der 2-Bit-Daten gespeichert werden, eine Drei-Ebenen-Zelle (TLC), in der 3-Bit-Daten gespeichert werden, oder eine Vier-Ebenen-Zelle (QLC), in der 4-Bit-Daten gespeichert werden. Das Speicherzellenfeld 110 kann mindestens eine SLC, eine MLC, eine TLC, eine QLC oder Kombinationen davon enthalten. Das Speicherzellenfeld 110 kann Speicherzellen enthalten, die in einer zweidimensionalen horizontalen Struktur angeordnet sind, oder kann Speicherzellen enthalten, die in einer dreidimensionalen vertikalen Struktur angeordnet sind.
-
Der Zeilendecoder 120 kann über die Wortleitungen WL elektrisch mit dem Speicherzellenfeld 110 gekoppelt werden. Der Zeilendecoder 120 kann unter der Steuerung der Steuerlogik 170 arbeiten. Der Zeilendecoder 120 kann eine von der Steuerlogik 170 bereitgestellte Zeilenadresse X_ADDR decodieren, kann mindestens eine der Wortleitungen WL auf der Grundlage des Ergebnisses der Decodierung auswählen und kann die ausgewählte Wortleitung WL ansteuern. Der Zeilendecoder 120 kann die ausgewählte Wortleitung WL mit einer Betriebsspannung Vop versorgen, die vom Spannungsgenerator 160 bereitgestellt wird.
-
Die Schreib-/Leseschaltung 130 kann über die Bitleitungen BL elektrisch mit dem Speicherzellenfeld 110 gekoppelt werden. Die Schreib-/Leseschaltung 130 kann Schreib-/Leseschaltungen (nicht abgebildet) enthalten, die den jeweiligen Bitleitungen BL entsprechen. Die Schreib-/Leseschaltung 130 kann unter der Steuerung der Steuerlogik 170 arbeiten. Die Schreib-/Leseschaltung 130 kann einen Schreibtreiber WD zum Schreiben von Daten in Speicherzellen und einen Leseverstärker (SA) zum Verstärken von aus Speicherzellen gelesenen Daten enthalten. Die Schreib-/Leseschaltung 130 kann den Speicherzellen, die zu den Speicherzellen des Speicherzellenfeldes 110 gehören und die vom Zeilendecoder 120 und vom Spaltendecoder 140 ausgewählt werden, einen Strom- oder Spannungsimpuls bereitstellen, wodurch Schreib- und Leseoperationen an den ausgewählten Speicherzellen durchgeführt werden.
-
Der Spaltendecoder 140 kann unter der Steuerung der Steuerlogik 170 arbeiten. Der Spaltendecoder 140 kann eine von der Steuerlogik 170 bereitgestellte Spaltenadresse Y_ADDR dekodieren. Der Spaltendecoder 140 kann Schreib-/Leseschaltungen der Schreib-/Leseschaltung 130, die den jeweiligen Bitleitungen BL entsprechen, und den Seitenpuffer 150 auf der Grundlage des Ergebnisses der Decodierung elektrisch koppeln.
-
Der Seitenpuffer 150 kann so konfiguriert werden, dass er vorübergehend Daten speichert, z.B. Daten, die von einer Speicherschnittstelle 240 des Controllers 200 bereitgestellt werden und in das Speicherzellenfeld 110 geschrieben werden sollen, oder Daten, die aus dem Speicherzellenfeld 110 gelesen werden und der Speicherschnittstelle 240 des Controllers 200 bereitgestellt werden sollen. Der Seitenpuffer 150 kann unter der Steuerung der Steuerlogik 170 arbeiten.
-
Der Spannungsgenerator 160 kann verschiedene Spannungen zum Durchführen von Schreib-, Lese- und Löschvorgängen auf dem Speicherzellenfeld 110 auf der Grundlage eines von der Steuerlogik 170 bereitgestellten Spannungssteuersignals CTRL_vol erzeugen. Der Spannungsgenerator 160 kann Treiberspannungen Vop zum Ansteuern der Mehrzahl von Wortleitungen WL und Bitleitungen BL erzeugen. Darüber hinaus kann der Spannungsgenerator 160 mindestens eine Referenzspannung erzeugen, um in einer Speicherzelle MC gespeicherte Daten zu lesen.
-
Die Steuerlogik 170 kann verschiedene Arten von Steuersignalen zum Schreiben von Daten DATA in das Speicherzellenfeld 110 oder zum Lesen von Daten DATA aus dem Speicherzellenfeld 110 auf der Grundlage eines Befehls CMD op, einer Adresse ADDR und eines Steuersignals CTRL, die vom Controller 200 empfangen werden, ausgeben. Die verschiedenen Arten von Steuersignalen, die von der Steuerlogik 170 ausgegeben werden, können dem Zeilendecoder 120, der Schreib-/Leseschaltung 130, dem Spaltendecoder 140, dem Seitenpuffer 150 und dem Spannungsgenerator 160 bereitgestellt werden. Folglich kann die Steuerlogik 170 im Allgemeinen verschiedene Arten von Operationen steuern, die im nichtflüchtigen Speicher 100 ausgeführt werden.
-
Insbesondere kann die Steuerlogik 170 ein Betriebssteuersignal CTRL_op basierend auf einem Befehl CMD und einem Steuersignal CTRL erzeugen und das erzeugte Betriebssteuersignal CTRL_op der Schreib-/Leseschaltung 130 bereitstellen. Die Steuerlogik 170 kann den Zeilendecoder 120 und den Spaltendecoder 140 mit einer Zeilenadresse X_ADDR und einer Spaltenadresse Y_ADDR versehen, die jeweils in einer Adresse ADDR enthalten sind.
-
Die I/O-Schaltung 180 kann so konfiguriert werden, dass sie einen Befehl CMD, eine Adresse ADDR und Daten DATA empfängt, die vom Controller 200 bereitgestellt werden, oder dass sie den Controller 200 mit Daten DATA versorgt, die aus dem Speicherzellenfeld 110 gelesen werden. Die I/O-Schaltung 180 kann den vom Controller 200 empfangenen Befehl CMD und die Adresse ADDR an die Steuerlogik 170 ausgeben und die Daten DATA an den Seitenpuffer 150 ausgeben. Die I/O-Schaltung 180 kann die vom Seitenpuffer 150 empfangenen Daten DATA an den Controller 200 ausgeben. Die I/O-Schaltung 180 kann unter der Steuerung der Steuerlogik 170 arbeiten.
-
Der Controller 200 kann einen Gesamtbetrieb des Datenspeichergeräts 10 durch das Ausführen von Firmware oder Software, die auf einen Speicher 230 geladen ist, steuern. Der Controller 200 kann Befehle oder Algorithmen in Codeform, wie z.B. Firmware oder Software, dekodieren und ausführen. Der Controller 200 kann in Form von Hardware oder einer Kombination aus Hardware und Software implementiert sein.
-
Der Controller 200 kann Daten steuern, die als Reaktion auf einen Schreib- oder Lesebefehl, der von einem Host-Gerät 20 übertragen wird, in den nichtflüchtigen Speicher 100 oder in den flüchtigen Speicher 300 geschrieben oder daraus gelesen werden sollen (siehe 4). Dies wird später ausführlich beschrieben.
-
Der Controller 200 kann eine Host-Schnittstelle 210, einen Prozessor 220, den Speicher 230 und die Speicherschnittstelle 240 enthalten.
-
Die Host-Schnittstelle 210 kann eine Schnittstelle zwischen einem HostGerät und dem Datenspeichergerät 10 in Übereinstimmung mit einem Protokoll des Host-Geräts bereitstellen. Beispielsweise kann die Host-Schnittstelle 210 mit dem HostGerät über eines der folgenden Protokolle kommunizieren: einen universellen seriellen Bus (USB), einen universellen Flash-Speicher (UFS), eine Multimediakarte (MMC), einen parallel Advanced Technology Attachment (PATA), Serial Advanced Technology Attachment (SATA), eine Small Computer System Interface (SCSI), einen seriellen Anschluss für SCSI (SAS), eine Peripheral Component Interconnection (PCI) und einen PCI-Express (PCI-e).
-
Der Prozessor 220 kann mit einer Micro Control Unit (MCU) und/oder einer zentralen Verarbeitungseinheit (CPU) konfiguriert werden. Der Prozessor 220 kann eine vom Host-Gerät übermittelte Anforderung verarbeiten. Um die vom Host-Gerät übertragene Anforderung zu verarbeiten, kann der Prozessor 220 eine Anweisung oder einen Algorithmus in Codeform ausführen, d.h. in den Speicher 230 geladene Firmware, und interne Funktionsblöcke steuern, wie z.B. die Host-Schnittstelle 210, den Speicher 230 und die Speicherschnittstelle 240 sowie den nichtflüchtigen Speicher 100.
-
Der Prozessor 220 kann Steuersignale erzeugen, die einen Betrieb des nichtflüchtigen Speichers 100 auf der Grundlage von Anforderungen steuern werden, die von dem Host-Gerät übertragen werden, und kann die erzeugten Steuersignale über die Speicherschnittstelle 240 dem nichtflüchtigen Speicher 100 bereitstellen.
-
Der Speicher 230 kann als Arbeitsspeicher konfiguriert werden, z. B. als dynamischer Speicher mit wahlfreiem Zugriff (DRAM) oder als statischer Speicher mit wahlfreiem Zugriff (SRAM). Der Speicher 230 kann Firmware speichern, die vom Prozessor 220 ausgeführt wird. Darüber hinaus kann der Speicher 230 von der Firmware verwendete Daten, z. B. Metadaten, speichern. Das heißt, der Speicher 230 kann als Arbeitsspeicher des Prozessors 220 arbeiten.
-
Der Speicher 230 kann so konfiguriert werden, um einen Datenpuffer (DB) (nicht abgebildet) zur vorübergehenden Speicherung von einem oder beiden Schreibdaten einzuschließen, die vom Host-Gerät an den nichtflüchtigen Speicher 100 übertragen werden sollen, sowie von Lesedaten, die vom nichtflüchtigen Speicher 100 an das Host-Gerät übertragen werden sollen. Das heißt, der Speicher 230 kann als ein Pufferspeicher arbeiten.
-
Die Speicherschnittstelle 240 kann den nichtflüchtigen Speicher 100 unter der Steuerung des Prozessors 220 steuern. Die Speicherschnittstelle 240 kann auch als Speicher-Controller bezeichnet werden. Die Speicherschnittstelle 240 kann mit dem nichtflüchtigen Speicher 100 über Kanalsignale CH kommunizieren. Die Kanalsignale CH können einen Befehl, eine Adresse und ein Betriebssteuersignal zur Steuerung des nichtflüchtigen Speichers 100 enthalten. Die Speicherschnittstelle 240 kann die Kanalsignale CH verwenden, um Daten dem nichtflüchtigen Speicher 100 bereitzustellen oder um Daten vom nichtflüchtigen Speicher 100 zu empfangen.
-
Wie in 5 dargestellt, kann der flüchtige Speicher 300 einer Region 300a, in der eine Zonen-Abbildungstabelle und Systeminformationen gespeichert sind, und eine Random Access Zone 300b umfassen, die wahlfrei beschrieben werden kann. Dies wird später ausführlich beschrieben.
-
4 ist ein Diagramm, das ein Datenverarbeitungssystem 1100 gemäß einer Ausführungsform darstellt.
-
Das Datenverarbeitungssystem 1100 wird im Folgenden beschrieben unter Bezugnahme auf 5, die die Konfiguration eines flüchtigen Speichers gemäß einer Ausführungsform veranschaulicht, auf 6, die ein Beispiel einer Zonen-Abbildungstabelle 600 gemäß einer Ausführungsform veranschaulicht, auf 7, die eine Sicherungsoperation gemäß einer Ausführungsform veranschaulicht, und auf 8, die einen Wiederherstellungsprozess gemäß einer Ausführungsform veranschaulicht.
-
Unter Bezugnahme auf 4 kann das Datenverarbeitungssystem 1100 das Datenspeichergerät 10 (zum Beispiel ein SSD) und das Host-Gerät 20 umfassen.
-
Das Datenspeichergerät 10 kann den nichtflüchtigen Speicher 100, den Controller 200 und den flüchtigen Speicher 300 umfassen.
-
Der nichtflüchtige Speicher 100 kann mit einem Satz von Zonen, Zone 0 bis Zone N, mit gleicher Größe konfiguriert werden, d.h. mit einer NAND-Flash-Region. In diesem Fall kann jede der Zonen jeweils einen oder mehrere physikalische Blöcke enthalten.
-
Unter Bezugnahme auf 4 kann der nichtflüchtige Speicher 100 eine Sicherungszone 100a und mehrere sequentielle Zonen 100b enthalten, die sequentiell beschrieben werden können.
-
Die Sicherungszone 100a ist ein Backup Space zur Bereitstellung einer nichtflüchtigen Eigenschaft der Random Access Zone 300b, die unter Verwendung des flüchtigen Speichers 300 bereitgestellt wird, und das ist eine Randregion außerhalb eines Systembereichs des flüchtigen Speichers 300. In einer Ausführungsform kann die Sicherungszone 100a in einer SLC-Ausführung verwendet werden. Die Sicherungszone 100a kann eine Größe aufweisen, die zwei- oder dreimal so groß ist wie die Größe der Random Access Zone 300b, aber die Ausführungsformen sind nicht darauf beschränkt.
-
Die sequentielle Zone 100b ist eine Benutzerregion und kann in einer TLC- oder QLC-Art verwendet werden. In diesem Fall kann eine Schreiboperation auf die sequentielle Zone 100b in einer sequentiellen Schreibweise durchgeführt werden.
-
Unter Bezugnahme auf 5 kann der flüchtige Speicher 300 die Region 300a einschließen, in der eine Zonen-Abbildungstabelle zum Verwalten der physikalischen Adressen der Zonen und der Systeminformationen gespeichert ist, und die Random Access Zone 300b mit wahlfreiem Schreibzugriff. In diesem Fall kann der flüchtige Speicher 300 als DRAM implementiert werden, aber die Ausführungsformen sind nicht darauf beschränkt.
-
Eine Zone gemäß einer Ausführungsform kann relativ größer als eine Seite oder ein Block sein, und die Zonen-Abbildungstabelle kann eine physikalische Startblockadresse (Start-PBA), eine Gesamtlänge und den finalen Schreibort für jede Zone enthalten. Dementsprechend kann in einer Region des flüchtigen Speichers 300 eine Randregion entstehen, weil die Menge der gespeicherten Mapping-Daten im Vergleich zu einer konventionellen Technologie reduziert ist.
-
Insbesondere kann, wie in 6 dargestellt, die im flüchtigen Speicher 300 gespeicherte Zonen-Abbildungstabelle 600 für jede Zone eine logische Blockadressgruppe, einen Zonenindex, eine physikalische Startblockadresse (PBA 0), eine Gesamtlänge und den finalen Schreibort enthalten. Die logische Blockadressgruppe kann so definiert werden, dass sie eine Vielzahl von logischen Blockadressen bezeichnet, die durch eine bestimmte Anzahl gruppiert sind. Der Zonenindex kann so definiert werden, dass er Identifikationsinformationen zum Ermitteln einer entsprechenden Zone bezeichnet. Der finale Schreibort der Zonen-Abbildungstabelle 600 kann so definiert werden, dass er den letzten Schreibort der jeweiligen Zone zum gegenwärtigen Zeitpunkt bezeichnet. Die Gesamtlänge kann so definiert werden, dass sie eine Gesamtlänge der physikalischen Adresse bezeichnet.
-
Beispielsweise kann eine logische Blockadressgruppe 0 (LBAG 0) die logische Blockadresse (LBA) 0 bis LBA 99 enthalten. Jede der anderen logischen Adressgruppen kann 100 logische Blockadressen enthalten. Eine solche logische Blockadressgruppe kann einer Zone zugeordnet werden. Im Gegensatz dazu ist bei einer herkömmlichen Technologie die in einer Abbildungstabelle enthaltene Datenmenge massiv, da eine logische Blockadresse und eine physikalische Blockadresse eins zu eins zugeordnet werden. In einer Ausführungsform kann die in der Abbildungstabelle enthaltene Datenmenge reduziert werden, weil eine Vielzahl von logischen Blockadressen mit einer Zone abgeglichen und entsprechend verwaltet wird.
-
Aus diesem Grund ist in der Zonen-Abbildungstabelle 600 die Größe der Zuordnungsdaten relativ reduziert, da die Zuordnungsdaten in einer Zoneneinheit verwaltet werden können, ohne dass wie bei einer herkömmlichen Technologie eine Zuordnungsoperation einer 4KB-Einheit verwendet werden muss. Dadurch kann ein Randbereich des flüchtigen Speichers 300 gesichert werden. Ein Bereich des flüchtigen Speichers 300, der gesichert ist, weil die Größe einer Zonen-Abbildungstabelle 600 aufgrund einer Änderung der Struktur der Zonen-Abbildungstabelle reduziert wird, kann als Random Access Zone 300b verwendet werden, die wahlfrei beschrieben werden kann.
-
Sowohl der nichtflüchtige Speicher 100 als auch der flüchtige Speicher 300 können mit einer Vielzahl von Zonen konfiguriert werden (Zone 0 bis Zone N+1). Dementsprechend kann das Host-Gerät 20 jede der Vielzahl von Zonen innerhalb des flüchtigen Speichers 300 und des nichtflüchtigen Speichers 100 als eine logische Region ermitteln. Das heißt, das Host-Gerät 20 kann das Datenspeichergerät 10 als ein Speichergerät mit einer Vielzahl von Zonen ermitteln. Zum Beispiel kann das Host-Gerät 20 (N+1)-Zonen ermitteln (siehe 4).
-
Wenn eine logische Adresse zusammen mit einem Schreib- oder Lesebefehl vom Host-Gerät 20 empfangen wird, kann der Controller 200 z. B. anhand der Zonen-Abbildungstabelle 600 ermitteln, ob die logische Adresse zur Random Access Zone 300b oder zur sequentiellen Zone 100b gehört, und kann dann eine Operation steuern, die dem Schreib- oder Lesebefehl der ermittelten Zone entspricht. Der Controller 200 kann auch die Datengröße empfangen, wenn ein Schreibbefehl oder ein Lesebefehl vom Host-Gerät 20 empfangen wird. Die logische Adresse kann die logische Startadresse der zu lesenden oder zu schreibenden Daten bedeuten. Wenn die logische Adresse zur Random Access Zone oder zur sequentiellen Zone gehört, kann dies bedeuten, dass eine physikalische Adresse, die der logischen Adresse entspricht, zur Random Access Zone bzw. zur sequentiellen Zone gehört.
-
Das heißt, wenn die logische Adresse zu der sequentiellen Zone gehört, kann der Controller 200 eine Operation steuern, die dem Schreib- oder Lesebefehl entspricht und unter Verwendung der physikalischen Adresse, die der logischen Adresse entspricht, als Startadresse ausgeführt werden soll, wobei die physikalische Adresse eine Adresse innerhalb einer sequentiellen Zone ist. Wenn die logische Adresse zu der Random Access Zone gehört, kann der Controller 200 eine dem Schreibbefehl oder Lesebefehl entsprechende Operation steuern, die unter Verwendung der der logischen Adresse entsprechenden physikalischen Adresse als Startadresse durchzuführen ist, wobei die physikalische Adresse eine Adresse innerhalb einer Random Access Zone ist.
-
Darüber hinaus kann der Controller 200 Daten, die in der Random Access Zone 300b gespeichert sind, auf der Grundlage eines voreingestellten Kriteriums in der Backup-Zone 100a sichern. Darüber hinaus kann der Controller 200, wenn der Zustand des Controllers 200, nachdem die Stromversorgung abgeschaltet ist, in einen eingeschalteten Zustand übergeht, die in der Sicherungszone 100a gespeicherten Daten in die Random Access Zone 300b wiederherstellen.
-
Der Controller 200 kann einen Zonenindex ermitteln, der mit der logischen Startadresse einer Operation auf der Grundlage der Zonen-Abbildungstabelle 600 übereinstimmt, und kann ermitteln, ob es sich bei dem Zonenindex um die Random Access Zone 300b oder die sequentielle Zone 100b handelt.
-
Wenn z.B. die logische Startblockadresse einer Operation LBA 5 ist, kann der Controller 200 anhand der Zonen-Abbildungstabelle ermitteln, dass LBA 5 zu einer logischen Blockadressgruppe 0 (LBAG 0 in 6) gehört, und kann ermitteln, dass die logische Blockadressgruppe 0 mit einem Zonenindex 0 übereinstimmt und somit zur sequentiellen Zone 100b gehört. In diesem Fall kann ein Fall, in dem die logische Blockadressgruppe 0 LBA 0 bis LBA 99 einschließt und mit dem Zonenindex 0 übereinstimmt, als Beispiel beschrieben werden. Wie oben beschrieben, können LBAs und ein Zonenindex, der mit jeder logischen Blockadressgruppe übereinstimmt, voreingestellt werden.
-
Der Controller 200 kann einen Prozess zum Ermitteln einer physikalischen Adresse beim Empfang eines Schreib- oder Lesebefehls für die Random Access Zone 300b unterschiedlich anwenden, da die Random Access Zone 300b einem flüchtigen Speicher und die sequentielle Zone 100b einem nichtflüchtigen Speicher entspricht.
-
Wenn eine logische Adresse, die zusammen mit einem Schreibbefehl vom Host-Gerät 20 empfangen wird, zur sequentiellen Zone 100b gehört, kann der Controller 200 auf der Grundlage der Zonen-Abbildungstabelle einen Zonenindex ermitteln, der mit der logischen Startadresse einer Zone übereinstimmt, kann Daten, die der Größe der beim Empfang des Schreibbefehls empfangenen Daten entsprechen, von einem Ort neben dem finalen Schreibort des ermittelten Zonenindex schreiben und kann dann den finalen Schreibort in der Zonen-Abbildungstabelle aktualisieren.
-
Wenn beispielsweise die logische Startadresse einer Zone in LBA 5 liegt, kann der Controller 200 auf der Grundlage der Zonen-Abbildungstabelle eine logische Adressgruppe 0 und einen Zonenindex 0 ermitteln, die mit LBA 5 übereinstimmen. Wenn die finale physikalische Schreibadresse des Zonenindex 0 10 ist, kann der Controller 200 Daten schreiben, die der Größe (z.B. 4) der bei einem Schreibbefehl empfangenen Daten entsprechen, beginnend mit der physikalischen Adresse 11 der Zone, die dem Zonenindex 0 entspricht. Darüber hinaus kann der Controller 200 eine physikalische Adresse 14 als finalen Schreibort in der Zonen-Abbildungstabelle aktualisieren.
-
Wenn eine logische Adresse, die zusammen mit einem Schreibbefehl vom Host-Gerät 20 empfangen wird, zur Random Access Zone 300b gehört, kann der Controller 200 Daten schreiben, die der Größe der vom Host-Gerät 20 empfangenen Daten entsprechen, basierend auf einer physikalischen Startadresse der Random Access Zone 300b.
-
Wenn beispielsweise die logische Startadresse eine Schreiboperation LBA 902 entspricht, kann der Controller 200 auf der Grundlage der Zonen-Abbildungstabelle eine logische Blockadressgruppe (LBAG) 10 ermitteln, zu der LBA 902 gehört, sowie einen Zonenindex 10, der in diesem Beispiel als Zonenindex einer Zone in der Random Access Zone 300b voreingestellt ist. Wenn die physikalischen Adressen der Region 300a des flüchtigen Speichers 300, in dem die Zonen-Abbildungstabelle und Systeminformationen gespeichert sind, in den physikalischen Blöcken 0 bis 599 enthalten sind (wobei z.B. jeder Block 4KB enthält) und die physikalischen Adressen der Random Access Zone 300b in den physikalischen Blöcken 600 bis 999 liegen, kann der Controller 200 Daten, die der Größe (z.B. 4) der Daten entsprechen, in einem Offset von der physikalischen Blockadresse 600, d.h. der physikalischen Startadresse der Random Access Zone 300b, schreiben. Wenn z.B. die logische Startadresse der Schreiboperation einem Adress-Offset von 9000 vom Anfang von LBAG 10 (zu dem LBA 902 gehört) entspricht, würde die Schreiboperation mit einer physikalischen Startadresse durchgeführt, die um 9000 vom Anfang des physikalischen Blocks 600 versetzt ist. In diesem Fall kann der Controller 200 Daten von der physikalischen Anfangsadresse der Random Access Zone 300b schreiben, da die Random Access Zone 300b einem flüchtigen Speicher mit wahlfreiem Zugriff entspricht.
-
Wenn eine logische Adresse, die zusammen mit einem Lesebefehl vom Hostgerät 20 empfangen wird, zur sequentiellen Zone 100b gehört, kann der Controller 200 einen Zonenindex ermitteln, der mit der logischen Adresse auf der Grundlage der Zonen-Abbildungstabelle übereinstimmt, und kann Daten lesen, die der Größe der vom Hostgerät 20 empfangenen Daten entsprechen, wobei eine physikalische Adresse, die der logischen Adresse in einer entsprechenden Zone des ermittelten Zonenindex entspricht, als Startadresse verwendet wird.
-
Wenn eine logische Adresse, die zusammen mit einem Lesebefehl vom Host-Gerät 20 empfangen wird, zur Random Access Zone 300b gehört, kann der Controller 200 die finale physikalische Adresse ermitteln, indem er den Offset relativ zur entsprechenden logischen Blockadressgruppe der logischen Adresse, die vom Host-Gerät 20 empfangen wird, zu einer physikalischen Startadresse der Random Access Zone 300b addiert, und kann Daten, die der Größe der vom Host-Gerät 20 empfangenen Daten entsprechen, von der physikalischen Endadresse lesen. Wenn die logische Adresse beispielsweise einem Offset von 8000 vom Anfang von LBAG 10 entspricht und LBAG 10 einer Zone zugeordnet ist, die am Anfang der Random Access Zone 300b beginnt, dann wäre die physikalische Startadresse eine Adresse, die um 8000 vom Anfang der Random Access Zone 300b versetzt ist.
-
Unter Bezugnahme auf 7 kann die Random Access Zone 300b eine Vielzahl von Slice-Regionen (Backup-Slices) 0 bis n umfassen. Die Random Access Indizes 0 bis n können jeweils sequentiell der Vielzahl von Slice-Regionen zugeordnet werden. In diesem Fall kann der Direktzugriffsindex so definiert werden, dass er einen Index darstellt, der jeder der Vielzahl von Slice-Regionen innerhalb der Random Access Zone 300b zugeordnet ist. Die Slice-Region kann eine Größe aufweisen, die der Größe der Daten entspricht, die gleichzeitig geschrieben werden können (d.h. auf eine Seitengröße des nichtflüchtigen Speichers 100), aber die Ausführungsformen sind nicht darauf beschränkt.
-
Darüber hinaus kann jeder der Random Indizes mit einem Flush-Flag (Flush 1 oder 0) abgeglichen werden, das anzeigt, ob Daten, die in der entsprechenden Slice der Random Access Zone 300b gespeichert sind, auf die Backup-Zone 100a gesichert wurden, und mit einem Update-Flag (Update 1 oder 0), das anzeigt, ob Daten, die in der entsprechenden Slice der Random Access Zone 300b gespeichert sind, mit neuen Daten aktualisiert wurden.
-
Darüber hinaus kann die Sicherungszone 100a einer ersten Region (Index 0, Index 1) umfassen, in der Daten, die in die Random Access Zone 300b geschrieben wurden, eins-zu-eins gesichert werden, sowie einer zweiten Region (Index 2), in der die zuletzt in der Random Access Zone 300b aktualisierten Daten gesichert werden, wenn die Stromversorgung abgeschaltet oder unterbrochen wird. Sowohl die erste Region als auch die zweite Region können mit jedem virtuellen Sicherungsindex abgeglichen werden. Jeder Sicherungszone können ein oder mehrere Sicherungsindizes zugeordnet werden. Beispielsweise können zwei Backup-Indizes, so wie Index 0 und Index 1, der ersten Region und ein Backup-Index, so wie Index 2, der zweiten Region zugeordnet werden.
-
Wie in 7 dargestellt, kann die erste Region so konfiguriert werden, dass sie zwei oder mehr Subregionen umfasst, die jeweils Index 0 und Index 1 entsprechen, wobei jede Subregion der ersten Region eine Größe aufweist, die gleich oder größer als die Größe der Random Access Zone 300b ist.
-
Der Controller 200 kann separat als Systeminformation eine Angabe darüber verwalten, bei welchem Sicherungsindex der ersten und zweiten Region jeweils die neuesten Daten gespeichert sind, d.h. welche Indizes die neuesten Sicherungsindizes darstellen. Die Information über den neuesten Sicherungsindex kann im flüchtigen Speicher 300 als Systeminformation gespeichert werden.
-
Wenn z. B. die Menge der in die Random Access Zone 300b geschriebenen Daten einen Referenzwert oder mehr darstellt, kann der Controller 200 die in der Random Access Zone 300b gespeicherten Daten in die Backup-Zone 100a sichern und den Wert eines entsprechenden Flush-Flags für die gesicherte Random Access Zone auf 1 (d. h. eins) ändern. Wenn die Daten bis zu der Subregion gesichert wurden, die dem Index 0 der Sicherungszone 100a entspricht, kann der Controller 200 den Index 0 als letzten Sicherungsindex für die erste Region setzen. Wenn die Daten bis zu der Subregion gesichert wurden, die Index 1 der Sicherungszone 100a entspricht, kann Controller 200 Index 1 als den neuesten Sicherungsindex für die erste Region festlegen. Darüber hinaus kann der Controller 200 in einer Ausführungsform die Subregion, die dem Index 1 entspricht, löschen, nachdem die Daten bis zu der Subregion, die dem Index 0 entspricht, gesichert wurden, und kann die Subregion, die dem Index 0 entspricht, löschen, nachdem die Daten bis zu der Subregion, die dem Index 1 entspricht, gesichert wurden, um die nächste Sicherungsoperation vorzubereiten. Darüber hinaus kann der Controller 200 nach der Sicherung der Daten in der ersten Region die zweite Region löschen und die Update-Flags für die Slices zurücksetzen, um die zweite Region so vorzubereiten, dass sie Backup-Daten aufnehmen kann, wenn z.B. ein Stromausfall eintritt. In solchen Ausführungsformen kann der Controller 200 abwechselnd die Random Access Zone 300b in die Subregionen von Index 0 und Index 1 sichern.
-
Wenn z. B. die Anzahl der vom Host-Gerät 20 empfangenen Schreibbefehle ein Referenzwert oder mehr ist, kann der Controller 200 in der Sicherungszone 100a sequentiell Daten, die in Vielzahl von Slice-Regionen auf der Grundlage von Random-Access-Index-Nummern gespeichert sind, in die Sicherungszone 100a schreiben und die Werte der Flush-Flags für die gesicherten Slice-Regionen auf 1 (d. h. eins) ändern. In diesem Fall kann das Flush-Flag mit einem Wert von 1 anzeigen, dass Daten in der Sicherungszone 100a gesichert wurden. Das Flush-Flag mit einem Wert von 0 kann anzeigen, dass Daten nicht in die Sicherungszone 100a gesichert wurden.
-
Der Controller 200 kann als Backup-Bedingung eine Bedingung anwenden, dass Daten, die als Antwort auf eine Anforderung vom Host-Gerät 20 geschrieben werden, eine Slice-Größe erreichen, und nicht die Anzahl der Schreibbefehle, aber Ausführungsformen sind nicht darauf beschränkt. Die Sicherungsbedingung kann je nach den Bedürfnissen des Bedieners geändert oder ergänzt werden.
-
Wenn die Sicherung der Daten für alle Slice-Regionen innerhalb der Random Access Zone 300b abgeschlossen ist, kann der Controller 200 die Werte aller Flush-Flags auf 0 (d.h. Null) zurücksetzen.
-
Wenn nach dem Schreiben von Daten, die in der Mehrzahl von Slice-Regionen gespeichert sind, in die Sicherungszone 100a, die Aktualisierung von Daten, die in der Random Access Zone 300b gespeichert sind, vom Host-Gerät 20 erfolgt, kann der Controller 200 den Wert eines Update-Flags für eine entsprechende Slice-Region auf 1 (d. h. eins) ändern. In diesem Fall kann das Update-Flag 1 anzeigen, dass Daten mit neuen Daten aktualisiert wurden, aber seit der Aktualisierung nicht gesichert wurden. Das Update-Flag 0 kann anzeigen, dass es keine neuen Daten gibt, die nicht in die Sicherungszone 100a gesichert wurden.
-
Unter Bezugnahme auf 7 kann der Controller 200 in der zweiten Region (Index 2) Daten sichern, die in der Random Access Zone 300b gespeichert sind und die ein Update-Flag von 1 aufweisen. Nachdem die Sicherung der Update-Daten abgeschlossen ist, kann der Controller 200 das Update-Flag für eine entsprechende Slice-Region auf 0 zurücksetzen.
-
Insbesondere in einer Ausführungsform kann der Controller 200, wenn ein Signal zum Stromabschalten empfangen wird, in die zweite Region (Index 2) Daten schreiben, die in der Random Access Zone 300b gespeichert sind und die ein Flush-Flag von 0 (zeigt an, dass eine Sicherungsoperation in der ersten Region nur teilweise abgeschlossen wurde und die Daten nicht gesichert wurden) oder ein Update-Flag von 1 (zeigt an, dass die Daten seit der letzten Sicherung in der ersten Region geändert wurden) aufweisen. Wenn die Daten in die zweite Region (Index 2) geschrieben werden, kann der Controller 200 auch einen entsprechenden Random-Access-Index speichern. In diesem Fall kann der Random-Access-Index in eine freie Region der ersten Seite der zweiten Region geschrieben werden. Wenn eine Vielzahl von Slices in der zweiten Region gesichert wird, kann eine Vielzahl entsprechender Random-Access-Indizes in der freien Region der ersten Seite der zweiten Region gespeichert werden oder in einer anderen Ausführungsform in freien Regionen der Seiten gespeichert werden, die zur Speicherung der jeweiligen Slices verwendet werden. Der (oder die) gespeicherte(n) Random-Access-Index/Indizes kann (können) verwendet werden, um einen Speicherort der gesicherten Daten innerhalb einer Random Access Zone vor dem Sichern zu ermitteln, wenn die Daten wiederhergestellt werden.
-
Im Falle eines anormalen Abbruchs kann das Datenspeichergerät 10 eine Sicherungsoperation auf Grundlage einer internen Kapazität oder durch externe Stromversorgung durchführen.
-
Wenn der Zustand des Controllers 200 nach dem Stromabschalten in einen eingeschalteten Zustand übergeht, kann in Bezug auf 8 der Controller 200 physikalische Adressen berechnen, die dem letzten Backup-Index einer ersten Region entsprechen (entweder der Subregion, die Index 0 entspricht, oder der Subregion, die Index 1 entspricht), und kann sequentiell Daten von den entsprechenden physikalischen Adressen in die Random Access Zone 300b lesen. Insbesondere kann der Controller 200 die finale physikalische Adresse von wiederherzustellenden Daten berechnen, indem er die physikalische Anfangsadresse einer Random Access Zone in einen Sicherungsindex einbezieht. In einer Ausführungsform kann der Controller 200 bestimmen, ob die Subregion von Index 0 oder die Subregion von Index 1 die wiederherzustellenden Daten enthält, indem er feststellt, welche Subregion sich in einem gelöschten Zustand befindet, indem er im nichtflüchtigen Speicher gespeicherte Systeminformationen verwendet, oder beides.
-
Wenn das Laden von Daten in die erste Region beendet ist, kann der Controller 200 außerdem die neuesten Daten, die in der Sicherungszone 100a der zweiten Region (Index 2 in 8) gespeichert sind, in die Random Access Zone 300b lesen.
-
Der Controller 200 kann eine Stelle der Random Access Zone 300b ermitteln, in die die neuesten Daten geschrieben werden, basierend auf einem entsprechenden Random-Access-Index, der in der zweiten Region gespeichert ist. Auf diese Weise werden alle Daten, die entweder aufgrund einer fehlgeschlagenen Sicherungsoperation in der ersten Region oder weil die Daten nach der letzten Sicherungsoperation in der ersten Region aktualisiert wurden nicht gesichert wurden, aus der zweiten Region wiederhergestellt.
-
9 ist ein Flussdiagramm zum Beschreiben einer Arbeitsoperation 900 des Datenspeichergeräts 10 gemäß einer Ausführungsform.
-
Unter Bezugnahme auf 9 kann das Datenspeichergerät 10 eine logische Adresse erhalten, die zusammen mit einem Schreibbefehl oder einem Lesebefehl vom Host-Gerät 20 (S101) empfangen wird. Das Datenspeichergerät 10 kann auch die Größe der Daten empfangen, wenn es den Schreib- oder Lesebefehl vom Host-Gerät 20 empfängt.
-
Als nächstes kann das Datenspeichergerät 10 feststellen, ob die logische Adresse zur Random Access Zone 300b innerhalb des flüchtigen Speichers 300 gehört oder ob sie zur sequentiellen Zone 100b innerhalb des nichtflüchtigen Speichers 100 (S103 und S105) gehört.
-
Die logische Adresse kann die logische Startadresse einer Operation darstellen, die dem Befehl entspricht. Wenn die logische Adresse zur Random Access Zone oder zur sequentiellen Zone gehört, kann dies jeweils bedeuten, dass eine physikalische Adresse, die der logischen Adresse entspricht, zur Random Access Zone oder zur sequentiellen Zone gehört. Das heißt, wenn die logische Adresse zur sequentiellen Zone gehört, kann das Datenspeichergerät 10 eine dem Schreib- oder Lesebefehl entsprechende Operation steuern, die unter Verwendung der der logischen Adresse entsprechenden physikalischen Adresse als Startadresse ausgeführt werden soll.
-
Der flüchtige Speicher 300 kann die Region 300a, in der eine Zonen-Abbildungstabelle und Systeminformationen gespeichert sind, und die Random Access Zone 300b mit wahlfreiem Schreibzugriff umfassen. Der nichtflüchtige Speicher 100 kann die Sicherungszone 100a und mehrere sequentielle Zonen 100b mit sequentiellem Schreibzugriff umfassen.
-
Das Datenspeichergerät 10 kann eine dem Schreib- oder Lesebefehl entsprechende Operation auf der Grundlage der in Schritt S103 (S107 und S117) ermittelten Random Access Zone 300b oder sequentiellen Zone 100b ausführen. Dies wird später ausführlich beschrieben.
-
Als nächstes kann das Datenspeichergerät 10 Daten, die in der Random Access Zone 300b gespeichert sind, auf der Grundlage eines voreingestellten Kriteriums (S109 und S111) in der Sicherungszone 100a sichern.
-
Die Random Access Zone 300b kann eine Vielzahl von Slice-Regionen umfassen. Jede der Vielzahl von Slice-Regionen wird mit einem Random-Access-Index abgeglichen. Jeder der Random-Access-Indizes kann mit einem Flush-Flag, das anzeigt, ob in der Random Access Zone 300b gespeicherte Daten in der Sicherungszone 100a gesichert wurden, und einem Update-Flag, das anzeigt, ob in der Random Access Zone 300b gespeicherte Daten mit neuen Daten aktualisiert wurden, abgeglichen werden.
-
Die Sicherungszone 100a kann die erste Region (wie in 7 dargestellt) umfassen, auf die die in der Random Access Zone 300b geschriebenen Daten eins zu eins gesichert werden, und die zweite Region (wie ebenfalls in 7 dargestellt), auf die die zuletzt in der Random Access Zone 300b aktualisierten Daten gesichert werden, wenn die Stromversorgung abgeschaltet oder anderweitig unterbrochen wird. Sowohl die erste Region als auch die zweite Region können jeweils einen aktuellen Sicherungsindex aufweisen, der eine Subregion ermittelt, die die zuletzt gesicherten Daten in dieser Region speichert.
-
Wenn z. B. in den Schritten S109 und S111 die in der Random Access Zone 300b geschriebene Datenmenge ein Referenzwert oder mehr darstellt, kann das Datenspeichergerät 10 in den Schritten S109 und S111 die in der Random Access Zone 300b gespeicherten Daten in der Sicherungszone 100a sichern und den Wert eines entsprechenden Flush-Flags für die gesicherte Random Access Zone 300b auf 1 (d. h. eins) ändern.
-
Ein weiteres Beispiel: Wenn die Anzahl der vom Host-Gerät 20 empfangenen Schreibbefehle in den Schritten S109 und S111 einen Referenzwert oder mehr darstellt, kann das Datenspeichergerät 10 in den Schritten S109 und S111 in der Sicherungszone 100a sequentiell Daten schreiben, die in der Mehrzahl der Slice-Regionen auf der Grundlage von Random-Access-Index-Nummern gespeichert sind.
-
Unter Bezugnahme auf 7 kann das Datenspeichergerät 10 Daten, die in Slice-Regionen von einem Random-Access-Index 0 bis zu einem Random-Access-Index n gespeichert sind, sequentiell in der Sicherungszone 100a sichern.
-
Danach kann das Datenspeichergerät 10 die Werte der Flush-Flags für die gesicherten Slice-Regionen auf 1 (d.h. eins) ändern.
-
Wenn als nächstes, nachdem die in der Vielzahl von Slice-Regionen gespeicherten Daten in die Sicherungszone 100a geschrieben wurden, die Aktualisierung der in der Random Access Zone 300b gespeicherten Daten vom Host-Gerät 20 erfolgt, kann das Datenspeichergerät 10 den Wert eines Update-Flags für eine entsprechende Slice-Region auf 1 (d.h. eins) ändern.
-
Wenn ein Signal zum Stromabschalten empfangen wird, kann das Datenspeichergerät 10, in die zweite Region (Index 2), Daten in die Random Access Zone 300b mit einem Flush-Flag von 0 (Flush 0) oder einem Update-Flag von 1 (Update 1) schreiben.
-
Wenn die Daten in die zweite Region geschrieben werden, kann das Datenspeichergerät 10 auch einen entsprechenden Random-Access-Index speichern.
-
Wenn der Zustand des Datenspeichergeräts 10 nach dem Stromabschalten in einen eingeschalteten Zustand übergeht, kann das Datenspeichergerät 10 die in der Sicherungszone 100a gespeicherten Daten in die Random Access Zone 300b (S113 und S115) wiederherstellen. Es ist zu beachten, dass - obwohl S113 und S115 wie nach S111 folgend dargestellt sind - die Ausführungsformen nicht darauf beschränkt sind und eine Stromunterbrechung und anschließende Wiederherstellung jederzeit während des Prozesses 900 von 9 auftreten kann.
-
Genauer gesagt, wenn der Zustand des Datenspeichergeräts 10 nach dem Stromabschalten in einen eingeschalteten Zustand übergeht, kann das Datenspeichergerät 10 physikalische Adressen berechnen, die dem letzten Sicherungsindex der ersten Region entsprechen (wie z.B. Index 0 oder Index 1), und kann Daten von den physikalischen Adressen sequentiell in die Random Access Zone 300b lesen.
-
In diesem Fall kann das Datenspeichergerät 10 als Systeminformation einen letzten Sicherungsindex, der zur ersten Region gehört, und einen letzten Sicherungsindex, der zur zweiten Region gehört, getrennt verwalten, wobei jeder angibt, wo in seiner Region die letzten Daten gespeichert sind. Der jüngste Sicherungsindex kann im flüchtigen Speicher 300 als Systeminformation gespeichert werden. Nach dem Ermitteln des letzten Sicherungsindexes kann das Datenspeichergerät 10 die Daten des entsprechenden Sicherungsindexes in der Random Access Zone 300b im Schritt S115 wiederherstellen.
-
Wenn das Laden der Daten aus der ersten Region abgeschlossen ist, kann das Datenspeichergerät 10 die neuesten Daten, die in der zweiten Region der Sicherungszone 100a gespeichert sind, in die Random Access Zone 300b lesen.
-
10 ist ein detailliertes Flussdiagramm für die Daten-Schreiboperation 910, wie er im Prozess 900 von 9 verwendet werden kann.
-
Das Datenspeichergerät 10 kann eine logische Adresse zusammen mit einem Schreibbefehl vom Hostgerät 20 (S201) empfangen. Der Controller 200 kann auch die Datengröße erhalten, wenn er einen Schreib- oder Lesebefehl vom Hostgerät 20 empfängt.
-
Als nächstes kann das Datenspeichergerät 10 feststellen, ob die logische Adresse zur Random Access Zone 300b in dem flüchtigen Speicher oder zur sequentiellen Zone 100b in dem nichtflüchtigen Speicher 100 (S203 und S205) gehört.
-
Wenn als Ergebnis des Ermittelns in Schritt S205 die logische Adresse zur Random Access Zone 300b gehört, kann das Datenspeichergerät 10 Daten schreiben, die der Größe der vom Hostgerät 20 empfangenen Daten entsprechen, basierend auf einer physikalischen Startadresse der Random Access Zone 300b (S207 und S209).
-
Wenn als Ergebnis des Ermittelns in Schritt S205 die logische Adresse zur sequentiellen Zone 100b gehört, kann das Datenspeichergerät 10 auf der Grundlage der Zonen-Abbildungstabelle einen Zonenindex ermitteln, der mit der logischen Adresse übereinstimmt, die zusammen mit dem Schreibbefehl vom Hostgerät 20 empfangen wurde.
-
Als nächstes kann das Datenspeichergerät 10 eine physikalische Adresse ermitteln, an der eine Schreiboperation durchgeführt wird, indem es den finalen Schreibort des ermittelten Zonenindex (S211) ermittelt.
-
Als nächstes kann das Datenspeichergerät 10 Daten entsprechend der Größe der Daten von einem Ort neben dem finalen Schreibort des ermittelten Zonenindex (S213) schreiben. In einer Ausführungsform kann die Größe der Daten einer Seitengröße der sequentiellen Zone 100b entsprechen. In einer anderen Ausführungsform kann die Größe der Daten weniger als eine Seitengröße der sequentiellen Zone 100b betragen, und eine Lese-Änderungs-Schreib-Operation kann verwendet werden, um das Schreiben der Daten durchzuführen.
-
Als nächstes, nachdem die Schreiboperation durchgeführt wurde, kann das Datenspeichergerät 10 den finalen Schreibort in der Zonen-Abbildungstabelle (S215) aktualisieren.
-
11 ist ein detailliertes Flussdiagramm zur Beschreibung einer Daten-Leseoperation 920, wie er im Prozess 900 von 9 verwendet werden kann.
-
Das Datenspeichergerät 10 kann eine logische Adresse zusammen mit einem Lesebefehl vom Hostgerät 20 (S301) empfangen. Anschließend kann das Datenspeichergerät 10 feststellen, ob die logische Adresse zur Random Access Zone 300b innerhalb des flüchtigen Speichers oder zur sequentiellen Zone 100b innerhalb des nichtflüchtigen Speichers gehört (S303 und S305).
-
Wenn als Ergebnis des Ermittelns in Schritt S305 die logische Adresse zur Random Access Zone 300b gehört, kann das Datenspeichergerät 10 die finale physikalische Adresse ermitteln, indem es einen Teil der logischen Adresse, wie z.B. den Offset der logischen Adresse von einer logischen Startadresse der entsprechenden logischen Blockadressgruppe, zu einer physikalischen Startadresse der Random Access Zone 300b addiert (S307).
-
Wie in 5 dargestellt, belegt im flüchtigen Speicher 300 die Region 300a, in der die Zonen-Abbildungstabelle und die Systeminformationen gespeichert sind, einen Teil eines Speicherplatzes, und die verbleibende Randregion wird als Random Access Zone 300b verwendet. Dementsprechend ist die physikalische Anfangsadresse der Random Access Zone 300b nicht 0, sondern kann eine physikalische Adresse nach der Region 300a sein, in der die Zonen-Abbildungstabelle und die Systeminformationen gespeichert sind. Infolgedessen kann das Datenspeichergerät 10 die finale physikalische Adresse ermitteln, von der Daten tatsächlich gelesen werden, indem die gesamte oder ein Teil der logischen Startadresse eines vom Host-Gerät 20 empfangenen Befehls zur physikalischen Startadresse der Random Access Zone 300b addiert wird.
-
Als nächstes kann das Datenspeichergerät 10 von der finalen physikalischen Adresse Daten lesen, die der Größe der Daten entsprechen, die beim Empfang des Lesebefehls empfangen werden (S309).
-
Wenn die logische Adresse als Ergebnis des Ermittelns in Schritt S305 zur sequentiellen Zone 100b gehört, kann das Datenspeichergerät 10 einen Zonenindex ermitteln, der mit der logischen Adresse auf der Grundlage der Zonen-Abbildungstabelle übereinstimmt. Das Datenspeichergerät 10 kann eine physikalische Startadresse ermitteln, die der logischen Adresse am ermittelten Zonenindex (S311) entspricht.
-
Als nächstes kann das Datenspeichergerät 10 Daten, die der Größe der vom Host-Gerät 20 angeforderten Daten entsprechen, von der in Schritt S311 (S313) ermittelten physikalischen Startadresse lesen.
-
12 ist ein Flussdiagramm zum Beschreiben einer Betriebsoperation 930 des Datenspeichergerätes nach einer anderen Ausführungsform. Als Beispiel wird ein Fall beschrieben, in dem das Datenspeichergerät 10 Daten, die in der Random Access Zone 300b gespeichert sind, in die Backup-Zone 100a verschiebt.
-
Wenn eine Sicherungsbedingung erfüllt ist, kann das Datenspeichergerät 10 Daten, die in der Random Access Zone 300b gespeichert sind, in der Sicherungszone 100a sichern.
-
Beispielsweise kann das Datenspeichergerät 10 ermitteln, ob die in der Random Access Zone 300b geschriebene Datenmenge ein Referenzwert oder höher ist (S401).
-
Die Random Access Zone 300b kann eine Vielzahl von Slice-Regionen umfassen. Jeder der Vielzahl von Slice-Regionen kann ein entsprechender Random-Access-Index zugeordnet werden. Jeder der Direktzugriffsindizes kann abgeglichen werden mit einem Flush-Flag, das anzeigt, ob in der Random Access Zone 300b gespeicherte Daten in der Sicherungszone 100a gesichert wurden, und einem Update-Flag, das anzeigt, ob in der Random Access Zone 300b gespeicherte Daten mit neuen Daten aktualisiert wurden.
-
Die Sicherungszone 100a kann die erste Region (in 7 dargestellt) umfassen, auf die die in der Random Access Zone 300b geschriebenen Daten eins zu eins gesichert werden, und die zweite Region (ebenfalls in 7 dargestellt), auf die die zuletzt in der Random Access Zone 300b aktualisierten Daten gesichert werden, wenn die Stromversorgung abgeschaltet oder unterbrochen wird. Sowohl die erste Region als auch die zweite Region können jeweils einen aktuellen Sicherungsindex aufweisen, der eine Subregion der jeweiligen Region angibt, die die zuletzt gesicherten Daten enthält.
-
Wenn als Ergebnis des Ermittelns die Menge der in die Random Access Zone 300b geschriebenen Daten ein Referenzwert oder mehr ist, kann das Datenspeichergerät 10 in der Sicherungszone 100a Daten, die in einer Vielzahl von Slice-Regionen innerhalb der Random Access Zone 300b gespeichert sind, auf der Grundlage von Random-Access-Index-Nummern (S403) sequentiell in die Sicherungszone 100a schreiben.
-
Als nächstes kann das Datenspeichergerät 10 einen Wert eines entsprechenden Flush-Flags für die gesicherte Random Access Zone 300b auf 1 (d. h. eins) ändern (S405).
-
Wenn als Ergebnis des Ermittelns in Schritt S401 die Menge der in die Random Access Zone 300b geschriebenen Daten nicht der Referenzwert oder mehr ist, kann das Datenspeichergerät 10 ermitteln, ob die Anzahl der vom Hostgerät 20 empfangenen Schreibbefehle ein Referenzwert oder mehr ist (S407).
-
Wenn als Ergebnis des Ermittelns in Schritt S407 die Anzahl der Schreibbefehle der Referenzwert oder mehr ist, kann das Datenspeichergerät 10 in der Sicherungszone 100a sequentiell Daten schreiben, die in einer Vielzahl von Slice-Regionen auf der Grundlage von Random-Access-Index-Nummern (S409) gespeichert sind.
-
Danach kann das Datenspeichergerät 10 den Wert eines entsprechenden Flush-Flags für die gesicherte Slice-Region auf 1 (d.h. eins) ändern (S411).
-
Wenn als nächstes die Aktualisierung der in der Random Access Zone 300b gespeicherten Daten vom Hostgerät 20 erfolgt, nachdem die in den Vielzahl von Slice-Regionen gespeicherten Daten in die erste Region der Sicherungszone 100a geschrieben wurden, kann das Datenspeichergerät 10 den Wert eines entsprechenden Update-Flags für eine entsprechende Slice-Region auf 1 (d. h. eins) ändern (S413).
-
Wenn ein Signal zum Stromabschalten empfangen wird (S415), kann das Datenspeichergerät 10, in die zweite Region (Index 2), Daten mit einem Flush-Flag von 0 (Flush 0) oder einem Update-Flag von 1 (Update 1) in die zweite Region der Random Access Zone 300b (S417) schreiben. Wenn die Daten in die zweite Region geschrieben werden, kann das Datenspeichergerät 10 auch einen entsprechenden Random-Access-Index für jedes geschriebene Slice speichern.
-
Auch wenn dieses nicht illustriert ist, kann das Datenspeichergerät 10, wenn der Zustand des Datenspeichergeräts 10 nach dem Stromabschalten in einen eingeschalteten Zustand übergeht, die in der Sicherungszone 100a gespeicherten Daten in die Random Access Zone 300b wiederherstellen.
-
13 ist ein Diagramm, das ein Datenverarbeitungssystem 2000 mit einem Solid State Drive (SSD) gemäß einer Ausführungsform darstellt. Unter Bezugnahme auf 13 kann das Datenverarbeitungssystem 2000 ein Host-Gerät 2100 und ein Solid State Drive 2200 (im Folgenden als „SSD“ bezeichnet) enthalten.
-
Das SSD 2200 kann einen Controller 2210, einen Pufferspeicher 2220, nichtflüchtige Speicher 2231 bis 223n, ein Netzteil 2240, einen Signalanschluss 2250 und einen Stromanschluss 2260 einschließen.
-
Der Controller 2210 kann den Gesamtbetrieb des SSD 2200 steuern.
-
Der Pufferspeicher 2220 kann vorübergehend Daten speichern, die in den nichtflüchtigen Speichern 2231 bis 223n gespeichert werden sollen. Darüber hinaus kann der Pufferspeicher 2220 vorübergehend Daten speichern, die aus den nichtflüchtigen Speichern 2231 bis 223n gelesen werden. Die in dem Pufferspeicher 2220 vorübergehend gespeicherten Daten können unter der Steuerung des Controllers 2210 an die Hostvorrichtung 2100 oder die nichtflüchtigen Speicher 2231 bis 223n übertragen werden.
-
Als Speichermedien des SSD 2200 können die nichtflüchtigen Speicher 2231 bis 223n verwendet werden. Die nichtflüchtigen Speicher 2231 bis 223n können über eine Vielzahl von Kanälen CH1 bis CHn elektrisch mit dem Controller 2210 gekoppelt werden. Ein oder mehrere nichtflüchtige Speicher können mit einem Kanal elektrisch gekoppelt werden. Nichtflüchtige Speicher, die mit einem Kanal elektrisch gekoppelt sind, können mit demselben Signal- und Datenbus elektrisch gekoppelt sein.
-
Das Netzteil 2240 kann eine Stromversorgung PWR bereitstellen, die über den Netzanschluss 2260 in die SSD 2200 eingespeist wird. Das Netzteil 2240 kann eine Hilfsspannungsversorgung 2241 enthalten. Bei plötzlicher Stromabschaltung kann die Hilfsspannungsversorgung 2241 Strom zuführen, so dass die SSD 2200 normal abgeschlossen wird. Die Hilfsspannungsversorgung 2241 kann Kondensatoren mit hoher Kapazität enthalten, die mit der Stromversorgung PWR geladen werden können.
-
Der Controller 2210 kann über den Signalanschluss 2250 Signale SGL mit dem Host-Gerät 2100 austauschen. In diesem Fall kann das Signal SGL einen Befehl, eine Adresse, Daten usw. enthalten. Der Signalanschluss 2250 kann mit verschiedenen Anschlusstypen konfiguriert werden, basierend auf einer Schnittstelle, die zwischen dem Host-Gerät 2100 und dem SSD 2200 verwendet wird.
-
14 ist ein Diagramm, das die Konfiguration des Controllers 2100 in 13 illustriert. Unter Bezugnahme auf 14 kann der Controller 2210 eine Host-Schnittstelleneinheit 2211, eine Steuereinheit 2212, einen Direktzugriffsspeicher 2213, eine Fehlerkorrekturcode-(ECC-)Einheit 2214 und eine Speicher-Schnittstelleneinheit 2215 enthalten.
-
Die Host-Schnittstelleneinheit 2211 kann eine Schnittstelle zwischen dem Host-Gerät 2100 und dem SSD 2200 basierend auf einem Protokoll des Host-Gerätes 2100 bereitstellen. Beispielsweise kann die Host-Schnittstelleneinheit 2211 mit dem Host-Gerät 2100 über eines der folgenden Protokolle kommunizieren: Secure Digital, USB (Universal Serial Bus), Multimediakarte (MMC), eine eingebettete MMC (eMMC), Personal Computer Memory Card International Association (PCMCIA), Parallel Advanced Technology Attachment (PATA), Serial Advanced Technology Attachment (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnection (PCI), PCI Express (PCI-E) und Universal Flash Storage (UFS). Darüber hinaus kann die Host-Schnittstelleneinheit 2211 eine Disk Emulation Function ausführen, die es dem Host-Gerät 2100 ermöglicht, das SSD 2200 als universelles Datenspeichergerät, z.B. als Festplattenlaufwerk (HDD), zu ermitteln.
-
Die Steuereinheit 2212 kann ein vom Host-Gerät 2100 empfangenes SGL-Signal analysieren und verarbeiten. Die Steuereinheit 2212 kann Operationen interner Funktionsblöcke auf der Basis von Firmware oder Software zur Ansteuerung des SSD 2200 steuern. Der Direktzugriffsspeicher 2213 kann als Arbeitsspeicher für die Ansteuerung solcher Firmware oder Software verwendet werden.
-
Die ECC-Einheit 2214 kann Paritätsdaten von Daten erzeugen, die an die nichtflüchtigen Speicher 2231 bis 223n übertragen werden sollen. Die erzeugten Paritätsdaten können zusammen mit den Daten in den nichtflüchtigen Speichern 2231 bis 223n gespeichert werden. Die ECC-Einheit 2214 kann auf der Grundlage der Paritätsdaten einen Fehler der aus den nichtflüchtigen Speichern 2231 bis 223n gelesenen Daten ermitteln. Wenn der erkannte Fehler innerhalb eines korrigierbaren Bereichs liegt, kann die ECC-Einheit 2214 den erkannten Fehler korrigieren.
-
Die Speicherschnittstelleneinheit 2215 kann die nichtflüchtigen Speicher 2231 bis 223n unter der Steuerung der Steuereinheit 2212 mit Steuersignalen, wie z.B. einem Befehl und einer Adresse, versorgen. Darüber hinaus kann die Speicherschnittstelleneinheit 2215 unter der Steuerung der Steuereinheit 2212 Daten mit den nichtflüchtigen Speichern 2231 bis 223n austauschen. Zum Beispiel kann die Speicherschnittstelleneinheit 2215 die nichtflüchtigen Speicher 2231 bis 223n mit Daten versorgen, die in dem Pufferspeicher 2220 gespeichert sind, oder sie kann den Pufferspeicher 2220 mit Daten versorgen, die aus den nichtflüchtigen Speichern 2231 bis 223n gelesen werden.
-
15 ist ein Diagramm, das ein Datenverarbeitungssystem 3000 einschließlich einem Datenspeichergerät gemäß einer Ausführungsform darstellt. Unter Bezugnahme auf 15 kann das Datenverarbeitungssystem 3000 ein Host-Gerät 3100 und ein Datenspeichergerät 3200 einschließen.
-
Das Host-Gerät 3100 kann in Form einer Platine konfiguriert werden, z.B. als gedruckte Leiterplatte (PCB). Obwohl nicht abgebildet, kann das Host-Gerät 3100 interne Funktionsblöcke zum Ausführen von Funktionen des Host-Gerätes einschließen.
-
Das Host-Gerät 3100 kann ein Anschlussterminal 3110 enthalten, z. B. eine Buchse, einen Steckplatz oder einen Stecker. Das Datenspeichergerät 3200 kann an das Anschlussterminal 3110 montiert werden.
-
Das Datenspeichergerät 3200 kann in Form einer Platine konfiguriert werden, z.B. als PCB. Das Datenspeichergerät 3200 kann als Speichermodul oder als Speicherkarte bezeichnet werden. Das Datenspeichergerät 3200 kann einen Controller 3210, einen Pufferspeicher 3220, nichtflüchtige Speicher 3231 und 3232, eine integrierte Strommanagement-Schaltung (PMIC) 3240 und ein Anschlussterminal 3250 enthalten.
-
Der Controller 3210 kann den Gesamtbetrieb des Datenspeichergeräts 3200 steuern. Der Controller 3210 kann identisch mit dem Controller 2210 von 15 konfiguriert werden.
-
Der Pufferspeicher 3220 kann vorübergehend Daten speichern, die in den nichtflüchtigen Speichern 3231 und 3232 gespeichert werden sollen. Darüber hinaus kann der Pufferspeicher 3220 vorübergehend Daten speichern, die aus den nichtflüchtigen Speichern 3231 und 3232 gelesen werden. Die in dem Pufferspeicher 3220 vorübergehend gespeicherten Daten können unter der Steuerung des Controllers 3210 an die Hostvorrichtung 3100 oder die nichtflüchtigen Speicher 3231 und 3232 übertragen werden.
-
Als Speichermedien des Datenspeichergerätes 3200 können die nichtflüchtigen Speicher 3231 und 3232 verwendet werden.
-
Die PMIC 3240 kann Strom, der über das Anschlussterminal 3250 empfangen wird, in das Datenspeichergerät 3200 einspeisen. Die PMIC 3240 kann die Stromversorgung des Datenspeichergeräts 3200 unter der Steuerung des Controllers 3210 verwalten.
-
Das Anschlussterminal 3250 kann elektrisch mit dem Anschlussterminal 3110 des Host-Gerätes gekoppelt werden. Über das Anschlussterminal 3250 können Signale, wie z.B. ein Befehl, eine Adresse und Daten, sowie Strom zwischen dem Host-Gerät 3100 und dem Datenspeichergerät 3200 übertragen werden. Das Anschlussterminal 3250 kann auf der Grundlage einer Schnittstellenoperation zwischen dem Host-Gerät 3100 und dem Datenspeichergerät 3200 in verschiedenen Formen konfiguriert werden. Das Anschlussterminal 3250 kann auf einer beliebigen Seite des Datenspeicherungsgeräts 3200 positioniert werden.
-
16 ist ein Diagramm, das ein Datenverarbeitungssystem 4000 einschließlich eines Datenspeichergeräts gemäß einer Ausführungsform darstellt. Unter Bezugnahme auf 16 kann das Datenverarbeitungssystem 4000 ein Host-Gerät 4100 und ein Datenspeichergerät 4200 enthalten.
-
Das Host-Gerät 4100 kann in Form einer Platine konfiguriert werden, z.B. als PCB. Obwohl nicht abgebildet, kann das Host-Gerät 4100 interne Funktionsblöcke zum Ausführen von Funktionen des Host-Gerätes enthalten.
-
Das Datenspeichergerät 4200 kann in einer klappenartigen Verpackungsform konfiguriert werden. Das Datenspeichergerät 4200 kann mit Hilfe von Lötkugeln 4250 auf dem Hostgerät 4100 montiert werden. Das Datenspeichergerät 4200 kann einen Controller 4210, einen Pufferspeicher 4220 und einen nichtflüchtigen Speicher 4230 enthalten.
-
Der Controller 4210 kann den Gesamtbetrieb des Datenspeichergeräts 4200 steuern. Der Controller 4210 kann identisch mit dem Controller 3210 von 15 konfiguriert werden.
-
Der Pufferspeicher 4220 kann vorübergehend Daten speichern, die im nichtflüchtigen Speicher 4230 gespeichert werden sollen. Darüber hinaus kann der Pufferspeicher 4220 vorübergehend Daten speichern, die aus dem nichtflüchtigen Speicher 4230 gelesen werden. Die im Pufferspeicher 4220 vorübergehend gespeicherten Daten können unter der Steuerung des Controllers 4210 an das Host-Gerät 4100 oder den nichtflüchtigen Speicher 4230 übertragen werden.
-
Der nichtflüchtige Speicher 4230 kann als Speichermedium des Datenspeichergerätes 4200 verwendet werden.
-
17 ist ein Diagramm, das ein Netzwerksystem 5000 einschließlich einem Datenspeichergerät gemäß einer Ausführungsform darstellt. Unter Bezugnahme auf 17 kann das Netzwerksystem 5000 ein Serversystem 5300 und eine Vielzahl von Client-Systemen 5410, 5420 und 5430 umfassen, die über ein Netzwerk 5500 elektrisch gekoppelt sind.
-
Das Serversystem 5300 kann Daten als Antwort auf eine Anforderung von der Vielzahl von Client-Systemen 5410, 5420 und 5430 bereitstellen. Beispielsweise kann das Serversystem 5300 Daten speichern, die von der Vielzahl von Client-Systemen 5410, 5420 und 5430 bereitgestellt werden. Ein anderes Beispiel: Das Serversystem 5300 kann Daten an die Client-Systeme 5410, 5420 und 5430 bereitstellen.
-
Das Serversystem 5300 kann ein Hostgerät 5100 und ein Datenspeichergerät 5200 umfassen. Das Datenspeichergerät 5200 kann mit dem Datenspeichergerät 10 von 1, dem SSD 2200 von 13, dem Datenspeichergerät 3200 von 15 und dem Datenspeichergerät 4200 von 16 konfiguriert werden.
-
Diejenigen, die im Fachgebiet, auf das sich diese Offenbarung bezieht, erfahren sind, sollten verstehen, dass die Ausführungsformen nur beispielhaft sind und nicht einschränkend, da diese Offenbarung in verschiedenen anderen Formen umgesetzt werden kann, ohne vom technischen Anwendungsgebiet oder den wesentlichen Merkmalen dieser Offenbarung abzuweichen. Dementsprechend wird der Umfang dieser Offenbarung durch die beigefügten Ansprüche und nicht durch die detaillierte Beschreibung definiert, und alle Änderungen oder Variationen, die sich aus der Bedeutung und dem Umfang der Ansprüche und ihrer Äquivalente ergeben, sollten so verstanden werden, dass sie in den Umfang dieser Offenbarung eingeschlossen sind.
-
Obwohl vorstehend verschiedene Ausführungsformen beschrieben wurden, wird demjenigen, der im Fachgebiet erfahren ist, klar sein, dass die beschriebenen Ausführungsformen nur als Beispiele dienen. Dementsprechend sollten das hier beschriebene Datenspeichergerät und das hier beschriebene Verfahren nicht basierend auf den beschriebenen Ausführungsformen eingeschränkt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-