-
Üblicherweise
tritt ein Betrag von Leerlaufzeit, die als ein „bubble" bekannt ist, an der Datenschnittstelle
einer Speichervorrichtung auf, wenn von einer Schreibübertragung
zu einer Leseübertragung umgeschaltet
wird, wobei diese auch als „W-R
turnaround bubble" Zeit
bekannt ist. Diese Leerlaufzeit rührt üblicherweise von Ressourcenkonflikten
innerhalb der Speichervorrichtung und/oder Vorrichtungsbetriebsbeschränkungen
her.
-
Speichervorrichtungsressourcenkonflikte können bestehen
aus: 1) Gemeinsamen Eingabe-/Ausgabepins oder Schaltkreisen zwischen
Lese- und Schreiboperation, wie zum Bespiel bidirektionalen Pins,
2) Gemeinsamen Datenwegen zwischen Lese- und Schreiboperation, zum
Beispiel Eingabe-/Ausgabewege,
Shifters, Spalten-Eingabe-/Ausgabeverstärker und Bitleitungen, und
3) Gemeinsamen Adress-/Steuerwegen zwischen Lese- und Schreiboperation,
zum Beispiel Spaltendecoder- oder -vordecoderlogik. Viele Speichervorrichtungen teilen
Ressourcen, um zunehmende Herstellungskosten und Komplexität zu reduzieren.
-
Vorrichtungsbetriebsbeschränkungen
können
den Spitzenstrom oder Leistungsbeschränkungen umfassen, die Anforderungen
bezüglich
der Verbrauchergewohnheiten oder der Verlässlichkeit der Speichervorrichtung
betreffen.
-
Speichervorrichtungen
haben eine W-R turnaround bubble Zeit durch Bereitstellen eines Schreibpuffers
zum Speichern von Schreibdaten und Adressinformation reduziert.
Jedoch kann ein einzelner Schreibpuffer eine Verzögerung in
einer Schreiboperation bewirken, indem das Auftreten einer Leseoperation
vor der gewünschten
Schreiboperation ermöglicht
wird. So kann ein Verwender fehlerhafte Daten empfangen, die nicht
die neuesten Schreibdaten umfassen. Komplexe Schaltkreise können erforderlich
sein, um die Datenkohärenz
sicherzustellen, wenn ein einzelner Schreibpuffer verwendet wird. Auch
kann ein einzelner Schreibpuffer nicht zum Verbessern der Datenübertragungseffizienz
in Mehrfachspeichervorrichtungskonfigurationen programmiert werden.
-
Was
daher erwünscht
ist, ist die Schaffung einer Speichervorrichtung, die eine verbesserte
Nutzung der Verbindungen innerhalb der betriebsbedingten Rahmenbedingungen
bei geringen Vorrichtungsmehrkosten und bei geringer Komplexität bereitstellt.
Insbesondere ist es wünschenswert,
dass die Speichervorrichtung eine W-R turnaround bubble Zeit ohne
zusätzliche
komplexe Schaltkreise reduziert. Die Speichervorrichtung sollte
auch leicht an Mehrfachspeichervorrichtungssystemkonfigurationen
anpassbar sein. Weiterhin ist ein Lese- und Schreiboperationsverfahren
wünschenswert,
dass 1) einen kleineren Schreibadressenpuffer 2) eine höhere Speicherarray-Ausnutzung
und 3) eine reduzierte oder vereinfachte Ablauf- oder Datenkohärenzlogik gestattet.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird eine Speichervorrichtung und ein
System bereitgestellt, dass eine frühe Leseoperation nach einer
oder mehreren Schreiboperationen gestattet. Eine Speichervorrichtung
umfasst eine Schnittstelle, ein erstes Speicherarray und ein zweites
Speicherarray. Eine erste Verbindungsstruktur ist an die Schnittstelle
und das erste Datenspeicher-Array gekoppelt. Die erste Verbindungsstruktur überträgt erste
Daten zwischen der Schnittstelle und dem ersten Speicherarray. Eine
zweite Verbindungsstruktur ist an die Schnittstelle und das zweite
Speicherarray gekoppelt. Die zweite Verbindungsstruktur überträgt zweite
Daten zwischen der Schnittstelle und dem zweiten Speicherarray.
Die ersten Daten werden über
die erste Verbindungsstruktur in Antwort auf einen ersten an der
Schnittstelle empfangenen Befehl während eines ersten Zeitabschnitts übertragen.
Die zweiten Daten werden über
die zweite Verbindungsstruktur in Antwort auf einen zweiten an der
Schnittstelle empfangenen Befehl während des ersten Zeitabschnitts übertragen.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung umfasst eine Speichervorrichtung: eine
Schnittstelle zum Empfangen einer ersten Schreibadresse, ersten
Schreibdaten und einer Leseadresse; und ein erstes mit einem ersten
Datenweg und einem ersten Adressweg gekoppeltes Speicherarray, und
ein zweites mit einem zweiten Datenweg und einem zweiten Adressweg
gekoppeltes Speicherarray, wobei die ersten Schreibdaten auf dem
ersten Datenweg in Antwort auf die erste auf dem ersten Adressweg
bereitgestellte Schreibadresse und Lesedaten auf dem zweiten Datenweg
in Antwort auf die auf dem zweiten Adressweg bereitgestellte Leseadresse
bereitgestellt werden, wobei die ersten Schreibdaten auf dem ersten
Datenweg vorliegen, wenn die Lesedaten auf dem zweiten Datenweg
vorliegen.
-
In
einer weiteren Ausführungsform
umfasst die erfindungsgemäße Speichervorrichtung
weiterhin eine externe, mit der Schnittstelle gekoppelte Verbindung
zum Bereitstellen einer ersten, eine den ersten Schreibdaten zugeordnete
Schreiboperation anzeigenden Steuerinformation, und einer zweiten,
eine der Leseadresse zugeordneten Leseoperation anzeigenden Steuerinformation,
wobei die erste Steuerinformation der zweiten Steuerinformation
vorangeht.
-
In
einer vorteilhaften Ausführungsform
der Erfindung stellt die externe Verbindung eine dritte, eine zweiten
Schreibdaten zugeordnete Schreiboperation anzeigende Steuerinformation
bereit, wobei die erste Steuerinformation und die dritte Steuerinformation
der zweiten Steuerinformation vorangehen.
-
In
einer bevorzugten Ausführungsform
der erfindungsgemäßen Speichervorrichtung
ist der erste Datenweg unabhängig
von dem zweiten Datenweg.
-
In
einer weiteren vorteilhaften Ausführungsform der erfindungsgemäßen Speichervorrichtung
ist der erste Adressweg unabhängig
von dem zweiten Adressweg.
-
In
einer weiteren Ausführungsform
der Erfindung umfasst der erste Datenweg eine erste Gruppe von Signalleitungen
zum Bereitstellen von Daten und der zweite Datenweg eine zweite
Gruppe von Signalleitungen zum Bereitstellen von Daten.
-
In
einer weiteren bevorzugten Ausführungsform
der erfindungsgemäßen Speichervorrichtung umfasst
der erste Datenweg einen ersten Eingabe/Ausgabeverstärker und
der zweite Datenweg einen zweiten Eingabe/Ausgabeverstärker.
-
In
einer anderen weiteren Ausführungsform der
erfindungsgemäßen Speichervorrichtung
umfasst der erste Adressweg einen ersten Spaltenvordecoder und der
zweite Adressweg einen zweiten Spaltenvordecoder.
-
In
einer bevorzugten Ausführungsform
der erfindungsgemäßen Speichervorrichtung
umfasst der erste Adressweg einen ersten Spaltendecoder und der
zweite Adressweg einen zweiten Spaltendecoder.
-
In
einer anderen bevorzugten Ausführungsform
der erfindungsgemäßen Speichervorrichtung umfassen
das erste und das zweite Speicherarray Speicherarrays mit dynamischen
Speicher mit wahlfreiem Zugriff („DRAM").
-
Diese
und andere Ausführungsformen
der vorliegenden Erfindung ebenso wie andere Aspekte und Vorteile
werden detaillierter in Verbindung mit den Figuren, der detaillierten
Beschreibung und den folgenden Ansprüchen beschrieben.
-
1 ist
ein Blockdiagramm eines digitalen Systems gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
2 ist
ein Blockdiagramm einer Speichervorrichtung, die eine frühe Leseoperation
nach einer Schreiboperation gemäß einer
Ausführungsform
der vorliegenden Erfindung erlaubt;
-
3 ist
ein Blockdiagramm eines Speicherkerns mit einem unabhängigen Datenweg
und einem Adressweg gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
4 ist
ein detailliertes Blockdiagramm eines Schaltschemas, das in 3 gezeigt
ist, gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
5 ist
ein Flussdiagramm eines Frühes-Lesen-Nach-Schreiben-Verfahrens gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
6 ist
ein Zeitdiagramm einer Schreiboperation und einer Leseoperation;
-
7 ist
ein Zeitdiagramm einer frühen
Leseoperation nach einer Schreiboperation gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
8 zeigt
ein Blockdiagramm einer Speichervorrichtung gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
9a ist
ein Zeitdiagramm einer typischen Speichervorrichtung;
-
9b ist
ein Zeitdiagramm der Speichervorrichtung, die in 8 gezeigt
ist;
-
10 ist
ein Blockdiagramm einer Speichervorrichtung gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
11 – 13 sind
Zeitdiagramme, die die Arbeitsweise der Speichervorrichtung zeigen,
die in 10 gezeigt ist;
-
14 ist
ein Blockdiagramm einer Speichervorrichtung gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
15 ist
ein Zeitdiagramm, das die Arbeitsweise der Speichervorrichtung zeigt,
die in 14 gezeigt ist.
-
Die
vorliegende Erfindung stellt ein frühes Lesen nach Schreiben (early
read after write "ERAW") Verfahren 500 bereit,
das in 5 gezeigt ist, welches in einem Speichersystem 50 implementiert
werden kann, das eine verbesserte Verwendung einer Verbindungsstruktur 60 zwischen
Mastervorrichtungen 10(1)–(N) und Speichervorrichtung 20(1)–(N) unterstützt, die 1 gezeigt
sind.
-
Eine
Speichervorrichtung gemäß einer
Ausführungsform
der vorliegenden Erfindung unterhält einen kontinuierlichen Datenverkehr
durch Unterstützen
einer Leseoperation, die früh
beginnen kann, während
eine oder mehrere vorangehende Schreiboperationen immer noch in
einer Ausführungsform
der vorliegenden Erfindung verarbeitet werden. Eine Leseoperation
zielt auf einen Abschnitt eines Speicherkerns ab, der einen unabhängigen Datenweg
(zum Beispiel, globale Datenleitungen und Spalten-Eingabe-/Ausgabeverstärker) und
einen unabhängigen Adressweg
(zum Beispiel separate Spaltenvordecoder und Spaltendecoder) von
denen, die durch die anstehenden Schreiboperationen verwendet werden, aufweist.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird eine Schreiboperation an einer Speichervorrichtung 20(1) durch
Geben eines WRITE (WR) Befehls auf einer Verbindungsstruktur 60 von einer
Mastervorrichtung 10(1) ausgelöst und umfasst eine Transport-Sub-Operation
und eine Rückzugs-Sub-Operation.
Diese Sub-Operationen können
individuell spezifiziert werden, indem zwei andere Befehle (PLD
und ULD) verwendet werden; in anderen Worten verursacht der WR Befehl
das Auftreten beider Sub-Operationen und die PLD und ULD Befehle
bewirken das Auftreten nur einer der Sub-Operationen.
-
Eine
Transport-Sub-Operation an Speichervorrichtung 20(1) kann
durch Geben eines PRELOAD (PLD) Befehls auf einer Verbindungsstruktur 60 von
einer Mastervorrichtung 10(1) ausgelöst werden, und umfasst ein
Empfangen von Schreibdaten von einer Verbindungsstruktur 60 und
ein Speichern von Schreibdaten in einem Puffer in einer Ausführungsform
der vorliegenden Erfindung.
-
Eine
Rückzugs-Sub-Operation
an Speichervorrichtung 20(1) kann durch Geben eines UNLOAD (ULD)
Befehls auf einer Verbindungsstruktur 60 von einer Mastervorrichtung 10(1) ausgelöst werden
und umfasst ein Übertragen
von Schreibdaten von einem Puffer zu einem Speicherkern in einer
Ausführungsform
der vorliegenden Erfindung.
-
Eine
Leseoperation an einer Speichervorrichtung 20(1) wird durch
Geben eines READ-Befehls auf einer Verbindungsstruktur 60 von
einer Mastervorrichtung 10(1) ausgelöst und umfasst ein Erhalten
von Daten von einem Speicherkern an einer Spaltenadresse und ein
Senden von Lesedaten auf einer Verbindungsstruktur 60 in
einer Ausführungsform
der vorliegenden Erfindung.
-
Eine
Aktivieren-Operation an Speichervorrichtung 20(1) wird
durch Geben eines ACTIVATE (ACT) Befehls auf einer Verbindungsstruktur 60 von einer
Mastervorrichtung 10(1) ausgelöst und umfasst ein Abtasten
einer Zeile an einer Zeilenadresse und ein Übertragen von Daten in einer
Speicherbank an einen Abtastverstärker in einer Ausführungsform
der vorliegenden Erfindung.
-
Eine
Vorladungsoperation an Speichervorrichtung 20(1) wird durch
Geben eines PRECHARGE (PRE) Befehls an einer Verbindungsstruktur 60 von einer Mastervorrichtung 10(1) ausgelöst und umfasst ein
Vorladen einer Speicherbank in einer Ausführungsform der vorliegenden
Erfindung.
-
In
einer Ausführungsform
der vorliegenden Erfindung ist eine Speichervorrichtung 10(1) eine zentrale
Prozesseinheit in einem Desktopcomputer und eine Speichervorrichtung 20(1) ist
ein Hauptspeicher, so wie ein dynamischer Speicher mit wahlfreiem
Zugriff (DRAM) in dem Desktopcomputer. In einer alternativen Ausführungsform
der vorliegenden Erfindung ist die Mastervorrichtung 10(1) ein
Speichercontroller. In alternativen Ausführungsformen der vorliegenden
Erfindung sind Mastervorrichtungen 10(1)–(N), Verbindungsstruktur 60 und
Speichervorrichtungen 20(1)–(N) in einer Prozessvorrichtung
wie einem Mainframe-Computer, einem Laptop-Computer, einem Hand-Held-Computer,
einem Personal-Digita-Assistant, einem Telefon, einem Mobiltelefon,
einem Pager, einem Drucker, einer Informationsanwendung, oder dergleichen,
enthalten. In einer Ausführungsform
der vorliegenden Erfindung sind Mastervorrichtungen 10(1)–(N) Verbindungsstruktur 60 und
Speichervorrichtungen 20(1)–(N) in einer integrierten
monolithischen Schaltung enthalten.
-
In
einer Ausführungsform
der vorliegenden Erfindung sind Mastervorrichtungen 10(1)–(N) und Speichervorrichtungen 20(1)–(N) durch
eine Verbindungsstruktur 60 gekoppelt, die eine oder mehrere Mastervorrichtungen 10(1)–(N) und
eine oder mehrere Slavevorrichtungen wie die Speichervorrichtungen 20(1)–(N) berücksichtigt.
Der Ausdruck „N" wird als eine allgemeine
Variable verwendet; ihre Verwendung soll nicht implizieren, dass
die Anzahl von Mastervorrichtungen identisch zu der Anzahl an Slavevorrichtungen
ist. In einer Ausführungsform
der vorliegenden Erfindung können
anderen Komponenten und/oder Subsysteme an eine Verbindungsstruktur 60 gekoppelt
sein, die nicht gezeigt sind. In einer Ausführungsform der vorliegenden
Erfindung ist die Verbindungsstruktur 60 eine externe Verbindungsstruktur
von Speichervorrichtungen 20(1)–(N). In einer Ausführungsform
der vorliegenden Erfindung ist die Verbindungsstruktur 60 ein
bidirektionaler Speicherbus mit Steuer- und Datensignalleitungen. In
einer anderen Ausführungsform
der vorliegenden Erfindung umfasst eine Verbindungsstruktur 60 nur Datenleitungen
oder nur Steuerleitungen. In einer weiteren anderen Ausführungsform
der vorliegenden Erfindung ist eine Verbindungsstruktur 60 ein
unidirektionaler Bus. In einer Ausführungsform der vorliegenden
Erfindung ist das Blockdiagramm von 1 anwendbar
auf chipinterne genauso wie zwischen Chip-Kommunikation.
-
2 zeigt
eine Speichervorrichtung 20(N) wie in 1 gezeigt
gemäß einer
Ausführungsform der
vorliegenden Erfindung. Speichervorrichtung 20(N) ist geeignet,
durch eine Mastervorrichtung 10(1) gelesen und beschrieben
zu werden. Eine Verbindungsstruktur 60 wird verwendet zum
Kommunizieren von Steuerinformation über Steuerleitungen 112 und
Dateninformation über
Datenleitungen 114 von dem Speichercontroller an die Speichervorrichtung 20(N).
In einer Ausführungsform
der vorliegenden Erfindung umfasst Speichervorrichtung 20(N) eine
Schnittstelle 105 zum Koppeln an eine Verbindungsstruktur 60.
In einer Ausführungsform
der vorliegenden Erfindung umfasst die Schnittstelle 105 Eingabe-/Ausgabepins.
Zum Unterstützen
solcher Kommunikation und der Speicherung von Daten umfasst eine
Speichervorrichtung 20(N) typischerweise drei Hauptfunktionsblöcke.
-
Der
erste von diesen, ein Transportblock 120, ist an eine Verbindungsstruktur 60 gekoppelt. Verbindungsstruktur 60,
die Steuersignalleitungen 112 und Datensignalleitungen 114 umfasst,
wird zum Lesen von und Schreiben in eine Speichervorrichtung 20(N) verwendet.
Verbindungsstruktur 60 stellt geeignete Steuersignale und
Daten bereit, wenn Daten in eine Speichervorrichtung 20(N) geschrieben werden
sollen. Transportblock 120 empfängt diese Signale und unternimmt
die notwenigen Handlungen zum Übertragen
dieser Information an die übrigen Abschnitte
von Speichervorrichtung 20(N). Wenn Speichervorrichtung 20(N) gelesen
wird, übermittelt Transportblock 120 Daten über Datensignalleitungen 114 in
Antwort auf Steuerinformation auf den Steuersignalleitungen 112.
Transportblock 120 umfasst eine Steuertransporteinheit 122,
die Steuerinformation über
Steuersignalleitungen 112 empfängt, und steuert eine Lesedatentransporteinheit 124 und
eine Schreibdatentransporteinheit 126 zum Unterstützen des Kommunikationsprotokolls,
das beim Übertragen von
Information über
Verbindungsstruktur 60 verwendet wird (zum Beispiel beim Übertragen
von Information zwischen Mastervorrichtung 10(1), wie etwa
einem Prozessor, und Speichervorrichtung 20(N) über Verbindungsstruktur 60,
wie etwa einem Speicherbus). In einer Ausführungsform der vorliegenden
Erfindung ist Transportblock 120 lediglich eine Leitungsführung ohne
irgendwelche aktiven Komponenten. In dieser Ausführungsform wäre Steuertransporteinheit 122 einfach
nur Leitungen, da Lesetransporteinheit 124 und Schreibdatentransporteinheit 126 keine
Steuerung erfordern würden.
Effektiv ist Transportblock 120 in einer solchen Ausführungsform
nicht implementiert. Eine andere Ausführungsform der vorliegenden
Erfindung umfasst das Konfigurieren von Verstärkern zum Bereitstellen der
Funktionalität
eines Transportblocks 120. In einer weiteren anderen Ausführungsform
der vorliegenden Erfindung umfasst ein Transportblock 120 Seriell-zu-Parallel-Konverter.
In diesem Fall steuert eine Steuerungstransporteinheit 122 die
Konversion, die durch Lesedatentransporteinheit 124 und
Schreibdatentransporteinheit 126 (die die Seriell-zu-Parallel-Konverter
wären)
durchgeführt
wird. Andere äquivalente Schaltungen
können
mit gleichem Erfolg verwendet werden.
-
Der
zweite der Hauptfunktionsblöcke
ist ein Operationsblock 130. Operationsblock 130 empfängt Steuerinformation
von Transportblock 120, genauer gesagt von Steuertransporteinheit 122,
der die erforderlichen Signale an eine Steueroperationseinheit 150 bereitstellt.
-
Kernübertragungsoperationseinheit 136 steuert
Lesedatenoperationseinheit 160 und Schreibdatenoperationseinheit 170,
wenn Daten jeweils von und an einen Speicherkern 180 übertragen
werden (d.h. Lese- und Schreiboperation). Kernübertragungsoperationseinheit 136 steuert
auch Speicherkern 180, wobei Speicherkern 180 zum
Speichern von Schreibdaten und Ausgabelesedaten veranlasst wird.
Vorladungsoperationseinheit 134 steuert Speicherkernvorladungsoperationen,
die die ausgewählten
Bänke im
Speicherkern 180 vorladen. Leseoperationseinheit 132 ist
für die
Steuerung von Speicherkernabtastoperationen vorgesehen.
-
Die
Subsysteme von Operationsblock 130 verwenden die empfangenen
Steuerinformationen zum Koordinieren der Bewegung von Steuer- und Dateninformation
zu und von Speicherkern 180. Lesedatenoperationseinheit 160 und
Schreibdatenoperationseinheit 170 enthalten Schaltkreise,
die jeweils an die Funktion spezifiziert sind und Daten von und zu
Speicherkern 180 jeweils Lesen und Schreiben. Kernübertragungsoperationseinheit 136 umfasst
einen Schaltkreis, der in Steuerspeicherkern 180 verwendet
wird, mit einem Schaltkreis zur Steuerung von Lese- und Schreiboperationen.
Kernschnittstellensignale 190 werden zum Steuern von Speicherkern 180 bereitgestellt.
-
In 2 steuert
Steueroperationseinheit 150 ein typisches Array von DRAM
Speicherzellen. In einer anderen Ausführungsform der vorliegenden
Erfindung generiert Steueroperationseinheit 150 Kernschnittstellensignale
für eine
bestimmte DRAM Speicherzellenarchitektur. Steueroperationseinheit 150 umfasst
eine Abtastoperationseinheit 132, eine Vorladungsoperationseinheit 134 und
eine Kernübertragungsoperationseinheit 136 in
einer Ausführungsform
der vorliegenden Erfindung.
-
Gelesene
Daten werden von dem dritten Funktionsblock, einem Speicherkern 180, über einen Daten-Eingabe-/Ausgabebus 185 an
eine Lesedatenoperationseinheit 160 übertragen. Von Lesedatenoperationseinheit 160 werden
die gelesenen Daten an eine Lesedatentransporteinheit 124 (und
folgend über
Datensignalleitungen 114) übertragen in Antwort auf Steuersignale
von Steueroperationseinheit 150. Lesedatenoperationseinheit 160 kann
beispielsweise aus Datenpuffern (nicht gezeigt) bestehen, die die
ausgehenden Datensignale zum Betreiben von Lesedatentransporteinheit 124 puffern.
-
Daten
werden von Schreibdatentransporteinheit 126 an Schreiboperationseinheit 170 übertragen
in Antwort auf Steuersignale von Steuertransporteinheit 122 (wenn
verwendet) und Steueroperationseinheit 150. Schreibdatenoperationseinheit 170 empfängt Schreibdaten
von Schreibdatentransporteinheit 126, die an Speicherkern 180 über Daten-Eingabe-/Ausgabebus 185 weitergeleitet
werden. Wie gezeigt ist, kann die Schreibdatenkernübertragungsoperationseinheit 136 Schreiboperationseinheit 170 steuern.
In einer Ausführungsform
der vorliegenden Erfindung umfasst Schreibdatenoperationseinheit 170 einen
Schreibdatenpuffer 100, der die ankommenden Datensignale
puffert.
-
In
einer Ausführungsform
der vorliegenden Erfindung ist Schreibdatenpuffer 100 ein
Schreibdatenpuffer variabler Tiefe, wie er in der oben erwähnten zugehörigen Patentanmeldung
mit den Titel „Memory
Device and System Having a Variable Depth Write Buffer and Preload
Method", angemeldet
am 28. Juni 2002 von den Erfindern Richard E. Perego and Frederick
A. Ware, Anwaltsnummer: RAMB-01001US0,
auf die hiermit per Referenz vollinhaltlich Bezug genommen wird.
-
Schreibdatenoperationseinheit 170 kann auch
Maskenpuffer umfassen, die von Schreibdatentransporteinheit 126 empfangene
Maskeninformation puffern. Wie bei der Datenspeicherung können diese Handlungen
unter der Steuerung von Kernübertragungsoperationseinheit 136 durchgeführt werden. Die
Maskeninformation wird dann an Speicherkern 180 über Daten-Eingabe-/Ausgabebus 185 ebenso weitergeleitet.
Die Maskeninformation wird zum gezielten Schreiben von Teilen der
Daten innerhalb des Speicherkerns verwendet. In einer anderen Ausführungsform
der vorliegenden Erfindung wird keine Maske verwendet mit dem Ergebnis,
dass bedingungslos alle Daten geschrieben werden.
-
In
einer anderen Ausführungsform
der vorliegenden Erfindung umfasst Speichervorrichtung 20(N) einen
Shifter und/oder einen Vordecoderschaltkreis.
-
Der
Schaltkreis von Steueroperationsblock 150 kann eine beliebige
Anzahl von geeigneten Konfigurationen annehmen, in teilweiser Abhängigkeit von
der Architektur von Speicherkern 180. In Ausführungsformen
der vorliegenden Erfindung können
die Speicherzellen von Speicherkern 180 Zellen eines statischen
Speichers mit wahlfreiem Zugriff (SRAM), Nur-Lese-Speicherzellen
(ROM), DRAM Zellen oder andere Typen von Speicherzellen sein. Der
Typus von Speicherzellen, die in Speicherkern 180 verwendet
ist, beeinflusst die Architektur von Steueroperationseinheit 150,
da unterschiedliche Speicherzellen häufig unterschiedliche Steuersignale
für ihre
Operation benötigen.
Operationsblock 130 umfasst so Kernübertragungsoperationsblock 150,
Lesedatenoperationseinheit 160 und Schreibdatenoperationseinheit 170.
-
In
einer Ausführungsform
der vorliegenden Erfindung umfasst Speicherkern 180N Speicherbänke mit
unabhängigen
Adress- und Datenwegen. Zum Beispiel hat Speicherbank 205(1) Adressweg 190(1) und
Datenweg 190(1). In ähnlicher
Weise weist Speicherbank 295(N) Adressweg 190(N) und
Datenweg 190(N) auf.
-
In
einer Ausführungsform
eines Speicherkerns 180 mit einer DRAM Typus Speicherzelle
können
Operationen, die in Speicherkern 180 durchgeführt werden
(hier als Kernoperation bezeichnet), in vier Hauptkategorien eingeteilt
werden: 1) Vorladen („precharge"); 2) Abtasten („sense"); 3) Lesen („read"); und 4) Schreiben
(„write").
-
3 zeigt
einen Speicherkern 180, der in 2 gezeigt
ist, in einer Ausführungsform
der vorliegenden Erfindung. Speicherkern 180 umfasst mehrere
Grundfunktionsblöcke.
Speicherkern 180 wird als mehrere Speicherbänke 205(1)–(N) umfassend
dargestellt. In jeder der Speicherbänke 205(1)–(N) sind
Speicherarrays, die beispielhaft durch Speicherarrays 210(1)–(N) dargestellt
sind, und eine Gruppe von Abtastverstärkern enthalten, die beispielhaft
durch Abtastverstärker 215(1)–(N) dargestellt
sind. Speicherarrays 210(1)–(N) sind wesentlich für die Funktion
des Speicherkerns 180, da sie tatsächlich die zu speichernden
Daten beinhalten. Speicherarrays 210(1)–(N) sind mit Abtastverstärkern 215(1)–(N) jeweils
durch Bitleitungen 220(1)–(N) verbunden. Speicherarrays 210(1)–(N) sind
in Zeilen und Spalten von Speicherzellen geordnet, von denen jede
ein Bit von Information in einer Ausführungsform der vorliegenden
Erfindung speichert. In einer anderen Ausführungsform speichert eine Speicherzelle
in einem Speicherarray 210(1)–(N) mehrere Bits Information.
-
Weiterhin
in Speicherkern 180 enthalten sind Zeilendecoder 225(1)–(N) und
Spaltendecoder 230(1)–(N).
Zeilenadressen 235(1)–(N)
werden Zeilendecodern 225(1)–(N) gemeinsam mit Zeilensteuersignalen 240(1)–(N) bereitgestellt,
die Zeilendecoder 225(1)–(N) veranlassen, eine Zeilenadresse
zwischenzuspeichern. Der Reihe nach geben Zeilendecoder 225(1)–(N) diese
Adressinformation über
Zeilenwählleitungen 245(1)–(N) an
die Speicherbänke 205(1)–(N). Auf ähnliche
Weise werden Spaltenadressen 250(1)–(N) Spaltendecodern 230(1)–(N) gemeinsam
mit Spaltensteuersignalen 255(1)–(N) bereitgestellt, die Spaltendecoder 230(1)–(N) veranlassen,
Spaltenadressen zwischenzuspeichern. Der Reihe nach geben Spaltendecoder 230(1)–(N) diese Adressinformation
an Speicherbänke 205(1)–(N) über Spaltenwählleitungen 260(1)–(N) zum
Wählen, welche
Abtastverstärker
mit den Spaltenverstärkern 265(1)–(N) verbunden
sind. Die Spaltensteuersignale 255(1)–(N) können ein Maskenbitsignal zum
selektiven Ausblenden eines individuellen Leseverstärkers gemäß eines
vorbestimmten Maskenschemas umfassen.
-
Spaltensteuersignale 245(1)–(N) werden auch
Spaltenverstärkern 265(1)–(N) bereitgestellt. Spaltenverstärker 265(1)–(N) sind
an Abtastverstärker 250(1)–(N) durch
Spalten-Eingabe-/Ausgabeleitungen 266(1)–(N) gekoppelt
und verstärken
die Datensignale, die einem Abtastverstärker 250(1)–(N) eingegeben
und von diesem ausgegeben sind. Spaltenverstärker 265(1)–(N) sind
auch an Daten-Eingabe-/Ausgabebus 185 gekoppelt,
wobei die Kommunikation von Steuersignalen von Operationsblock 130 an
verschiedene Steuerstrukturen innerhalb des Speicherkerns 180 erlaubt
wird. Die Signale, die als Kernschnittstellensignale 190 zusammengefasst sind,
wie in 2 gezeigt, umfassen so Zeilenadressen 235(1)–(N), Zeilensteuersignale 240(1)–(N), Spaltenadressen 250(1)–(N) und
Spaltensteuersignale 255(1)–(N). So besteht die Schnittstelle
zu einem Speicherkern 180 im allgemeinen aus einer Zeilenadresse,
einer Spaltenadresse, einem Datenweg und verschiedenen Steuersignalen,
die Maskensignale umfassen.
-
Wie
in 3 gezeigt ist, können Speicherkerne mehrere
Bänke aufweisen,
die gleichzeitige Zeilenoperation innerhalb eines gegebenen Kerns
in einer Ausführungsform
der vorliegenden Erfindung erlauben. Die Verwendung von mehreren
Bänken bessert
den Speicherdurchsatz durch einen gesteigerten gleichzeitigen Zugriff
und eine Reduzierung von Konflikten. Jede Bank weist ihr eigenes
Speicherarray auf und kann ihre eigene Gruppe von Abtastverstärkern aufweisen
zum Erlauben von unabhängigen
Zeilenoperationen. In einer Ausführungsform
der vorliegenden Erfindung weist jede Bank einen entsprechenden
Zeilendecoder, einen Spaltendecoder, Spaltenverstärker, Datenweg
und Adressweg auf.
-
Zugriff
auf die Information in einem Speicherarray (d.h. Lesen von Daten,
die in Speicherarrays 210(1)–(N) gespeichert sind) ist
typischerweise ein Zwei-Schritt-Prozess.
Zuerst werden Daten zwischen Speicherarray 210(1)–(N) und
der entsprechenden Gruppe von Abtastverstärkern 215(1)–(N) übertragen.
Als nächstes
werden die Daten zwischen den beteiligten Abtastverstärkern und
Spaltenverstärkern 265(1)–(N) übertragen.
Bestimmte Speicherkernarchitekturen verzichten auf die Spaltenverstärker, die Daten
werden von den Leseverstärkern
direkt zu dem Daten-Eingabe-/Ausgabebus 185 übertragen.
-
Der
erste Hauptschritt, Übertragen
von Information zwischen Speicherarrays 210(1)–(N) und
Abtastversfärkern 215(1)–(N), ist
als ein „Zeilenzugriff" bekannt und wird
in die Unteroperationen des Vorladen und des Lesen getrennt. Die
Vorladungsoperation bereitet die Abtastverstärker und Bitleitung zum Abtasten
vor, typischerweise durch ein ins Gleichgewicht bringen dieser zu
einer mittleren Referenzspannung. Während der Abtastoperation wird
die Zeilenadresse dekodiert, eine einzelne Wortleitung wird bestimmt,
die Inhalte der Zeilenzelle werden auf die Bitleitungen gelegt und
die Abtastverstärker
verstärken
den Wert auf einen vollen Wert (d.h. einen vollen digitalen Hoch-Wert),
die Bewegung der Information von dem Speicherarray zu den Abtastverstärkern vervollständigend.
Zu beachten ist die Tatsache, dass die Abtastverstärker auch
als lokale Cache dienen können,
der eine „Seite" von Daten speichert,
auf die schneller mit Spaltenlese- oder Schreibzugriffen zugegriffen
werden kann. Der zweite Hauptschritt, Übertragen von Information zwischen
Abtastverstärkern
und der Schnittstelle, wird ein „Spaltenzugriff" genannt und wird
typischerweise in einem Schritt ausgeführt. Jedoch sind Variationen
möglich,
in denen dieser Hauptschritt in zwei Unterschritte geteilt ist,
beispielsweise durch Setzen einer Pipeline-Phase an dem Ausgang
des Spaltendecoders. In diesem Fall, sollte das Pipeline-Zeitschema angepasst
werden, um die beteiligte Extrazeit zu berücksichtigen.
-
Diese
zwei Schritte führen
zu den vier Grundspeicheroperationen, die vorangehend erwähnt sind:
1) Vorladen; 2) Abtasten; 3) Lesen; und 4) Schreiben. In einer Ausführungsform
der vorliegenden Erfindung unterstützt Speicherkern 180 diese
vier Operationen (oder eine Untermenge davon). In einer anderen
Ausführungsform
können
bestimmte Speichertypen zusätzliche
Operationen benötigen zum
Unterstützen
von architekturspezifischen Merkmalen.
-
Eine
signifikante Begrenzung der effektiven Bandweite der Verbindungsstruktur 60 kann
als ein Ergebnis von der Ausgabe von bestimmten Kombinationen von
Lese- und Schreiboperationen auftreten. Zum Beispiel können die
Ausgaben von bestimmten READ-/WRITE-Befehlen Kombinationen inhärent Ineffizienzen
in der Verwendung der Verbindungsstruktur 60 einführen. Zum
Beispiel kann eine Verzögerung,
auch als eine W-R turnaround time data bubble, auftreten, wenn eine
Leseoperation auf eine Schreiboperation folgt. Weil die Schreibdaten unverzüglich auf
Verbindungsstruktur 60 und die Lesendaten nicht vor einer
späteren
Zeit vorliegen (bestimmt durch die Zugriffszeit der Vorrichtung,
die gelesen wird), tritt eine Daten bubble zwischen den Schreibdaten
und Lesedaten natürlicherweise
auf. Diese Daten bubble verschlechtert die effiziente Verwendung
von Verbindungsstruktur 60 und dem Spalten-Eingabe-/Ausgabedatenweg.
Diese Verzögerungen
sind insbesondere in Systemen von Bedeutung, die zum Aufrechterhalten
einer vollen oder beinahe vollen Verwendung von Verbindungsstruktur 60 durch
ein konstantes (oder beinahe konstantes) Übertragen von Daten zu und
von Komponenten, die damit verbunden sind, aufgebaut sind.
-
In
einer Speichervorrichtung 20, unterscheidet sich die Reihenfolge
einer Ressourcenverwendung für
Lese- und Schreiboperationen leicht. Eine Leseoperation verwendet
Ressourcen in der Reihenfolge: 1) Steuersignalleitung 112, 2)
Spalten-Eingabe-/Ausgabedatenweg (inklusive Daten-Eingabe-/Ausgabebus 185 und
Spalten-Eingabe-/Ausgabeleitung 266) und 3) Datensignalleitung 114;
während
eine Schreiboperation diese in der Reihenfolge: 1) Steuersignalleitung 112, 2)
Datensignalleitung 114 und 3) Spalten-Eingabe-/Ausgabedatenweg
(inklusive Daten-Eingabe-/Ausgabebus 185 und Spalten-Eingabe-/Ausgabeleitungen 266)
verwendet
-
Diese
Unterschiede in der Reihenfolge der Ressourcenverwendung verursachen
Ressourcenkonflikte, wenn Lese- und Schreiboperation zu einer spezifischen
Speicherbank ausgegeben werden, weil Steuersignale, die über Steuersignalleitungen 114 ausgegeben
sind, zu übertragen
der Daten relativ unverzüglich
auslösen.
So können,
wenn Datensignalleitung 114 und Spalten-Eingabe-/Ausgabedatenweg bidirektional
sind (wie es wünschenswert
ist), Konflikte zwischen Lesedaten und Schreibdaten zu einer spezifischen
Speicherbank auftreten, weil jede Übertragung die Verwendung von
diesen Ressourcen benötigt.
-
4 zeigt
die Struktur einer Kernübertragungsoperationseinheit 136,
einer Lesedatenoperationseinheit 160 und einer Schreibdatenoperationseinheit 170 für einen
Speicher, der Operationen durchführt,
die auf Steuerleitungen signalisiert werden, gemäß einer Ausführungsform
der vorliegenden Erfindung. Steuersignale 710 werden von
Steuertransporteinheit 122 empfangen. Übertragen, Steuern, Verteilen,
und Ablaufsteuern (TCDS, „transfer,
control, distribution, sequencing") Block 705 bewirkt Signale
zum Steuern des Speicherkerns 180, der Lesedatenoperationseinheit 160 und
Schreibdatenoperationseinheit 170. TCDS Block 705 wickelt Übertragung,
Steuerung, Signalverteilung und Ablaufsteuerung von Verantwortlichkeiten
ab. Signale 710 sind die flankenbasierten Steuersignale
für einen
Speicherkern 180. Signale 715 sind Signale, die
Kern 180 für
eine Dauer von Zeit angeboten werden, üblicherweise einen Aufbau aufweisen
und Erfordernisse beinhalten hinsichtlich des Übergangs von Zeiten von Signalen 710 und
durch Steuerpuffer 720 hervorgebracht werden. Für eine Leseoperation
empfängt Steuerpuffer 720 Steuersignale
direkt von TCDS Block 705 über Signale 725 durch
Multiplexer 730, der durch Signale 735 gesteuert
wird. Für
eine Schreiboperation empfängt
Steuerpuffer 720 Steuersignale von TCDS Block 705 über Schreibsteuerpuffer 740,
Signale 745, Schreibsteuerpuffer 750, Signale 755,
und Multiplexer 730 (unter der Steuerung von Signal 735).
Schreibsteuerpuffer 740 und 750 werden durch Signale 760 gesteuert.
Für Schreibsteuerpufferschreiboperationen
werden Signale 710 zeitlich festgelegt, um der Ankunft
der Operation zu Signalen 715 zu entsprechen. Schreibsteuerpuffer 740 und 750 verzögern die
Anwendung der Operationssteuerung an dem Speicherkern. Diese Verzögerung erlaubt
den Daten, die der gespeicherten Schreiboperation entsprechen, später ausgegeben
zu werden, wobei das Timing der Schreiboperation besser mit dem
der Leseoperation übereinstimmt,
wenn auf eine gezielte Speicherbank zugriffen wird. Andere Ausführungsformen
können
zusätzliche
Blöcke
verwenden zum Ändern
der Anzahl der Verzögerung.
Zum Beispiel ist ein First-in-First-Out (FIFO) oder Warteschlangenpuffer
ein bevorzugter Speichermechanismus für den Schreibdatenpuffer und
den Schreibsteuerpuffer. In einer anderen Ausführungsform der vorliegenden
Erfindung wird weniger Steuerspeicher benötigt, wenn die Steuerinformation
durch eine Rückzugs-Sub-Operation
anstelle der Transport-Sub-Operation unterstützt wird.
-
Lesedatenpuffer 765 empfängt Lesedaten auf
Signalen 770 von Speicherkern 180 zu Zeiten, die durch
Signal 771 gesteuert sind. Diese Daten werden an den Transportblock 120 über Signale 775 weitergeleitet.
In einer anderen Ausführungsform
ist ein Lesedatenspeicher 765 ein Verstärker, der Signale 775 ohne
Timing Signal 771 ausgibt. In einer weiteren anderen Ausführungsform
besteht Lesedatenoperationseinheit 160 nur aus einer Leitung.
Andere Variationen einer Lesedatenoperationseinheit 160 sind möglich in
Abhängigkeit
von spezifischen Ausgabe und Timing Charakteristiken von Speicherkern 180.
-
Schreibdatenpuffer 100 empfängt Schreibdaten
von Transportblock 120 über
Signale 781 zu Zeiten, die durch Signal 782 gesteuert
sind. In einer anderen Ausführungsform
der vorliegenden Erfindung ist Schreibdatenpuffer 100 ein
Schreibdatenpuffer variabler Tiefe. Schreibdaten werden an den Speicherkern 180 über Signale 783 weitergeleitet. Schreibmaskenpuffer 785 empfängt Maskendaten von
der Transporteinheit auf Signalen 786 zu Zeiten, die durch
Signal 787 gesteuert sind. Die Maskeninformation wird zu
Speicherkern 180 über
Signale 788 weitergeleitet. Maskendaten werden von Speicherkern 180 zum
selektiven Schreiben oder Nicht-Schreiben von Teilen der Daten innerhalb
von Speicherkern 180 benutzt. In einer anderen Ausführungsform
wird keine Maske verwendet mit dem Ergebnis, dass alle Daten bedingungslos
geschrieben werden.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird ein ERAW Verfahren 500,
das in 5 gezeigt ist, durchgeführt, zum Teil durch ERAW Software 80,
die in Mastervorrichtung 10(N) gespeichert ist. In einer
anderen Ausführungsform sind
Komponenten von ERAW Software 80 in anderen Vorrichtungen
gespeichert, die in 1 gezeigt sind. In einer Ausführungsform
der vorliegenden Erfindung wird ERAW Software 80 in einem
Artikel aus einer Herstellung gespeichert, wie beispielsweise einem
computerlesbaren Medium. Zum Beispiel wird RAW Software 80 in
einer magnetischen Festplatte, einem optischen Datenträger, CD-ROM
(Compact Disk Read-Only Memory), RAM (Random Access Memory), ROM
(Read-Only Memory) oder anderen lesbaren oder schreibbaren Datenspeichertechnologien
einfach oder in Kombination gespeichert.
-
In
einer Ausführungsform
der vorliegenden Erfindung repräsentiert
eine Logik-Box oder
ein Schritt, der in 5 dargestellt ist, eine Ausführung einer
Softwarekomponente, wie zum Beispiel eines Softwareprogramms, eines
Softwareobjekts, einer Softwarefunktion, einer Softwaresubroutine,
eines Softwareverfahrens, eines Softwarevorgangs, eines Codeteils,
einzeln oder in Kombination. In einer anderen Ausführungsform
der vorliegenden Erfindung repräsentiert
eine Logikbox oder ein Schritt eine Ausführung einer Softwareoperation,
Hardwareoperation, allein oder in Kombination. In anderen Ausführungsformen
der vorliegenden Erfindung werden weniger oder mehr Logikboxen oder
Schritte in Verfahren 500 ausgeführt.
-
Verfahren 500 veranlasst
durch eine Mastervorrichtung 10(N) ein Generieren einer
Schreibforderung an eine Speichervorrichtung, wie zum Beispiel Speichervorrichtung 20(1),
die in 1 gezeigt ist, wie durch Logikblock 501 dargestellt
ist.
-
Schreibsteuerinformation,
wie zum Beispiel eine Adressinformation, wird dann durch Mastervorrichtung 10(N) über Verbindungsstruktur 60 an
eine Zielspeichervorrichtung übermittelt,
wie durch Logikblock 502 dargestellt ist.
-
Auf ähnliche
Weise werden Schreibdaten dann durch Mastervorrichtung 10(N) über Verbindungsstruktur 60 zu
der Zielspeichervorrichtung wie durch Logikblock 503 dargestellt übertragen.
-
Die
Daten werden dann in eine erste Speicherbank geschrieben, wie zum
Beispiel Speicherbank 205(1), die in 3 dargestellt
ist; in der Zielspeichervorrichtung, wie durch Logikblock 504 dargestellt
ist. In einer anderen Ausführungsform der
vorliegenden Erfindung werden Blöcke 501 bis 503 wiederholt
zum Durchführen
mehrerer Schreiboperationen in der Zielspeicherbank.
-
Eine
Leseforderung für
eine zweite Speicherbank der Zielspeichervorrichtung, wie zum Beispiel
Speicherbank 205(N), die in 3 dargestellt
ist, wird durch Mastervorrichtung 10(N) generiert wie durch
Logikblock 505 dargestellt ist.
-
Daten
werden von der zweiten Speicherbank, wie zum Beispiel Speicherbank 205(N),
der Zielspeichervorrichtung gelesen, während Daten in die erste Speicherbank
der Zielspeichervorrichtung geschrieben werden, wie durch Logikblock 506 dargestellt
ist.
-
Verfahren 500 endet
dann.
-
6 ist
ein Zeitdiagramm, das eine W-R turnaround bubble Zeit BUB darstellt
bei Verwendung einer Speichervorrichtung, die nicht eine Schreibdatenpuffer oder
Früh-RAW
Software aufweist. In einer Ausführungsform
der vorliegenden Erfindung entsprechen vier horizontale Zellen in 6–7 5
ns.
-
In
einer Ausführungsform
der vorliegenden Erfindung werden Steuersignale, die durch Speichervorrichtung 20(N) und
insbesondere auf Steuersignalleitungen 112 empfangen sind,
die in 2 dargestellt sind, auf den zeilenmarkierten Steuersignalleitungen 112 dargestellt.
Eine dunkelgetönte
Box stellt die Dauer eines bestimmten Signals auf Steuersignalleitungen 112 dar.
Zum Beispiel stellt eine dunkelgetönte mit RD0b markierte Box
an Zeilensteuersignalleitungen 112 und Spalten 14–15 ein
READ-Befehl Signal, das auf Steuersignalleitungen 112 generiert
ist zum Lesen des Inhalts von Speicherkern 180. Dunkelgetönte Boxen
sind grauwertcodiert, um verbundenen Speicherbank 205 Adressen
zu entsprechen.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird ein READ-Befehl als RD0a, RD0b,
... RD2a, RD2b... bezeichnet; während
ein WRITE-Befehl als WR1a, WR1b, WR1c... dargestellt ist. In ähnlicher
Weise sind Spalten-Eingabe-/Ausgabesignale, die
durch Speichervorrichtung 20(N) auf Spalten-Eingabe-/Ausgabeleitungen 266(1) generiert
sind, in den zeilenmarkierten Spalten-Eingabe-/Ausgabeleitungen 266(1) bezeichnet;
während
Spalten-Eingabe-/Ausgabesignale,
die durch Speichervorrichtung 20(N) auf Spalten-Eingabe-/Ausgabeleitungen 266(N) generiert
sind, auf den zeilenmarkierten Spalten-Eingabe-/Ausgabeleitungen 226(N) dargestellt sind.
In einer Ausführungsform
der vorliegenden Erfindung werden bidirektionale Datensignale, die
auf Leitung 114 generiert sind, auf den zeilenmarkierten Datensignalleitungen 114 dargestellt.
In einer Ausführungsform
der vorliegenden Erfindung wird ein PRECHARGE Befehl als PRE0, PRE01,
PRE2, ... und ein ACTIVATION Befehl als ACT2 bezeichnet. Ein erster
ACTIVATION Befehl, ACT1, ist nicht in 6 gezeigt,
weil der Befehl vor Flanke 14 aufgetreten ist.
-
In
einer Ausführungsform
der vorliegenden Erfindung bereitet ein PRECHARAGE Befehl einen Abtastverstärker 215(1) und
Bitleitungen 220(1) zum Abtasten vor, typischerweise durch
ins Gleichgewicht bringen dieser zu einer mittleren Referenzspannung. Während der
Leseoperation wird Zeilenadresse 235(1) dekodiert, eine
einzelne Wortleitung wird festgelegt, die Inhalte der Speicherzelle
werden auf Bitleitungen 220(1) gelegt, und Abtastverstärker 215(1) verstärkt den
Wert auf einen vollen Wert (d.h. einen vollen digitalen Hoch-Wert),
was die Bewegung der Information von Speicherarray 210(1) zu
Abtastverstärker 215(1) vervollständigt. Die Übertragung
von Information auf Spalten-Eingabe-/Ausgabeleitungen 266(1) von
Abtastverstärker 215(1) an
Spaltenverstärker 265(1) ist
als „Spaltenzugriff" bekannt. Ein Lesespaltenzugriff überträgt Informationen
von einem Abtastverstärker
zu einem Spaltenverstärker
zu Datenleitungen und zu der Datenschnittstelle heraus. Ein Schreibspaltenzugriff
(ohne einen Schreibpuffer) ist der umgekehrte Fall.
-
In
einer Ausführungsform
der vorliegenden Erfindung erlaubt ein ACTIVATE Befehl einen Zugriff einer
bestimmten Speicherbank 205(1).
-
Eine
tRP Zeit ist als die Zeit zwischen dem Ende eines PRECHARGE-Befehls
auf Steuersignalleitungen 112 und dem Ende eines ACT Befehls
(an dieselbe Bank) auf Steuersignalleitungen 112 in einer Ausführungsform
der vorliegenden Erfindung definiert.
-
Eine
tCWD Zeit ist als die Zeit zwischen dem Ende eines WRITE-Befehls
auf Steuersignalleitungen 112 und dem Anfang eines Empfangens
von Schreibdaten auf Datensignalleitungen 114 in einer Ausführungsform
der vorliegenden Erfindung definiert.
-
Eine
tRCD Zeit ist als das Zeitintervall zwischen dem Ende eines ACTIVATE-Befehls und dem Ende
eines READ- oder WRITE-Befehls auf Steuersignalleitungen 112 in
einer Ausführungsform
der vorliegenden Erfindung definiert.
-
Eine
tCAC Zeit ist als das Zeitintervall zwischen dem Ende eines READ-Befehls
und dem Anfang eines Generierens von Lesedaten auf Datenleitung 114 in
einer Ausführungsform
der vorliegenden Erfindung definiert.
-
In
einer Ausführungsform
der vorliegenden Erfindung ist eine Schreiboperation für eine Speichervorrichtung 20(N) als
die Zeit zwischen dem letzten Bit definiert, das (zum Schreiben)
von einer Datenpinschnittstelle (zum Beispiel Datensignalleitungen 114)
erhalten ist, zu dem Anfang eines Spalten-Eingabe-/Ausgabezyklus (zum
Beispiel Spalten-Eingabe-/Ausgabeleitungen 266(1)). In
einer Ausführungsform
der vorliegenden Erfindung tritt eine Schreiboperation in 5 ns auf,
die ein 800 MHz Taktsignal verwendet. In einer Ausführungsform
der vorliegenden Erfindung wird eine Leseoperation für eine Speichervorrichtung 20(N) als
die Zeit definiert von einer Festlegung einer Speicherzelle in einem Speicherkern 180 bis
zum ersten (zum Lesen) von einem Datenpin erhaltenen Bit (zum Beispiel
Datensignalleitungen 114).
-
7 ist
ein Zeitdiagramm, das eine W-R turnaround bubble Zeit BUB zeigt,
die eine ERAW Software 80 verwendet. Die W-R turnaround
bubble Zeit BUB wurde von 20 ns auf ungefähr 5 ns verkürzt.
-
8 und 9 zeigen weitere Ausführungsformen der vorliegenden
Erfindung. 8 zeigt ein Blockdiagramm einer
Speichervorrichtung 850 in einer Ausführungsform der vorliegenden
Erfindung und 9b zeigt ein Zeitdiagramm einer
Speichervorrichtung 850, die in 8 gezeigt
ist. In einer Ausführungsform
der vorliegenden Erfindung entspricht Speichervorrichtung 850 einer
Speichervorrichtung 20(1) und RQ und DQE Schnittstellen
verbinden eine Verbindungsstruktur 60, die in 1 gezeigt
ist.
-
Speichervorrichtung 850 ist
an eine Schnittstelle RQ gekoppelt, die durch ein Register 800 abgetastet
und gehalten wird. In einer Ausführungsform der
vorliegenden Erfindung überträgt Schnittstelle RQ
einen Befehl an Register 800. In einer anderen Ausführungsform
werden mehrere Register 800 bis 803 verwendet
zum Verzögern
eines Ausgebens von einem Befehl auf Leitungen 820, 821, 822, 823 und 824.
Diese verzögerten
Befehle werden dekodiert zum Bereitstellen von Steuersignalen, die
Lese- und Schreibdaten befähigen,
sich zwischen der DQE Schnittstelle und den Speicherarrays zu bewegen. Eine
zweite Schnittstelle DQE überträgt Daten
an einen Eingang eines Registers DA und Schnittstelle DQE wird während einer
Leseoperation durch die Ausgabe eines Registers QA betrieben. In
einer Ausführungsform
der vorliegenden Erfindung werden Puffer 810–815 verwendet
an den Ausgängen
und Eingängen
eines Registers QA und DA und werden bedingt befähigt zum Übertragen von Lesen- oder Schreiben-Daten
von einem Punkt zu einem anderen. Register QA und DA, wie Register 800–803,
werden durch ein Taktsignal gesteuert. In einer Ausführungsform
der vorliegenden Erfindung führt
Register DA Schreibdaten durch eine interne Verbindungsstruktur
DQIa an eine Gruppe von Speicherarrays 1a(1) bis 1a(N),
oder die Gruppe von Speicherarrays 1a(1) bis Speicherarrays 1a(N) führt Lesedaten durch
eine interne Verbindungsstruktur DQIa an Register QA. In einem Taktzyklus
können
Schnittstelle DQE und Verbindungsstruktur DQIa entweder Lesedaten
oder Schreibdaten halten, aber typischerweise nicht beides.
-
Diese
Randbedingung bewirkt einen Ressourcenkonflikt. Dieser Konflikt
ist normalerweise in einer Pipeline-Vorrichtung oder einem System
gegenwärtig,
in dem zwei bidirektionale Verbindungen durch ein Pipeline-Register
getrennt sind. 9a zeigt ein Zeitdiagramm einer
typischen Lese-Nach-Schreib-Operation einer typischen Speichervorrichtung,
die das Ergebnis dieses Ressourcenkonflikts oder eine bubble darstellt.
-
Taktzyklen
werden mit „A" bis „J" bezeichnet. Einer
Befehlfolge von zwei WRITEs, zwei READs, und zwei WRITEs wird an
Speichervorrichtung 850 gerichtet. Diese werden an der
RQ Schnittstelle jeweils als „WR0,
WR1, RD2, RD3, WR4, und WR5" bezeichnet.
Aus Gründen,
die unten beschrieben sind, existiert eine Zwei-Zyklen-Lücke (Zyklen
C und D) zwischen einem WR1 Befehl und einem RD2 Befehl, als „Bubble" bezeichnet.
-
Ein
WR0 Befehl wird an einer RQ Schnittstelle während eines Zyklus A bereitgestellt.
Ein WR0 Befehl veranlasst Schreibdaten D0, die an einer DQE Schnittstelle
in Zyklus C gegenwärtig
sind, abgetastest zu werden durch ein Register DA und auf eine Verbindungsstruktur
DQIa während
Zyklus D gegeben zu werden. Daten D0 werden in die Speicherarrays
während
Zyklus D geschrieben. Ein WR0 Befehl, der an einem Ende eines Zyklus
A abgetastet wird, wird während
Zyklen B, C und D gehalten, so dass geeignete Ausgabefreigabesignale
und Registerladefreigabesignale zu der korrekten Zeit gegeben werden
können.
Eine Steuerlogik zum Generieren der geeigneten Freigabesignale ist
einem Fachmann bekannt und nicht gezeigt, um die vorliegende Ausführungsform
der vorliegenden Erfindung klar zu zeigen.
-
Ein
RD2 Befehl wird einer RQ Schnittstelle während eines Zyklus E bereitgestellt.
Ein RD2 Befehl veranlasst eines der Speicherarrays dazu, in Zyklus
F zugegriffen zu werden, und Lesedaten dazu, auf eine interne Verbindungsstruktur
DQIa ausgegeben zu werden. Diese Lesendaten werden durch Register
QA abgetastet und an Schnittstelle DQE während Zyklus G ausgegeben.
Der RD2 Befehl, der an dem Ende eines Zyklus E abgetastet ist, wird
während
Zyklen F und G gehalten, so dass die geeigneten Ausgabefreigabesignale
und ein Registerladefreigabesignale zu der korrekten Zeit gegeben
werden können.
Eine Steuerlogik zum Generieren der geeigneten Freigabesignale ist
einem Fachmann bekannt und nicht gezeigt, um die vorliegende Ausführungsform
der vorliegenden Erfindung klar zu zeigen.
-
Das
Timing, das für
einen READ-Befehl verwendet wird, bringt Lesedaten an der frühstmöglichen
Zeit hervor, wie in 9a gezeigt ist (ein Zyklus zum
Empfangen des Befehls, ein Zyklus für den Zugriff und ein Zyklus
zum Ausgeben der Daten). Lesedaten werden an Schnittstelle DQE zwei
Zyklen nachdem ein READ-Befehl an Schnittstelle RQ bereitgestellt
ist bereitgestellt.
-
Das
Timing für
einen WRITE-Befehl ist künstlich
verzögert
worden, so werden Schreibdaten an Schnittstelle DQE auch zwei Zyklen
nachdem ein Schreibbefehl an Schnittstelle RQ bereitgestellt ist bereitgestellt.
Andere Anordnungen sind möglich, aber
diese Anordnung hat einen Vorteil eines Vereinfachens einer Zuordnung
von Zeitfenstern an Schnittstellen RQ und DQE; wenn ein Befehl in
einem Zeitfenster an einer Schnittstelle RQ angeordnet ist, ist ein
entsprechendes Zeitfenster an Schnittstelle DQE verfügbar.
-
Jedoch
verwenden Lese- und Schreiboperationen zwei gemeinsame Ressourcen;
Schnittstelle DQE und Verbindungsstruktur DQIa. Verbindungsstruktur
DQIa wird zu verschiedenen Zeiten relativ zu einem Befehl an einer
Schnittstelle RQ für
zwei Operationen verwendet (im Gegensatz zu Schnittstelle DQE).
Verbindungsstruktur DQIa wird drei Zyklen nach einem WRITE-Befehl
an einer Schnittstelle RQ verwendet und einen Zyklus nach einem
READ-Befehl.
-
Weil
diese geteilte Ressource zu unterschiedlichen relativen Zeiten verwendet
wird, wird eine Zwei-Zyklen bubble (Zyklen C und D) zwischen WR1
und RD2 Befehlen an einer Schnittstelle RQ eingeführt. Diese
bubble ist zwei Zyklen E und F an einer Schnittstelle DQE versetzt
und an Zyklen H und I auf Verbindungsstruktur DQIa. Wenn Lese- und Schreiboperation
unterschiedliche Zeitsequenzen nutzen, würde ein bubble verschoben werden,
aber immer noch als eine WR-WR-RD-RD-WR-WR Befehlsserie ausgeführt werden.
-
Einige
Systeme können
zusätzliche
Zyklen auf einer externen Schnittstelle DQE erfordern, wenn ein
Controller zwischen Übertragen
und Empfangen wechselt. Dies ist nicht in 9a gezeigt,
aber die bubble(s), die durch diesen Wechsel zwischen Übertragen
und Empfangen Randbedingung erzeugt wird/werden, würde(n) zu
der Zwei-Zyklen bubble addiert werden, die oben beschrieben ist.
-
Eine
Zwei-Zyklen bubble stellt einen Durchsatzverlust für ein System
dar; eine Speichervorrichtung ist unfähig, irgendeinen Befehl in
den zwei Zeitfenstern durchzuführen.
Jedoch ist es möglich,
diese zwei Zeitfenster in einer Ausführungsform der vorliegenden
Erfindung wieder herzustellen.
-
8 zeigt
eine zweite interne Verbindungsstruktur, DQIb, die Register QA und
DA an eine zweite Gruppe von Speicherarrays 1b(1) bis Speicherarrays 1b(N) verbindet.
In einer Ausführungsform
der vorliegenden Erfindung wird eine zweite interne Verbindungsstruktur
DQIb zu sehr geringen Mehrkosten zugefügt, wenn die existieren Speicherarrays
in zwei Gruppen mit halb so vielen wie vorher geteilt werden. In
einer anderen Ausführungsform
der vorliegenden Erfindung, könnte
jedes existierende Speicherarray in zwei Hälften geteilt werden, wobei
jede Hälfte
an seine eigene interne Verbindungsstruktur verbunden ist.
-
Weil
es zwei sich gegenseitig ausschließende Ressourcen für jeden
READ- oder WRITE-Befehl gibt zum Anfordern in jedem Zyklus, wird
eine Zwei-Zyklus bubble, die in 9a gezeigt
ist, eliminiert, wie in 9b gezeigt
ist. Eine „WR0,
WR1, RD2, RD3, WR4 und WR5" Befehlssequenz
wird an Schnittstelle RQ gegeben, wie in 9b gezeigt
ist. In einer Ausführungsform
der vorliegenden Erfindung wird ein WRITE-Befehl an eine Speicherarray
Gruppe „a" gerichtet, und ein
READ-Befehl an eine Speicherarray Gruppe „b". Ein RD2 Befehl wird in einem Zeitfenster
unmittelbar nach einem WR1 Befehl überprüft. Wie 9b zeigt,
stellen zwei interne Verbindungen D0a und Q2b Daten bereit, die
im wesentlichen gleichzeitig auf Verbindungsstrukturen DQIa und
DQIb jeweils bereitgestellt werden. In einer Ausführungsform
der vorliegenden Erfindung überlappt ein
erster Zeitabschnitt zum Übertragen
von Daten D0a auf Verbindungsstruktur DQIa mit einem zweiten Zeitabschnitt
zum Übertragen
von Daten Q2b auf Verbindungsstruktur DQIb. Dies ist ein Vorteil,
der aus der Teilung von Speicherarrays in zwei Gruppen resultiert
und dem Bereitstellen von jeweils eignen internen Datenverbindungsstrukturen.
-
Wenn
eine WRITE-/READ-Befehlsfolge an dieselbe Gruppe von Speicherarrays
gerichtet wird, liegt weiterhin eine Zwei-Zyklus bubble vor. In
einer Ausführungsform
der vorliegenden Erfindung passt ein Speichercontroller die Reihenfolge
an, in der Befehle an eine Speichervorrichtung 850 übermittelt werden,
um eine Zwei-Zyklus bubble zu eliminieren.
-
In
einer Ausführungsform
der vorliegenden Erfindung unterhält ein Speichercontroller zwei
Warteschlangen von WRITE-Befehlen (und Schreibdaten), jeweils eine
für die
zwei Speicherarraygruppen der ERAW-Software 80. Wenn ein READ-Befehl
an eine erste Speicherarraygruppe gerichtet wird, übermittelt
ein Speichercontroller einen WRITE-Befehl an eine zweite Speicherarraygruppe,
und umgekehrt. Üblicherweise
ist es keine Leistungsfrage, einen WRITE-Befehl zu verzögern, solange
ein Speichercontroller eine bestimmte Schreibwarteschlange prüft, um sicherzustellen,
dass das Ausgeben eines folgenden READ-Befehls nicht eine Leseoperation an
einer Adresse einer anstehenden Schreiboperation durchzuführen versucht.
-
In
einer alternativen Ausführungsform
der vorliegenden Erfindung gleicht eine Bandbreite einer externen
Schnittstelle DQE (Anzahl von Signalen mal der Signalrate) im wesentlichen
einer Bandbreite der Verbindungsstruktur DQIa oder einer Bandbreite
der Verbindungsstruktur DQIb.
-
In
einer alternativen Ausführungsform
der vorliegenden Erfindung gleicht eine Bandbreite der externen
Schnittstelle DQE nicht einer Bandbreite der Verbindungsstruktur
DQIa oder einer Bandbreite der Verbindungsstruktur DQIb.
-
In
einer alternativen Ausführungsform
der vorliegenden Erfindung werden zwei externe Schnittstellen DQEa
und DQEb wahlweise mit entweder DQIa oder DQIb gekoppelt. In einer
Ausführungsform der
vorliegenden Erfindung sind die Bandbreiten von DQEa, DQEb, DQIa
und DQIb im wesentlichen gleich. Daher arbeiten bestimmte Speicherabschnitte mit
Zugriff in Gleichschritt (parallel) und andere Speicherabschnitte
arbeiten mit einem unabhängigen
Zugriff halber Größe.
-
In
einer Ausführungsform
der vorliegenden Erfindung erzeugt ein Speichercontroller einen
Befehl zum wahlweisen Koppeln von externen Schnittstellen an interne
Verbindungsstrukturen. In einer weiteren anderen alternativen Ausführungsform
der vorliegenden Erfindung wird externe Schnittstelle DQEa zum Lesen
und externe Schnittstelle DQEb zum Schreiben verwendet. In einer
weiteren anderen Ausführungsform
der vorliegenden Erfindung werden beide externen Schnittstellen
DQEa und DQEb für eine
parallele Lese- oder Schreiboperation verwendet.
-
In
einer Ausführungsform
der vorliegenden Erfindung sind zusätzliche Register zu den Registern DA
und QA hinzugefügt,
so dass in jede Richtung fließende Daten
verzögert
werden, um die Effizienz des Umschaltens einer externen Schnittstelle
zwischen einer Lese- und Schreiboperation zu vergrößern.
-
Wie
durch den Fachmann erkannt werden kann, ergeben sich verschiedene
Vorteile aus der Verwendung von ERAW-Software 80. Erstens
ist die Schnittstelleneffizienz bei minimalen Speichervorrichtungsmehrkosten
im Vergleich zu Speichersystemen verbessert, die keinen Schreibpuffer
oder keine ERAW-Software 80 aufweisen. Zweitens sind die Speichervorrichtungskosten
und die Mastervorrichtungskomplexität im allgemeinen für einen
Schreibpuffer verwendende Speichersysteme reduziert. Das Ausmaß der Verbesserung
hängt von
der Größe/Tiefe
des Schreibpuffers und dem Ausmaß von Umordnung ab, das benötigt wird,
um ähnliche
Gerade von Effizienz zu erreichen.
-
Für einige
Mastervorrichtungen, die Flexibilität bei der Adressierung von
Leseanforderungen oder der Anordnung während einer Schreib-/Leseumsetzung
haben, kann eine minimale zusätzliche Komplexität nötig sein,
um ERAW-Software 80 zu
unterstützen.
-
Die
realisierte Effizienzverbesserung ist eine Funktion der Rate von
Ressourcenkonflikten zwischen anfänglichem Lesen auf einer Schreib-/Leseumsetzung und
dem anstehenden Schreiben für
die Dauer gleichzeitigen Speicherbankzugriffs.
-
10 stellt
eine Speichervorrichtung 1000 entsprechend einer Ausführungsform
der vorliegenden Erfindung dar. Speichervorrichtung 1000 ist
eine DRAM-Vorrichtung mit einem Speicherkern 1002 und Speicherschnittstelle 1001.
Speicherkern 1002 umfasst eine Gruppe von Speicherbänken mit
Speicherarrays 0–3,
mit den jeweiligen Speicherarrays 0–3 zugeordneten Abtastverstärkern 0–3. Schnittstelle 1001 verbindet
die zwei Gruppen von externen Verbindungsstrukturen RQ und DQ. Eine
RQ-Verbindungsstruktur bringt Anforderungsinformationen (Befehl-, Steuer-
und Adress-Information) zu Speichervorrichtung 1000. Eine
DQ-Verbindungsstruktur bringt Dateninformationen zu und von Speichervorrichtung 1000.
Empfangslogik 1003 ist an eine DQ-Verbindungsstruktur und
Zeilenlogik 1004 und Spaltenlogik 1005 gekoppelt.
Zeilenlogik 1004 ist durch PRECH-, PBSEL-, BSENSE- und
RADR-Verbindungen
an eine Gruppe von Speicherbänken
gekoppelt. Spaltenlogik 1005 ist durch COLLAT-, CADR-,
CBSEL-, COLCYC- und WRITE-Verbindungen an Abtastverstärker gekoppelt. Übertragungslogik 1006 und
Empfangslogik 1007 sind an eine DQ-Verbindungsstruktur
und Abtastverstärker
gekoppelt. Insbesondere ist eine RD/WD-Verbindung an Übertragungslogik 1006 und
Empfangslogik 1007 gekoppelt. WE-Verbindung koppelt Empfangslogik 1007 an
Abtastverstärker.
-
Anforderungsinformation
wird durch Empfangslogik 1003 empfangen und dekodiert.
Wenn ein Anforderungsbefehl eine Zeilenoperation wie ein ACTIVATE-Befehl
(„ACT") oder ein PRECHARGE-Befehl
(„PRE") initiiert, werden
Steuer- und Adressinformationen an Zeilenlogik 1004 weitergegeben.
Wenn ein Anforderungsbefehl eine Spaltenoperation wie eine READ-Operation
(„RD") oder eine WRITE-Operation
(„WR") initiiert, dann
werden Steuer- und Adressinformationen an Spaltenlogik 1005 weitergegeben.
-
Im
Fall einer Vorladungsoperation wird eine Bankadresse in einer Anforderung
auf eine PBSEL-Verbindung gegeben und eine PRECH-Verbindung wird
mit einem High-Puls versehen, mit einer ansteigenden Flanke, die
eine ausgewählte
Bank veranlasst, vorgeladen zu werden (in einen Zustand gebracht
zu werden, in dem eine Aktivierungsoperation durchgeführt werden
kann).
-
Im
Fall einer Aktivierungsoperation wird eine Bankadresse und eine
Zeilenadresse in einer Anforderung auf eine RADR-Verbindung gegeben
und eine BSENSE-Verbindung wird mit einem Low-Puls versehen, mit
einer abfallenden Flanke, die eine ausgewählte Zeile einer ausgewählten Bank
veranlasst, aktiviert zu werden (die Information in einer ausgewählten Zeile
wird in einen zugeordneten Abtastverstärker für eine ausgewählte Bank
kopiert).
-
Im
Fall einer Leseoperation werden eine Bankadresse und eine Zeilenadresse
in einer Anforderung jeweils auf CBSEL- und CADR-Verbindungen gegeben
und COLLAT- und COLCYC-Verbindungen werden mit High-Pulsen versehen,
mit ansteigenden Flanken, die ein Zugreifen auf eine ausgewählte Spalte
eines Abtastverstärkers
einer ausgewählten Bank
und das Ausgeben auf eine interne RD/WD-Verbindung veranlassen. Übertragungslogik 1006 nimmt
diese Lesedaten auf einer internen RD/WD-Verbindung und führt sie
zu einer externen DQ-Verbindungsstruktur.
-
Im
Fall einer Schreiboperation nimmt Empfangslogik 1007 Schreibdaten
von einer externen DQ-Verbindungsstruktur und führt Schreibdaten auf eine interne
RD/WD-Verbindung. Eine Bankadresse und Spaltenadresse in einer Anforderung
werden jeweils auf CBSEL- und CADR-Verbindungen gegeben und COLLAT
und COLCYC-Verbindungen werden mit High-Pulsen versehen, mit steigenden
Flanken, die veranlassen, dass Schreibdaten auf RD/WD-Verbindungen
in einer ausgewählten
Spalte eines Abtastverstärkers
einer ausgewählten
Bank gespeichert werden. WE-Verbindungen werden für Schreibmaskeninformation
verwendet. Dies erlaubt es, dass einige Schreibdaten gespeichert
werden und einige Schreibdaten nicht gespeichert werden (die Daten
in dem Abtastverstärker
werden in einer Ausführungsform
der vorliegenden Erfindung nicht verändert). Schreibmaskeninformation
weist annähernd
das gleiche Timing wie die Schreibdaten auf.
-
11 ist
ein Zeitdiagramm, das Ereignisse auf Verbindungen der Speichervorrichtung 1000 aus 10 für eine Leseoperation
zeigt. Diese Timinggrenzen oder Intervalle können minimale Zeitabschnitte
zwischen Ereignissen auf Verbindungen beschränken. Diese Intervalle sind:
tRQ–ROW–A Intervall
zwischen einem ACT-Befehl auf einer RQ-Verbindung und einer fallenden
Flanke eines Signals auf einer BSENSE-Verbindung;
tRQ–ROW–P Intervall
zwischen einem PRE-Befehl auf einer RQ-Verbindung und einer steigenden
Flanke eines Signals auf einer PRECH-Verbindung;
tRQ–COL–R Intervall
zwischen einem RD-Befehl auf einer RQ-Verbindung und einer steigenden
Flanke eines Signals auf einer COLLAT-Verbindung;
tRQ–COL–W Intervall
zwischen einem WR-Befehl auf einer RQ-Verbindung und einer steigenden
Flanke eines Signals auf einer COLLAT-Verbindung;
tRD–DQ Intervall
zwischen Lesedaten auf einer RD/WD-Verbindung und Lesedaten auf
einer DQ-Verbindung;
tDQ–WD Intervall zwischen
Schreibdaten auf einer DQ-Verbindung und Schreibdaten auf einer RD/WD-Verbindung;
tRCD Intervall zwischen einem ACT-Befehl auf
einer RQ-Verbindung und einem RD- oder WR-Befehl auf einer RQ-Verbindungsstruktur;
tCC Intervall zwischen zwei RD-Befehlen oder
zwei WR-Befehlen auf einer RQ-Verbindung;
tRR Intervall
zwischen zwei ACT-Befehlen an unterschiedliche Bänke auf einer RQ-Verbindung;
tRC Intervall zwischen zwei ACT-Befehlen an
gleiche Bänke
auf einer RQ-Verbindung;
tPP Intervall
zwischen zwei PRE-Befehlen an unterschiedliche Bänke auf einer RQ-Verbindung;
tRC Intervall zwischen zwei PRE-Befehlen an
gleiche Bänke
auf einer RQ-Verbindung;
tRDP Intervall
zwischen RD-Befehl und PRE-Befehl auf einer RQ-Verbindung;
tWRP Intervall
zwischen WR-Befehl und PRE-Befehl auf einer RQ-Verbindung;
tCAC Intervall
zwischen RD-Befehl auf einer RQ-Verbindung und Lesedaten auf einer
DQ-Verbindung;
tCWD Intervall zwischen
WR-Befehl auf einer RQ-Verbindung und Schreibdaten auf einer DQ-Verbindung;
tCSH_i Intervall zwischen einer fallenden
Flanke eines Signals auf einer BSENSE-Verbindung und einer steigenden
Flanke eines Signals auf einer COLLAT-Verbindung;
tCLS_i Intervall zwischen einer steigenden
Flanke eines Signals auf einer COLLAT-Verbindung und einer steigenden
Flanke eines Signals auf einer COLCYC-Verbindung;
tRCD_i Intervall zwischen einer fallenden
Flanke eines Signals auf einer BSENSE-Verbindung und einer steigenden
Flanke eines Signals auf einer COLCYC-Verbindung;
tCPS_i Intervall zwischen einer fallenden
Flanke eines Signals auf einer COLLAT-Verbindung und einer steigenden
Flanke eines Signals auf einer RPECH-Verbindung;
tPC_i Intervall
zwischen einer steigenden Flanke eines Signals auf einer COLLAT-Verbindung
und der nächsten
steigenden Flanke eines Signals auf einer COLLAT-Verbindung;
tDAC_i Intervall zwischen einer steigenden
Flanke eines Signals auf einer COLLAT-Verbindung und gültigen Lesedaten
auf einer RD/WD-Verbindung;
tRAS_i Intervall zwischen einer fallenden
Flanke eines Signals auf einer BSENSE-Verbindung und einer steigenden
Flanke eines Signals auf einer PRECH-Verbindung;
tRP_i Intervall
zwischen einer steigenden Flanke eines Signals auf einer PRECH-Verbindung
und der nächsten
fallenden Flanke eines Signals auf einer BSENSE-Verbindung; und
tRC_i Intervall zwischen zwei fallenden Flanken
eines Signals auf einer BSENSE-Verbindung zur gleichen Bank.
-
In
einer Ausführungsform
der vorliegenden Erfindung kann das Auftreten eines Ereignisses
auf einer Verbindung durch zwei oder mehrere der obigen Intervalle
beschränkt
werden. In einer Ausführungsform
der vorliegenden Erfindung müssen
alle maßgeblichen
Zeitintervalle eingehalten werden, wenn zwei oder mehrere Zeitintervalle
zutreffen.
-
In
einer Ausführungsform
der vorliegenden Erfindung wird ein Signal auf einer Verbindung
um eine ansteigende oder fallende Flanke eines Signals auf einer
anderen Verbindung herum gesetzt und gehalten. Die Zeit zum Setzen
und Halten eines Signals (tSET und tHOLD Zeitintervalle) ist in den 11–13 und 15 nicht
gezeigt. Das Folgende zeigt jedoch, welche Signale von bestimmten
Verbindungen zum Setzen und Halten von Signalen auf anderen Verbindungen
verwendet werden.
-
Eine
fallende Flanke eines Signals auf einer BSENSE-Verbindung wird zum
Setzen und Halten eines Signals auf einer RADR-Verbindung benutzt. Eine
ansteigende Flanke eines Signals auf einer PRECH-Verbindung wird
zum Setzen und Halten eines Signals auf einer PBSEL-Verbindung verwendet. Eine
ansteigende Flanke eines Signals auf einer COLLAT-Verbindung wird
zum Setzen und Halten eines Signals auf CADR- und CBSEL-Verbindungen verwendet.
Eine steigende Flanke eines Signals auf einer COLCYC-Verbindung
wird zum Setzen und Halten eines Signals auf WRITE- und RD/WD-Verbindungen verwendet.
-
11 stellt
das Lesen von Information aus Speichervorrichtung 1000 dar,
bestehend aus vier Anforderungspaketen auf einer RQ-Verbindungsstruktur.
Diese Pakete enthalten einen ACT-Befehl, einen RD-Befehl, einen
RD-Befehl und einen PRE-Befehl und veranlassen eine Aktivierungsoperation,
zwei Leseoperationen und eine Vorladungsoperation zum Auftreten.
-
12 beschreibt
das Schreiben von Information in Speichervorrichtung 1000,
bestehend aus vier Anforderungspaketen auf einer RQ-Verbindungsstruktur.
Diese Pakete enthalten einen ACT-Befehl, einen ersten WR-Befehl,
einen zweiten WR-Befehl und einen PRE-Befehl und veranlassen eine
Aktivierungsoperation, zwei Schreiboperationen und eine Vorladungsoperation
zum Auftreten.
-
11 und 12 beschreiben
die Position von Lesedaten und Schreibdaten sowohl auf einer internen
RD/WD-Verbindung als auch der externen DQ-Verbindungsstruktur. Lesedaten und Schreibdaten
teilen sich die gleichen physikalischen Leitungen, sowohl innerhalb
als auch außerhalb
der Speichervorrichtung 1000. Die relativen Zeiten, zu
denen Lesedaten und Schreibdaten diese Leitungen belegen, sind jedoch
unterschiedlich (relativ zu den RD- und WR-Befehlen).
-
13 beschreibt
eine Folge von Lese- und Schreibbefehlen (RD-RD-WR-WR-RD), die auf Speichervorrichtung 1000 angewendet
werden. Um eine Ausführungsform
der vorliegenden Erfindung klar zu beschreiben, sind die ACTIVATE-
und PRECHARGE-Befehle (ACT und PRE) in 13 nicht
gezeigt, da sie den Abstand zwischen READ- und WRITE-Befehlen nicht
beeinflussen.
-
Zwei
Lesebefehle werden an Bank 0 zu den Master-Taktflanken 0 und 2 („CFM", „clock
from master") ausgegeben.
Dies führt
dazu, dass Lesedaten R0 auf einer RD/WD-Verbindung während der
ansteigenden CFM-Flanken 4 bis 7 auftreten und
auf einer DQ-Verbindungsstruktur zwischen CFM-Flanken 6 bis 10.
-
Zwei
Schreibbefehle werden an den ansteigenden CFM-Flanken 6 und 8 an
Speicherarray 2 ausgegeben. Dies erlaubt den Schreibdaten
W2, auf einer DQ-Verbindungsstruktur
zwischen den ansteigenden CFM-Flanken 11 bis 15 und
auf einer RD/WD-Verbindung zwischen den ansteigenden CFM-Flanken 15 bis 19 angenommen
zu werden.
-
Dies
sorgt für
eine Ein-CFM-Zyklus-Lücke zwischen
Lese- und Schreib-Daten auf einer DQ-Verbindungsstruktur (zwischen
ansteigenden CFM-Flanken 10 und 11), um sicherzustellen,
dass die zwei Gruppen von Treiberschaltkreisen (auf Speichervorrichtung 1000 und
auf einer Mastervorrichtung, wie einem externen Controller) sich
ohne Überlappen ein-
und ausschalten können.
-
Eine
interne Logik zum Treiben einer RD/WD-Verbindung benötigt eine ähnliche
Umschaltlücke,
die jedoch größer sein
muss – zwei CFM-Zyklen
in einer Ausführungsform
der vorliegenden Erfindung. Dies wird in der Lese-zu-Schreib-Richtung eingehalten.
-
Ein
dritter Lese-Befehl Rx wird an eine Bank „x" ausgegeben, die nicht Speicherarray
0 oder Speicherarray 2 ist und eine Bank-Konkurrenzsituation vermeidet.
Lesebefehl Rx wird an der ansteigenden CFM-Flanke 18 oder
später
ausgegeben, um sicherzustellen, dass zumindest eine 2-Zyklus-Umschaltlücke auf
einer RD/WD-Verbindung zwischen einem Ende von W2-Schreibdaten und
einem Beginn von Rx-Lesedaten besteht.
-
Als
ein Ergebnis besteht eine 9-CFM-Zyklus-Lücke zwischen Lese- und Schreibdaten
auf einer DQ-Verbindungsstruktur, die größer als ein Zyklus ist, der
für eine
Umschalt-Lücke
benötigt
wird. Dies wird den Durchsatz der Speichervorrichtung 1000 in
einer Ausführungsform
der vorliegenden Erfindung reduzieren.
-
14 zeigt,
wie dieser Durchsatzverlust mit einer Speichervorrichtung 1400 mit
geteilten Bänken vermieden
werden kann. In einer Ausführungsform der
vorliegenden Erfindung ist Speichervorrichtung 1400 ein
DRAM mit Schnittstellenschaltkreisen 1403, die an DRAM-Kerne 1401 und 1402 gekoppelt
sind. In einer Ausführungsform
der vorliegenden Erfindung umfasst DRAM-Kern 1401 eine
Speicherbankgruppe B mit Speicherarrays und zugeordneten Abtastverstärkern, und
DRAM-Kern 1402 umfasst eine Speicherbankgruppe A mit Speicherarrays
und zugeordneten Abtastverstärkern.
In einer Ausführungsform
der vorliegenden Erfindung befinden sich gradzahlige Bänke in Bankgruppe
A und ungradzahlige Bänke
in Bankgruppe B. Jede Speicherbankgruppe wird eine Gruppe von Verbindungen
zum Kommunizieren mit Schnittstellenschaltkreisen 1403 haben (die
Buchstaben „a" und „b" sind an jede Verbindung angehängt).
-
Schnittstellenschaltkreise 1403 umfassen
an eine RQ-Verbindungsstruktur gekoppelte Empfangslogik 1404 und Übertragungslogik 1408 und
Empfangslogik 1409, gekoppelt an eine DQ-Verbindungsstruktur.
Empfangslogik 1404 ist an Zeilenlogik 1405 und
Spaltenlogik 1406 gekoppelt. Übertragungslogik 1408 ist
an einen Multiplexer 1407 (mux) gekoppelt. Multiplexer 1407 wählt Lesedaten
aus einer bestimmten Bankgruppe in Antwort auf ein Bank-Adress-Bit.
Empfangslogik 1409 ist an Verstärker 1410a–b gekoppelt,
die Verbindungen RDa/WDa, RDb/WDb, WEa und WEb betreiben. In einer
Ausführungsform
der vorliegenden Erfindung ist nur einer der Verstärker 1410a oder 1410b in
Antwort auf ein Bank-Adress-Bit
freigegeben.
-
Schnittstellenschaltkreise 1403 betreiben zwei
Gruppen von Verbindungen. Spaltenlogik 1405 ist durch PRECHa-,
PBSELa-, BSENSEa- und RADRa- Verbindungen
an Speicherbankgruppe A gekoppelt und durch PRECHb-, PBSELb-, BSENSEb-
und RADRb-Verbindungen an Speicherbankgruppe B gekoppelt. Auf ähnliche
Weise ist Spaltenlogik 1406 durch COLLATa-, CADRa-, CBSELa-,
COLCYCa- und WRITEa-Verbindungen an Speicherbankgruppe A gekoppelt
und durch COLLATb-, CADRb-, CBSELb-, COLCYCb-, und WRITEb-Verbindungen an Speicherbankgruppe
B gekoppelt. WEa- und WEb-Verbindungen
sind an Empfangslogik 1409 gekoppelt. Verstärker 1410a ist
an Empfangslogik 1409 und RDa/WDa-Verbindung gekoppelt.
Verstärker 1410b ist
an Empfangslogik 1409 und RDb/WDb-Verbindung gekoppelt.
Schnittstellenschaltkreise 1403 wählen Lesedaten aus den RDa/WDa-
und RDb/WDb-Verbindungen unter Verwendung eines Multiplexens 1407 aus.
Dies stellt einen sehr geringen Overhead im Schaltungsbereich dar,
erlaubt allerdings eine Möglichkeit
zur Reduzierung einer oben beschriebenen Schreib-Lese-Lücke.
-
15 stellt
ein Zeitdiagramm und einen Betrieb von Speichervorrichtung 1400 mit
geteilten Speicherbänken
dar. Zwei Gruppen von RD/WD-Verbindungen erlauben es, Schreibdaten
auf RDa/WDa an gradzahlige Bänke
zur Speicherung zu senden, und eine RDb/WDb-Verbindung ist verfügbar zum Lesen
von Daten aus ungradzahligen Bänken.
-
Daher
sind Lesebefehle an ungradzahlige Speicherarrays 3 und 5 zu den
CFM-Zyklen 10, 12, 14 und 16 vorgesehen.
Dies bewirkt das Erscheinen der Lesedaten R3 und R5 auf RDb/WDb-Verbindungen
während
der ansteigenden CFM-Flanken 14 bis 21 und auf
einer DQ-Verbindungsstruktur zwischen CFM-Flanken 16 bis 24.
-
In
dieser Ausführungsform
der vorliegenden Erfindung wird eine Ein-CFM-Zyklus-Lücke zwischen Schreib- und Lesedaten
auf einer DQ-Verbindungsstruktur gebildet (zwischen ansteigenden
CFM-Flanken 15 und 16), um sicherzustellen, dass
die zwei Gruppen von Treiberschaltkreisen (auf einer Speichervorrichtung
und auf einer Mastervorrichtung, wie einem Controller) sich ohne Überlappen
ein- und ausschalten können.
-
Ein
dritter Lesebefehl Rx wird an Bank „x" ausgegeben, die sich von den Speicherarrays
0, 2, 3 und 5 unterscheidet, was eine Bank-Konkurrenzsituation vermeidet.
Lesebefehl Rx wird an der ansteigenden CFM-Flanke 18 oder
später
ausgegeben, um sicherzustellen, dass zumindest eine Zwei-Zyklus-Umschalt-Lücke auf RDa/WDa-Verbindungen zwischen
einem Ende von Schreibdaten W2 und einem Beginn von Lesedaten Rx
besteht. Bank „x" kann gerade oder
ungerade sein (Gegenstand einer Bank-Konkurrenzsituationsbeschränkung),
da kein Umschaltproblem auf einer RDb/WDb-Verbindung zwischen R5
Lesedaten und Rx Lesedaten bestehen wird, wenn „x" ungerade ist.
-
Als
ein Ergebnis wurde eine Schreib-Lese-Lücke auf einer DQ-Verbindungsstruktur
zu einem CFM-Zyklus reduziert, einem Minimum für Treiberschaltkreisumschalten
in einer Ausführungsform
der vorliegenden Erfindung. In einer Ausführungsform der vorliegenden
Erfindung werden vier Lesebefehle sofort nach zwei Schreibbefehlen
an eine Bankgruppe ausgegeben, die nicht durch die Schreibbefehle benutzt
wird.
-
Die
vorstehende Beschreibung der bevorzugten Ausführungsform der vorliegenden
Erfindung wurde für
die Zwecke der Darstellung und Beschreibung vorgesehen. Sie ist
nicht als abschließend
vorgesehen, oder um die Erfindung auf die genauen offenbarten Formen
zu beschränken.
Offensichtlich werden viele Modifikationen und Abwandlungen für den fachkundigen
Anwender klar sein. Die Ausführungsformen
wurden ausgewählt
und beschrieben; um die Prinzipien der Erfindung und ihrer praktischen Anwendungen
bestens zu beschreiben, wodurch andere Fachleute in die Lage versetzt
werden, die Erfindung für
verschiedene Ausführungsformen
und mit den verschiedenen Abwandlungen zu verstehen, die für den besonderen
Zweck vorgesehen sein können. Es
ist vorgesehen, dass der Umfang der Erfindung durch die folgenden
Ansprüche
und ihre Äquivalente definiert
wird.