-
Die Erfindung betrifft ein Speichersystem, ein Verfahren zum Betreiben eines Speichersystems und eine Steuereinheit.
-
Ein Speichersystem, das für ein tragbares Gerät, wie ein Mobiltelefon, verwendet wird, kann einen Bereitschaftsmodus (Standby-Modus) unterstützen, um den Energieverbrauch zu reduzieren. Zum Beispiel kann ein Speichersystem im Bereitschaftsmodus bei mindestens einem Teil der Schaltkreise die Energie abschalten, wodurch sich der Energieverbrauch verringert. Um jedoch die Batterielebensdauer des tragbaren Geräts zu verlängern, ist es wünschenswert, den Energieverbrauch noch weiter zu reduzieren.
-
Die der Erfindung zugrunde liegende technische Aufgabe liegt darin, ein Speichersystem, ein Verfahren zum Betreiben eines Speichersystems und eine Steuereinheit zur Verfügung zu stellen, die dazu geeignet sind, den Energieverbrauch in einem Bereitschaftsmodus zu reduzieren und/oder eine Modusumschaltung zwischen einem Normalmodus und dem Bereitschaftsmodus schnell durchzuführen.
-
Die Erfindung löst diese Aufgabe dadurch, dass sie ein Speichersystem mit den Merkmalen des Anspruch 1, 19 oder 21, ein Verfahren zum Betreiben eines Speichersystems mit den Merkmalen des Anspruch 8 und eine Steuereinheit mit den Merkmalen des Anspruch 17 zur Verfügung stellt.
-
Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angeführt, deren Wortlaut hiermit durch Bezugnahme zum Inhalt dieser Beschreibung gemacht wird, um unnötige Textwiederholungen zu vermeiden.
-
Vorteilhafte Ausführungsformen der Erfindung, wie sie nachfolgend ausführlich beschrieben werden, sind in den Zeichnungen dargestellt, in denen:
-
1 ein Blockdiagramm zeigt, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
2A bis 2C Schaubilder zeigen, die Beispiele eines Schreibbefehlscodes und eines Lesebefehlscodes darstellen.
-
3 ein Blockdiagramm zeigt, das einen NAND-Flashspeicher in einem Speichersystem von 1 darstellt.
-
4 ein Schaubild zeigt, das ein Beispiel einer Speicherkapazität eines NAND-Flashspeichers von 3 darstellt.
-
5 ein Blockdiagramm zeigt, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
6 ein Blockdiagramm zeigt, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
7 ein Blockdiagramm zeigt, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
8A bis 8D Blockdiagramme zeigen, die Beispiele eines Busprotokolls eines Speichersystems nach mindestens einer beispielhaften Ausführungsform darstellen.
-
9 ein Flussbild zeigt, das ein Verfahren zum Betreiben eines Speichersystems darstellt, wenn das Speichersystem von einem Normalmodus in einen Bereitschaftsmodus übergeht.
-
10 ein Flussbild zeigt, das ein Verfahren zum Betreiben eines Speichersystems darstellt, wenn das Speichersystem von einem Bereitschaftsmodus in einen Normalmodus übergeht.
-
11 ein Blockdiagramm zeigt, das ein Computersystem mit einem Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
12 ein Blockdiagramm zeigt, das ein Festkörperlaufwerk (SSD, Solid State Drive) mit einem Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
13 ein Blockdiagramm zeigt, das ein Mobilsystem mit einem Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Die begleitenden Zeichnungen sind nicht als maßstabsgetreu anzusehen, sofern dies nicht ausdrücklich angegeben ist.
-
In der Beschreibung der Figuren beziehen sich gleiche Bezugszeichen auf gleiche Elemente.
-
Es versteht sich, dass, wenn ein Element als mit einem anderen Element ”verbunden” oder ”gekoppelt” bezeichnet ist, es direkt mit dem anderen Element verbunden oder gekoppelt sein kann oder dazwischen liegende Elemente vorhanden sein können. Wenn hingegen ein Element als mit einem anderen Element ”direkt verbunden” oder ”direkt gekoppelt” bezeichnet ist, sind keine dazwischen liegenden Elemente vorhanden. Sofern andere Worte zum Beschreiben der Beziehung zwischen Elementen verwendet sind, sind sie in gleicher Weise zu interpretieren (z. B. ”zwischen” und ”direkt zwischen”, ”benachbart” und ”direkt benachbart” usw.).
-
Es ist auch anzumerken, dass in einigen alternativen Ausführungen die angegebenen Funktionen/Wirkungen in anderer Reihenfolge als in den Figuren angegeben erfolgen können. Zum Beispiel können zwei aufeinander folgend gezeigte Figuren tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder sie können sogar in umgekehrter Reihenfolge ausgeführt werden, was von den jeweiligen Funktionen/Wirkungen abhängig ist.
-
1 ist ein Blockdiagramm, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 1 beinhaltet ein Speichersystem 100 eine Steuereinheit 110, einen NAND-Flashspeicher 120 und einen Kanal 130.
-
Die Steuereinheit 110 kann Operationen des Speichersystems 100 und/oder des NAND-Flashspeichers 120 steuern. Zum Beispiel kann die Steuereinheit 110 eine Programmoperation, eine Leseoperation und eine Löschoperation des NAND-Flashspeichers 120 steuern. Die Steuereinheit 110 kann einen Arbeitsspeicher 111, eine Kompressionseinheit 117, eine Fehlerkorrekturcode(ECC)-Einheit 112, eine NAND-Schnittstelleneinheit 113 und ein Steuergerät 114 umfassen.
-
Der Arbeitsspeicher 111 kann Metadaten zum Betreiben des Speichersystems 100 und/oder der Steuereinheit 110 speichern. Der Arbeitsspeicher 111 kann ein flüchtiges Speicherelement sein, das gespeicherte Daten verliert, wenn die Energiezufuhr unterbrochen wird. Zum Beispiel kann der Arbeitsspeicher 111 durch einen statischen Direktzugriffspeicher (SRAM, Static Random Access Memory), einen dynamischen Direktzugriffspeicher (DRAM, Dynamic Random Access Memory) usw. ausgebildet sein.
-
Die Metadaten können von der Steuereinheit 110 in einem Normalmodus verwendet werden und können im Bereitschaftsmodus nicht verwendet werden. Die Metadaten können während des Betriebs der Steuereinheit 110 erzeugt und/oder verarbeitet werden. Zum Beispiel können die Metadaten einen Wert eines Spezialfunktionsregisters der Steuereinheit 110, eine beim Betrieb der Steuereinheit 110 erklärte Variable, Informationen über die Kapazität des NAND-Flashspeichers 120, Informationen über die Anzahl an Einheiten im NAND-Flashspeicher 120 (z. B. eine Anzahl an Speicherzellen), Informationen über den Kanal 130, Informationen über eine Adresse von Benutzerdaten, Informationen über eine Zeit zur Anlage von Benutzerdaten, Informationen über einen Standard der Benutzerdaten usw. umfassen.
-
Die Kompressionseinheit 117 kann Daten komprimieren, die vom Arbeitsspeicher 111 oder einem anderen Speicher (nicht gezeigt) bereitgestellt sind, und kann komprimierte Daten über die NAND-Schnittstelleneinheit 113 und den Kanal 130 an den NAND-Flashspeicher 120 geben. Die Kompressionseinheit 117 kann komprimierte Daten vom NAND-Flashspeicher 120 empfangen und kann aus den komprimierten Daten ursprüngliche Daten zurückgewinnen. Zum Beispiel können, wenn das Speichersystem 100 in den Bereitschaftsmodus eintritt, die im Arbeitsspeicher 111 gespeicherten Metadaten von der Kompressionseinheit 117 komprimiert werden und können dann in einem Cache-Register 121 des NAND-Flashspeichers 120 gespeichert werden. Wenn das Speichersystem 100 aus dem Bereitschaftsmodus aufgeweckt wird, können die im Cache-Register 121 gespeicherten Metadaten von der Kompressionseinheit 117 dekomprimiert werden und können dann erneut im Arbeitsspeicher 111 gespeichert werden. Die Kompressionseinheit 117 kann verschiedene Arten von Kompressionsoperationen und/oder Dekompressionsoperationen durchführen. In manchen Ausführungsformen können die Kompressionsoperation und die Dekompressionsoperation vom Steuergerät 114 ausgeführt werden, und die Steuereinheit 110 kann ohne eine separate Kompressionseinheit ausgebildet sein.
-
Die ECC-Einheit 112 kann basierend auf Daten, die vom Arbeitsspeicher 111 oder einem anderen Speicher (nicht gezeigt) bereitgestellt sind, einen Fehlerkorrekturcode erzeugen und kann den Fehlerkorrekturcode über die NAND-Schnittstelleneinheit 113 und den Kanal 130 an den NAND-Flashspeicher 120 geben. Die ECC-Einheit 112 kann einen Fehlerkorrekturcode vom NAND-Flashspeicher 120 empfangen und kann basierend auf dem Fehlerkorrekturcode Daten zurückgewinnen. Auf diese Weise können ursprüngliche Daten exakt zurückgewonnen werden, auch wenn während einer Datenübertragung oder Datenspeicherung ein Fehler auftritt. Die Steuereinheit 110 kann mit oder ohne die ECC-Einheit 112 ausgebildet sein.
-
Wenn das Speichersystem 100 in den Bereitschaftsmodus eintritt, kann die Kompressionseinheit 117 Metadaten komprimieren, die sie vom Arbeitsspeicher 111 empfangen hat, und die ECC-Einheit 112 kann basierend auf den komprimierten Metadaten einen Fehlerkorrekturcode erzeugen. Der Fehlerkorrekturcode kann über die NAND-Schnittstelleneinheit 113 und den Kanal 130 zum Cache-Register 121 des NAND-Flashspeichers 120 übertragen und darin gespeichert werden. Wenn das Speichersystem 100 aus dem Bereitschaftsmodus aufgeweckt wird, kann die ECC-Einheit 112 über den Kanal 130 und die NAND-Schnittstelleneinheit 113 den Fehlerkorrekturcode vom Cache-Register 121 empfangen und kann die komprimierten Metadaten basierend auf dem empfangenen Fehlerkorrekturcode zurückgewinnen. Die Kompressionseinheit 117 kann die komprimierten Metadaten von der ECC-Einheit 112 empfangen und kann die komprimierten Metadaten dekomprimieren, um die Metadaten an den Arbeitsspeicher 111 zu geben. Obwohl 1 ein Beispiel darstellt, bei dem die Kompressionseinheit 117 zwischen dem Arbeitsspeicher 111 und der ECC-Einheit 112 gelegen ist, kann in manchen Ausführungsformen die Kompressionseinheit 117 zwischen der ECC-Einheit 112 und der NAND-Schnittstelleneinheit 113 gelegen sein. In diesem Fall kann ein Fehlerkorrekturcode von der ECC-Einheit 112 basierend auf den im Arbeitsspeicher 111 gespeicherten Metadaten erzeugt werden und der Fehlerkorrekturcode kann von Kompressionseinheit 117 komprimiert werden, um den komprimierten Fehlerkorrekturcode zum Cache-Register 121 des NAND-Flashspeichers 120 zu geben.
-
Die NAND-Schnittstelleneinheit 113 kann eine Schnittstelle zwischen der Steuereinheit 110 und dem NAND-Flashspeicher 120 ausbilden. Zum Beispiel kann die NAND-Schnittstelleneinheit 113 vom Steuergerät 114 angesteuert werden, um Daten, die vom Arbeitsspeicher 111 oder einem anderen Speicher (nicht gezeigt) bereitgestellt sind, in den NAND-Flashspeicher 120 zu schreiben, oder um gespeicherte Daten aus dem NAND-Flashspeicher 120 zu lesen.
-
Das Steuergerät 114 kann Operationen der Steuereinheit 110 steuern. Zum Beispiel kann das Steuergerät 114 die Steuereinheit 110 so steuern, dass eine Schreiboperation ausgeführt wird, die Daten in den NAND-Flashspeicher 120 schreibt, oder eine Leseoperation, die Daten aus dem NAND-Flashspeicher 120 liest. Weiter kann das Steuergerät 114 eine Bereitschaftsmodus-Eintrittsoperation aus dem Normalmodus in den Bereitschaftsmodus oder eine Aufweckoperation vom Bereitschaftsmodus in den Normalmodus ausführen.
-
Der NAND-Flashspeicher 120 kann Daten speichern, die über den Kanal 130 von der Steuereinheit 110 bereitgestellt worden sind. Der NAND-Flashspeicher 120 kann das Cache-Register 121 und Speicherzellen 122 aufweisen. Während der Schreiboperation können von der Steuereinheit 110 bereitgestellte Daten vorübergehend im Cache-Register 121 gespeichert werden, und die im Cache-Register 121 gespeicherten Daten können seitenweise in die Speicherzellen 122 einprogrammiert werden. Während der Leseoperation können in den Speicherzellen 122 gespeicherte Daten vorübergehend seitenweise im Cache-Register 121 gespeichert werden und die im Cache-Register 121 gespeicherten Daten können an die Steuereinheit 110 ausgegeben werden. Zum Beispiel kann das Cache-Register 121 durch eine Mehrzahl von Flip-Flops oder eine Mehrzahl von Zwischenspeichern (Latches) ausgebildet sein. Die Speicherzellen 122 können in einer Matrixform aus einer Mehrzahl von Spalten und einer Mehrzahl von Zeilen angeordnet sein. Gemäß mindestens einer beispielhaften Ausführungsform kann der NAND-Flashspeicher 120 das Cache-Register 121 in verschiedener Größe und Anzahl aufweisen. Zum Beispiel kann der NAND-Flashspeicher 120 zwei Cache-Register beinhalten, von denen jedes eine Größe aufweist, die zu einer Seite der Speicherzellen 122 korrespondiert.
-
Der Kanal 130 kann Wege für einen Befehl, eine Adresse, Daten usw. zwischen der Steuereinheit 110 und dem NAND-Flashspeicher 120 bereitstellen. Der Kanal 130 kann eine Mehrzahl von Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 umfassen. Zum Beispiel können der Befehl, die Adresse und Eingabedaten von der Steuereinheit 110 zum NAND-Flashspeicher 120 über die Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 mit einer Datenbreite von 8 Bit übertragen werden und Ausgabedaten können vom NAND-Flashspeicher 120 zur Steuereinheit 110 über die Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 mit einer Datenbreite von 8 Bit übertragen werden.
-
Obwohl es in 1 nicht dargestellt ist, kann der Kanal 130 weiter eine Steuerleitung zum Übertragen eines Steuersignals umfassen. Zum Beispiel kann die Steuerleitung ein Befehlszwischenspeicherfreigabe(CLE, Command Latch Enable)-Signal, ein Adressenzwischenspeicherfreigabe(ALE, Address Latch Enable)-Signal, ein Chipfreigabe(/CE)-Signal, ein Lesefreigabe(/RE)-Signal, ein Schreibfreigabe(/WR)-Signal, ein Schreibschutz(/WP)-Signal, ein Bereit-/Belegt(R/B)-Ausgabesignal, ein Energieversorgungs(VCC)-Signal, ein Masse(VSS)-Signal usw. übertragen. Obwohl 1 darstellt, dass der Kanal 130 acht Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 aufweist, kann der Kanal 130 in manchen Ausführungsformen eine oder mehrere Eingangs-/Ausgangs-Leitungen aufweisen.
-
Nachfolgend wird eine Modusumschaltung des Speichersystems 100 vom Normalmodus in den Bereitschaftsmodus oder vom Bereitschaftsmodus in den Normalmodus beschrieben.
-
Wenn das Speichersystem 100 in den Bereitschaftsmodus eintritt, kann das Steuergerät 114 den Arbeitsspeicher 111 so ansteuern, dass er Metadaten zur NAND-Schnittstelleneinheit 113 führt. In manchen Ausführungsformen kann die ECC-Einheit 112 aus den aus dem Arbeitsspeicher 111 gelesenen Metadaten einen Fehlerkorrekturcode erzeugen und der Fehlerkorrekturcode kann der NAND-Schnittstelleneinheit 113 zugeführt werden. Die Metadaten können von der Kompressionseinheit 117 komprimiert werden und die komprimierten Metadaten können der NAND-Schnittstelleneinheit 113 zugeführt werden. Die NAND-Schnittstelleneinheit 113 kann vom Steuergerät 114 so angesteuert werden, dass sie einen Schreibbefehlscode erzeugt, der die Metadaten beinhaltet. Der Schreibbefehlscode kann dem NAND-Flashspeicher 120 über den Kanal 130 zugeführt werden. Der NAND-Flashspeicher 120 kann den Schreibbefehlscode durch den Kanal 130 empfangen und in Abhängigkeit vom Schreibbefehlscode die Metadaten im Cache-Register 121 speichern. Der Schreibbefehlscode kann den NAND-Flashspeicher 120 informieren, dass die Metadaten in das Cache-Register 121 zu speichern sind und nicht in die Speicherzellen 122 einprogrammiert werden sollen. Auf diese Weise kann der NAND-Flashspeicher 120 in Abhängigkeit vom Schreibbefehlscode die Metadaten im Cache-Register 121 speichern und kann die Metadaten nicht in die Speicherzellen 122 einprogrammieren. Der Schreibbefehlscode wird nachfolgend mit Bezug zu den 2A bis 2C ausführlich beschrieben.
-
Da die Metadaten im Bereitschaftsmodus im Cache-Register 121 des NAND-Flashspeichers 120 gespeichert werden, kann das Speichersystem 100 dem Arbeitsspeicher 111 im Bereitschaftsmodus keine Energie zuführen. Dementsprechend kann der Energieverbrauch während des Bereitschaftsmodus reduziert werden.
-
In einigen Ausführungsformen können die Energieversorgung für das Cache-Register 121 und die Energieversorgung für die Speicherzellen 122 unabhängig gesteuert werden. In diesem Fall kann im Bereitschaftsmodus das Cache-Register 121 kontinuierlich mit Energie versorgt werden und die Speicherzellen 122 können nicht mit Energie versorgt werden. Dementsprechend kann der Energieverbrauch im Bereitschaftsmodus weiter reduziert werden.
-
Wenn das Speicherelement 100 aus dem Bereitschaftsmodus aufgeweckt wird, kann die NAND-Schnittstelleneinheit 113 vom Steuergerät 114 so angesteuert werden, dass es einen Lesebefehlscode erzeugt. Der NAND-Flashspeicher 120 kann den Lesebefehlscode durch den Kanal 130 empfangen und kann die im Cache-Register 121 gespeicherten Metadaten ausgeben. Die Steuereinheit 110 kann die Metadaten durch den Kanal 130 empfangen und kann die Metadaten im Arbeitsspeicher 111 speichern. Die Steuereinheit 110 kann basierend auf den im Arbeitsspeicher 111 gespeicherten Metadaten Operationen des Normalmodus ausführen (z. B. eine Programmoperation, eine Leseoperation oder eine Löschoperation).
-
Dementsprechend kann eine Modusumschaltung zwischen dem Normalmodus und dem Bereitschaftsmodus schnell durchgeführt werden, weil die Metadaten in das Cache-Register 121 anstatt in die Speicherzellen 122 eingeschrieben werden können, wenn das Speicherelement 100 in den Bereitschaftsmodus eintritt, und die Metadaten aus dem Cache-Register 121 anstatt aus den Speicherzellen 122 ausgelesen werden können, wenn das Speicherelement 100 aus dem Bereitschaftsmodus aufgeweckt wird.
-
Wie oben beschrieben kann im Speichersystem 100 nach mindestens einer beispielhaften Ausführungsform der Arbeitsspeicher 111 ohne Energieversorgung sein, da die Metadaten des Arbeitsspeichers 111 im Cache-Register 121 des NAND-Flashspeichers 120 gespeichert werden können, wodurch der Energieverbrauch im Bereitschaftsmodus verringert ist. Weiter können im Speichersystem 100 nach mindestens einer beispielhaften Ausführungsform die Operation zum Eintritt in den Bereitschaftsmodus und die Aufweckoperation schnell durchgeführt werden, da die Metadaten in das Cache-Register 121 anstatt die Speicherzellen 122 geschrieben oder daraus gelesen werden können.
-
Der Arbeitsspeicher 111 und das Steuergerät 114 können im gleichen Chip ausgebildet sein oder sie können in separaten Chips ausgebildet sein. Obwohl 1 das Speichersystem 100 so darstellt, dass es den NAND-Flashspeicher 120 beinhaltet, kann das Speichersystem 100 in einigen Ausführungsformen anstelle von oder zusammen mit dem NAND-Flashspeicher 120 einen PRAM-Speicher (Phase-Change Random Access Memory), einen RRAM-Speicher (Resistance Random Access Memory), einen NFGM-Speicher (Nano Floating Gate Memory), einen PoRAM-Speicher (Polymer Random Access Memory), einen MRAM-Speicher (Magnetic Random Access Memory), einen FRAM-Speicher (Ferroelectric Random Access Memory), einen NOR-Flashspeicher usw. beinhalten. Obwohl 1 das Speichersystem 100 so darstellt, dass es einen NAND-Flashspeicher 120 beinhaltet, kann das Speichersystem 100 eine Mehrzahl von NAND-Flashspeichern 120 beinhalten. In einem Fall, bei dem das Speichersystem 100 eine Mehrzahl von NAND-Flashspeichern aufweist, kann das Speichersystem 100 einen oder mehrere Kanäle zwischen der Steuereinheit 110 und der Mehrzahl von NAND-Flashspeichern aufweisen.
-
Die 2A bis 2C zeigen Schaubilder, die Beispiele eines Schreibbefehlscodes und eines Lesebefehlscodes darstellen.
-
2A stellt ein Beispiel eines Schreibbefehlscodes und eines Lesebefehlscodes dar, die ein typisches NAND-Schnittstellenprotokoll verwenden.
-
Mit Bezug zu 2A beinhaltet ein Schreibbefehlscode 210a ein erstes Befehlsfeld 211a, ein erstes Adressfeld 212a und ein Eingangsdatenfeld 213a. Das erste Befehlsfeld 211a kann mit einem seriellen Dateneingabebefehl gefüllt sein (z. B. 80h). In einigen Ausführungsformen kann das erste Adressfeld 212a einen NULL-Status aufweisen oder kann mit ”NULL” gefüllt sein. Zum Beispiel können alle Bits des ersten Adressfelds 212a mit Logikpegeln im Low-Zustand, das heißt einem niedrigen Pegel, oder High-Zustand (Hi-Z, High Impedance), das heißt einem hohen Pegel, verknüpft sein. In anderen Ausführungsformen kann das erste Adressfeld 212a mit einer spezifischen Bitstruktur gefüllt sein, die angibt, dass Daten in einem Cache-Register zu speichern sind. In noch weiteren Ausführungsformen können Daten im ersten Adressfeld 212a ignoriert werden. Das Eingangsdatenfeld 213a kann mit Metadaten gefüllt sein, die im Arbeitsspeicher gespeichert sind, wie es in 1 dargestellt ist. Zum Beispiel kann das Eingangsdatenfeld 213a mit Metadaten bis zu einem Umfang von einer Seite (z. B. 8 K-Bytes) gefüllt sein.
-
Wenn ein Speichersystem 100 von 1 in einen Bereitschaftsmodus eintritt, kann eine Steuereinheit 110 von 1 den Schreibbefehlscode 210a zu einem NAND-Flashspeicher 120 von 1 übertragen und kann einen Seitenprogrammbestätigungsbefehl (z. B. 10h) nicht übertragen, nachdem der Schreibbefehlscode 210a übertragen worden ist. Da der NAND-Flashspeicher 120 von 1 den Schreibbefehlscode 210a empfängt, ohne dass er den Seitenprogrammbestätigungsbefehl empfängt, kann der NAND-Flashspeicher 120 von 1 die Metadaten des Eingangsdatenfelds 213a im Cache-Register 121 von 1 speichern, ohne die Metadaten in Speicherzellen 122 von 1 zu programmieren.
-
Eine Lesebefehlscode 220a kann ein zweites Befehlsfeld 221a, ein zweites Adressfeld 222a, ein drittes Befehlsfeld 223a, ein drittes Adressfeld 224a, ein viertes Befehlsfeld 225a und ein Ausgabedatenfeld 226a aufweisen. Zum Beispiel kann das zweite Befehlsfeld 221a mit ”00h” gefüllt sein, das zweite Adressfeld 224a kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein, das dritte Befehlsfeld 223a kann mit ”05h” gefüllt sein, das dritte Adressfeld 224a kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein und das vierte Befehlsfeld 225a kann mit ”E0h” gefüllt sein, Das Ausgabedatenfeld 226a kann mit Metadaten gefüllt sein, die im Cache-Register 121 von 1 gespeichert sind. Zum Beispiel kann das Ausgabedatenfeld 226a mit Metadaten bis zu einem Umfang von einer Seite (z. B. 8 K-Bytes) gefüllt sein.
-
Wenn das Speichersystem 100 von 1 aus dem Bereitschaftsmodus aufgeweckt wird, kann die Steuereinheit 110 von 1 einen Lesebestätigungsbefehl (z. B. 30h) nicht an den NAND-Flashspeicher 120 von 1 übertragen und kann das zweite Befehlsfeld 221a, das zweite Adressfeld 222a, das dritte Befehlsfeld 223a, das dritte Adressfeld 224a und das vierte Befehlsfeld 225a, die mit Werten gefüllt sind, wie es oben beschrieben ist, übertragen. Dann kann der NAND-Flashspeicher 120 von 1 eine Seite aus den Speicherzellen 122 von 1 an das Cache-Register 121 von 1 nicht lesen und kann das Ausgangsdatenfeld 226a mit den im Cache-Register 121 von 1 gespeicherten Metadaten füllen, um die Metadaten an die Steuereinheit 110 von 1 bereitzustellen.
-
2B stellt ein Beispiel eines Schreibbefehlscodes in zwei Ebenen und eines Lesebefehlscodes in zwei Ebenen dar, die ein typisches NAND-Schnittstellenprotokoll verwenden. Ein NAND-Flashspeicher, der die in 2B dargestellten Schreibbefehlscodes und Lesebefehlscodes verwendet, kann eine Programmoperation in zwei Ebenen und eine Leseoperation in zwei Ebenen unterstützen.
-
Mit Bezug zu 2B beinhaltet ein Schreibbefehlscode 210b ein erstes Befehlsfeld 211b, ein erstes Adressfeld 212b, ein erstes Eingangsdatenfeld 213b, ein zweites Befehlsfeld 214b, ein zweites Adressfeld 215b und ein zweites Eingangsdatenfeld 216b. Zum Beispiel kann der erste Befehl 211b mit ”80h” gefüllt sein, das erste Adressfeld 212b kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein, das zweite Befehlsfeld 214b kann mit ”81h” gefüllt sein, das zweite Adressfeld 215b kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein. Das erste Eingangsdatenfeld 213b und das zweite Eingangsdatenfeld 216b können mit Metadaten gefüllt sein, die im Arbeitsspeicher 111 von 1 gespeichert sind. Zum Beispiel können das erste Eingangsdatenfeld 213b und das zweite Eingangsdatenfeld 216b jeweils mit Metadaten bis zum Umfang einer Seite gefüllt sein.
-
Wenn ein Speichersystem 100 von 1 in einen Bereitschaftsmodus eintritt, kann eine Steuereinheit 110 von 1 den Schreibbefehlscode 210b zu einem NAND-Flashspeicher 120 von 1 übertragen und kann weder einen Seitenprogrammblindbefehl (z. B. 11h) noch einen Seitenprogrammbefehl (z. B. 10h) übertragen. Da der NAND-Flashspeicher 120 von 1 den Schreibbefehlscode 210b empfängt, ohne dass er den Seitenprogrammblindbefehl und den Seitenprogrammbefehl empfängt, kann der NAND-Flashspeicher 120 von 1 die Metadaten des ersten Eingangsdatenfelds 213a und des zweiten Eingangsdatenfelds 216b im Cache-Register 121 von 1 speichern, ohne die Metadaten in Speicherzellen 122 von 1 zu programmieren.
-
Ein Lesebefehlscode 220b kann ein drittes Befehlsfeld 221b, ein drittes Adressfeld 222b, ein viertes Befehlsfeld 223b, ein viertes Adressfeld 224b, ein fünftes Befehlsfeld 225b, ein erstes Ausgabedatenfeld 226b, ein sechstes Befehlsfeld 227b, ein fünftes Adressfeld 228b, ein siebtes Befehlsfeld 229b, ein sechstes Adressfeld 230b, ein achtes Befehlsfeld 231b und ein zweites Ausgabedatenfeld 232b aufweisen. Zum Beispiel kann das dritte Befehlsfeld 221b mit ”00h” gefüllt sein, das dritte Adressfeld 222b kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein, das vierte Befehlsfeld 223b kann mit ”05h” gefüllt sein, das vierte Adressfeld 224b kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein, das fünfte Befehlsfeld 225b kann mit ”E0h” gefüllt sein, das sechste Befehlsfeld 227b kann mit ”00h” gefüllt sein, das fünfte Adressfeld 228b kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein, das siebte Befehlsfeld 229b kann mit ”05h” gefüllt sein, das sechste Adressfeld 230b kann mit ”NULL” oder einer spezifischen Struktur gefüllt sein und das achte Befehlsfeld 231b kann mit ”E0h” gefüllt sein. Das erste Ausgabedatenfeld 226b und das zweite Ausgabedatenfeld 232b können mit Metadaten gefüllt sein, die im Cache-Register 121 von 1 gespeichert sind. Zum Beispiel können in einem Fall, bei dem der NAND-Flashspeicher 120 von 1 zwei Cache-Register beinhalten kann, von denen jedes einen Umfang aufweist, der zu einer Seite der Speicherzellen 122 von 1 korrespondiert, das erste Ausgabedatenfeld 226b und das zweite Ausgabedatenfeld 232b mit Metadaten gefüllt sein, die jeweils entsprechend in den beiden Cache-Registern gespeichert sind.
-
Wenn das Speichersystem 100 von 1 aus dem Bereitschaftsmodus aufgeweckt wird, kann die Steuereinheit 110 von 1 einen Lesebestätigungsbefehl (z. B. 30h) an den NAND-Flashspeicher 120 von 1 nicht übertragen und kann das dritte Befehlsfeld 221b, das dritte Adressfeld 222b, das vierte Befehlsfeld 223b, das vierte Adressfeld 224b und das fünfte Befehlsfeld 225b, die mit Werten gefüllt sind, wie es oben beschrieben ist, übertragen. Dann kann der NAND-Flashspeicher 120 von 1 eine Seite aus den Speicherzellen 122 von 1 an ein Cache-Register nicht lesen und kann das erste Ausgangsdatenfeld 226b mit den in dem einen Cache-Register gespeicherten Metadaten füllen, um die Metadaten an die Steuereinheit 110 von 1 bereitzustellen. Danach kann die Steuereinheit 110 von 1 das sechste Befehlsfeld 227b, das fünfte Adressfeld 228b, das siebte Befehlsfeld 229b, das sechste Adressfeld 230b und das achte Befehlsfeld 231b, die mit Werten gefüllt sind, wie es oben beschrieben ist, übertragen. Dann kann der NAND-Flashspeicher 120 von 1 eine Seite aus den Speicherzellen 122 von 1 an ein anderes Cache-Register nicht lesen und kann das zweite Ausgangsdatenfeld 232b mit den in dem anderen Cache-Register gespeicherten Metadaten füllen, um die Metadaten an die Steuereinheit 110 von 1 bereitzustellen.
-
2C stellt ein Beispiel eines Schreibbefehlscodes und eines Lesebefehlscodes dar, die zu einem Befehlssatz eines typischen NAND-Schnittstellenprotokolls addiert werden.
-
Mit Bezug zu 2C beinhaltet ein Schreibbefehlscode 210c ein erstes Befehlsfeld 211c und ein Eingangsdatenfeld 213c. Das erste Befehlsfeld 211c kann mit einem neuen Befehlswert gefüllt sein, der im Befehlssatz des typischen NAND-Schnittstellenprotokolls nicht definiert ist. Zum Beispiel kann der neue Befehlswert ein Wert von einem Byte sein, außer ”00h”, ”05h”, ”10h”, ”11h”, ”30h”, ”35h”, ”60h”, ”70h”, ”7Bh”, ”80h”, ”81h”, ”85h”, ”90h”, ”D0h”, ”E0h”, ”F1h”, ”FFh” usw. Das Eingangsdatenfeld 213c kann mit Metadaten gefüllt sein, die im Arbeitsspeicher 111 von 1 gespeichert sind. Zum Beispiel kann das Eingangsdatenfeld 213c mit Metadaten bis zu einem Umfang von einer Seite oder mehr gefüllt sein.
-
Wenn ein Speichersystem 100 von 1 in einen Bereitschaftsmodus eintritt, kann eine Steuereinheit 110 von 1 den Schreibbefehlscode 210c zu einem NAND-Flashspeicher 120 von 1 übertragen. Dann kann der NAND-Flashspeicher 120 von 1 die Metadaten des Eingangsdatenfelds 213c in einem Cache-Register 121 von 1 speichern, ohne die Metadaten in Speicherzellen 122 von 1 zu programmieren.
-
Ein Lesebefehlscode 220c kann ein zweites Befehlsfeld 221c und ein Ausgabedatenfeld 226c aufweisen. Das zweite Befehlsfeld 221c kann mit einem neuen Befehlswert gefüllt sein, der im Befehlssatz des typischen NAND-Schnittstellenprotokolls nicht definiert ist. Zum Beispiel kann der neue Befehlswert ein Wert von einem Byte sein, außer ”00h”, ”05h”, ”10h”, ”11h”, ”30h”, ”35h”, ”60h”, ”70h”, ”7Bh”, ”80h”, ”81h”, ”85h”, ”90h”, ”D0h”, ”E0h”, ”F1h”, ”FFh” usw. Das Ausgabedatenfeld 226c kann mit Metadaten gefüllt sein, die im Cache-Register 121 von 1 gespeichert sind. Zum Beispiel kann das Ausgabedatenfeld 226c mit Metadaten bis zu einem Umfang von einer Seite oder mehr gefüllt sein.
-
Wenn das Speichersystem 100 von 1 aus dem Bereitschaftsmodus aufgeweckt wird, kann die Steuereinheit 110 von 1 das zweite Befehlsfeld 221c, das mit Werten gefüllt ist, wie es oben beschrieben ist, übertragen. Dann kann der NAND-Flashspeicher 120 von 1 eine Seite aus den Speicherzellen 122 von 1 an das Cache-Register 121 von 1 nicht lesen und kann das Ausgangsdatenfeld 226c mit den im Cache-Register 121 von 1 gespeicherten Metadaten füllen, um die Metadaten an die Steuereinheit 110 von 1 bereitzustellen.
-
3 zeigt ein Blockdiagramm, das einen NAND-Flashspeicher in einem Speichersystem von 1 darstellt.
-
Mit Bezug zu 3 beinhaltet ein NAND-Flashspeicher 120 ein Cache-Register 121, Speicherzellen 122, einen Eingangs-/Ausgangs-Schaltkreis 123, einen Adressenschaltkreis 124 und einen Steuerschaltkreis 125.
-
Der Eingangs-/Ausgangs-Schaltkreis 123 kann mit einem Kanal 130 von 1 gekoppelt sein und eine Mehrzahl von Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 umfassen. Der Eingangs-/Ausgangs-Schaltkreis 123 kann von einer Steuereinheit 110 von 1 durch die Mehrzahl von Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 einen Befehl CMD, eine Adresse ADDR und Eingangsdaten DATA empfangen und kann durch die Mehrzahl von Eingangs-/Ausgangs(I/O)-Leitungen I/O 0, I/O 1 und I/O 7 Ausgangsdaten DATA zur Steuereinheit 110 von 1 übertragen. Der Eingangs-/Ausgangs-Schaltkreis 123 kann dem Steuerschaltkreis 125 den von der Steuereinheit 110 von 1 empfangenen Befehl CMD zuführen, kann dem Adressenschaltkreis 124 die von der Steuereinheit 110 von 1 empfangene Adresse ADDR zuführen, dem Cache-Register 121 die von der Steuereinheit 110 von 1 empfangenen Eingangsdaten DATA zuführen und kann der Steuereinheit 110 von 1 die vom Cache-Register 121 empfangenen Ausgangsdaten DATA zuführen.
-
Der Adressenschaltkreis 124 kann die von der Steuereinheit 110 von 1 empfangene Adresse ADDR über den Eingangs-/Ausgangs-Schaltkreis 123 zwischenspeichern und decodieren, um eine Zeile der Speicherzellen 122 und/oder eine Spalte des Cache-Registers 121 auszuwählen.
-
Der Steuerschaltkreis 125 kann Operationen des NAND-Flashspeichers 120 in Abhängigkeit vom Befehl CMD, der von der Steuereinheit 110 von 1 über den Eingangs-/Ausgangs-Schaltkreis 123 empfangen worden ist, steuern. Der Steuerschaltkreis 125 kann eine Wortleitungsspannung erzeugen, wie eine Programmierspannung, eine Passspannung, eine Verifizierungsspannung, eine Lesespannung usw. Der Steuerschaltkreis 125 kann ein Steuersignal C/S von der Steuereinheit 110 von 1 empfangen. Zum Beispiel kann der Steuerschaltkreis 125 ein CLE-Signal, ein ALE-Signal, ein /CE-Signal, ein /RE-Signal, ein /WE-Signal, ein /WP-Signal, ein R/B-Signal usw. empfangen.
-
In einigen Ausführungsformen kann der Steuerschaltkreis 125 dem Cache-Register 121 durch einen Energieversorgungsweg 126, der ausschließlich für das Cache-Register 121 genutzt wird, Energie zuführen. Zum Beispiel kann der Steuerschaltkreis 125 dem Cache-Register 121 durch den Energieversorgungsweg 126 in einem Bereitschaftsmodus Energie zuführen, und kann die Energie zu mindestens einem Teil der Schaltkreise mit Ausnahme des Cache-Registers 121 des NAND-Flashspeichers 120 im Bereitschaftsmodus abschalten. Insbesondere können die Speicherzellen 122 im Bereitschaftsmodus nicht mit Energie versorgt werden.
-
Die von der Steuereinheit 110 von 1 über den Eingangs-/Ausgangs-Schaltkreis 123 empfangenen Eingangsdaten DATA können in das Cache-Register 121 geladen werden und die in das Cache-Register 121 geladenen Eingangsdaten DATA können seitenweise in die Speicherzellen 122 einprogrammiert werden. Die Ausgangsdaten DATA können seitenweise aus den Speicherzellen 122 in das Cache-Register 121 gelesen werden und können über den Eingangs-/Ausgangs-Schaltkreis 123 vom Cache-Register 121 zur Steuereinheit 110 von 1 geführt werden.
-
Beim Eintritt in den Bereitschaftsmodus können über den Eingangs-/Ausgangs-Schaltkreis 123 von der Steuereinheit 110 von 1 empfangene Metadaten DATA im Cache-Register 121 gespeichert werden und können in die Speicherzellen 122 nicht einprogrammiert werden. Beim Aufwecken aus dem Bereitschaftsmodus kann eine Datenleseoperation aus den Speicherzellen 122 in das Cache-Register 121 nicht durchgeführt werden und die im Cache-Register 121 gespeicherten Metadaten DATA können über den Eingangs-/Ausgangs-Schaltkreis 123 der Steuereinheit 110 von 1 zugeführt werden.
-
4 zeigt ein Schaubild, das ein Beispiel einer Speicherkapazität eines NAND-Flashspeichers von 3 darstellt.
-
Mit Bezug zu 4 können in einem Beispiel eines NAND-Flashspeichers Speicherzellen 122 ungefähr 4.152 Blöcke aufweisen, wobei jeder ungefähr 128 Seiten umfasst. Auf diese Weise können die Speicherzellen 122 519k Seiten umfassen, wobei jede einen Umfang von (8k + 640) Bytes aufweist. Mit anderen Worten, die Speicherzellen 122 können einen Umfang von 35.811 Megabits aufweisen. Ein Cache-Register 121 kann einen Umfang von einer Seite oder (8k + 640) Bytes aufweisen.
-
In einigen Ausführungsformen kann der NAND-Flashspeicher ein Cache-Register mit einem Umfang von einer Seite aufweisen. In anderen Ausführungsformen kann der NAND-Flashspeicher eine Mehrzahl von Cache-Registern beinhalten, wobei jedes einen Umfang von einer Seite aufweist. In noch anderen Ausführungsformen kann der NAND-Flashspeicher ein oder mehrere Cache-Register beinhalten, wobei jedes einen Umfang von zwei Seiten oder mehr aufweist.
-
5 zeigt ein Blockdiagramm, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 5 beinhaltet ein Speichersystem 100a eine Steuereinheit 110a, einen NAND-Flashspeicher 120a und einen Kanal 130a. Das Speichersystem 100a von 5 kann ähnlich ausgebildet sein wie ein Speichersystem 100 von 1 mit Ausnahme des Kanals 130a und von Schaltkreisen, die mit dem Kanal 130a gekoppelt sind.
-
Der Kanal 130a zwischen der Steuereinheit 110a und dem NAND-Flashspeicher 120a kann eine Eingangs-/Ausgangs-Leitung I/O umfassen. Die Steuereinheit 110a kann ein serielles Signal durch Serialisieren eines Befehls, einer Adresse und/oder von Eingangsdaten unter Verwendung einer ersten Serialisierer-Deserialisierer(SERDES)-Einheit 115a, die in einer NAND-Schnittstelleneinheit 113a enthalten ist, zum NAND-Flashspeicher 120a übertragen und der NAND-Flashspeicher 120a kann das serielle Signal unter Verwendung einer zweiten SERDES-Einheit 126 deserialisieren. Weiter kann der NAND-Flashspeicher 120a ein serielles Signal durch Serialisieren von Ausgabedaten, die vom Cache-Register 121 bereitgestellt worden sind, unter Verwendung der zweiten SERDES-Einheit 126 an die Steuereinheit 110a übertragen und die Steuereinheit 110a kann das serielle Signal unter Verwendung der ersten SERDES-Einheit 115a deserialisieren. Dementsprechend kann die Anzahl an Signalleitungen des Kanals 130a zwischen der Steuereinheit 110a und dem NAND-Flashspeicher 120a reduziert werden.
-
6 zeigt ein Blockdiagramm, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 6 beinhaltet ein Speichersystem 100b eine Steuereinheit 110b, einen NAND-Flashspeicher 120b und einen ersten Kanal 130 und einen zweiten Kanal 140. Das Speichersystem 100b kann ähnlich wie ein Speichersystem 100 von 1 ausgebildet sein, mit der Ausnahme, dass das Speichersystem 100b weiter den zweiten Kanal 140 beinhaltet.
-
Der zweite Kanal 140 kann ausschließlich zum Übertragen von Metadaten zwischen der Steuereinheit 110b und dem NAND-Flashspeicher 120b genutzt werden. Wenn zum Beispiel das Speichersystem 100b in einen Bereitschaftsmodus eintritt, können die in einem Arbeitsspeicher 111 gespeicherten Metadaten durch den zweiten Kanal 140 zu einem Cache-Register 121 übertragen werden. Wenn das Speichersystem 100b aus dem Bereitschaftsmodus aufgeweckt wird, können die im Cache-Register 121 gespeicherten Metadaten durch den zweiten Kanal 140 zum Arbeitsspeicher 111 übertragen werden.
-
In einigen Ausführungsformen kann der zweite Kanal 140 eine Eingangs-/Ausgangs-Leitung umfassen. Wenn in diesem Fall der Bereitschaftsmodus eingenommen wird, können die im Arbeitsspeicher 111 gespeicherten Metadaten durch eine erste SERDES-Einheit, die in einer NAND-Schnittstelleneinheit 113b enthalten ist, serialisiert werden und die serialisierten Metadaten können von einer zweiten SERDES-Einheit, die im NAND-Flashspeicher 120b enthalten ist, deserialisiert werden. Beim Aufwecken aus dem Bereitschaftsmodus können die im Cache-Register 121 gespeicherten Metadaten von der zweiten SERDES-Einheit serialisiert werden und die serialisierten Metadaten können von der ersten SERDES-Einheit deserialisiert werden. in anderen Ausführungsformen kann der zweite Kanal 140 eine Mehrzahl von Eingangs-/Ausgangs-Leitungen umfassen.
-
Wie oben beschrieben kann die Übertragung von Metadaten schnell durchgeführt werden, da das Speichersystem 100b nach mindestens einer beispielhaften Ausführungsform den Kanal 140 umfassen kann, der ausschließlich für die Metadaten verwendet wird. Weiter kann eine Modusumschaltung zwischen einem Normalmodus und dem Bereitschaftsmodus schnell durchgeführt werden.
-
7 zeigt ein Blockdiagramm, das ein Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 7 beinhaltet ein Speichersystem 100c eine Steuereinheit 110c, eine Mehrzahl von NAND-Flashspeichern 120-1, 120-2 und 120-n und eine Mehrzahl von Kanälen 130-1, 130-2 und 130-n. Im Vergleich zu einem Speichersystem 100 von 1 kann das Speichersystem 100c von 7 weiter einen oder mehrere NAND-Flashspeicher und einen oder mehrere Kanüle umfassen.
-
Eine Mehrzahl von Cache-Registern 121-1, 121-2 und 121-n, die in der Mehrzahl von NAND-Flashspeichern 120-1, 120-2 und 120-n enthalten sind, können über die Mehrzahl von Kanälen 130-1, 130-2 und 130-n unabhängig angesteuert werden oder sie können gleichzeitig angesteuert werden. Metadaten können in Abhängigkeit von der Kapazität und der Anzahl an in der Steuereinheit 110c vorhandenen Arbeitsspeichern, der Kapazität und Anzahl an Cache-Registern 121-1, 121-2 und 121-n, ob eine in der Steuereinheit 110c vorhandene Kompressionseinheit die Metadaten komprimiert, der Kompressionsrate der Kompressionseinheit usw. auf verschiedene Weise von der Steuereinheit 110c zu den Cache-Registern 121-1, 121-2 und 121-n übertragen und darin gespeichert werden.
-
Zum Beispiel beträgt in einem Fall, bei dem die Steuereinheit 110c einen ersten bis vierten Arbeitsspeicher beinhaltet, wobei jeder eine Kapazität von 64 K-Bytes aufweist, die Kompressionsrate der Kompressionseinheit 112, das Speichersystem 100c beinhaltet einen ersten bis achten NAND-Flashspeicher und jedes der ersten bis achten Cache-Register, die jeweils in einem der ersten bis achten NAND-Flashspeicher enthalten sind, weist einen Umfang von 16 K-Bytes auf, im ersten Arbeitsspeicher gespeicherte Metadaten können im ersten und zweiten Cache-Register gespeichert werden, im zweiten Arbeitsspeicher gespeicherte Metadaten können im dritten und vierten Cache-Register gespeichert werden, im dritten Arbeitsspeicher gespeicherte Metadaten können im fünften und sechsten Cache-Register gespeichert werden und im vierten Arbeitsspeicher gespeicherte Metadaten können im siebten und achten Cache-Register gespeichert werden. In diesem Fall können in einem Bereitschaftsmodus der erste bis vierte Arbeitsspeicher, die in der Steuereinheit 110c enthalten sind, jeweils nicht mit Energie versorgt werden.
-
In einem anderen Fall, bei dem die Steuereinheit 110c einen ersten bis vierten Arbeitsspeicher beinhaltet, wobei jeder eine Kapazität von 64 K-Bytes aufweist, beträgt die Kompressionsrate der Kompressionseinheit 1/2, das Speichersystem 100c beinhaltet einen ersten bis vierten NAND-Flashspeicher und jedes der ersten bis vierten Cache-Register, die jeweils in einem der ersten bis vierten NAND-Flashspeicher enthalten sind, weist einen Umfang von 16 K-Bytes auf, im ersten Arbeitsspeicher gespeicherte Metadaten können im ersten und zweiten Cache-Register gespeichert werden und im zweiten Arbeitsspeicher gespeicherte Metadaten können im dritten und vierten Cache-Register gespeichert werden. In diesem Fall können in einem Bereitschaftsmodus der erste und zweite Arbeitsspeicher nicht mit Energie versorgt werden und der dritte und vierte Arbeitsspeicher können kontinuierlich mit Energie versorgt werden.
-
Wie oben beschrieben, je mehr NAND-Flashspeicher 120-1, 120-2 und 120-n das Speichersystem 100c umfasst, desto mehr Arbeitsspeicher in der Steuereinheit 110c können während des Bereitschaftsmodus nicht mit Energie versorgt werden. Dementsprechend kann der Energieverbrauch weiter reduziert werden.
-
Obwohl 7 ein Beispiel des Speichersystems 100c darstellt, das die Mehrzahl von Kanälen 130-1, 130-2 und 130-n zwischen der Steuereinheit 110c und der Mehrzahl von NAND-Flashspeichern 120-1, 120-2 und 120-n beinhaltet, kann in einigen Ausführungsformen das Speichersystem 100c einen Kanal zwischen der Steuereinheit 110c und der Mehrzahl von NAND-Flashspeichern 120-1, 120-2 und 120-n beinhalten.
-
Die 8A bis 8D zeigen Blockdiagramme, die Beispiele eines Busprotokolls eines Speichersystems nach mindestens einer beispielhaften Ausführungsform darstellen.
-
8A stellt ein Busprotokoll zwischen einer NAND-Schnittstellensteuereinheit 110 und einem NAND-Flashspeicher 120 dar. Die NAND-Schnittstellensteuereinheit 110 kann ein Steuersignal C/S und ein Adresssignal ADDR durch eine Steuersignalleitung bzw. eine Adresssignalleitung zum NAND-Flashspeicher 120 übertragen. Zum Beispiel kann das Steuersignal C/S ein CLE-Signal, ein ALE-Signal, ein /CE-Signal, ein /RE-Signal, ein /WE-Signal, ein /WP-Signal, ein R/B-Signal usw. beinhalten. Von der NAND-Schnittstellensteuereinheit 110 zum NAND-Flashspeicher 120 und vom NAND-Flashspeicher 120 zur NAND-Schnittstellensteuereinheit 110 können Daten DQ in beide Richtungen übertragen werden.
-
Mit Bezug zu 8B kann eine NAND-Schnittstellensteuereinheit 110 paketbasierte Steuersignale und Adresssignale C/A PACKET an einen NAND-Flashspeicher 120 übertragen. Daten DQ können in beide Richtungen übertragen werden.
-
Mit Bezug zu 8C kann eine NAND-Schnittstellensteuereinheit 110 paketbasierte Steuersignale, Adresssignale und Schreibsignale C/A/WD PACKET an einen NAND-Flashspeicher 120 übertragen. Ausgabedaten Q können vom NAND-Flashspeicher 120 zur NAND-Schnittstellensteuereinheit 110 in eine Richtung übertragen werden.
-
Mit Bezug zu 8D kann eine NAND-Schnittstellensteuereinheit 110 Steuersignale C/S an einen NAND-Flashspeicher 120 übertragen. Befehl, Adresse und Daten C/A/DQ können in beide Richtungen übertragen werden.
-
9 zeigt ein Flussbild, das ein Verfahren zum Betreiben eines Speichersystems darstellt, wenn das Speichersystem von einem Normalmodus in einen Bereitschaftsmodus übergeht.
-
Mit Bezug zu den 1 und 9 kann das Speichersystem 100 kontinuierlich in einem Normalmodus betrieben werden (S61), wenn nicht bestimmt ist, dass das Speichersystem 100 in einen Bereitschaftsmodus eintritt (S62: NEIN).
-
Das Speichersystem 100 kann bestimmen, ob es in Abhängigkeit von einem internen oder externen Signal (S62) in den Bereitschaftsmodus eintritt. In einigen Ausführungsformen kann das Speichersystem 100 eine Zeitdauer messen, während der ein externes Eingangssignal nicht angelegt ist, wobei ein Zählwerk oder ein Taktgeber verwendet wird, der in einer Steuereinheit 110 oder einem NAND-Flashspeicher 120 vorgesehen ist. Wenn die gemessene Zeitdauer eine vorgegebene Zeitdauer überschreitet, kann das Speichersystem 100 entscheiden, ob es in einen Bereitschaftsmodus eintritt. in anderen Ausführungsformen kann das Speichersystem 100 entscheiden, ob es gemäß Umgebungsinformationen, wie verbleibender Energie in einer Batterie, in den Bereitschaftsmodus eintritt. In noch weiteren Ausführungsformen kann das Speichersystem 100 ein Bereitschaftsmodus-Eintrittssignal von einem externen Host empfangen, um zu entscheiden, ob es in den Bereitschaftsmodus eintritt. In noch weiteren Ausführungsformen kann das Speichersystem 100 ein Signal empfangen, das von einer Eingabeeinrichtung erzeugt ist (z. B., wenn ein Benutzer eine Taste an einem Mobiltelefon drückt), um zu entscheiden, ob es in den Bereitschaftsmodus eintritt.
-
Wenn bestimmt ist, dass das. Speichersystem 100 in den Bereitschaftsmodus eintritt (S62: JA), kann die Steuereinheit 110 Metadaten aus einem Arbeitsspeicher 111 lesen und kann einen Schreibbefehlscode erzeugen, der die Metadaten beinhaltet (S63). Zum Beispiel kann der Schreibbefehlscode ein Format aufweisen, wie es in den 2A bis 2C dargestellt ist, oder er kann nur die Metadaten beinhalten.
-
Die Steuereinheit 110 kann den Schreibbefehlscode zum NAND-Flashspeicher 120 übertragen, so dass die Metadaten in das Cache-Register 121 eingeschrieben werden (S64). Zum Beispiel kann der Schreibbefehlscode zum NAND-Flashspeicher 120 durch eine Mehrzahl von Eingangs-/Ausgangs-Leitungen I/O 0, I/O 1 und I/O 7 übertragen werden, die in einem Kanal 130 vorgesehen sind, durch eine serielle Eingangs-/Ausgangs-Leitung I/O, die in einem Kanal 130a vorgesehen ist, wie es in 5 dargestellt ist, oder durch einen Kanal 140, der ausschließlich für die Metadaten genutzt wird, wie es in 6 dargestellt ist. In einem anderen Beispiel kann der Schreibbefehlscode zu einer Mehrzahl von NAND-Flashspeichern 120-1, 120-2 und 120-n durch eine Mehrzahl von Kanälen 130-1, 130-2 und 130-n übertragen werden, wie es in 7 dargestellt ist.
-
Sobald die Metadaten im Cache-Register 121 gespeichert sind, kann das Speichersystem 100 im Bereitschaftsmodus arbeiten (S65). Während des Bereitschaftsmodus kann die Steuereinheit 110 die Energie zum Arbeitsspeicher 111 abschalten, wodurch sich der Energieverbrauch verringert. In einigen Ausführungsformen kann das Speichersystem mindestens zu einem Teil der Schaltkreise mit Ausnahme des Cache-Registers 121 und des NAND-Flashspeichers 120 die Energie abschalten, wodurch sich der Energieverbrauch weiter verringert.
-
10 zeigt ein Flussbild, das ein Verfahren zum Betreiben eines Speichersystems darstellt, wenn das Speichersystem von einem Bereitschaftsmodus in einen Normalmodus übergeht.
-
Mit Bezug zu den 1 und 10 kann das Speichersystem 100 kontinuierlich in einem Bereitschaftsmodus betrieben werden (S71), wenn nicht bestimmt ist, dass das Speichersystem 100 in einen Normalmodus eintritt (S72: NEIN).
-
Das Speichersystem 100 kann bestimmen, ob es in Abhängigkeit von einem internen oder externen Signal (S72) in den Normalmodus eintritt. In einigen Ausführungsformen kann das Speichersystem 100 ein Signal empfangen, das von einer Eingabeeinrichtung erzeugt ist (z. B., wenn ein Benutzer eine Taste an einem Mobiltelefon drückt), um zu entscheiden, ob es in den Normalmodus eintritt. In anderen Ausführungsformen, wenn ein Mobiltelefon, das das Speichersystem 100 beinhaltet, eine Anfrage eines Anrufs basierend auf einem Pilotsignal empfängt, kann das Speichersystem 100 entscheiden, ob es in den Normalmodus eintritt. In noch anderen Ausführungsformen kann das Speichersystem 100 ein Wecksignal von einem externen Host empfangen, um zu entscheiden, ob es in den Normalmodus eintritt. In noch anderen Ausführungsformen, wenn eine Steuereinheit 110 Daten vom Host empfängt, kann das Speichersystem 100 entscheiden, ob es in den Normalmodus eintritt.
-
Wenn bestimmt ist, dass das Speichersystem 100 in den Normalmodus eintritt (S72: JA), kann die Steuereinheit 110 einen Lesebefehlscode erzeugen (S73). Zum Beispiel kann der Lesebefehlscode ein Format aufweisen, wie es in den 2A bis 2C dargestellt ist.
-
Der NAND-Flashspeicher 120 kann in einem Cache-Register 121 gespeicherte Metadaten in Abhängigkeit vom Lesebefehlscode zur Steuereinheit 110 übertragen (S74). Zum Beispiel können die Metadaten durch eine Mehrzahl von Eingangs-/Ausgangs-Leitungen I/O 0, I/O 1 und I/O 7, die in einem Kanal 130 vorgesehen sind, durch eine serielle Eingangs-/Ausgangs-Leitung I/O, die in einem Kanal 130a vorgesehen ist, wie es in 5 dargestellt ist, oder durch einen Kanal 140, der ausschließlich für die Metadaten genutzt wird, wie es in 6 dargestellt ist, zur Steuereinheit 110 übertragen werden.
-
Die Steuereinheit 110 kann die aus dem Cache-Register 121 gelesenen Metadaten in einen Arbeitsspeicher 111 schreiben (S75).
-
Sobald die Metadaten im Arbeitsspeicher 111 gespeichert sind, kann das Speichersystem 100 im Normalmodus arbeiten (S76). Da die Metadaten aus dem Cache-Register 121 statt aus Speicherzellen 122 gelesen werden, kann das Speichersystem 100 eine Modusumschaltung vom Bereitschaftsmodus zum Normalmodus schnell ausführen. In einigen Ausführungsformen können die Metadaten einen Bootcode oder einen Aufweckcode umfassen und die Steuereinheit 110 kann eine Aufweckoperation unter Verwendung des Bootcodes oder des Aufweckcodes durchführen.
-
11 zeigt ein Blockdiagramm, das ein Computersystem mit einem Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 11 umfasst ein Computersystem 300 ein Speichersystem 100 und einen Host 310.
-
Das Speichersystem 100 kann eine Hostschnittstelleneinheit 116 umfassen, die eine Schnittstelle zum Host 310 bildet. Die Hostschnittstelleneinheit 116 kann ein Datenübertragungsprotokoll verwenden, das dem Host 310 zugeordnet ist, um mit dem Host 310 durch einen Kanal 320 zu kommunizieren. Zum Beispiel kann die Hostschnittstelleneinheit 116 mindestens eines von verschiedenen Schnittstellenprotokollen bereitstellen, wie Universal-Serial-Bus (USB), Multi-Media-Card (MMC), Peripheral-Component-Interconnect-Express (PCI-E), Small-Computer-System-Interface (SCSI), Serial-Attached-SCSI (SAS), Serial-Advanced-Technology-Attachment (SATA), Parallel-Advanced-Technology-Attachment (PATA), Enhanced-Small-Disk-Interface (ESDI), Integrated-Drive-Electronics-(IDE) usw.
-
Das Speichersystem 100 kann als Speicherkarte, Festkörperlaufwerk (SSD) usw. ausgebildet sein. Zum Beispiel kann das Speichersystem 100 eine Speicherkarte sein, wie eine MMC-Karte, eine sichere digitale Speicherkarte (SD-Karte), eine Mikro-SD-Karte, ein Speicherstick, eine ID-Karte, eine Personal-Computer-Memory-Cardinternational-Association(PCMCIA)-Karte, eine Chipkarte, eine USB-Karte, eine Smart-Karte (Smartcard), eine Campact-Flash(CF)-Karte usw.
-
In einigen Ausführungsformen kann das Speichersystem 100 mit dem Host 310 gekoppelt sein, wie mit einem Mobiltelefon, einem Smartphone, einem Personal-Digital-Assistant (PDA), das heißt einem persönlichen digitalen Assistenten, einem tragbaren Multimediaabspielgerät (PMP), einer Digitalkamera, einer tragbaren Spielekonsole, einem Musikabspielgerät, einem Personalcomputer (PC), einem Laptopcomputer, einem Camcorder, einem Videoabspielgerät, einem Digitalfernsehgerät usw.
-
In einigen Ausführungsformen kann das Speichersystem 100 und/oder Komponenten des Speichersystems 100 in verschiedenen Formen verpackt sein, wie Package-on-Package (PoP), Kugelgitteranordnung (Ball Grid Array, BGA), Chip-Scale-Package (CSP), Plastic-Leaded-Chip-Carrier (PLCC), Plastic-Dual-in-line-Package (PDIP), Diein-Waffle-Pack, Die-in-Wafer-Form, Chip-on-Board (COB), Ceramic-Dual-in-line-Package (CERDIP), Plastic-Metric-Quad-Flat-Pack (MQFP), Thin-Quad-Flat-Pack (TQFP), Small-Outline-IC (SOIC), Shrink-Small-Outline-Package (SSOP), Thin-Small-Outline-Package (TSOP), System-in-Package (SIP), Multi-Chip-Package (MCP), Wafer-Level-Fabricated-Package (WFP) oder Wafer-Level-Processed-Stack-Package (WSP).
-
12 zeigt ein Blockdiagramm, das ein Festkörperlaufwerk (SSD) mit einem Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 12 umfasst ein Festkörperlaufwerk 400 eine Steuereinheit 410, eine Mehrzahl von NAND-Flashspeichern 460-1, 460-2 und 460-n und eine Mehrzahl von Kanälen 450-1, 450-2 und 450-n. Die Steuereinheit 410 kann ein Steuergerät 421, eine Kompressionseinheit 422, eine ECC-Einheit 423, eine Speichersteuereinheit 424, einen Arbeitsspeicher 430 und eine NAND-Schnittstelleneinheit 440 umfassen.
-
Wenn das Festkörperlaufwerk 400 in einen Bereitschaftsmodus eintritt, kann die Steuereinheit 410 im Arbeitsspeicher 430 gespeicherte Metadaten durch die Mehrzahl von Kanälen 450-1, 450-2 und 450-n in die Mehrzahl von NAND-Flashspeichern 460-1, 460-2 und 460-n schreiben. Wenn das Festkörperlaufwerk 400 aus dem Bereitschaftsmodus aufgeweckt wird, kann die Steuereinheit 410 in einer Mehrzahl von Cache-Registern, die in der Mehrzahl von NAND-Flashspeichern 460-1, 460-2 und 460-n vorgesehen sind, gespeicherte Metadaten durch die Mehrzahl von Kanälen 450-1, 450-2 und 450-n empfangen und kann die empfangenen Metadaten im Arbeitsspeicher 430 speichern. Dementsprechend kann das Festkörperlaufwerk 400 den Energieverbrauch reduzieren und kann eine Modusumschaltung schnell durchführen.
-
In einigen Ausführungsformen kann die Steuereinheit 410 eine Energieversorgung für die Mehrzahl von NAND-Flashspeichern 460-1, 460-2 und 460-n durch eine Mehrzahl von Energiesteuerleitungen 480-1, 480-2 und 480-n steuern. Zum Beispiel kann die Steuereinheit 410 (z. B. eine SSD-Steuereinheit) durch die Mehrzahl von Energiesteuerleitungen 480-1, 480-2 und 480-n die Mehrzahl von NAND-Flashspeichern 460-1, 460-2 und 460-n so ansteuern, dass Energieschaltkreise außer für die Cache-Register im Bereitschaftsmodus abgeschaltet werden.
-
In einigen Ausführungsformen kann das Festkörperlaufwerk 400 weiter eine Hostschnittstelleneinheit 470 umfassen, die eine Schnittstelle zum Host 500 bildet, und kann mit dem Host 500 verbunden sein, wie mit einem Mobiltelefon, einem Smartphone, einem Personal-Digital-Assistant (PDA), das heißt einem persönlichen digitalen Assistenten, einem tragbaren Multimediaabspielgerät (PMP), einer Digitalkamera, einer tragbaren Spielekonsole, einem Musikabspielgerät, einem Personalcomputer (PC), einem Laptopcomputer, einem Camcorder, einein Videoabspielgerät, einem Digitalfernsehgerät usw.
-
Obwohl 12 ein Beispiel darstellt, in dem der Arbeitsspeicher 430 außerhalb eines Chips ausgebildet ist, in dem das Steuergerät 421 ausgebildet ist, können in einigen Ausführungsformen der Arbeitsspeicher 430 und das Steuergerät 421 im gleichen Chip ausgebildet sein. Obwohl 12 ein Beispiel darstellt, in dem die Steuereinheit 410 eine separate Speichersteuereinheit 424 beinhaltet, kann in einigen Ausführungsformen die Speichersteuereinheit 424 im Arbeitsspeicher 430 oder dem Steuergerät 421 integriert sein.
-
13 zeigt ein Blockdiagramm, das ein Mobilsystem mit einem Speichersystem nach mindestens einer beispielhaften Ausführungsform darstellt.
-
Mit Bezug zu 13 umfasst ein Mobilsystem 600 einen Prozessor 610, einen Speicher 620, eine. Benutzerschnittstelle 630, ein Modem 660 (z. B. Baseband-Chipset) und ein Speichersystem 640.
-
Der Prozessor 610 kann verschiedene Computerfunktionen durchführen, wie Ausführen spezifischer Software zum Durchführen spezifischer Berechnungen oder Aufgaben. Zum Beispiel kann der Prozessor 610 ein Mikroprozessor, eine Zentraleinheit (CPU), ein digitaler Signalprozessor oder dergleichen sein. Der Prozessor 610 kann über einen Bus 650, wie einen Adressenbus, einen Steuerbus und/oder einen Datenbus, mit dem Speicher 620 gekoppelt sein. Zum Beispiel kann der Speicher 620 als DRAM, mobiles DRAM, SRAM, PRAM, FRAM, RRAM und/oder MRAM ausgebildet sein. Der Prozessor 610 kann mit einem Erweiterungsbus, wie einem Peripheral-Component-Interconnect(PCI)-Bus, das heißt einem Bus zum Anschließen von Peripheriegeräten, gekoppelt sein. Dementsprechend kann der Prozessor 610 die Benutzerschnittstelle 630, die mindestens eine Eingabeeinrichtung, wie eine Tastatur, eine Maus usw. und mindestens eine Ausgabeeinrichtung, wie eine Anzeigeeinrichtung, einen Drucker usw. umfasst, steuern. Das Modem 660 kann drahtlos mit einem externen Gerät kommunizieren. Ein NAND-Flashspeicher 642 kann vom Prozessor 610 verarbeitete Daten oder über ein Modem 660 empfangene Daten speichern. Das Mobilsystem 600 kann weiter eine Energieversorgung, ein Anwendungs-Chipset, einen Kamerabildprozessor (CIS) usw. umfassen.
-
Wie oben beschrieben, kann der Energieverbrauch im Bereitschaftsmodus verringert werden und eine Modusumschaltung kann schnell durchgeführt werden, da Metadaten in einem Cache-Register des Flashspeichers 642 gespeichert werden, wenn das Speichersystem 640 in einen Bereitschaftsmodus eintritt.