-
Die Erfindung betrifft eine Flashdatenspeichervorrichtung nach dem Oberbegriff des Anspruchs 1, insbesondere eine Flashdatenspeichervorrichtung mit einem Flashspeicher vom NAND-Typ.
-
Es besteht ein steigender Bedarf an nichtflüchtigen Speicherbauelementen, welche elektronisch programmiert und gelöscht werden können und Daten unabhängig von einem Unterbrechen der Energieversorgung erhalten können. Insbesondere Flashspeicher vom NAND-Typ sind als Speicherbauelemente für Musik, Fotos usw. weit verbreitet, da diese in der Lage sind, eine große Datenmenge in einer gegebenen Chipgröße zu speichern.
-
Durch die steigenden Anforderungen von Computernutzern hinsichtlich schnellerem Systembetrieb hat sich der Standard für die Systembetriebsgeschwindigkeit bzw. die Systembetriebsfrequenz eines Computers auf einen 10 ns-Betriebszyklus erhöht. Standardmäßige Flashspeicher vom NAND-Typ weisen jedoch durch die Zykluszeit, welche zur Steuerung von Datenleitungen während Programmiervorgängen oder Lesevorgängen benötigt wird, Datenzugriffszyklen in der Größenordnung von 80 ns auf. Aus diesem Grund ist es für Datenspeichervorrichtungen mit solchen Flashspeichern vom NAND-Typ schwierig, Betriebsperiodendauern aufzuweisen, welche mit denen von externen Systemen korrespondieren.
-
Um diese Begrenzungen aufzuheben, wurden Techniken vorgeschlagen, welche Pufferspeicher in eine Flashdatenspeichervorrichtung einbetten. In einem solchen Fall speichert der Pufferspeicher Daten, welche zu einer Seite eines Flashspeichers gehören. Während Daten einer Seite des Pufferspeichers dem externen System zur Nutzung zur Verfügung gestellt werden, werden Daten einer anderen Seite vom Flashspeicher in den Pufferspeicher übertragen. Dieser Ansatz führt zu einer gewissen Verbesserung der Datenübertragungsgeschwindigkeit, d. h. einer Datenrate, zwischen dem externen System und der Flashdatenspeichervorrichtung.
-
Da die Datenrate zwischen dem Flashspeicher und dem Pufferspeicher immer noch relativ niedrig ist, erfüllen diese herkömmlichen Systeme nicht in jedem Fall die Benutzeranforderungen an die Datenübertragungsgeschwindigkeit, d. h. an die Datenrate, zwischen dem externen System und der Flashdatenspeichervorrichtung.
-
Die Offenlegungsschrift
US 2002/0013874 A1 und die Patentschriften
US 6.401.161 B1 und
US 6.295.246 B2 offenbaren verschiedene herkömmliche Datenspeichervorrichtungen und insbesondere Flashdatenspeichervorrichtungen mit Mitteln zum temporären Puffern von Daten, um Schwierigkeiten zu begegnen, die mit relativ langen Speicherzugriffszeiten einhergehen, wobei diese Mittel insbesondere entsprechende Puffer- oder Registereinheiten beinhalten.
-
Es ist Aufgabe der Erfindung, eine Flashdatenspeichervorrichtung anzugeben, welche eine vergleichsweise hohe Datenübertragungsrate zwischen einem externen System und einem Flashspeicher ermöglicht.
-
Die Erfindung löst diese Aufgabe durch eine Flashdatenspeichervorrichtung mit den Merkmalen des Patentanspruchs 1.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte Ausführungsformen der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend beschrieben. Es zeigen:
-
1 ein Blockdiagramm einer Flashdatenspeichervorrichtung,
-
2 ein Blockdiagramm einer funktionalen Konfiguration eines Flashspeichers aus 1,
-
3 ein detaillierteres Blockdiagramm einer Konfiguration einer Flashschnittstelle aus 1,
-
4 ein Blockdiagramm von ersten bis dritten Flasheingabepuffern eines Eingabepfads aus 3,
-
5 ein Zeitablaufdiagramm zur Darstellung eines Datenübertragungsvorgangs durch die ersten bis dritten Flasheingabepuffer gemäß 4,
-
6 ein detaillierteres Blockdiagramm eines Flashausgabepuffers und eines Multiplexers in einem Ausgabepfad aus 3,
-
7 ein Zeitablaufdiagramm zur Darstellung eines Datenübertragungsvorgangs durch den Flashausgabepuffer und den Multiplexer gemäß 6,
-
8 ein Blockdiagramm eines Steuertaktgenerators aus 3,
-
9 ein detaillierteres Schaltbild eines Periodenverkürzungsblocks aus 8,
-
10 ein detaillierteres Schaltbild eines Periodenverlängerungsblocks aus 8,
-
11 ein Zeitablaufdiagramm von Betriebssignalen, welche in den Schaltungen gemäß 8 bis 10 verwendet werden, zur Darstellung eines Vorgangs zur Erzeugung von ersten bis dritten Steuertaktsignalen,
-
12 ein detaillierteres Blockdiagramm eines Pufferspeichers aus 1 und
-
13 ein detaillierteres Blockdiagramm einer Hostschnittstelle aus 1.
-
1 zeigt im Blockdiagramm eine erfindungsgemäße Flashdatenspeichervorrichtung mit einem Flashspeicher 100 vom NAND-Typ, der in die Flashdatenspeichervorrichtung eingebettet ist, welche Daten mit einem externen System 10 austauscht. Der Datenaustauschvorgang zwischen der Flashdatenspeichervorrichtung und dem externen System 10 wird über eine Hostbusgruppe HDIO<15:0> in Reaktion auf ein Hosttaktsignal HCLK ausgeführt.
-
In dieser Ausführungsform ist die Hostbusgruppe HDJO<15:0> mit einer Busbreite von 16 Leitungen ausgeführt und mit einem Hosttakt HCLK mit einer Periodendauer von 10 ns assoziiert. Hierbei beschreibt der Ausdruck „Busbreite” die Anzahl von Busleitungen, welche in Reaktion auf einen bestimmten Taktimpuls des Taktsignals Daten parallel übertragen. Daher können alle 10 ns 16 Bit an Daten zwischen dem externen System 10 und einer Hostschnittstelle 400 ausgetauscht werden.
-
Der Flashspeicher 100 umfasst gemäß 2 ein Speicherzellenfeld 110 und einen Seitenpuffer 120. Das Speicherzellenfeld 110 besteht aus nicht dargestellten Flashspeicherzellen, welche in einer logischen Schleife vom NAND-Typ angeordnet sind, in der eine Mehrzahl von Flashspeicherzellen zu einer einzigen gemeinsamen Kette verbunden ist. Eine Mehrzahl von Datenbits wird in Reaktion auf ein Taktsignal parallel über den Seitenpuffer 120 in das Speicherzellenfeld 110 eingegeben bzw. vom Speicherzellenfeld 110 ausgegeben.
-
in dieser Ausführungsform ist der Flashspeicher 100 so ausgeführt, dass er 128 Bit an Daten parallel über Flashbusgruppen FDI<127:0> und FDO<127:0> in Synchronisation mit einem Flashtaktsignal FCLK empfängt bzw. ausgibt. Das Flashtaktsignal FCLK wird mit einer Periode von 80 ns betrieben. Eingabedaten werden über die Flashbusgruppe FDI<127:0> übertragen, während Ausgabedaten über die Flashbusgruppe FDO<127:0> übertragen werden. Zur Vereinfachung der Beschreibung werden vorliegend die Flashbusgruppe FDI<127:0> zur Eingabe und die Flashbusgruppe FDO<127:0> zur Ausgabe allgemein als Flashbusgruppe bezeichnet. Die Busbreite FW der Flashbusgruppe FDI<127:0> bzw. FDO<127:0> beträgt 128 Bit.
-
Die Busbreite der Flashbusgruppe FDI<127:0> bzw. FDO<127:0> ist größer als die Busbreite der Hostbusgruppe HDIO und eine Periodendauer des Flashtaktsignals FCLK ist länger als die Periodendauer des Hosttaktsignals HCLK.
-
Das Speicherzellenfeld 110 und der Seitenpuffer 120 können in verschiedenen Konfigurationen implementiert werden und die zugehörigen Eingabe-/Ausgabevorgänge sind allgemein bekannt, so dass hier auf eine detaillierte Beschreibung der zugehörigen Strukturen und Funktionsweisen verzichtet werden kann.
-
Wie weiter aus 1 ersichtlich ist, umfasst die Flashdatenspeichervorrichtung außer dem Flashspeicher 100 und der Hostschnittstelle 400 eine Flashschnittstelle 200 und einen Pufferspeicher 300.
-
Die Flashschnittstelle 200 wird zum Datenaustausch zwischen der Flashbusgruppe FDI<127:0> bzw. FDO<127:0> und dem Pufferspeicher 300 in Reaktion auf das Flashtaktsignal FCLK verwendet. Die Flashschnittstelle 200 führt über die Flashbusgruppe FDI<127:0> bzw. FDO<127:0>, welche jeweils eine Busbreite von 128 Bit aufweisen, einen Datenaustausch mit dem Flashspeicher 100 aus. Zudem überträgt die Flashschnittstelle 200 über eine Flash-Pufferbusgruppe FBDO<31:0> Daten zum Pufferspeicher 300 und empfängt über eine Puffer-Flashbusgruppe BFDI<31:0> Daten vom Pufferspeicher 300. Die Busbreite der Puffer-Flashbusgruppe BFDI<31:0> und der Flash-Pufferbusgruppe FBDO<31:0> beträgt jeweils 32 Bit.
-
Der Pufferspeicher 300 speichert temporär Daten, welche zwischen der Flashschnittstelle 200 und der Hostschnittstelle 400 ausgetauscht werden, und tauscht, wie oben bereits erwähnt, über die Flash-Pufferbusgruppe FBDO<31:0> und die Puffer-Flashbusgruppe BFDI<31:0> Daten mit der Flashschnittstelle 200 aus.
-
Der Pufferspeicher 300 empfängt außerdem über eine Host-Pufferbusgruppe HBDI<15:0> Daten von der Hostschnittstelle 400 und überträgt über eine erste und eine zweite Puffer-Hostbusgruppe BHDOM<15:0> und BHDOL<15:0> Daten zur Hostschnittstelle 400. Die Hostschnittstelle 400 steuert die Datenübertragung zwischen der Hostbusgruppe HDIO<15:0> und dem Pufferspeicher 300.
-
3 zeigt ein detaillierteres Blockdiagramm einer vorteilhaften Konfiguration der Flashschnittstelle 200 aus 1. Die Flashschnittstelle 200 umfasst in diesem Beispiel erste bis n-te Flasheingabepuffer 210, 220, 230, ..., welche in einem Eingabepfad IN200 angeordnet sind, über den Daten vom Pufferspeicher 300 zum Flashspeicher 100 übertragen werden, wobei die Puffer 210, 220, 230, ... einen Datenübertragungsvorgang vom Pufferspeicher 300 zum Flashspeicher 100 in Stufen ausführen. Hierbei ist n eine positive ganze Zahl größer als 2. Zur Vereinfachung der Beschreibung ist das Ausführungsbeispiel der Flashschnittstelle 200 mit einem ersten, zweiten und dritten Flasheingabepuffer 210, 220 und 230 ausgeführt.
-
Zudem umfasst die Flashschnittstelle 200 einen Flashausgabepuffer 260 und einen Flashausgabemultipiexer 270, die in einem Ausgabepfad OUT200 angeordnet sind, über den Daten vom Flashspeicher 100 zum Pufferspeicher 300 übertragen werden. Weiter umfasst die Flashschnittstelle 200 einen Steuertaktgenerator 280. Übertragungssteuertaktsignale RCLK1 bis RCLKn werden vom Steuertaktgenerator 280 an die Flasheingabepuffer 210, 220 und 230, den Flashausgabepuffer 260 und den Flashausgabemultipiexer 270 angelegt.
-
4 zeigt ein detaillierteres Blockdiagramm einer vorteilhaften Realisierung der ersten bis dritten Flasheingabepuffer 210, 220 und 230, die im Eingabepfad IN200 aus 3 enthalten sind. Wie aus 4 ersichtlich ist, umfasst der erste Flasheingabepuffer 210 vier erste Datenzwischenspeicher 211 bis 214 und einen ersten Zwischenspeicherauswahlzähler 219. Die ersten Datenzwischenspeicher 211 bis 214 stellen in Reaktion auf vier sequentielle Taktimpulse des ersten Übertragungssteuertaktsignals RCLK1 Daten für je eine erste Eingabe-Pufferbusgruppe RDIN1<31:0>, RDIN1<63:32>, RDIN1<95:64> bzw. RDIN1<127:96> zur Verfügung. Der erste Zwischenspeicherauswahlzähler 219 erzeugt vier erste Zwischenspeicherzählsignale RCNA0 bis RCNA3 und zählt die Anzahl von Taktimpulsen des ersten Übertragungssteuertaktsignals RCLK1. Die ersten Zwischenspeicherzählsignale RCNA0 bis RCNA3 steuern die entsprechenden Datenübertragungsvorgänge zu den ersten Datenzwischenspeichern 211 bis 214.
-
Der zweite Flasheingabepuffer 220 umfasst zwei zweite Datenzwischenspeicher 221 und 222 und einen zweiten Zwischenspeicherauswahlzähler 229. Die zweiten Datenzwischenspeicher 221 und 222 stellen in Reaktion auf zwei sequentielle Taktimpulse des zweiten Übertragungssteuertaktsignals RCLK2 Daten für je eine zweite Eingabe-Pufferbusgruppe RDIN2<63:0> bzw. RDIN2<127:64> zur Verfügung. Der zweite Zwischenspeicherauswahlzähler 229 erzeugt zwei zweite Zwischenspeicherzählsignale RCNB0 und RCNB1 und zählt die Anzahl von Taktimpulsen des zweiten Übertragungssteuertaktsignals RCLK2. Die zweiten Zwischenspeicherzählsignale RCNB0 und RCNB1 steuern die entsprechenden Datenübertragungsvorgänge zu den zweiten Datenzwischenspeichern 221 und 222.
-
Der dritte Flasheingabepuffer 230 umfasst einen dritten Datenzwischenspeicher 231. Der dritte Datenzwischenspeicher 231 stellt zu jedem Impuls des dritten Übertragungssteuertaktsignals RCLK3 Daten für eine dritte Eingabe-Pufferbusgruppe RDIN3<127:0> zur Verfügung.
-
Im gezeigten Beispiel sind die Taktsignalperioden der ersten bis dritten Übertragungssteuertaktsignale RCLK1 bis RCLK3 gleich 20 ns, 40 ns bzw. 80 ns. Zudem sind die Busbreiten IBW1 bis IBW3 der ersten bis dritten Eingabe-Pufferbusgruppen RDIN1 bis RDIN3 gleich 32 Bit, 64 Bit bzw. 128 Bit.
-
Verallgemeinert umfasst eine erfindungsgemäße Ausführungsform einen i-ten Flasheingabepuffer mit 2 ≤ i ≤ n, wobei der i-te Flasheingabepuffer wenigstens über eine Anzahl Ni von Eingabe-Pufferbusgruppen RDINi Daten zur Verfügung stellt. Eine Busbreite IBWi der i-ten Eingabe-Pufferbusgruppe RDINi ist größer als eine Busbreite IBW(i–1) der (i-1)-ten Eingabe-Pufferbusgruppe RDIN(i–1), welche vom (i–1)-ten Flasheingabepuffer abführt. Die Taktperiode Ti des i-ten Übertragungssteuertaktsignals RCLKi ist länger als die Taktperiode T(i–1) des (i–1)-ten Übertragungssteuertaktsignals RCLK(i–1). Zudem kann die Anzahl Ni der i-ten Eingabe-Pufferbusgruppen durch eine Division der Busbreite FW der Flashbusgruppe FDI<127:0> durch die Busbreite IBWi der i-ten Eingabe-Pufferbusgruppe RDINi ermittelt werden, d. h. Ni = FW/IBWi.
-
Vorzugsweise ist die Busbreite IBWi der i-ten Eingabe-Pufferbusgruppe RDINi doppelt so groß wie die Busbreite IBW(i–1) der (i–1)-ten Eingabe-Pufferbusgruppe RDIN(i–1). Die Taktperiode Ti des i-ten Übertragungssteuertaktsignals RCLKi wird vorzugsweise ebenfalls auf den doppelten Wert der Taktperiode T(i–1) des (1–1)-ten Übertragungssteuertaktsignals RCLK(i–1) eingestellt.
-
Hierbei korrespondiert die n-te Eingabe-Pufferbusgruppe RDINn mit der Flashbusgruppe FDI<127:0> und das n-te Übertragungssteuertaktsignal RCLKn korrespondiert mit dem Flashtaktsignal FCLK. Im gezeigten Ausführungsbeispiel korrespondiert die dritte Eingabe-Pufferbusgruppe RDIN3 mit der Flashbusgruppe FDI<127:0> und das dritte Übertragungssteuertaktsignal RCLK3 korrespondiert mit dem Flashtaktsignal FCLK.
-
5 zeigt ein Zeitablaufdiagramm zur Darstellung eines Datenübertragungsvorgangs durch die ersten bis dritten Flasheingabepuffer 210, 220 und 230 gemäß 4. Zuerst entspricht, unter Betrachtung der ersten bis dritten Übertragungssteuertaktsignale RCLK1 bis RCLK3 aus 5, die Taktperiode des ersten Übertragungssteuertaktsignals RCLK1 der halben Taktperiode des zweiten Übertragungssteuertaktsignals RCLK2, während die Taktperiode des dritten Übertragungssteuertaktsignals RCLK3 doppelt so groß wie die Taktperiode des zweiten Übertragungssteuertaktsignals RCLK2 ist. In anderen Worten ausgedrückt sind die Taktperioden des ersten und dritten Übertragungssteuertaktsignals RCLK1, RCLK3 gleich 20 ns bzw. 80 ns, wenn die Taktperiode des zweiten Übertragungssteuertaktsignals RCLK2 gleich 40 ns ist.
-
Zudem steigt oder fällt das zweite Übertragungssteuertaktsignal RCLK2 in Reaktion auf eine abfallende Flanke des ersten Übertragungssteuertaktsignals RCLK1. Zusätzlich steigt oder fällt das dritte Übertragungssteuertaktsignal RCLK3 in Reaktion auf eine abfallende Flanke des zweiten Übertragungssteuertaktsignals RCLK2.
-
Wie aus 5 ersichtlich ist, werden die ersten bis dritten Übertragungssteuertaktsignale RCLK1 bis RCLK3 vom Steuertaktgenerator 280 aus 3 zur Verfügung gestellt, der nachfolgend unter Bezugnahme auf 8 bis 11 detaillierter beschrieben wird.
-
Wie weiter aus 5 ersichtlich ist, erzeugt der erste Zwischenspeicherauswahlzähler 219 aus 4 die vier ersten Zwischenspeicherzählsignale RCNA0 bis RCNA3 durch Zählen der Anzahl von Taktimpulsen des ersten Übertragungssteuertaktsignals RCLK1. In anderen Worten ausgedrückt, die ersten Zwischenspeicherzählsignale RCNA0 bis RCNA3 werden jeweils in Reaktion auf vier sequentielle Taktimpulse des ersten Übertragungssteuertaktsignals RCLK1 aktiviert. Auf diese Weise wird jedes der ersten Zwischenspeicherzählsignale nach jeweils vier Taktperioden des ersten Übertragungssteuertaktsignals RCLK1 aktiviert. Im Detail wird das erste Zwischenspeicherzählsignal RCNA0, welches den ersten Datenzwischenspeicher 211 im oberen Teil der 4 steuert, in Reaktion auf den Taktimpuls 0 und den Taktimpuls 4 des ersten Übertragungssteuertaktsignals RCLK1 aktiviert und in Reaktion auf den Taktimpuls 1 und den Taktimpuls 5 des ersten Übertragungssteuertaktsignals RCLK1 deaktiviert. Der erste Datenzwischenspeicher 211 hält Daten, welche in Reaktion auf eine ansteigende Flanke von jedem Taktimpuls des ersten Übertragungssteuertaktsignals RCLK1 vom Pufferspeicher 300 übertragen werden. Korrespondierend werden die im ersten Datenzwischenspeicher 211 gehaltenen Daten in Reaktion auf eine abfallende Flanke des ersten Zwischenspeicherzählsignals RCNA0 zur ersten Eingabe-Pufferbusgruppe RDIN1<31:0> übertragen. Dann überträgt die erste Eingabe-Pufferbusgruppe RDIN1<31:0> die zwischengespeicherten Daten in Reaktion auf den Taktimpuls 1 und den Taktimpuls 5 des ersten Übertragungssteuertaktsignals RCLK1 zum zweiten Datenzwischenspeicher 221.
-
Auf die gleiche Weise überträgt die erste Eingabe-Pufferbusgruppe RDIN1<63:32> in Reaktion auf den Taktimpuls 2 und den Taktimpuls 6 des ersten Übertragungssteuertaktsignals RCLK1 Daten vom ersten Datenzwischenspeicher 212 zum zweiten Datenzwischenspeicher 221. Die erste Eingabe-Pufferbusgruppe RDIN1<95:64> überträgt in Reaktion auf den Taktimpuls 3 und den Taktimpuls 7 des ersten Übertragungssteuertaktsignals RCLK1 Daten vom ersten Datenzwischenspeicher 213 zum zweiten Datenzwischenspeicher 222. Zudem überträgt die erste Eingabe-Pufferbusgruppe RDIN1<127:96> in Reaktion auf den Taktimpuls 4 und den Taktimpuls 8 des ersten Übertragungssteuertaktsignals RCLK1 Daten vom ersten Datenzwischenspeicher 214 zum zweiten Datenzwischenspeicher 222.
-
Daraus resultiert, dass die ersten Eingabe-Pufferbusgruppen RDIN1<31:0>, RDIN1<63:32>, RDIN1<95:64> und RDIN1<127:96> in einer Zeitspanne von 80 ns (4·20 ns) alle 128 Datenbits vom Pufferspeicher 300 zu den zweiten Datenzwischenspeichern 221 und 222 übertragen.
-
Wie weiter aus 5 ersichtlich ist, erzeugt der zweite Zwischenspeicherauswahlzähler 229 aus 4 die zwei zweiten Zwischenspeicherzählsignale RCNB0 und RCNB1 durch Zählen der Anzahl von Taktimpulsen des zweiten Übertragungssteuertaktsignals RCLK2. In anderen Worten ausgedrückt, die zweiten Zwischenspeicherzählsignale RCNB0 und RCNB1 werden jeweils in Reaktion auf zwei sequentielle Taktimpulse des zweiten Übertragungssteuertaktsignals RCLK2 aktiviert. Das bedeutet, dass jedes der zweiten Zwischenspeicherzählsignale nach Ablauf von zwei Taktzyklen des zweiten Übertragungssteuertaktsignals RCLK2 aktiviert wird. Im Detail wird das zweite Zwischenspeicherzählsignal RCNB0, welches den zweiten Datenzwischenspeicher 221 steuert, in Reaktion auf den Taktimpuls 1 und den Taktimpuls 3 des zweiten Übertragungssteuertaktsignals RCLK2 aktiviert und in Reaktion auf den Taktimpuls 2 und den Taktimpuls 4 des zweiten Übertragungssteuertaktsignals RCLK2 deaktiviert. Der zweite Datenzwischenspeicher 221 halt Daten, welche in Reaktion auf eine abfallende Flanke von jedem Taktimpuls des zweiten Übertragungssteuertaktsignals RCLK2 vom Pufferspeicher 300 übertragen werden. Korrespondierend werden die im zweiten Datenzwischenspeicher 221 gehaltenen Daten in Reaktion auf eine abfallende Flanke des zweiten Zwischenspeicherzählsignals RCNB0 zur zweiten Eingabe-Pufferbusgruppe RDIN2<63:0> übertragen. Dann überträgt die zweite Eingabe-Pufferbusgruppe RDIN2<63:0> die zwischengespeicherten Daten in Reaktion auf den Taktimpuls 2 und den Taktimpuls 4 des zweiten Übertragungssteuertaktsignals RCLK2 zum dritten Datenzwischenspeicher 231. In diesem Ausführungsbeispiel wird der Betrieb des zweiten Datenzwischenspeichers 221 in Reaktion auf eine abfallende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 gesteuert, wodurch ein Datenübertragungsfehler sogar dann vermieden wird, wenn ein Versatz zwischen dem ersten und zweiten Übertragungssteuersignal RCLK1 und RCLK2 auftritt.
-
Die zweite Eingabe-Pufferbusgruppe RD1N2<127:64> überträgt in Reaktion auf den Taktimpuls 3 und den Taktimpuls 5 des zweiten Übertragungssteuertaktsignals RCLK2 Daten vom zweiten Datenzwischenspeicher 222 zum dritten Datenzwischenspeicher 231.
-
Daraus resultiert, dass die zweiten Eingabe-Pufferbusgruppen RDIN2<63:0> und RDIN2<127:64> in einer Zeitspanne von 80 ns (4·20 ns) alle 128 Datenbits von den ersten Datenzwischenspeichern 211 bis 214 zum dritten Datenzwischenspeicher 231 übertragen.
-
Wie weiter aus 5 ersichtlich ist, überträgt der dritte Datenzwischenspeicher 231 seine zwischengespeicherten Daten in Reaktion auf eine abfallende Flanke eines jeden Impulses des dritten Übertragungstaktsignals RCLK3 zur dritten Eingabe-Pufferbusgruppe RDIN3<127:0>. Daraus resultiert, dass die dritte Eingabe-Pufferbusgruppe RDIN1<127:0> in einer Zeitspanne von 80 ns, welche der Taktperiode des dritten Übertragungssteuertaktsignals RCLK3, d. h. des Flashtaktsignals FCLK, entspricht, alle 128 Datenbits von den zweiten Datenzwischenspeichern 221 und 222 zum Flashspeicher 100 überträgt.
-
Zusammenfassend werden über die Flashschnittstelle 200, welche die ersten bis dritten Flasheingabepuffer 210, 220 und 230 umfasst, alle 80 ns Daten in Gruppen von 128 Bit vom Pufferspeicher 300, welcher alle 20 ns der Flashschnittstelle 200 Daten in Gruppen von 32 Bit zur Verfügung stellt, zum Flashspeicher 100 übertragen.
-
6 zeigt ein detaillierteres Blockdiagramm des Flashausgabepuffers 260 und des Flashausgabemultiplexers 270, welche im Ausgabepfad OUT200 aus 3 angeordnet sind. 7 zeigt ein Zeitablaufdiagramm zur Darstellung eines Datenübertragungsvorgangs durch den Flashausgabepuffer 260 und den Multiplexer 270 gemäß 6.
-
Unter Bezugnahme auf die 6 und 7 umfasst der Flashausgabepuffer 260 einen Ausgabepuffer 261, der in Reaktion auf das Flashtaktsignal FCLK, welches dem dritten Übertragungssteuertaktsignal RCLK3 entspricht, Daten vom Flashspeicher 100 über die Flashbusgruppe FDO<127:0> zu Ausgabe-Pufferbusgruppen RDO<31:0>, RDO<63:32>, RDO<95:64> und RDO<127:96> überträgt. In anderen Worten ausgedrückt, der Ausgabepuffer 261 sendet 128-Bit-Daten über die Ausgabe-Pufferbusgruppen RDO<31:0>, RDO<63:32>, RDO<95:64> und RDO<127:96> vom Flashspeicher 100 zum Flashausgabemultiplexer 270.
-
Der Flashausgabemultiplexer 270 umfasst einen Ausgabemultiplexer 271 und einen Multiplexerzähler 273. Der Multiplexerzähler 273 zählt Taktimpulse des ersten Übertragungssteuertaktsignals RCLK1 und erzeugt dann vier Multiplexerzählersignale MCN0 bis MCN3. In anderen Worten ausgedrückt, die Multiplexerzählersignale MCN0 bis MCN3 werden in Reaktion auf vier sequentielle Taktimpulse des ersten Übertragungssteuertaktsignals RCLK1 erzeugt. Auf diese Weise wird jedes der Multiplexerzählersignale jeweils nach vier Taktperioden des ersten Übertragungssteuertaktsignals RCLK1 aktiviert. Die Multiplexerzählersignale MCN0 bis MCN3 werden beispielsweise in Reaktion auf den Taktimpuls 1 und den Taktimpuls 5 des ersten Übertragungssteuertaktsignals RCLK1 aktiviert und in Reaktion auf den Taktimpuls 2 und den Taktsignalimpuls 6 des ersten Übertragungssteuertaktsignals RCLK1 deaktiviert.
-
Der Ausgabemultiplexer 271 reagiert auf jeden vierten Taktimpuls des ersten Übertragungssteuertaktsignals RCLK1, um eine der Ausgabe-Pufferbusgruppen in der Reihenfolge RDO<31:0>, RDO<63:32>, RDO<95:64> und RDO<127:96> auszuwählen. Zusätzlich wird der Ausgabemultiplexer 271 so betrieben, dass er selektiv Daten der Ausgabe-Pufferbusgruppen RDO<31:0>, RDO<63:32>, RDO<95:64> und RDO<127:96> für das externe System 10 über den Pufferspeicher 300 zur Verfügung stellt.
-
Im Detail überträgt der Ausgabemultiplexer 271 in Reaktion auf eine abfallende Flanke des Multiplexerzählersignals MCN0 Daten von der Ausgabe-Pufferbusgruppe RDO<31:0> zur Flash-Pufferbusgruppe FBDO<31:0>. Das bedeutet, wie aus 7 ersichtlich ist, dass der Ausgabemultiplexer 271 in Reaktion auf den Taktimpuls 2 und den Taktimpuls 6 des ersten Übertragungssteuertaktsignals RCLK1 Daten von der Ausgabe-Pufferbusgruppe RDO<31:0> zur Flash-Pufferbusgruppe FBDO<31:0> überträgt.
-
Analog überträgt der Ausgabemultiplexer 271 in Reaktion auf den Taktimpuls 3 und den Taktimpuls 7 des ersten Übertragungssteuertaktsignals RCLK1 Daten von der Ausgabe-Pufferbusgruppe RDO<63:32> zur Flash-Pufferbusgruppe FBDO<31:0>. Der Ausgabemultiplexer 271 überträgt in Reaktion auf den Taktimpuls 4 und den Taktimpuls 8 des ersten Übertragungssteuertaktsignals RCLK1 Daten von der Ausgabe-Pufferbusgruppe RDO<95:64> zur Flash-Pufferbusgruppe FBDO<31:0>. Zudem überträgt der Ausgabemultiplexer 271 in Reaktion auf den Taktimpuls 5 und den Taktimpuls 9 des ersten Übertragungssteuertaktsignals RCLK1 Daten von der Ausgabe-Pufferbusgruppe RDO<127:96> zur Flash-Pufferbusgruppe FBDO<31:0>.
-
Daraus resultiert, dass der Ausgabemultiplexer 271 während einer Zeitspanne von 80 ns (4·20 ns) Daten sequentiell von den vier Ausgabe-Pufferbusgruppen RDO<31:0>, RDO<63:32>, RDO<95:64> und RDO<127:96> zur Flash-Pufferbusgruppe FBDO<31:0> überträgt.
-
8 zeigt im Blockdiagramm eine mögliche Realisierung des Steuertaktsignalgenerators 280 aus 3. Die ersten bis n-ten Übertragungssteuertaktsignale RCLK1 bis RCLKn werden, wie oben ausgeführt, vom Steuertaktgenerator 280 erzeugt. Wie aus 8 ersichtlich ist, umfasst der Steuertaktsignalgenerator 280 in diesem Beispiel einen Referenztaktgenerator 281 und einen Periodenmodulator 282. Der Referenztaktgenerator 281 erzeugt das j-te Übertragungssteuertaktsignal. Vorzugsweise ist j = (n + 1)/2, wenn n eine ungerade Zahl ist, und j = n/2, wenn n ein gerade Zahl ist. Im hier beschriebenen Ausführungsbeispiel ist j gleich 2, so dass der Referenztaktgenerator 281 das zweite Übertragungssteuertaktsignal RCLK2 erzeugt. Der Referenztaktgenerator 281 kann beispielsweise als Ringoszillator implementiert werden. Da die Struktur und die Funktionsweise eines solchen Taktgenerators allgemein bekannt sind, kann hier auf eine detaillierte Beschreibung des Referenztaktgenerators 281 verzichtet werden.
-
Der Periodenmodulator 282 verändert die Periode des zweiten Übertragungssteuertaktsignals RCLK2 und stellt die modulierte Periode für das erste und dritte Übertragungssteuertaktsignal RCLK1 und RCLK3 zur Verfügung. Der Periodenmodulator 282 umfasst einen Periodenverkürzungsblock 283, um das erste Übertragungssteuertaktsignal RCLK1 zu erzeugen, und einen Periodenverlängerungsblock 285, um das dritte Übertragungssteuertaktsignal RCLK3 zu erzeugen.
-
9 zeigt ein detaillierteres Schaltbild eines Ausführungsbeispiels des Periodenverkürzungsblocks 283 aus 8. Wie aus 9 ersichtlich ist, umfasst der Periodenverkürzungsblock 283 in diesem Beispiel einen Flankendetektor 283a, der eine ansteigende Flanke detektiert, einen Flankendetektor 283b, der eine abfallende Flanke detektiert, und eine ODER-Schaltung 283c.
-
Der Flankendetektor 283a erzeugt ein Pulssignal, wenn eine ansteigende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 detektiert wird. In anderen Worten ausgedrückt, eine ansteigende Flanke des Ausgabesignals PREA des Flankendetektors 283a wird nach einer vorgegebenen Verzögerungszeit in Reaktion auf eine ansteigende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 erzeugt, wie anhand eines Übergangs tA1 in 11 ersichtlich ist. Andererseits wird eine abfallende Flanke des Ausgabesignals PREA des Flankendetektors 283a in Reaktion auf eine abfallende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 ohne Verzögerung erzeugt, wie aus einem Übergang tA2 in 11 ersichtlich ist.
-
Der Flankendetektor 283b erzeugt ein Pulssignal, wenn eine abfallende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 detektiert wird. in anderen Worten ausgedrückt, eine ansteigende Flanke des Ausgabesignals PREB des Flankendetektors 283b wird nach einer vorgegebenen Verzögerungszeit in Reaktion auf eine abfallende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 erzeugt, wie aus einem Übergang tB1 in 11 ersichtlich ist. Andererseits wird eine abfallende Flanke des Ausgabesignals PREB des Flankendetektors 283b in Reaktion auf eine ansteigende Flanke des zweiten Übertragungssteuertaktsignals RCLK2 ohne Verzögerung erzeugt, wie aus einem Übergang tB2 in 11 ersichtlich ist.
-
Die ODER-Schaltung 283c führt eine logische Summierung der Ausgabesignale PREA und PREB der Flankendetektoren 283a und 283b durch und erzeugt die logische Summe als erstes Übertragungssteuertaktsignal RCLK1. Daher weist das erste Übertragungssteuertaktsignal RCLK1 die halbe Periodendauer des zweiten Übertragungssteuertaktsignals RCLK2 auf. Das erste Übertragungssteuertaktsignal RCLK1 aus 11 entspricht dem ersten Übertragungssteuertaktsignal RCLK1 aus den 5 und 7.
-
10 zeigt im Schaltbild ein Ausführungsbeispiel des Periodenverlängerungsblocks 285 aus 8. Der Periodenverlängerungsblock 285 umfasst ein D-Flip-Flop 285a, welches an einem Taktsignaleingabeanschluss CK das invertierte zweite Übertragungssteuertaktsignal RCLK2 empfängt und das dritte Übertragungssteuertaktsignal RCLK3 an einem Ausgabeanschluss DQ erzeugt. Das D-Flip-Flop 285a empfängt eine Dateneingabe D1, die dem Inversen des dritten Übertragungssteuertaktsignals RCLK3 entspricht.
-
Daher wiederholt das dritte Übertragungssteuertaktsignal RCLK3 in Reaktion auf abfallende Flanken des zweiten Übertragungssteuertaktsignals RCLK2 logische Übergänge, wie aus 11 ersichtlich ist. Folglich ist die Periodendauer des dritten Übertragungssteuertaktsignals RCLK3 doppelt so lang wie die Periodendauer des zweiten Übertragungssteuertaktsignals RCLK2. Das dritte Übertragungssteuertaktsignal RCLK3 aus 11 entspricht dem dritten Übertragungssteuertaktsignal RCLK3 aus den 5 und 7.
-
12 zeigt ein detaillierteres Blockdiagramm eines Ausführungsbeispiels des Pufferspeichers 300 aus 1. Wie aus 12 ersichtlich ist, umfasst der Pufferspeicher 300 in diesem Beispiel eine erste und zweite Temporärspeichereinheit 310 und 320 und einen Puffermultiplexer 330.
-
Die erste und zweite Temporärspeichereinheit 310 und 320 stellen Daten für die Hostschnittstelle 400 und die Flashschnittstelle 200 parallel zur Verfügung, welche mit der Busbreite der Hostbusgruppe HDIO<15:0> konsistent sind, d. h. 16 Bit. In einem Ausführungsbeispiel umfassen die erste und zweite Temporärspeichereinheit 310 und 320 jeweils eine SRAM-Einheit, die in der Lage sind, die Daten mit einer Breite zu speichern, welche mit der Busbreite der Hostbusgruppe HDIO<15:0> konsistent sind.
-
Der Puffermultiplexer 330 stellt selektiv Daten der Hostbusgruppe HDIO<15:0>, welche von der Hostschnittstelle 400 zur Verfügung gestellt werden, entweder der ersten oder der zweiten Temporärspeichereinheit 310 und 320 zur Verfügung. Zusätzlich stellt der Puffermultiplexer 330 Daten von der ersten und zweiten Temporärspeichereinheit 310 und 320 entweder der Hostschnittstelle 400 oder der Flashschnittstelle 200 zur Verfügung.
-
Nachfolgend wird die Funktionsweise des Puffermultiplexers 330 im Detail beschrieben. Der Puffermultiplexer 330 empfängt über die Hostbusgruppe HDIO<15:0> Daten von der Hostschnittstelle 400. Die an die Hostschnittstelle 400 angelegten Daten werden mittels eines ersten und zweiten Speicherfreigabesignals CSL und CSM selektiv der ersten oder zweiten Temporärspeichereinheit 310 und 320 zur Verfügung gestellt. In anderen Worten ausgedrückt, wenn das erste Speicherfreigabesignal CSL aktiv ist, werden die Daten der Hostschnittstelle 400 über eine erste SRAM-Speicherbusgruppe SDIL<15:0> zur ersten Temporärspeichereinheit 310 übertragen. Wenn das zweite Speicherfreigabesignal CSM aktiv ist, werden die Daten der Hostschnittstelle 400 über eine zweite SRAM-Speicherbusgruppe SDIM<15:0> zur zweiten Temporärspeichereinheit 320 übertragen.
-
Die Daten der Flash-Pufferbusgruppe FDBO<31:0>, welche von der Flashschnittstelle 200 zur Verfügung gestellt werden, werden als zwei Teile, die jeweils 16 Bits umfassen, in der ersten und zweiten Temporärspeichereinheit 310 und 320 gespeichert.
-
Zudem empfängt der Puffermultiplexer 330 über eine erste und eine zweite SRAM-Ausgabebusgruppe SDOL<15:0> und SDOM<15:0> Daten von der ersten und zweiten Temporärspeichereinheit 310 und 320. Die Daten der ersten und zweiten Temporärspeichereinheit 310 und 320 werden während eines Dateneingabevorgangs der Puffer-Flashbusgruppe BFDI<31:0> zur Verfügung gestellt und während eines Datenausgabevorgangs den Puffer-Hostbusgruppen BHDOM<15:0> und BHDOL<15:0> zur Verfügung gestellt.
-
Daher ist der Pufferspeicher 300 in der Lage, 32-Bit-Daten parallel mit der Flashschnittstelle 200 auszutauschen. Zudem empfängt der Pufferspeicher 300 16-Bit-Daten von der Hostschnittstelle 400 parallel und überträgt 32-Bit-Daten parallel zur Hostschnittstelle 400.
-
13 zeigt ein detaillierteres Blockdiagramm eines Ausführungsbeispiels der Hostschnittstelle 400 aus 1. Wie aus 13 ersichtlich ist, umfasst die Hostschnittstelle 400 in diesem Beispiel einen Chipauswahlmultiplexer 410, einen Hostausgabemultiplexer 420 und einen Hosteingabe-/Hostausgabepuffer 430.
-
Der Chipauswahlmultiplexer 410 erzeugt das erste und zweite Speicherfreigabesignal CSL und CSM durch Demultiplexen eines Chipfreigabesignals CS, welches vom externen System 10 zur Verfügung gestellt wird, in Reaktion auf eine vorgegebene Auswahladresse ADD0. Das erste und zweite Speicherfreigabesignal CSL und CSM werden an den Puffermultiplexer 330 angelegt und steuern die Auswahl der ersten bzw. zweiten Temporärspeichereinheit 310, 320.
-
Der Hostausgabemultiplexer 420 wählt in Reaktion auf die Auswahladresse ADD0 eine der Datengruppen aus, welche von der ersten und zweiten Temporärspeichereinheit 310 und 320 zur Verfügung gestellt werden. Die durch den Hostausgabemultiplexer 420 ausgewählte Datengruppe wird über eine gemeinsame Ausgabebusgruppe BDO<15:0> zum externen System 10 übertragen.
-
Der Hosteingabe-/Hostausgabepuffer 430 puffert Daten, welche vom externen System 10 über die Hostbusgruppe HDIO<15:0> zur Verfügung gestellt werden, und stellt die gepufferten Daten dann dem Pufferspeicher 300 zur Verfügung. Zudem puffert der Hosteingabe-/Hostausgabepuffer 430 Daten vom Pufferspeicher 300, welche über die gemeinsame Ausgabebusgruppe BDO<15:0> zur Verfügung gestellt werden, und stellt die gepufferten Daten über die Hostbusgruppe HDIO<15:0> dann dem externen System 10 zur Verfügung.
-
Durch die oben beschriebene Hostschnittstelle 400 können die n-Bit-Daten, z. B. 16-Bit-Daten, des externen Systems 10 parallel mit der Datenspeichervorrichtung ausgetauscht werden, d. h. gesendet und/oder empfangen werden.
-
Ausführungsformen der Erfindung führen Datenaustauschvorgänge zwischen dem Flashspeicher und dem externen System beispielhaft über den Pufferspeicher aus. Es sind jedoch auch Datenübertragungsvorgänge zwischen dem Flashspeicher und dem externen System ohne den Pufferspeicher möglich.
-
Wie oben ausgeführt Ist, umfasst die erfindungsgemäße Flashdatenspeichervorrichtung mehrstufige Flasheingabepuffer, in denen die Datenbusbreite stufenweise erhöht wird und eine Periodendauer eines Steuertaktes stufenweise verlängert wird. Diese Konfiguration ermöglicht beispielsweise, dass 16-Bit-Daten in einer Zeitspanne von 20 ns ausgetauscht werden können, während ein paralleler Zugriffsvorgang von 128-Bit-Daten auf den eingebetteten Flashspeicher innerhalb einer Zeitspanne von 80 ns möglich ist. Die Erfindung verbessert in vorteilhafter Weise die Übertragungsgeschwindigkeit bzw. die Datenrate zwischen einem externen System und einem in der Flashdatenspeichervorrichtung eingebetteten Flashspeicher.