-
Die
Erfindung betrifft eine Datenspeicherschaltung mit einer Vielzahl
adressierbarer Speicherzellen, einer Befehls-Decodiereinrichtung
zum Decodieren externer Befehle und einer Steuereinrichtung zum
Steuern oder Einleiten von Operationen für den Betrieb der Speicherschaltung
jeweils abhängig
von den decodierten Befehlen, gemäß dem Oberbegriff des Patentanspruchs
1. Bevorzugtes, jedoch nicht ausschließliches Anwendungsgebiet der
Erfindung sind DRAMs (Dynamic Random Access Memories), d. h. dynamische
Schreib-Lese-Speicher mit der Möglichkeit
direkten Zugriffs auf die Speicherzellen.
-
Zum
Betrieb einer Datenspeicherschaltung gehört vor allem das Einschreiben
und Auslesen von Daten an selektiv adressierten Speicherzellen.
Ein Schreib- oder Lesezugriff besteht im Prinzip darin, eine Datenverbindung
herzustellen zwischen den jeweils adressierten Speicherzellen und
den Datenanschlüssen
der Speicherschaltung, was üblicherweise durch
Schließen
ausgewählter
elektronischer Schalter in einem Netz von Steuer- und Datenleitungen besteht, welches
das gesamte Feld der Speicherzellen überzieht. Jeder Schreib- oder
Lesevorgang besteht aus einer Abfolge einzelner Operationen, und
bei den meisten gebräuchlichen
Speicherschaltungen werden die betreffenden Operationsbefehle von
einem externen Controller angelegt. Der Controller "kennt" im allgemeinen die
Spezifikation der Speicherschaltung und "weiß" somit von vorn herein,
wie lange die Ausführung
eines Operationsbefehls dauert und wie lange er demzufolge warten
muss, bis er einen neuen Befehl senden darf, der die zuvor befohlene
Operation beendet.
-
Es
kann jedoch vorkommen, dass der Controller nicht exakt auf die Spezifikation
der Speicherschaltung abgestimmt ist und einen neuen Befehl verfrüht absendet.
In diesem Fall darf der neue Befehl nicht befolgt werden, zumindest
dann nicht, wenn die neu befohlene Operation auf eine erfolgreiche
Ausführung
der vorherigen Operation baut.
-
Des
weiteren gibt es in manchen Speicherschaltungen gewisse Betriebsabläufe, die
vom Controller durch einen Befehl eingeleitet werden und dann als
interner selbstgesteuerter Prozess ablaufen, z. B. unter dem Einfluss
eines internen Taktsignals, ohne Synchronisation mit dem Controller.
Hierbei kann es sich um Prozesse handeln, die zwar durch einen neuen
Befehl unterbrochen werden dürfen,
jedoch nicht während
bestimmter kritischer Phasen ihres Ablaufs. Da der Controller nicht
weiß oder
wissen kann, wann genau diese kritischen Phasen existieren, besteht
die Möglichkeit,
dass ein neuer Befehl zeitlich mit einer solchen Phase zusammenfällt. Auch
in diesem Fall darf der neue Befehl nicht befolgt werden. Ein Beispiel
für solche
selbstgesteuerte Prozesse ist die "selbstgesteuerte Auffrischung" von Daten (Self-Timed
Refresh) in DRAMs.
-
Bei
DRAMs sind die Speicherzellen innerhalb einzelner Felder oder Segmente
jeweils matrixförmig
in Zeilen und Spalten angeordnet. Jeder Zeile ist eine als "Wortleitung" bezeichnete Steuerleitung
zugeordnet, und jeder Spalte ist eine sogenannte "Bitleitung" zugeordnet, die üblicherweise
zweiadrig ist und zu einem der betreffenden Spalte zugeordneten
Verstärker
führt.
Diese Verstärker
werden als "Leseverstärker" bezeichnet, obwohl
sie nicht nur auszulesende Daten sondern auch einzuschreibende Daten
verstärken.
Der Zugriff auf eine Zelle wird begonnen durch Aktivierung der betreffenden
Wortleitung gemäß einer
Zeilenadresse, wodurch Schalter an allen Zellen der zugeordneten
Zeile geschlossen (also leitend gemacht) werden, um diese Zellen über die
Bitleitungen mit den Leseverstärkern
zu verbinden. Im einzelnen wird bei diesem Vorgang die Ladung der
Zellen auf die Bitleitungen entleert, die bis dahin auf ein gemeinsames "Vorladepotential" gelegt waren. Infolge
der Entleerung der Zellenladung steigt oder sinkt das Potential
der einen Bitleitsader jeweils gegenüber der anderen Bitleitungsader,
die auf dem Vorladepotential verbleibt. Die Leseverstärker detektieren
die jeweiligen Potentialunterschiede der Bitleitungspaare und verstärken diese
Unterschiede, so dass die Bitleitungsader mit niedrigerem Potential
auf das "niedrige" (Masse-)Potential "L" und die Bitleitungsader mit höherem Potential
auf das "hohe" Versorgungspotential "H" des Speicherzellenfeldes gebracht wird.
Hierdurch wird die an den Zellen gefühlte Information verstärkt in die
Zellen zurückgeschrieben und
somit aufgefrischt.
-
Im
eigentlichen Lese- oder Schreibbetrieb werden, nach dem vorstehend
beschriebenen Aktivierungsvorgang, die Leseverstarker selektiv unter Steuerung
durch Spaltenadressinformation mit den Datenanschlüssen des
DRAM verbunden. Beim Lesen werden die in den Leseverstärkern "gelatchten" (also gehaltenen)
Daten an den Datenanschlüssen entnommen;
zum Schreiben werden die in den Leseverstärkern gehaltenen Daten von
den an den Datenanschlüssen
eingegebenen neuen Daten überschrieben
und somit über
die Bitleitungen in die Speicherzellen übertragen.
-
Da
die Zellen ihre Ladung und somit die in ihnen gespeicherte Information
aber jeweils nach relativ kurzer Zeit verlieren, müssen sie
zwischen den Lese- oder Schreibzugriffen periodisch aufgefrischt werden.
Zu diesem Zweck müssen
alle Wortleitungen des DRAM nacheinander in geeigneten zeitlichen
Abständen
aktiviert werden, um das oben beschriebene verstärkte Zurückschreiben der gefühlten Zellinformation
zu bewirken. Nach dem so erfolgten Auffrischen der Zellinformation
wird die betreffende Wortleitung wieder in den nicht-aktiven Normalzustand
gebracht, wodurch die Bitleitungsadern von den Speicherzellen elektrisch
isoliert werden. Ist dies erfolgt, so werden beide Bitleitungsadern
wieder auf das gemeinsame Vorladepotential gebracht ("Precharge"-Zustand). Der gesamte
Vorgang der Wortleitungsaktivierung und Bitleitungsverstärkung durch
den Leseverstärker
beansprucht eine gewisse Mindestzeit, die durch den Spezifikationsparameter tRAS
be schrieben wird. Wird diese Zeit verkürzt, etwa durch eine zu frühe Ausführung des
internen "Precharge" (also des Vorladens)
der Bitleitungen, so kann nicht der volle Ladungszustand der Zellen
wiederhergestellt werden. Im Extremfall kann die Zellinformation
auf diese Weise anstatt aufgefrischt sogar geschwächt werden.
Um diese Gefahr auszuschließen,
wird bei der Wortleitungsaktivierung ein tRAS-Timer aktiviert, der
die Ausführung
des Precharge erst dann veranlasst, wenn der volle Ladungszustand
der Zellen hergestellt ist. Diese Wartezeit bedeutet somit einen
kritischen Betriebszustand des DRAM, während dessen bestimmte externe
Befehle als unzulässig
anzusehen sind, weil ihre Ausführung
zu dieser Zeit unzulässig
wäre.
-
Im
laufenden Nutzbetrieb des DRAM koordiniert der externe Controller
die Auffrischungszyklen mit den Schreib- und Lesezyklen, etwa indem
er jeweils rechtzeitig zwischen Schreib- bzw. Lesevorgängen einen "Autorefresh"-Befehl sendet, um einen internen Refreshzähler in
Gang zu setzen, der über den
gemeinsamen Systemtakt mit dem Controller synchronisiert ist und
die zyklische Aktivierung der Wortleitungen für die Auffrischung steuert.
Infolge dieser Synchronisierung und in Kenntnis der Spezifikation
des DRAM kann der Controller vermeiden, dass sein nächster Befehl
(z. B. der externe Aktivierungsbefehl bei Wiederaufnahme eines Schreib- oder
Lesezyklus) in die Laufzeit des tRAS-Timers fällt.
-
Beim
Self-Timed Refresh ist die Sache jedoch anders. Dieser Betrieb wird
während
längerer Ruhezeiten
des DRAM durchgeführt.
Hierzu wird das durch das DRAM gesteuerte Auffrischen der Zellinformation
einmal durch ein externes Kommando des Controllers angestoßen, üblicherweise
durch Nullsetzung seines Ausgangssignals CKE ("Clock Enable") bei gleichzeitiger Abgabe des Autorefresh-Befehls. Das
DRAM bleibt in diesem Zustand, solange das externe Signal CKE den
Logikwert 0 beibehält.
Während
dieser Zeit läuft
im DRAM eine Self-Refresh-Zeitsteuereinrichtung
unter dem Einfluss eines internen Os zillators und steuert ohne externe
Einwirkung die sequentielle Aktivierung der Wortleitungen. Für den Controller
bleibt dieser Ablauf verborgen. Wenn CKE durch den Controller auf
eine logische 1 gebracht wird, verlässt das DRAM den Zustand des Self-Timed
Refresh. Falls zu dieser Zeit aber gerade ein Wortleitungsrefresh
im Gange ist, wird der Precharge durch den tRAS-Timer solange verzögert, bis
das vollständige
Auffrischen der entsprechenden Speicherzellen gewährleistet
ist. Sollte während
dieser Zeit der Controller einen der unzulässigen Befehle an das DRAM
richten (z. B. Aktivierung einer anderen Wortleitung), so wird die
Ausführung
dieses Befehls im DRAM blockiert, und der Befehl wird verworfen.
Diese Befehlsverweigerung erfolgt aufgrund einer Zustandsanzeige,
welche besagt, dass die vom tRAS-Timer bestimmte Zeit noch nicht
abgelaufen ist.
-
Der
vorstehend beschriebene Self-Timed Refresh in einem DRAM ist nur
ein anschauliches Beispiel für
Prozesse oder Operationen, die in einem Datenspeicher ablaufen sollen
und nicht jederzeit durch jeden beliebigen externen Befehl abgebrochen oder
gestört
werden dürfen.
Es hängt
vom jeweiligen Typ des Datenspeichers ab, welche derartige Prozesse
hierfür
in Frage kommen und welche externen Befehle jeweils unzulässig sind.
Es gibt auch verschiedene bekannte Methoden, um unzulässige Befehle
als solche zu erkennen und deren Ausführung zu sperren. Wie z. B.
in
US 6 377 509 B2 beschrieben ist,
kann die Entscheidung über
die Unzulässigkeit getroffen
werden, indem man die aus dem vorherigen Befehl abgeleiteten Betriebssteuersignale
berücksichtigt,
die direkten oder indirekten Aufschluss über den jeweiligen Betriebszustand
der Speicherschaltung geben, und die Sperrung der Befehlsausführung kann
entweder durch Maskierung der aus dem unzulässigen Befehl abgeleiteten
Betriebssteuersignale oder schon durch Verweigerung der Annahme
des unzulässigen
Befehls erfolgen. In jedem Fall aber wird der unzulässige Befehl
verworfen.
-
Das
Verwerfen von externen Befehlen an einer Datenspeicherschaltung
kann zu ernsthaften Störungen
des gesamten Systems führen,
in dem sich die Speicherschaltung befindet. Die Aufgabe der Erfindung
besteht darin, eine Datenspeicherschaltung so auszubilden, dass
Situationen vermieden werden, in denen externe Befehle verworfen
werden müssen.
Diese Aufgabe wird erfindungsgemäß durch den
im Patentanspruch 1 angegebenen Gegenstand gelöst.
-
Demnach
wird die Erfindung realisiert an einer Datenspeicherschaltung mit
einer Vielzahl adressierbarer Speicherzellen, einer Befehls-Decodiereinrichtung
zum Decodieren externer Befehle und einer Steuereinrichtung zum
Steuern oder Einleiten von Operationen für den Betrieb der Datenspeicherschaltung
jeweils abhängig
von den decodierten Befehlen, wobei sich im Laufe bestimmter Operationen
in der Datenspeicherschaltung kritische Betriebszustände ergeben,
in denen die Ausführung
bestimmter Befehle unzulässig
ist, und wobei eine Entscheidungseinrichtung zum Erkennen der Unzulässigkeit
empfangener Befehle vorgesehen ist. Gemäß der Erfindung ist eine Befehlspuffereinrichtung
vorgesehen, die Befehle, welche während der Dauer ihrer Unzulässigkeit
empfangen werden, zwischenspeichert und sie nach Beendigung ihrer
Unzulässigkeit
zur Ausführung
freigibt.
-
Dank
der erfindungsgemäß vorhandenen Befehlspuffereinrichtung
kann die Datenspeicherschaltung jeden externen Befehl ausführen, auch wenn
der Befehl zum Zeitpunkt seines Empfangs unzulässig ist weil seine Ausführung zu
diesem Zeitpunkt unverträglich
mit einem gerade herrschenden Betriebszustand ist.
-
Es
ist an sich bekannt, Befehlspuffer in Datenspeicherschaltungen vorzusehen.
Solche Puffer wurden bisher jedoch zu anderen Zwecken und in anderer
als der erfindungsgemäßen Weise
eingesetzt. So ist in
US
6 385 691 B2 beschrieben, einen Befehlspuffer mit Befehlen
zu füllen,
die unabhängig
von externen Befehlen abgerufen werden können. Dies kann ersichtlich nichts
zur Handhabung unzulässiger externer
Befehle beitragen.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Unteransprüchen gekennzeichnet. Zur näheren Erläuterung
der Erfindung wird nachstehend ein Ausführungsbeispiel anhand von Zeichnungen
beschrieben.
-
1 zeigt
schematisch den Aufbau einer erfindungsgemäß ausgebildeten Datenspeicherschaltung
mit externem Controller.
-
2 zeigt
nähere
Einzelheiten eines Ausführungsbeispiels
einer erfindungsgemäßen Pufferschaltung
in der Datenspeicherschaltung nach 1.
-
3 zeigt
eine modifizierte Version der Pufferschaltung nach 2
-
Die
in 1 schematisch dargestellte Datenspeicherschaltung 10 ist
ein "synchrones" DRAM (SDRAM), dessen
Bestandteile alle auf einem Chip integriert sind, wie mit der fetten
rechteckigen Umrisslinie angedeutet. Die Menge der Speicherzellen, die
auf mehrere Bänke
mit jeweils mehreren Segmenten verteilt sein können, ist schematisch durch den
schattierten Block 11 dargestellt. Als weitere Blöcke auf
dem Chip sind eine interne Steuereinrichtung 12 und ein
Befehlsdecoderblock 13 (gestrichelte Umrisslinie) dargestellt.
-
Am
Chip des DRAM 10 befinden sich mehrere externe Anschlüsse, von
denen gezeigt sind: ein Datenanschluss DAT zur Ein- und Ausgabe
von Speicherdatenbits in Parallelform; ein Adressanschluss ADR zum
Anlegen von Adressbits in Parallelform; ein Befehlsanschluss zum
Anlegen von m parallelen Befehlsbits CMB; ein Anschluss zum Anlegen
eines Systemtaktsignals CLS; ein Anschluss zum Anlegen des Taktaktivierungssignals
CKE.
-
Die
Steuereinrichtung 12 steuert die Operationen des DRAM 10 abhängig von
den m Befehlsbits CMB, die üblicherweise
von einem externen Controller 20 (Memory Chip Controller
MCC) geliefert werden. Hierzu werden die Befehlsbits CMB im Befehlsdecoderblock 13 decodiert,
derart dass mit jedem Befehl eine bestimmte Kombination von Befähigungsleitungen
ENL erregt wird, um bestimmte Elemente in der Steuereinrichtung 12 für die Ausführung des
betreffenden Befehls zu konditionieren. So führt z. B. der Befehl "Aktivierung" (ACTIVATE) zur Erregung derjenigen
Befähigungsleitungen
ENL, welche die Elemente u. a. für
den Abruf der Zeilenadresse an einem Adressenpuffer, für die Aufhebung
des Precharge der Bitleitungen und für das Schalten der Wortleitung
der adressierten Zeile auf H-Potential konditionieren. Ein anschließender Befehl "Lesen" erregt die Befähigungsleitungen
ENL, welche die Elemente für die
Aufrechterhaltung H-Potentials an der Wortleitung, für den Abruf
der Spaltenadresse und für
das Verbinden der gemäß Spaltenadresse
selektierten Leseverstärker
mit den Datenanschlüssen
DAT konditioniert. Die einzelnen Schritte innerhalb solcher (und
anderer) befohlener Operationen werden durch ein internes Taktsignal
CLK zeitgesteuert, das eingeschaltet ist und mit dem Systemtaktsignal
CLS synchronisiert wird, solange das Signal CKE vom Controller den
Logikwert "1" hat.
-
Üblicherweise
führt der
Befehlsdecoderblock 13 die Decodierung der vom Controller 20 gesendeten
Befehle in zwei Stufen durch. Gemäß der Darstellung in 1 empfängt ein
Befehls-Vordecoder 30 die
m Befehlsbits CMB und bringt für
jede von n verschiedenen Bitkombinationen genau ein zugeordnetes
Exemplar von n Befehlsleitungen CM-1 bis CM-n vorübergehend
in einen aktivierten Zustand, und zwar für die Dauer einer Halbwelle
des Taktsignals CLK. Ist m die Bitbreite der Befehlsbits, dann sind höchstens
n = 2m verschiedene Befehle möglich, und jeder
Befehl "i" wird durch Erregung
der zugeordneten Befehlsleitung CM-i angezeigt (mit i = 1, 2, ...
n). Ein Befehls-Enddecoder 40 hat
n Eingänge,
auf welche die Zustände
der n Befehlsleitungen CM-1:n übertragen
werden können
(der Doppelpunkt ":" steht hier und im
Folgenden für
das Wort "bis").
-
Beim
Stand der Technik werden die Zustände aller n Befehlsleitungen
immer direkt an die n Eingänge
des Enddecoders 40 übertragen.
Somit bewirkt jeder Befehl unmittelbar die Aktivierung eines individuell
zugeordneten Eingangs des Enddecoders 40, der daraufhin
alle diejenigen Befähigungsleitungen
ENL erregt, die zu den Steuerelementen für die Ausführung des betreffenden Befehls
führen.
Wenn zu diesem Zeitpunkt eine Operation im DRAM ein kritisches Stadium
durchläuft,
welches die Ausführung des
Befehls nicht duldet, sorgt beim Stand der Technik ein Blockadesignal
dafür,
dass die betreffenden Steuerelemente nicht auf die Erregung der
zugeordneten Befähigungsleitungen
ansprechen. Der Befehl wird also ignoriert und verworfen.
-
Bei
der erfindungsgemäßen Ausbildung
des DRAM 10 nach 1 ist zwischen
jeder Befehlsleitung CM-i und dem zugeordneten Eingang des Enddecoders 40 jeweils
eine Pufferschaltung 50-i eingefügt. Jede Pufferschaltung 50-i empfängt neben
dem Signal der zugeordneten Befehlsleitung CM-i das Taktsignal CLK
und eine Zustandsanzeige DST, die aus der Steuereinrichtung 12 abgeleitet
werden. Die Zustandsanzeige DST gibt Aufschluss darüber, ob
im DRAN momentan ein kritischer Betriebszustand besteht, mit dem
die Ausführung
eines neuen Befehls in Konflikt geraten könnte. Vorzugsweise wird die
Zustandsanzeige DST durch Aktivierung jeweils bestimmter Anzeigeleitungen
in einem Leitungsbündel gegeben,
womit auch angezeigt wird, um welche Art von kritischem Betriebszustand
es sich handelt.
-
In
jeder Pufferschaltung 50-i wird die Zustandsanzeige DST
mit dem Zustand ("aktiviert" oder "nicht-aktiviert") der zugeordneten
Befehlsleitung CM-i logisch verknüpft, um festzustellen, ob sich
ein durch Aktivierung dieser Befehlsleitung angezeigter Befehl mit
dem durch DST angezeigten Betriebszustand des DRAN verträgt. Falls
nein, wenn also ein Konflikt zu befürchten ist, wird der Befehl
als "unzulässiger Befehl" gedeutet, und diese
Tatsache wird in der Pufferschaltung gespeichert, vorzugsweise durch Setzen
eines Flipflops. Sobald DST anzeigt, dass das DRAN in einem Betriebszustand
ist, der sich mit der Ausführung
des bisher unzulässigen
Befehls verträgt,
wird der Zustand des Flipflops abgefragt und als Aktivierungsimpuls
auf den zugeordneten Enddecoder-Eingang übertragen. Konfliktfälle werden
also nicht wie beim Stand der Technik durch Verwerfen eines momentan
unzulässigen
Befehls vermieden, sondern durch Pufferung der Befehlsweitergabe.
-
Ein
Beispiel für
die schaltungstechnische Realisierung einer geeigneten Pufferschaltung 50-i ist
in der 2 gezeigt. Die Pufferschaltung 50-i enthält verschiedene
logische Schaltungen, die binäre Signale
mit den Logikwerten (Binärzuständen) "0" bzw. "1" empfangen,
verarbeiten und abgeben. Für die
gezeigte Pufferschaltung sei folgendes angenommen: Das Taktsignal
CLK wechselt von Halbwelle zu Halbwelle zwischen den beiden Logikwerten "0" und "1".
Wenn der Vordecoder 30 (1) das Erscheinen des
Befehls i decodiert, geht die zugeordnete Befehlsleitung CM-i für die Dauer
einer "1"-Halbwelle des Taktsignals
CLK in ihren "aktivierten" Zustand, der dem
Logikwert "1" entspricht; ansonsten
ist die Befehlsleitung auf dem Logikwert "0".
-
Die
Pufferschaltung 50-i enthält eine Auswerteschaltung 51-i,
welche die DRAN-Zustandsanzeige DST empfängt und analysiert. Die Auswerteschaltung 51-i erkennt
aus den Bits der DRAM-Zustandsanzeige
DST alle diejenigen Zustände
des DRAM 10, die sich mit einer Ausführung des Befehls i nicht vertragen.
Für die
Dauer der Existenz eines solchen unverträglichen Zustandes ist das Ausgangssignal
A51 der Auswerteschaltung 51-i auf "1" und
bildet ein Pufferbereitschaftssignal, ansonsten ist A51 auf "0". Der Zustand des Signals A51 wird in einem
UND-Gatter 52 mit
dem Zustand der Befehlsleitung CM-i verknüpft. Nur wenn während der
Erkennung eines mit dem Befehl i unverträglichen Zustandes (A51 = "1") die Befehlsleitung CM-i auf "1" geht, also der Befehl i als ein unzulässiger Befehl
erscheint, geht das Ausgangssignal A52 des UND-Gatter 52 vorübergehend
auf "1". Die "positive" Vorderflanke dieses "1"-Impulses
setzt ein flankengetriggertes RS-Flipflop 53, so dass dessen
Ausgangssignal A53 auf "1" geht und bis auf
weiteres in diesem Zustand gehalten wird.
-
Der "1"-Zustand des Signals A53 bewahrt also
die Information, dass ein Befehl i während der Zeit seiner Unzulässigkeit
empfangen wurde, also während
eines mit diesem Befehl unverträglichen "kritischen" DRAM-Zustandes.
Dieser Befehl soll als "1"-Impuls zum Enddecoder 40 weitergegeben
werden, sobald der kritische DRAM-Zustand beendet ist. Hierzu dient
ein weiters UND-Gatter 55, dem neben dem Signal A53 die
invertierte Version des Signals A51 und das Taktsignal CLK zugeführt wird
und dessen Ausgang mit der Befehlsleitung CM-i verbunden ist. Solange
der kritische DRAN-Zustand besteht, hält A51 das UND-Gatter 55 gesperrt.
Wenn der kritische DRAM-Zustand zu Ende ist und A51 somit auf "0" gegangen ist, schaltet das UND-Gatter für die Dauer
der nächstfolgenden "1"-Halbwelle des Taktsignals CLK durch
und gibt somit den gewünschten "1" Impuls zum Enddecoder 40,
um den Befehl i ausführen
zu lassen. Dieser Impuls beginnt also mit der positiven Flanke des
Taktsignals CLK und endet mit dessen negativer Flanke.
-
Anschließend muss
das Flipflop 53 möglichst
sofort wieder zurückgesetzt
werden, um zu verhindern, dass der "1"-Impuls
am Ausgang A55 durch die nachfolgenden "1"-Halbwellen
des Taktsignals CLK wiederholt wird. Dies erledigt ein drittes UND-Gatter 54,
das die invertierte Version des Signals A51 und die invertierte
Version des Taktsignals CLK empfängt
und dessen Ausgang mit dem Rücksetzeingang
R des Flipflops 53 verbunden ist. Wenn und so lange kein
kritischer DRAN-Zustand herrscht, lässt das UND-Gatter das invertierte
Taktsignal durch, so dass das Flipflop mit jeder negativen Flanke
des Taktsignals CLK zurückgesetzt
wird. Das Flipflop bleibt also außerhalb der für einen
Befehl i kritischen DRAM-Betriebszustände zurückgesetzt und kann nur während eines
kritischen DRAM-Zustandes gesetzt werden, weil in dieser Zeit die
Rucksetzflanken am R-Eingang ausbleiben.
-
Bei
der in 2 gezeigten Ausführungsform einer Pufferschaltung 50-i wird
ein decodierter Befehl i auch während
der Zeit seiner Unzulässigkeit über die
Befehlsleitung CM-i zum Enddecoder übertragen. Dies schadet jedoch
nicht, wenn die Steuereinrichtung 12 des DRAM 10 wie üblich über die
bekannten Mittel verfügt,
welche die Ausführung
eines Befehls im Konfliktfall blockieren. Diese Blockademittel können jedoch
zumindest teilweise eingespart und einfach dadurch ersetzt werden,
dass man in die Befehlsleitung CM-i der Pufferschaltung 50-i einen Schalter
einfügt,
wie in 3 gezeigt.
-
Gemäß der 3 ist
im Wege der Befehlsleitung CM-i zwischen dem Punkt, wo sich der
Abzweig zum UND-Gatter 52 befindet, und dem Punkt, wo der Ausgang
A55 des UND-Gatters 55 angeschlossen ist, ein Schalter 56 eingefügt, der
auf das Ausgangssignal A51 der Auswerteschaltung 51-i anspricht.
Der Schalter 56 ist normalerweise, wenn kein für den Befehl
kritischer DRAM-Zustand vorliegt und somit das Signal A51 den Logikwert "0" hat, in seiner gestrichelt gezeichneten
geschlossenen Stellung, so dass ein Befehl i zum Enddecoder 40 (1)
durchgeleitet wird. Sobald und so lange der kritische DRAN-Zustand
erkannt wird und das Signal A51 demzufolge auf "1" ist,
ist der Schalter 56 geöffnet,
so dass ein während
des kritischen Zustandes decodierter Befehl i nicht zum Enddecoder 40 gelangt
und infolgedessen nicht ausgeführt
wird. Ansonsten arbeitet die Schaltung nach 3 genau
so, wie es oben anhand der 2 beschrieben
wurde. Das heißt,
der zurückgehaltene
Befehl i wird sofort nach dem Ende des kritischen DRAN-Zustandes
nachgeholt.
-
Vorzugsweise
sind alle in 1 gezeigte Pufferschaltungen 50-1:n
einander gleich ausgebildet, mit Ausnahme der jeweiligen Auswerteschaltung 51-i,
die dem jeweiligen Befehl i speziell angepasst ist. Das heißt, jede
Auswerteschaltung 51-i ist so programmiert, dass sie die
Zustandsanzeige DST nur dann mit einer "1" beantwortet,
wenn ein angezeigter DRAN-Zustand
speziell den zugeordneten Befehl nicht verträgt. In der Zustandsanzeige
DST kann sich z. B. für
alle DRAN-Zustände,
die überhaupt
mit irgendeinem Befehl konfliktreich kollidieren könnten, jeweils
eine eigens zugeordnete DST-Anzeigeleitung befinden,
die nur beim Vorliegen des betreffenden Zustandes aktiviert ist.
In diesem Fall genügt
es, in jeder Auswerteschaltung 51-i eine simple ODER-Verknüpfung genau
derjenigen "kritischen" DST-Anzeigeleitungen
vorzunehmen, die den mit dem betreffenden Befehl i unvereinbaren
DRAM-Zuständen zugeordnet
sind.
-
Wie
eingangs erwähnt,
ist einer der kritischen Betriebszustände in einem DRAM die einzuhaltende
tRAS-Zeit zwischen der Aktivierung einer Wortleitung und dem Precharge.
Während
dieser Zeit, die durch den Lauf des tRAS-Zählers angezeigt wird, darf
keine neue Wortleitungsaktivierung und auch kein Precharge erfolgen.
Somit sollten alle Pufferschaltungen, die Befehlen zugeordnet sind,
deren Ausführung
eine Wortleitungsaktivierung und/oder ein Precharge zur Folge hätte, auf
die tRAS-Anzeige ansprechen, um den betreffenden Befehl erst nach Ablauf
der tRAS-Zeit weiterzugeben bzw. zu wiederholen. Dies betrifft u.
a. den Aktivierungsbefehl (ACTIVATE), den Befehl für einen
Spaltenzugriff für
Lese- oder Schreibbetrieb (READ, WRITE), ferner den Autorefresh-Befehl
und praktisch jeden Befehl, der nach der Wiedererweckung des extern
gesteuerten Speicherbetriebs aus einem Self-Timed Refresh an das
DRAM gerichtet werden kann. Es betrifft auch eventuelle externe "Precharge"-Befehle im Falle
eines DRAM, dessen Bitleitungs-Precharge
nicht automatisch (wie beim sogenannten Auto-Precharge) erfolgt.
-
Ein
anderer kritischer Betriebszustand eines DRAM für bestimmte Befehle kann der
Lauf des tWR-Zählers
sein, der ein verfrühtes
Precharge nach dem Start der Ausführung eines Schreibbefehls
verhindert. Somit sollten alle Pufferschaltungen, die Befehlen zugeordnet
sind, deren Ausführung
eine Wortleitungsaktivierung und/oder ein Precharge zur Folge hätte, auch
auf die tWR-Anzeige ansprechen, um den betreffenden Befehl erst
nach Ablauf der tWR-Zeit weiterzugeben bzw. zu wiederholen.
-
Die
vorstehend genannten kritischen Betriebszustände und die für diese
Betriebszustände als
unzulässig
genannten Befehle sind natürlich
nur Beispiele. Es hängt
vom jeweiligen Typ der Datenspeicherschaltung und ihrer Befehlsstruktur
ab, welche Befehle während
welcher Betriebszustände
jeweils als unzulässig
gelten müssen
oder sollen. Wenn sichergestellt ist, dass der befehlsgebende externe
Controller die Spezifikationen der Datenspeicherschaltung stets
beachtet, ist es unwahrscheinlich, dass bei extern gesteuerten Betriebsabläufen ein
Befehl zu unzulässiger
Zeit gesendet wird. In solchen Fällen
kann es genügen,
die erfindungsgemäße Befehlspufferung
auf Situationen zu beschränken,
in denen ein externer Befehl einem kritischen Stadium eines intern
gesteuerten Prozesses wie z. B. des Self-Timed Refresh begegnet.
Auch diese Beschränkung
liegt im Bereich der Erfindung und kann z. B. dadurch geschehen,
dass man Pufferschaltungen nur für
diejenigen Befehle vorsieht, die zum Abbruch intern gesteuerter
Prozesse dienen könnten.
-
Hierdurch
lässt sich
der schaltungstechnische Aufwand für die Befehlspuffereinrichtung
minimieren. Alternativ oder zusätzlich
kann man dafür sorgen,
dass die Befehlspuffereinrichtung nur dann in Funktion treten kann,
wenn ein externer Befehl während
kritischer Phasen eines intern gesteuerten Prozesses erscheint.
-
Die
den in den Zeichnungen dargestellte zweistufige Struktur der Befehls-Decodiereinrichtung 30 und
auch die dargestellten Pufferschaltungen selbst sind nur Ausführungsbeispiele
für eine
mögliche
schaltungstechnische Realisierung der Erfindung.