-
Manche Speichersysteme erzeugen variable Latenzen bzw. Verzögerungen der Zeit, die das Speichersystem benötigt, um Daten ansprechend auf einen Lese- oder Schreibbefehl zur Verfügung zu stellen oder von einer externen Vorrichtung zu empfangen. Ein Beispiel eines derartigen Speichersystems ist eine pseudostatische Direktzugriffsspeichervorrichtung (PSRAM-Vorrichtung, PSRAM = pseudo-static random access memory), die ein Selbstauffrischungsschema verwendet, um den richtigen Status von in derselben gespeicherten Daten aufrechtzuerhalten.
-
Bei einem PSRAM-System muss, wenn ein Lese- oder Schreibbefehl empfangen wird, während ein Selbstauffrischungsvorgang im Gange ist, der Auffrischungsvorgang abgeschlossen sein, bevor das System seine Datenausgabe- oder Dateneingabefunktionen ausführen kann. Folglich variiert z. B. die Zeit, die der PSRAM benötigt, um ansprechend auf einen Schreibbefehl Daten von der externen Vorrichtung zu empfangen, in Abhängigkeit davon, ob der Schreibbefehl empfangen wurde, während ein Auffrischungsvorgang im Gange war. Verzögerungen, die sich infolge dessen ergeben, dass man darauf wartet, dass im Gange befindliche Auffrischungsvorgänge abgeschlossen werden, erhöhen die Ansprechzeit des PSRAM und verringern somit die Systembandbreite.
-
Aufgrund dieser variablen Latenz müssen PSRAM-Systeme zusätzlich ein sogenanntes „Warten”-Signal verwenden, um einer externen Vorrichtung, die auf das Speichersystem zugreift, anzugeben, wann gültige Daten während eines Lesevorgangs an einem Speichersystemdatenbus (DQ-Bus) vorliegen und wann das Speichersystem bereit ist, Daten während eines Schreibvorgangs zu akzeptierert. Die externe Vorrichtung tastet den Status des Wartesignals ab, um Datentransfers mit dem PSRAM zu synchronisieren. Ungünstigerweise kann dieser Abtast- und Synchronisationsprozess bei hohen Systemtaktfrequenzen mehrere Taktzyklen in Anspruch nehmen, wodurch die Leistungsfähigkeit des Systems verringert wird. Wenn die externe Vorrichtung zudem nicht in der Lage ist, das Wartesignal innerhalb eines Zeitraums abzutasten, der durch PSRAM-Betriebscharakteristika gestattet wird, wird eventuell keine Synchronisation zwischen der externen Vorrichtung und dem PSRAM erzielt, was zu Datenfehlern führt.
-
Aus der
US 6,629,224 B1 ist ein Direktzugriffspeicher in Form eines FC-RAMs und ein Verfahren mit den Merkmalen des Oberbegriffs des Anspruchs 15 bekannt.
-
Die Aufgabe der vorliegenden Erfindung besteht darin, Direktzugriffsspeicher (RAM) und ein Verfahren mit verbesserten Charakteristika zu schaffen.
-
Diese Aufgabe wird durch Direktzugriffsspeicher (RAM) gemäß Anspruch 1 sowie durch ein Verfahren gemäß Anspruch 15 gelöst. Bevorzugte Weiterbildungen sind in den abhängigen Ansprüchen angegeben.
-
Ein Ausführungsbeispiel der vorliegenden Erfindung liefert einen Direktzugriffsspeicher, der einen Befehlsblock und ein Array von Speicherzellen umfasst. Der Befehlsblock ist konfiguriert, um ansprechend auf einen Empfang eines Schreibbefehls ein Zeilensignal zu liefern, das einen aktiven Zustand aufweist, wobei der aktive Zustand zu einer festgelegten Zeit nach dem Empfang des Schreibbefehls eintritt, und ist konfiguriert, um ein Schreibsignal zu liefern, das zumindest einen ersten aktiven Zustand aufweist, wobei der erste aktive Zustand des Schreibsignals mit einer festgelegten Verzögerung nach dem aktiven Zustand des Zeilensignals eintritt. Das Array von Speicherzellen ist in einer Mehrzahl von Zeilen und Spalten angeordnet, wobei eine ausgewählte Zeile ansprechend auf den aktiven Status des Zeilensignals für einen Zugriff geöffnet wird und wobei Daten ansprechend auf den zumindest einen aktiven Zustand des Schreibsignals in zumindest eine Speicherzelle in der geöffneten Zeile geschrieben werden.
-
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
-
1 ein Blockdiagramm, das allgemein einen Direktzugriffsspeicher mit einem Befehlsblock gemäß der vorliegenden Erfindung veranschaulicht;
-
2 ein Block- und schematisches Diagramm, das ein exemplarisches Ausführungsbeispiel eines Burst-Befehlsblocks gemäß der vorliegenden Erfindung veranschaulicht;
-
3 ein Zeitgebungsdiagramm, das eine beispielhafte Operation des Befehlsblocks der 2 veranschaulicht;
-
4A ein Zeitgebungsdiagramm, das eine beispielhafte Operation des Befehlsblocks der 2 veranschaulicht;
-
4B ein Zeitgebungsdiagramm, das eine beispielhafte Operation des Befehlsblocks der 2 veranschaulicht;
-
5 ein Blockdiagramm, das ein exemplarisches Ausführungsbeispiel eines Burst-Befehlsblocks gemäß der vorliegenden Erfindung veranschaulicht; und
-
6 ein Zeitgebungsdiagramm, das eine beispielhafte Operation des Befehlsblocks der 5 veranschaulicht.
-
In der folgenden ausführlichen Beschreibung wird auf die beiliegenden Zeichnungen verwiesen, die einen Bestandteil des vorliegenden Dokuments bilden und in denen auf veranschaulichende Weise spezifische Ausführungsbeispiele gezeigt sind, bei denen die Erfindung praktiziert werden kann. Diesbezüglich wird eine richtungsanzeigende Terminologie unter Bezugnahme auf die Ausrichtung der beschriebenen Figur(en) verwendet, z. B. „obere(r, s)”, untere(r, s)”, „vorderseitige(r, s)”, „rückseitige(r, s)”, „vordere (r, s)”, „hintere (r, s)” usw. Da Komponenten von Ausführungsbeispielen der vorliegenden Erfindung in einer Anzahl verschiedener Orientierungen positioniert sein können, wird die richtungsanzeigende Terminologie zu Veranschaulichungszwecken verwendet und ist in keinster Weise einschränkend. Es wird einleuchten, dass andere Ausführungsbeispiele verwendet werden können und dass strukturelle oder logische Änderungen vorgenommen werden können, ohne von dem Schutzumfang der vorliegenden Erfindung abzuweichen. Somit ist die folgende ausführliche Beschreibung nicht in einem einschränkenden Sinn zu verstehen, und der Schutzumfang der vorliegenden Erfindung wird durch die beigefügten Patentansprüche definiert.
-
1 ist ein Blockdiagramm, das allgemein ein Ausführungsbeispiel einer Speichervorrichtung 10 gemäß der vorliegenden Erfindung veranschaulicht. Bei einem Ausführungsbeispiel ist die Speichervorrichtung 10 eine Direktzugriffsspeichervorrichtung (RAM), und bei einem bevorzugten Ausführungsbeispiel ist sie eine pseudostatische Direktzugriffsspeichervorrichtung (PSRAM). Der PSRAM 10 umfasst ein Speicherarray 12, einen Dateneingabe-/-ausgabeblock (I/O-Block) 14, einen Adressdecodierungsblock 16, einen Selbstauffrischungsblock 18 und einen Burst-Befehlsblock 20. Leitfähige Wortleitungen 22, die manchmal als Zeilenauswählleitungen bezeichnet werden, erstrecken sich in der x-Richtung über das Speicherarray 12, und leitfähige Bitleitungen 24, die manchmal auch als Spaltenauswählleitungen bezeichnet werden, erstrecken sich in der y-Richtung. An jedem Schnittpunkt zwischen einer Wortleitung 22 und einer Bitleitung 24 befindet sich eine Speicherzelle 26. Der Auffrischungsblock 18 führt autonom periodische Auffrischungsvorgänge der Speicherzellen 26 des Speicherarrays 12 durch, um den ordnungsgemäßen Status von dort gespeicherten Daten aufrechtzuerhalten, ohne Auffrischungsbefehle von einer externen Vorrichtung zu benötigen.
-
Der Daten-I/O-Block 16 umfasst eine Eingabe-/Ausgabeschaltungsanordnung und -anschlüsse bzw. Anschlussstifte (DQ) 28, die einen Datenbus 30 zum Transferieren von Daten zwischen ausgewählten Speicherzellen 26 des Speicherarrays 12 und einer externen Vorrichtung bilden. Der Adressdecodierungsblock 18 koppelt ausgewählte Speicherzellen 26 über eine entsprechende Bitleitung 24 auf der Basis von Adresssignalen, die über Adresseingänge 32 von einer externen Vorrichtung empfangen werden, mit dem Datenbus 30.
-
Der Burst-Befehlsblock 20 ist konfiguriert, um über eine Steuereingangsleitung 34 einen Schreibbefehl von der externen Vorrichtung zu empfangen und ansprechend darauf ein Zeilenaktivierungssignal 38 zu liefern, das einen aktiven Zustand aufweist, der nach einer festgelegten Zeit nach dem Empfang des Schreibbefehls eintritt. Der Burst-Befehlsblock 20 ist ferner konfiguriert, um ein Schreibsignal zu liefern, das zumindest einen ersten aktiven Zustand aufweist, wobei der erste aktive Zustand des Schreibsignals mit einer festgelegten Verzögerung nach dem aktiven Zustand des Zeilenaktivierungssignals eintritt. Bei einem Ausführungsbeispiel sind der Auffrischungsblock 18 und das Speicherarray 12 konfiguriert, um einen Auffrischungsvorgang ausgewählter Speicherzellen 26 des Speicherarrays 12 zumindest innerhalb der festgelegten Zeit durchzuführen, bevor der Befehlsblock 20 nach Empfang des Schreibbefehls den aktiven Zustand des Zeilenaktivierungssignals 38 liefert. Somit liefert der Burst-Befehlsblock 20 den zumindest ersten aktiven Zustand des Schreibsignals zu einer selben Zeit nach Empfang des Schreibbefehls, ungeachtet dessen, ob der Auffrischungsblock 18 einen im Gange befindlichen Auffrischungsvorgang des Speicherarrays 12 durchführt, wenn der Schreibbefehl empfangen wird.
-
Bei einem Ausführungsbeispiel liefert der Burst-Befehlsblock 20 ansprechend auf ein Empfangen des Schreibbefehls ein Schreibsignal 36, das eine Serie von aktiven Zuständen aufweist, wobei der erste aktive Zustand der Serie mit der festgelegten Verzögerung nach dem aktiven Zustand des Zeilenaktivierungssignals 38 eintritt. Ansprechend auf jeden aktiven Zustand der Serie des Schreibsignals 36 werden Daten über entsprechende Bitleitungen 24 und den Datenbus 30 in eine Serie ausgewählter Speicherzellen 26 des Speicherarrays 12 geschrieben.
-
Dadurch, dass der erste aktive Zustand des Schreibsignals zu einer selben Zeit nach Empfang des Schreibbefehls geliefert wird, ungeachtet dessen, ob ein Auffrischungsvorgang im Gange ist, wenn der Schreibbefehl empfangen wird, versieht der Burst-Befehlsblock 20 den PSRAM 10 mit einer festgelegten Latenz für Schreibvorgänge. Da der PSRAM 10 in der Lage ist, Daten zu einem festgelegten Zeitpunkt, nachdem die externe Vorrichtung einen Schreibbefehl aktiviert, von einer externen Vorrichtung zu empfangen, muss der PSRAM 10 während eines Schreibvorgangs kein Wartesignal liefern. Folglich muss die externe Vorrichtung während eines Schreibvorgangs nicht den Status eines Wartesignals überwachen, wodurch potentielle Synchronisierungsfehler, die mit einem Überwachen des Wartesignals durch die externe Vorrichtung verbunden sind, eliminiert werden, und wodurch das System befähigt wird, bei einer höheren Taktfrequenz und höheren Bandbreite zu arbeiten.
-
2 ist ein Block- und schematisches Diagramm, das ein Ausführungsbeispiel eines Burst-Freigabeblocks 20 gemäß der vorliegenden Erfindung veranschaulicht, der eine festgelegte Schreiblatenz und eine variable Leselatenz aufweist. Der Burst-Freigabeblock 20 umfasst einen Befehlsdecodierer 40, einen Latenzzähler 42, einen Signalblock 44, ein SR-Flipflop 46, ein D-Flipflop 48 und ein UND-Gatter 50, wobei der Signalblock 44 ferner ein ODER-Gatter 52, einen Pulsgenerator 54 und einen Taktverschieber 56 umfasst. Der Befehlsdecodierer 40 empfängt Steuereingaben über eine Leitung 58 und ein Taktsignal (CLK) bei 60. Ansprechend auf einen Empfang eines Schreibbefehls von einer externen Vorrichtung über die Leitung 58 liefert der Befehlsdecodierer 40 über eine Leitung 62 ein Schreibindikatorsignal, das einen „hohen” Zustand aufweist. Ansprechend auf den Empfang eines Lesebefehls über die Leitung 58 liefert der Befehlsdecodierer 40 über eine Leitung 64 ein Leseindikatorsignal, das einen „hohen” Zustand aufweist.
-
Der Latenzzähler 42 empfängt das Schreibindikatorsignal über die Leitung 62. Ansprechend darauf, dass das Schreibindikatorsignal einen „hohen” Zustand aufweist, liefert der Latenzzähler 42 nach einer gewünschten Verzögerung über eine Leitung 66 ein verzögertes Schreibindikatorsignal, das einen „hohen” Zustand aufweist. Der Latenzzähler 42 fungiert, um die Speichervorrichtung 10 mit einer externen Vorrichtung, von der Daten während eines Schreibvorgangs empfangen werden sollen, zu synchronisieren. Bei einem Ausführungsbeispiel ist die gewünschte Latenz des Latenzzählers 42 durch die externe Vorrichtung programmierbar. Bei einem Ausführungsbeispiel liefert der Latenzzähler eine gewünschte Verzögerung zweier Zyklen des CLK-Signals.
-
Das SR-Flipflop 46 empfängt das Leseindikatorsignal von dem Befehlsdecodierer 40 über die Leitung 64 an seinem „S”-Eingang. Ansprechend darauf, dass das Leseindikatorsignal an der Leitung 64 einen „hohen” Zustand aufweist, stellt das SR-Flipflop 46 seinen „Q”-Ausgang an der Leitung 68 auf einen „hohen” Zustand ein. Das D-Flipflop 48 empfängt über eine Leitung 70 an seinem „D”-Eingang ein Auffrischungssignal, wobei das Auffrischungssignal angibt, ob ein im Gange befindlicher Selbstauffrischungsvorgang des Speicherarrays 12 vorliegt. Bei einem Ausführungsbeispiel, wie durch 2 veranschaulicht ist, weist das Auffrischungssignal einen „hohen” Zustand auf, wenn ein Selbstauffrischungsvorgang abgeschlossen wurde (d. h. kein im Gange befindlicher Auffrischungsvorgang vorliegt).
-
Das D-Flipflop 48 liefert an seinem Q'-Ausgang ein Strichauffrischungssignal (bRFSH-Signal), wie bei 72 angegeben ist, wobei ein „niedriger” Zustand des bRFSH-Signals angibt, dass kein Selbstauffrischungsvorgang des Speicherarrays 12 stattfindet. Das UND-Gatter 50 ist über die Leitung 68 an einem ersten Eingang mit dem Q-Ausgang des SR-Flipflops 46 gekoppelt, empfängt das CLK-Signal bei 60 an einem zweiten Eingang und ist über einen Inverter 74 und eine Leitung 76 an einem dritten Eingang mit dem Q'-Ausgang des D-Flipflops 48 gekoppelt. Der Ausgang des UND-Gatters ist über einen Pfad 78 mit dem „R”-Eingang (reset, zurücksetzen) des SR-Flipflops 46 gekoppelt.
-
Das ODER-Gatter 52 empfängt das verzögerte Schreibindikatorsignal bei 66 an einem ersten Eingang über einen Pfad 67 von dem Latenzzähler 42 und ist an einem zweiten Eingang über einen Pfad 80 mit dem Ausgang des UND-Gatters 50 gekoppelt. Der Pulsgenerator 54 ist über einen Pfad 82 mit dem Ausgang des ODER-Gatters 52 gekoppelt und liefert ein zeilenaktives (ACT – row active) Signal über einen Pfad 84. Der Pulsgenerator 54 liefert das ACT-Signal, das einen Puls mit einem „hohen” Zustand aufweist, ansprechend auf das Ausgangssignal des ODER-Gatters 52, das einen hohen Zustand aufweist, was bewirkt, dass eine ausgewählte Wortleitung 22 oder Zeile von Speicherzellen 26 des Speicherarrays 12 für einen Lese- oder Schreibzugriff durch eine externe Vorrichtung aktiviert (oder geöffnet) wird.
-
Der Taktverschieber 56 empfängt ein verzögertes Schreibindikatorsignal bei 66 und das ACT-Signal über einen Pfad 86. Ansprechend auf einen Empfang des ACT-Signalpulses wartet der Taktverschieber 56 auf eine gewünschte Anzahl von CLK-Zyklen und liefert bei 88 ein Schreibsignal (WT-Signal), wenn das verzögerte Schreibindikatorsignal einen „hohen” Zustand aufweist, und liefert ein Lesesignal (RD-Signal) bei 90, wenn das verzögerte Schreibindikatorsignal einen „niedrigen” Zustand aufweist. Bei einem Ausführungsbeispiel ist die Anzahl gewünschter Taktzyklen, die der Taktverschieber 56 abwartet, bevor er entweder ein WT-Signal 88 oder ein RD-Signal 90 liefert, auswählbar, und bei einem bevorzugten Ausführungsbeispiel beträgt die gewünschte Anzahl von Taktzyklen Eins.
-
Bei einem Ausführungsbeispiel ist das WT-Signal ein Burst-WT-Signal, das eine Serie von Pulsen aufweist, die einen „hohen” Zustand aufweisen, wobei der erste Puls zu einem festgelegten Zeitpunkt nach Empfang des Schreibbefehls durch den Befehlsdecodierer 40 über die Leitung 58 erfolgt. Bei einem Ausführungsbeispiel beruht die Anzahl von Pulsen in der Serie, die durch den Taktverschieber 56 bereitgestellt werden, auf einer Burst-Länge. Bei einem Ausführungsbeispiel ist die Burst-Länge auswählbar. Ansprechend auf jeden Puls der Serie werden Daten über den Datenbus 30 und Bitleitungen 24 von einer externen Vorrichtung in eine ausgewählte Serie von Speicherzellen 26 geschrieben.
-
Bei einem Ausführungsbeispiel umfasst der Burst-Befehlsblock 20 ferner einen Wartesignalgenerator 92, der auf der Basis des CLK-Signals 60, des ACT-Signals bei 84, des WT-Signals bei 88 und des RD-Signals bei 90 ein Wartesignal 94 erzeugt. Das Wartesignal bei 90 weist einen aktiven Zustand auf, der der externen Vorrichtung angibt, wann ein Auffrischungsvorgang des Speicherarrays 12 im Gange ist.
-
3 ist ein Zeitgebungsdiagramm 100, das eine beispielhafte Operation des Burst-Freigabeblocks 20 der 2 ansprechend auf einen Schreibbefehl veranschaulicht. Wie veranschaulicht ist, ist der Latenzzähler 42 mit einer Latenz von zwei programmiert. Das Systemtaktsignal (CLK) wird durch einen Signalverlauf 102 veranschaulicht, Steuereingänge, die über die Leitung 58 durch den Befehlsdecodierer 40 empfangen werden, sind bei 104 veranschaulicht, und das zeilenaktive Signal, das bei 84 durch den Pulsgenerator 54 geliefert wird, ist durch den Signalverlauf bei 105 veranschaulicht, das Burst-Schreibsignal (WT), das durch den Taktverschieber 56 bei 88 geliefert wird, ist durch den Signalverlauf bei 106 veranschaulicht, und Datenblöcke, die durch eine externe Vorrichtung auf den DQ-Anschlussstiften 28 platziert sind, sind bei 108 veranschaulicht.
-
Ansprechend auf einen Empfang eines Schreibbefehls 110 auf einen ersten Taktzyklus 112 hin liefert der Befehlsdecodierer 40 über den Pfad 62 ein Schreibindikatorsignal, das einen „hohen” Zustand aufweist, an den Latenzzähler 42. Wie oben beschrieben wurde, weist der Latenzzähler 42 gemäß der Veranschaulichung durch 2 eine ausgewählte Latenz zweier Taktzyklen auf. Somit wartet der Latenzzähler 42 einen Latenzzeitraum 114 zweier Taktzyklen lang, bevor er über den Pfad 66 ein verzögertes Schreibindikatorsignal (in 3 nicht gezeigt), das einen hohen Zustand aufweist, an das ODER-Gatter 52 liefert. Zusätzlich dazu, dass er eine Synchronisation mit der externen Vorrichtung liefert, liefert der Latenzzeitraum 114 ein Auffrischungsfenster 116, in dem durch den Auffrischungsblock 18 ein Auffrischungsvorgang des Speicherarrays 12 durchgeführt wird. Somit ist die Speichervorrichtung 10 gemäß der Veranschaulichung in 3 konfiguriert, um innerhalb der zwei Taktzyklen des Auffrischungsfensters 116 einen Auffrischungsvorgang durchzuführen.
-
Wenn das verzögerte Schreibindikatorsignal bei 66 einen „hohen” Zustand aufweist, wird der Ausgang des ODER-Gatters 52 auf „hoch” eingestellt. Ansprechend darauf, dass der Ausgang des ODER-Gatters 52 auf „hoch” eingestellt wird, liefert der Pulsgenerator 54 einen Puls 118 mit einem „hohen” Zustand. Wie durch 3 veranschaulicht ist, weist der Taktverschieber 56 eine ausgewählte Verzögerung eines Taktzyklus und eine ausgewählte Burst-Länge von vier auf. Ansprechend auf den Puls 116 des ACT-Signals 104 und darauf, dass der verzögerte Schreibsignalindikator bei 66 einen „hohen” Zustand aufweist, liefert der Taktverschieber 56 somit eine Serie von vier Schreibpulsen 122a mit 122d, wobei bei dem nächsten Taktzyklus 120 begonnen wird.
-
Da ein Auffrischungsvorgang innerhalb des Latenzzeitraums 114 abgeschlossen wird, tritt der erste Schreibpuls 122a drei Zyklen des Systemtakts 102 nach Empfang eines Schreibbefehls 110, Taktzyklus 120 wie veranschaulicht, auf, ungeachtet dessen, ob ein Auffrischungsvorgang im Gange ist, wenn der Schreibbefehl 110 empfangen wird. Da der PSRAM 10 in der Lage ist, Daten zu einem festgelegten Zeitpunkt, nachdem die externe Vorrichtung einen Schreibbefehl aktiviert, von einer externen Vorrichtung zu empfangen, muss der PSRAM 10 während eines Schreibvorgangs kein Wartesignal liefern. Folglich muss die externe Vorrichtung während eines Schreibvorgangs nicht den Status eines Wartesignals überwachen, wodurch potentielle Synchronisierungsfehler, die mit einem Überwachen des Wartesignals durch die externe Vorrichtung verbunden sind, eliminiert werden, und wodurch das System befähigt wird, bei einer höheren Taktfrequenz und höheren Bandbreite zu arbeiten.
-
4A ist ein Zeitgebungsdiagramm 130, das eine beispielhafte Operation des Burst-Freigabeblocks 20 der 2 ansprechend auf einen Lesebefehl veranschaulicht, der empfangen wird, wenn kein Auffrischungsvorgang des Speicherarrays 12 im Gange ist. Wie veranschaulicht ist, ist der Latenzzähler 42 mit einer Latenz von zwei programmiert. Das Systemtaktsignal (CLK) wird durch einen Signalverlauf 102 veranschaulicht, Steuereingänge, die über die Leitung 58 durch den Befehisdecodierer 40 empfangen werden, sind bei 104 veranschaulicht, und das zeilenaktive Signal, das bei 84 durch den Pulsgenerator 54 geliefert wird, ist durch den Signalverlauf bei 105 veranschaulicht, das Burst-Lesesignal (RD), das durch den Taktverschieber 56 bei 88 geliefert wird, ist durch den Signalverlauf bei 132 veranschaulicht, und Datenblöcke, die durch eine Speichervorrichtung 10 auf den DQ-Anschlussstiften 28 platziert sind, sind bei 134 veranschaulicht. Das durch das D-Flipflop empfangene Auffrischungssignal und das durch das D-Flipflop gelieferte Strichauffrischungssignal sind bei 136 bzw. 138 veranschaulicht, und das Wartesignal 94, das durch den Signalgenerator 92 geliefert wird, ist bei 140 veranschaulicht.
-
Ansprechend auf einen Empfang eines Lesebefehls 142 an einem ersten Taktzyklus 144 stellt der Befehlsdecodierer 40 das Leseindikatorsignal an dem „S”-Eingang des SR-Flipflops 46 „hoch” und das Schreibindikatorsignal bei 62 „niedrig”. Wenn das Schreibindikatorsignal bei 62 „niedrig” ist, ist das verzögerte Schreibindikatorsignal bei 66 ebenfalls „niedrig”. Wenn das Leseindikatorsignal bei 64 „hoch” eingestellt ist, stellt das SR-Flipflop 46 seinen „Q”-Ausgang „hoch” ein. Bei dem ersten Taktzyklus 144 ist das Auffrischungssignal „hoch” (was angibt, dass keine im Gange befindliche Auffrischung vorliegt), und somit ist das bRFSH „niedrig”, was bewirkt, dass der Ausgang des Inverters 74 „hoch” ist. Somit ist bei dem ersten Taktzyklus 144 jeder der Eingänge in das UND-Gatter 50 „hoch”, was dazu führt, dass der Ausgang des UND-Gatters 50 auf „hoch” eingestellt wird, was wiederum bewirkt, dass der Ausgang des ODER-Gatters 52 auf „hoch” eingestellt wird.
-
Ansprechend darauf, dass der Ausgang des ODER-Gatters 52 auf „hoch” eingestellt wird, liefert der Pulsgenerator 54 bei 146 ein ACT-Signal, das einen Puls aufweist, der einen „hohen” Zustand aufweist. Wie durch 4A veranschaulicht ist, weist der Taktverschieber 56 eine ausgewählte Verzögerung eines Taktzyklus und eine ausgewählte Burst-Länge von vier auf. Somit, wenn das verzögerte Schreibindikatorsignal bei 66 „niedrig” ist, und ansprechend auf den Puls 146, liefert der Taktverschieber 56 eine Serie von vier Lesepulsen 148a mit 148d, wobei bei dem zweiten Taktzyklus 150 begonnen wird. Das Wartesignal geht dann von niedrig zu hoch über, wie bei 152 angedeutet ist, und Datenblöcke 154a mit 154d werden anschließend durch die Speichervorrichtung 10 auf DQ-Anschlussstiften 28 platziert, wobei bei dem dritten Taktzyklus 156 begonnen wird.
-
4B ist ein Zeitgebungsdiagramm 160, das eine beispielhafte Operation des Burst-Freigabeblocks 20 der 2 ansprechend auf einen Lesebefehl veranschaulicht, der empfangen wird, wenn kein Auffrischungsvorgang des Speicherarrays 12 im Gange ist. Dieses Szenario ist ähnlich dem durch 4B veranschaulichten, mit der Ausnahme, dass die Ausgangssignale des Burst-Freigabeblocks bis zu den Auffrischungssignalübergängen von niedrig zu hoch auf einen Abschluss des Auffrischungsvorgangs, wie bei 162 angegeben, verzögert werden, was bewirkt, dass das bRFSH-Signal von hoch zu niedrig übergeht, wie bei 164 angegeben ist. Somit tritt der Puls 116 erst bei dem dritten Taktzyklus 156 auf, die Lesesignalpulse 148a mit 148d beginnen erst bei dem vierten Taktzyklus 166, und der Übergang des Wartesignals von niedrig zu hoch und die anschließende Platzierung von Datenblöcken 154a mit 154d auf DQ-Anschlussstiften 28 findet erst bei dem fünften Taktzyklus 168 statt.
-
5 ist ein Blockdiagramm, das ein Ausführungsbeispiel eines Burst-Freigabeblocks 220 gemäß der vorliegenden Erfindung veranschaulicht, der sowohl eine festgelegte Schreiblatenz als auch eine festgelegte Leselatenz aufweist. Der Burst-Freigabeblock 220 umfasst einen Befehlsdecodierer 40, einen Latenzzähler 242 und einen Signalblock 244, wobei der Signalblock 244 ferner einen Pulsgenerator 254 umfasst, und einen Taktverschieber 256. Der Befehlsdecodierer 240 empfängt Steuereingaben über eine Leitung 258 und ein Taktsignal (CLK) bei 260.
-
Ansprechend auf einen Empfang eines Schreibbefehls von einer externen Vorrichtung über die Leitung 258 liefert der Befehlsdecodierer 240 über eine Leitung 262 ein Schreibindikatorsignal, das einen „hohen” Zustand aufweist, und ansprechend auf einen Empfang eines Lesebefehls über die Leitung 258 liefert er über eine Leitung 264 ein Leseindikatorsignal, das einen „hohen” Zustand aufweist. Der Latenzzähler 242 empfängt das Schreibindikatorsignal über die Leitung 262 und das Leseindikatorsignal über den Pfad 264. Ansprechend darauf, dass entweder das Lese- oder das Schreibindikatorsignal einen „hohen” Zustand aufweist, liefert der Latenzzähler 242 nach einer gewünschten Verzögerung bei 266 ein Pulsaktivierungssignal, das einen „hohen” Zustand aufweist.
-
Ansprechend darauf, dass das Pulsaktivierungssignal einen „hohen” Zustand aufweist, liefert der Pulsgenerator 254 ein zeilenaktives Signal (ACT-Signal) 284, das einen Puls mit einem „hohen” Zustand aufweist, wodurch bewirkt wird, dass eine ausgewählte Wortleitung 22 oder eine Zeile von Speicherzellen 26 des Speicherarrays 12 durch eine externe Vorrichtung für einen Lese- oder Schreibzugriff aktiviert (oder geöffnet) wird. Ansprechend auf den ACT-Signalpuls wartet der Taktverschieber 256 eine gewünschte Anzahl von Zyklen von CLK ab und liefert bei 288 ein Schreibsignal (WT), wenn das Schreibindikatorsignal einen „hohen” Zustand aufweist, und liefert bei 290 ein Lesesignal (RD), wenn das Schreibindikatorsignal einen „niedrigen” Zustand aufweist.
-
Bei einem Ausführungsbeispiel sind die WT- und RD-Signale Burst-Signale, die eine Serie von Pulsen mit einem „hohen” Zustand aufweisen, wobei der erste Puls der Serie bei einem festgelegten Zeitpunkt nach Empfang des entsprechenden Schreib- oder Lesebefehls über die Leitung 258 durch den Befehlsdecodierer 240 erfolgt. Bei einem Ausführungsbeispiel beruht die Anzahl von Pulsen in der durch den Taktverschieber 256 bereitgestellten Serie auf einer auswählbaren Burst-Länge. Ansprechend auf jeden Puls der Serie werden Daten durch eine externe Vorrichtung über Bitleitungen 24 und den Datenbus 30 in eine ausgewählte Serie von Speicherzellen 26 geschrieben oder aus derselben gelesen.
-
6 ist ein Zeitgebungsdiagramm 300, das eine beispielhafte Operation des Burst-Freigabeblocks 220 der 5 ansprechend auf einen Lesebefehl veranschaulicht. Wie veranschaulicht ist, weist der Latenzzähler 242 eine ausgewählte Latenz zweier Zyklen des Systemtakts bei 260 auf, und der Taktverschieber 256 weist eine ausgewählte Verzögerung eines Taktzyklus des Systemtakts und eine ausgewählte Burst-Länge von vier auf. Das Ansprechen des Burst-Freigabeblocks 220 auf einen Schreibbefehl ist dasselbe wie das Ansprechen des Burst-Freigabeblocks 20 der 2, wie durch das Zeitgebungsdiagramm 100 der 3 veranschaulicht ist.
-
Das Systemtaktsignal (CLK) ist durch einen Signalverlauf 302 veranschaulicht, durch den Befehlsdecodierer 240 über die Leitung 258 empfangene Steuereingaben sind bei 304 veranschaulicht, das bei 284 durch den Pulsgenerator 254 gelieferte zeilenaktive Signal (ACT) ist durch einen Signalverlauf 305 veranschaulicht, das durch den Taktverschieber 256 bei 290 gelieferte Burst-Lesesignal (RD) ist durch den Signalverlauf bei 306 veranschaulicht, und Datenblöcke, die durch die Speichervorrichtung 10 auf die DQ-Anschlussstifte 28 platziert sind, sind bei 308 veranschaulicht.
-
Ansprechend auf einen Empfang eines Lesebefehls 310 auf einen ersten Taktzyklus 312 hin liefert der Befehlsdecodierer 240 ein Leseindikatorsignal mit einem „hohen” Zustand bei 264, während das Schreibindikatorsignal bei 262 auf einem „niedrigen” Zustand bleibt. Wie oben beschrieben wurde, weist der Latenzzähler 242 eine ausgewählte Latenz zweier Taktzyklen auf. Ansprechend darauf, dass das Leseindikatorsignal einen „hohen” Zustand aufweist, wartet der Latenzzähler 242 somit zwei Taktzyklen ab, bevor er bei 266 ein Pulsaktivierungssignal mit einem „hohen” Zustand liefert. Die zwei Taktzyklen betragende Verzögerung des Latenzzählers 242 liefert ein Auffrischungsfenster 316, in dem der Auffrischungsblock 18 einen Auffrischungsvorgang des Speicherarrays 12 durchführen kann. Somit ist die Speichervorrichtung 10, die den Burst-Freigabeblock 220 gemäß der Veranschaulichung durch 5 verwendet, konfiguriert, um innerhalb der zwei Taktzyklen des Auffrischungsfensters 316 einen Auffrischungsvorgang durchzuführen.
-
Ansprechend darauf, dass das Pulsaktivierungssignal einen „hohen” Zustand aufweist, liefert der Pulsgenerator 254 bei 284 ein ACT-Signal, das einen Puls 318 mit einem „hohen” Zustand aufweist. Wie oben beschrieben wurde, weist der Taktverschieber 256 eine ausgewählte Verzögerung eines Taktzyklus des Systemtaktes und eine ausgewählte Burst-Länge von vier auf. Ansprechend auf den Puls 318 liefert der Taktverschieber 256 also eine Serie von vier Lesepulsen 320a bis 320d, wobei bei dem vierten Taktzyklus 322 begonnen wird. Die Speichervorrichtung 10 platziert Datenblöcke 324a bis 324d (324d ist nicht gezeigt) auf DQ-Anschlussstiften 28 zum Lesen durch eine externe Vorrichtung, wobei bei dem fünften Taktzyklus 326 begonnen wird.
-
Bei dem durch 6 veranschaulichten beispielhaften Vorgang liegt ein Latenzzeitraum von vier Taktzyklen, bei 328 veranschaulicht, von dem Zeitpunkt an, zu dem ein Lesebefehl 310 an dem ersten Taktzyklus 312 empfangen wird, bis zu dem Zeitpunkt vor, zu dem der erste Datenblock 324a durch eine externe Vorrichtung von DQ-Anschlussstiften 28 gelesen wird. Wie durch das Zeitgebungsdiagramm von 3 veranschaulicht ist, erzeugt der Burst-Befehlsblock 220 jedoch eine Latenz von zwei Taktzyklen für einen Schreibbefehl. Eine Speichervorrichtung, z. B. die Speichervorrichtung 10, die den Burst-Befehlsblock 220 verwendet, weist somit eine im Vergleich zu der Leselatenz verringerte Schreiblatenz auf. Da die Latenz sowohl für Lese- als auch Schreibvorgänge festgelegt ist, ist ferner eine Erzeugung und Überwachung eines Wartesignals nicht erforderlich.