-
GEBIET DER
ERFINDUNG
-
Diese Erfindung bezieht sich allgemein
auf Speicherschaltungen und insbesondere auf Speicherschaltungen,
wie sie im Oberbegriff von Anspruch 1 oder Anspruch 6 definiert
sind, sowie auf ein Verfahren, wie es im Oberbegriff von Anspruch
11 definiert ist.
-
HINTERGRUND
DER ERFINDUNG
-
Dynamische Schreib-Lese-Speicherschaltungen
(DRAMs) werden in Computern und anderen elektronischen Maschinen
verwendet, die eine vorübergehende
Speicherung von Daten erfordern. Diese Schaltungen besitzen gegenüber anderen
Speicherschaltungstypen Vorteile dahingehend, dass sie die höchste Speicherzellendichte
bei gegebener Halbleiterfläche,
verhältnismäßig niedrige
Kosten pro gespeichertes Datenbit und verhältnismäßig hohe Geschwindigkeit schaffen.
-
Sowohl die Größe als auch die Betriebsgeschwindigkeit
von DRAMs ist gestiegen, um sie an die Anforderungen von Systemkonstrukteuren
anzupassen, die moderne Mikroprozessoren verwenden, die häufig Taktraten über 100
MHz haben. Tatsächlich
steigt die Anzahl der Speicherzellen in der integrierten Schaltung mit
jeder neuen DRAM-Generation um einen Faktor vier. Im Bemühen, Systeme
zu versorgen, die mehr und schnellere Daten fordern, ist die Industrie
zu DRAMs übergegangen,
die die Daten-, Adressen- und Steuersignalübertragung mit einem Taktsignal
synchronisieren, das typischerweise an den Mikroprozessor gebunden ist,
falls das System ein Computer ist.
-
Obgleich es wünschenswert ist, die Funktion
des Speichers an einen externen Takt zu binden, um die Datenübertragung
zu beschleunigen und die Dateneingabe und -ausgabe zu synchronisieren,
erschweren es die Komplexität
des Matrixzugriffs und die parasitären Lenkungskapazitäten wegen
der Größe der Schaltungen,
auf die zugegriffen werden muss, um Daten in einem DRAM zu speichern
oder aus ihm wiederzugewinnen, der Speicherschaltung, auf jeden
Zyklus eines Hochfrequenztakts zu reagieren. Eine Lösung für dieses Problem
ist es, eine Speicherbetriebsverzögerung um eine gegebene Anzahl
von Zyklen zuzulassen, den Speicher aber schließlich Daten in dem wie von
dem Systemkonstrukteur gewünschten
Taktzyklus speichern oder wiedergewinnen zu lassen. Diese Verzögerung in
synchronen DRAMs wird als "Latenzzeit" bezeichnet. Es ist
eine übliche
Konstruktionspraxis, dass die Latenzzeit der Speicherschaltung durch
den Systemkonstrukteur z. B. je nach Betriebsfrequenz des Mikroprozessors,
auf dem ein Computersystem beruht, typisch in Inkrementen von 1,
2, 3 oder 4 Taktzyklen wählbar
ist.
-
Das herkömmliche Verfahren zur Implementierung
der Latenzzeit in Speicherschaltungen war in der Vergangenheit,
in die Eingangs/Ausgangs-Datenpfade Speichenegister, ähnlich D-Flipflops,
einzuführen.
Beispielsweise werden in jedem der Ausgangsdatenpfade der Speicherschaltung
zwei Register angeordnet, falls die Latenzzeitanforderung des Systems
für den
Empfang der Lesedaten drei Systemtaktzyklen beträgt (da die Daten während eines
Zyklus einen Leseverstärker
belegen, ist die Latenzzeit drei). Bei einer Systemlatenzzeit von
zwei ist lediglich ein Register pro Datenpfad erforderlich. Die
Latenzzeit in Bezug auf die Schreibfunktion wird durch getrennte
Register in dem Eingangsdatenpfad erzielt. Der Speicherschaltungskonstrukteur
macht die Latenzzeit dadurch wählbar,
dass er eine Schaltungsanordnung vorsieht, die einfach mehr Register
in den Datenpfad aufnimmt, um die Latenzzeit der Speicherschaltung
zu erhöhen,
oder indem er eine Menge von Registern umgeht, falls weniger Latenzzeit
erreichbar ist.
-
Obgleich die Schaltungsanordnung
zur Implementierung des herkömmlichen
Latenzzeitschemas konzeptionell einfach ist, ist sie komplex und
belegt sie mehr Chipplatz, als erwünscht ist. Beispielsweise erfordert jedes
Register etwa zehn Transistoren für die Implementierung. Eine
Speicherschaltung mit 32 Datenleitungen, einer Vierzyklen-Leselatenzzeit
und einer Einzyklus-Schreiblatenzzeit würde zur Implementierung unter Verwendung
des herkömmlichen
Zugangs etwa 128 Register oder 1280 Transistoren erfordern. Eine
zusätzliche
Komplikation ist, dass jeder Datenpfad auf jedem Chip vor dem Versand
an einen Kunden sorgfältig getestet
werden sollte. Die große
Anzahl von an der Latenzschaltungsanordnung beteiligten Transistoren
wirkt sich gewiss nachteilig auf die Ausbeute aus und erhöht die Testzeit
der DRAMs. Diese Probleme motivieren die Notwendigkeit eines neuen
Zugangs zu Speicherschaltungskonstruktionen.
-
Das Dokument des Standes der Technik
EP-A-0 605 887 an Y. Watanabe offenbart eine herkömmliche Registerschaltung
zur Implementierung der Leselatenzzeit. Watanabe offenbart "dass das Register
mindestens eine Länge
von 4 Bits erfordert, um die Latenzzeit von "4" abzudecken". Watanabe offenbart
keinen Zähler zur
Zählung
von Latenzzeitzyklen oder eine gemeinsame Schaltungsanordnung für die Lese-/Schreib-Latenzzeit.
Das Dokument US-A-5.517.462 an H. Iwamoto u. a. offenbart eine Zählerschaltung
zur Zählung
von Taktimpulsen, die der Leselatenzzeit entsprechen. Iwamoto u.
a. offenbaren keinen Zähler
zur Zählung
von Latenzzeitzyklen für
die Lese- und Schreiblatenzzeit. Das Dokument US-A-5.568.445 an
C. Park u. a. offenbart eine Schaltung, in der die Schreiblatenzzeit
auf einen Wert zwischen null und einem 'n',
das gleich oder größer '2' ist,
eingestellt werden kann. Park u. a. offenbaren keine gemeinsame
Schaltungsanordnung für
die Lese-/Schreib-Latenzzeit.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
In Übereinstimmung mit der Erfindung
wird hier eine integrierte Speicherschaltung offenbart. Die integrierte
Schaltung enthält
die Merkmale des Anspruchs 1 oder die Merkmale des Anspruchs 6.
Außerdem
kann die integrierte Schaltung eine Schaltungsanordnung zum Übertragen
von Daten an die oder von der Matrix in einem Datenbündel, das
mehrere Datenbits umfasst, enthalten.
-
Ferner wird in Übereinstimmung mit der Erfindung
ein Verfahren zum Koordinieren der Eingabe und Ausgabe von Daten
zwischen einer Speicherzellenmatrix und einem Anschluss mit einem
Taktsignal offenbart. Das Verfahren enthält die Schritte des Anspruchs
11.
-
Ein Vorteil der Schaltungen und Verfahren
ist es, dass die am Übertragen
von Daten an eine oder von einer Speicherzellenmatrix beteiligte
Latenzzeit mit weni ger und einfacherer Schaltungsanordnung als in
früheren
Zugängen
bereitgestellt werden kann. Außerdem
schafft die Verwendung der Schaltungsanordnung zur Implementierung
der Latenzzeit, die sowohl für
die Lese- als auch für
die Schreibdatenpfade gemeinsam ist, wirtschaftlichere Tests der
Latenzzeitschaltungsanordnung, da weniger Datenpfade auf Defekte
geprüft
werden müssen.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Die vorstehenden Merkmale der vorliegenden
Erfindung können
umfassender aus der folgenden ausführlichen Beschreibung verstanden
werden, die in Verbindung mit der beigefügten Zeichnung zu lesen ist,
in der:
-
1 ein
Stromlaufplan einer Speicherschaltung ist, die gestapelte Register
zur Implementierung der Latenzzeit enthält;
-
2 ein
Stromlaufplan einer bevorzugten Ausführungsform eines Speicherschaltungs-Latenzzeitschemas
ist;
-
3 eine
Ergänzungsschaltung
zu der Schaltung aus 2 ist,
die die Datenbündelsteuerung
implementiert;
-
4 eine
Darstellung der Eingangsadressen für das Betriebsartregister der
bevorzugten Ausführungsform
der Schaltung aus 2 ist;
-
5 ein
Prinzipschaltbild einer Speicherschaltung ist;
-
6 ein
Abbild der Funktionen in dem in 5 gezeigten
Steuerblock ist;
-
7 ein
Zeitablaufplan für
eine Speicherschaltung während
eines Lesebefehls ist;
-
7a ein
Zeitablaufplan ist, der die Taktsignaldurchschaltung zeigt;
-
8,
die die 8a bis 8b umfasst, ein Diagramm
der Datenablaufsteuerungs-, Dateneingabe- und Datenausgabeschaltungsanordnung
für eine
Speicherschaltung ist, die ein Vorausleseschema enthält;
-
9 ein
Zeitablaufplan für
eine Speicherschaltung während
eines Schreibbefehls ist; und
-
10,
die die 10a bis 10d umfasst, ein Stromlaufplan
der Logikschaltungsanordnung zur Implementierung der variablen Latenzzeit
in einer Speicherschaltung ist.
-
AUSFÜHRLICHE
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNSFORMEN
-
1 ist
eine schematische Darstellung der Schaltungsanordnung zur Implementierung
der Latenzzeit unter Verwendung des herkömmlichen Verfahrens des Stapelns
von Registern. Die Daten werden über globale
E/A-Leitungen 102, von denen es in dieser Implementierung 128 gibt,
in die Speicherzellenmatrix 100 eingegeben oder aus ihr
entnommen. Diese Anzahl globaler E/A-Leitungen ist konsistent mit
vier Speicherzellenbänken
und einer 32 Bits breiten Eingabe/Ausgabe-Schnittstelle 104,
wie sie besonders in der 64-MBit- und in der 256-MBit-DRAM-Generation
zu finden ist. Natürlich
kann die Latenzzeitsteuerung unabhängig von der Matrixarchitektur
und von der Anzahl der Eingabe/Ausgabe-Leitungen in der Speicherschaltung
gemacht werden. Die hier offenbarten Merkmale sind in gleicher Weise
auf DRAMs anwendbar, die hinsichtlich der Anzahl der Bits, die in
der Breite der E/A-Schnittstelle gespeichert werden können, kleiner
und größer sind.
-
In 1 gibt
es für
jede der Leitungen 106, die zu den DQ-Datenanschlussflächen an
der Eingabe/Ausgabe-Schnittstelle 104 führen, vier globale E/A-Leitungen 102.
Wie in den US-Anmeldungen 60/021.565; 60/021.567; und 60/021.524
desselben Anmelders, die hiermit durch Literaturhinweis eingefügt sind,
beschrieben ist, ermöglicht
dies, Daten während
eines Lesebefehls in Vierergruppen vorauszulesen. Die Daten an den
globalen E/A-Leitungen 102 werden durch die Schaltungsanordnung
im Block 108 sequentiell geordnet und über die Leselatenzzeitregister 110 gelenkt.
Die Leselatenzzeitregister 110 sind in 1 in der Weise konfiguriert, dass sie
zwischen einem und vier Latenzzeittaktzyklen schaffen. Die Größe der Latenzzeit wird
durch den Systemkonstrukteur gewählt,
indem er Daten in ein Betriebsarteinstellregister an andere Stelle in
der integrierten Schaltung eingibt. Beispielsweise wird die Latenzzeitauswahl
entlang einer der vier Leitungen 114 an den Leselatenzzeit-Steuerblock 112 in 1 übermittelt. Daraufhin aktiviert
der Leselatenzzeit-Steuerblock 112 die Anzahl der Registersätze in den
Leselatenzzeitregistern 110, um die gewünschte Latenzzeit zu erzeugen.
Beispielsweise umgehen die Daten auf den Leitungen 106 alle
Registersätze,
falls eine Latenzzeit von eins gewünscht ist. Falls eine Latenzzeit
von zwei gewünscht
ist, werden die Daten auf den Leitungen 106 über einen
der Registersätze
geleitet usw. Die Daten verlassen die Leselatenzzeitregister 110 und werden
auf den Leitungen 116 zum Lese-/Schreib-Steuerblock 118 geleitet,
der eine Schaltungsanordnung enthält, um die Daten über die
Lese- und Schreibzweige der Schaltung zu lenken.
-
Die Daten, die in die Speicherzellenmatrix
geschrieben werden sollen, werden an den DQ-Anschlussflächen an
der Eingabe/Ausgabe-Schnittstelle 104 übergeben und durch den Lese-/Schreib-Steuerblock 118 entlang
der Leitungen 120 zu den Schreiblatenzzeitregistern 122 gelenkt.
Der Systemkonstrukteur wählt
entweder keine Latenzzeit oder eine Latenzzeit von einem Zyklus
und gibt diesen Befehl in das oben erwähnte Betriebsarteinstellregister
ein. Die Latenzzeitinformationen von dem Betriebsarteinstellregister
treten beispielsweise auf den Leitungen 126 in den Schreiblatenzzeit-Steuerblock 124 ein.
Falls keine Schreiblatenzzeit gewünscht ist, wird der Schreiblatenzzeit-Registersatz
von den ankommenden Daten umgangen. Falls dagegen eine Schreiblatenzzeit
von eins gewünscht
ist, wird der Schreiblatenzzeit-Steuerblock 124 aktiviert,
wobei die zu schreibenden Daten entlang der Leitungen 128 über die
Register geleitet werden, wo sie im Block 108 sequentiell
geordnet und entlang der globalen E/A-Leitungen 102 in
die Speicherzellenmatrix 100 gelenkt werden.
-
Ein Nachteil der in 1 gezeigten Schaltung ist die Anzahl
der Register, die zur Implementierung der Lese- und Schreiblatenzzeitregister
erforderlich sind. Bei etwa zehn Transistoren pro Register betragen
die gesamten Transistoren, die zur Implementierung dieses Schemas
erforderlich sind, ausschließlich
der Steuerschaltungsanordnung wenigstens 1280 (3·32·10 + 1·32·10). Die große Anzahl
von Transistoren führt
zu einer Schaltung, die eine große Menge an Chipplatz belegt
und zu einer niedrigeren Ausbeute neigt, als mit weniger Transistoren
erwartet werden könnte.
Außerdem
ist die Anzahl der Operationen zum Testen der vielen an dieser Schaltung
beteiligten Datenpfade zeitaufwändig
und unwirtschaftlich. Die Behandlung der Lese- und Schreiblatenzzeiten
in verschiedenen Zweigen der Schaltung trägt lediglich zur Komplexität bei.
-
In 2 ist
eine bevorzugte Ausführungsform
der Erfindung gezeigt, die eine wesentlich einfachere Latenzzeitimplementierung
als das Schema aus 1 ist.
Beispielsweise ist lediglich einen Latenzzeitregistersatz 200 beteiligt,
wobei sowohl die Lese- als auch die Schreiblatenzzeiten von diesem
einzigen Registersatz behandelt werden können. Es wird angemerkt, dass
sich der Begriff "Latenzzeitregister", wie er zur Beschreibung
der Ausführungsformen
verwendet wird, hier auf einen Zwischenspeicher oder auf ein Flipflop
bezieht, wobei alternativ aber andere Formen einer Datenspeicher-Schaltungsanordnung
wie etwa Schieberegister oder serielle Register verwendet werden
können.
Wie in der in 1 gezeigten
Implementierung wird der gewünschte
Grad der Lese- und Schreiblatenzzeit auf der Speicherschaltungsebene
durch eine Eingabe in das Betriebsartregister 202 gewählt, das
für die
synchronen DRAMs gemeinsam ist. Die Lese- und Schreiblatenzzeitinformationen,
die die Latenzzeitdauer sowie eine Angabe, ob die Dauer für einen
Lese- oder Schreibzyklus ist, enthalten, werden von dem Betriebsartregister 202 entlang
der Leitungen 204 an den Lese-/Schreib-Latenzzeitsteuerblock 206 übertragen.
Die veränderliche
Latenzzeit, die in 1 durch
Auswahl einer Anzahl von Registersätzen erreicht wird, wird in
der Schaltung aus 2 durch
einen Zähler
in dem Lese-/Schreib-Latenzzeitsteuerblock 206 erreicht.
Beispielsweise zählt
ein veränderlicher
Rückwärtszähler im Block 206 während eines
Lesebefehls die Anzahl der in dem Bezugsartregister 202 gespeicherten
Latenzzeitzyklen rückwärts. Beispielsweise
wird an den Datenablaufsteuerungs- und Vorauslesesteuerungs-Schaltungsanordnungsblock 207 das
Signal LAT_DONE gesendet, das angibt, dass die Leselatenzzeit abgeschlossen
ist und jetzt Bits übertragen
werden können,
wenn die Latenzzeitzählung
abgeschlossen ist. Außerdem
wird ein Signal MC_CLAT an den Block 208 gesendet, so dass
in Verbindung mit dem Lesesignal und einer steigenden Flanke des
Systemtakts PB_CLK die Taktung der Latenzzeitregister 200 freigegeben
wird, um auf den Datenleitungen 211 Daten aus den Latenzzeitregistern 200 an
die DQ-Ausgangsanschlussflächen 210 zu übertragen.
Die Schreiblatenzzeit wird auf ähnliche
Weise behandelt, wobei die Daten aber anfangs an den DQ-Ausgangsanschlussflächen 210 übergeben
und daraufhin in die Latenzzeitregister 200 getaktet werden.
-
Da ein dekrementierender oder "Rückwärts"-Zähler
allgemein mit weniger Logikschaltungsanordnung als ein inkrementierender
oder "Vorwärts"-Zähler implementiert
werden kann, ist der Rückwärtszähler in
dieser Ausführungsform
bevorzugt. Für
den Fachmann auf dem Gebiet ist aber offensichtlich, dass beide
Zählerformen
effektiv verwendet werden können.
-
3 ist
eine Ergänzung
zu 2 und eine schematische
Darstellung der Datenbündel-Steuerschaltungsanordnung
für die
Speicherschaltung. Die Daten für
die Speicherschaltung werden als Bündel geschrieben oder gelesen,
d. h., in die Speicherschaltung wird eine einzige Startadresse eingegeben,
anhand deren die Speicherschaltung daraufhin eine Folge von Plätzen intern
adressiert. Je nach der eingegebenen Startadresse können einige
der nachfolgenden Zugriffe nach dem ersten Zugriff vorausgehende
sowie nachfolgende Spaltenadressen sein. Diese Folge kann in der
Weise programmiert werden, dass sie entweder einem seriellen oder
einem verschachtelten Datenbündelmuster
folgt. Nachdem der Anfangsausgabezyklus begonnen hat, erscheint
das Datenbündel
in beiden Betriebsarten ohne dazwischen liegende Zwischenräume mit
der Taktfrequenz. Die Länge
der Datenbündelfolge
kann durch den Anwender z. B. als 1-, 2-, 4- oder 8-Bit-Zugriffe
programmiert werden. Nachdem ein Lesedatenbündel, wie durch die programmierte
Datenbündellänge bestimmt ist,
abgeschlossen ist, sind die Datenausgänge in einem hochimpedanten
Zustand, bis der nächste
Lesezugriff begonnen wird.
-
In 3 werden
die Datenbündellänge sowie
weitere Informationen über
die Leitungen 300 aus dem Betriebsartregister 202 an
den Datenbündelzähl- und
Datenbündelzeitablaufsteuerschaltungsanordnungs-Block 302 übertragen.
Außerdem
enthält
der Datenbündelsteuerblock 302 einen
veränderlichen
Rückwärtszähler, um
zu bestimmen, wann die Anzahl der Taktzyklen, die der gewünschten
Datenbündellänge entsprechen,
verstrichen sind. Wenn das gewünschte
Datenbündel
aufgetreten ist, wird das Signal MC_BURST_DONE an den Taktfreigabeblock 208 gesendet,
um die Taktung der Datendurchgangsregister 210 abzuschließen. Außerdem wird
der Datenbündelzählwert BURST_CNT
an den Taktfreigabeblock 208 gesendet, wo er zum Erzeugen
des unten diskutierten Signals IC_SCLK verwendet wird.
-
4 ist
ein Diagramm 400, das das Betriebsartregister 202 der 2 und 3 darstellt. Wie oben beschrieben wurde,
kann der Anwender der Speicherschaltung die Charakteristiken wie
etwa die Latenzzeit oder die Datenbündellänge dadurch wählen, dass
er die richtigen Informationen an das Betriebsartregister liefert. Das
Betriebsartregister 400 enthält einzelne Datenbits, die
die Leselatenzzeit, einen Datenbündeltyp,
eine Datenbündellänge und
die Schreiblatenzzeit angeben. Das Betriebsarkregister 400 wird
mit einem Betriebsartregistereinstell-Befehl (MRS-Befehl) geladen,
der dadurch ausgeführt
wird, dass RAS_, CAS_ und W_ tief gehalten werden, während das
eingegebene Betriebsartwort auf den Adressenleitungen A0–A9 auf
der steigenden Flanke eines Taktsignals gültig ist. Wenn sämtliche
Bänke deaktiviert
und in ihrem Leerlaufzustand sind, wird der MRS-Befehl ausgeführt.
-
Auf den Adressenleitungen A7 und
A8 (die für
integrierte Selbsttestoperationen reserviert sind) wird eine logische
Null eingegeben, während
die Adressenleitungen A10–A11,
BA0, BA1 für
das Betriebsartregister unbedeutende Einträge sind. Die Tabelle 402 gibt
die zulässigen
logischen Zustände
für die
Betriebsartregisterbits A0–A2
bei der Bestimmung einer Datenbündellänge von
1, 2, 4 oder 8 Bits an. Die Tabelle 404 gibt an, dass ein Betriebsartregisterbit
A3 von null einen seriellen Datenbündeltyp angibt, während eine
logische Eins einen Ver schachtelungsdatenbündeltyp angibt. Die Tabelle
406 gibt die Bertriebsartregisterbits A4–A6 an, die jeweils eine Leselatenzzeit
von 1, 2, 3 und 4 bestimmen. Die Tabelle 408 gibt das Betriebsartregisterbit
A9 an, das eine Schreiblatenzzeit von null bzw. eins bestimmt. Das
Betriebsartregister wird nur dann geändert, wenn ein gültiger MRS-Befehl
eingegeben wird. Wenn die Adressen ungültig sind, bleiben vorausgehende
Inhalte des Betriebsartregisters ungeändert.
-
5 ist
ein Funktionsprinzipschaltbild der Speicherschaltung und bietet
einen Kontext für
das oben beschriebene Latenzzeit- und Datenbündelsteuerschema. Die Speicherschaltung
enthält
vier Speicherzellenmatrixbänke:
B0, B1, B2 und B3, zum Speichern von Daten. Die Daten werden auf
internen Leitungen, die durch die Leitungen 502, einen
DQ-Puffer 504 und zweiunddreißig einzelne Zuleitungsleitungen 506 repräsentiert
sind, zwischen den Bänken
und zweiunddreißig
Leitungen DQ0–DQ31 übertragen.
Bei dieser Anordnung können
auf den Leitungen 506 zweiunddreißig Datensignale gleichzeitig übertragen
werden. Wie oben beschrieben wurde, sind die hier beschriebenen
Erfindungen in gleicher Weise auf Speicherschaltungskonfigurationen
mit mehr oder weniger als vier Speicherzellenmatrizen und mit Datenpfaden,
die breiter oder schmaler als zweiunddreißig Leitungen sind, anwendbar.
Zum Beispiel sind die Latenzzeitregister 200 aus 2 typisch zwischen den Speicherzellenmatrixbänken und
dem DQ-Puffer 504 angeordnet.
-
Auf die in den Speicherzellenmatrixbänken gespeicherten
Daten wird durch zwei Taktsignale, mehrere Steuersignale sowie zeitmultiplexierte
Zeilen- und Spaltenadressensignale zugegriffen. Über den UND-Block 512 und über die
Leitungen 514 werden auf der Leitung 508 das Taktsignal
CLK und auf der Leitung 510 ein Taktfreigabesignal CKE
zum Steuerblock 516 geleitet. Mit dem Steuerblock 516 ist
ein aktiv tiefes Chipauswahlsignal CS_ auf der Leitung 518 verbunden.
Die Ausgabefreigabesignale DQM0–DQM3
auf den vier Leitungen 520 sind ebenfalls mit dem Steuerblock 516 verbunden.
Auf den mit dem Steuerblock 516 verbundenen Leitungen 522, 524 und 526 erscheinen
jeweils die Signale RAS_, CAS_ und W_. Auf den Leitungen 528 erscheinen
vierzehn Adressensignale A0– A11,
BA0 und BA1, die ebenfalls mit dem Steuerblock 516 verbunden sind.
Das Betriebsartregister 530 ist mit dem Steuerblock 516 verbunden.
Der Steuerblock 516 greift über die Leitungen 532 auf
die Daten in den Bänken
B0, B1, B2 und B3 zu.
-
Somit ist die Speicherschaltung ein
synchroner dynamischer Schreib-Lese-Speicher, der für eine Gesamtkapazität von 268.435.456
Datenbits als vier Bänke
zu 2.097.152 Wörtern
mit zweiunddreißig
Datenbits pro Wort organisiert ist. Außerdem ist die Schaltung kompatibel
zu den durch das Joint Electron Device Engineering Council (JEDEC)
festgesetzten Normen für
synchrone DRAMs. Für
den Fachmann auf dem Gebiet ist klar, dass die Speicherschaltung
und die verschiedenen Unterschaltungen, die hier beschrieben sind,
in gleicher Weise auf diskrete integrierte DRAM-Schaltungen wie
auf Speicherschaltungen, die mit einer oder mehreren anderen Schaltungen,
beispielsweise einem Mikroprozessor, auf einem einzigen Halbleiterchip
eingebettet sind, anwendbar sind.
-
6 ist
ein Abbild der Funktionen in dem Steuerblock 516 aus 5. Der MD_DECODE-Block 600 decodiert
sämtliche
in die Speicherschaltung eingegebene Befehle. Außerdem registriert der Block
während eines
MRS-Befehls die Zustände
wie etwa Datenbündellänge, Latenzzeit
und Datenstromtyp (wie etwa seriell oder verschachtelt). Der ACTV_ROW-Block 602 aktiviert
die durch die Eingaben auf den Zeilenadressenleitungen 528 in 5 gewählte Zeile. Der COL_LAT-Block 604 steuert
die Ausgabefreigabe und gibt das Ende eines internen Vorauslesebefehls
an. Der BUKST_COUNT-Block 606 zählt die Datenbündellänge rückwärts. Der
RW_CNTL-Block 608 steuert den Lese- und Schreibzyklus und
zählt die
Latenzzeit rückwärts. Er
liefert die Funktionen des Blocks 206 in 2. Der GANG_RW-Block 610 steuert
die Übertragung
der Daten in dem Vorausleseregister. Der COL_RELOAD-Block 612 inkrementiert
die y-Auswahladresse
eines 8-Bit-Datenbündels.
Der SCLK-Block 614 erzeugt anhand der Datenbündelzählung den
internen Takt. In 7a ist
z. B. der interne Takt IC_SCLK für
ein Acht-Bit-Datenbündel
gezeigt. Das Signal SCLK_ENABLE schaltet den externen Takt PB_CLK
in der Weise durch, dass sich das IC_SCLK ergibt. Wie unten beschrieben
ermöglicht
das Durchschalten des Takts den Durchfluss eines Datenbits. Der
MASK_DO_ENBL-Block 616 steuert die Datenmaskierung und
die Eingabe/Ausgabe-Freigabe. Der DATA_SEQ-Block 618 steuert
die Ablaufsteuerung der Daten von der und an die Speicherzellenmatrix.
Der TRUE-DATA-Block 620 korrigiert die Dateninversion.
Der REF_CNTL-Block 622 zeitmultiplexiert die Auffrischadressen
mit dem Takt SLFR. Der Takt SLFR ist ein Taktsignal, das durch einen
getrennten internen Oszillator bereitgestellt wird, der mit einer
niedrigeren Rate als der von außen
gelieferte Takt läuft.
Der MC_INC-Block 624 inkrementiert einen Auffrischadressenzähler.
-
Die in dem MD_DECODE-Block 600 decodierten
Informationen werden beispielsweise während eines Lesebefehls wie
folgt verwendet. Der RW_CNTL-Block 608 empfängt vom
Block 600 ein Signal MD_READ und beginnt bei der steigenden
Flanke des Takts PB_CLK, den während
des oben erwähnten
MRS-Befehls geladenen
veränderlichen
Latenzzähler
zu dekrementieren. Wie oben erwähnt
wurde, ist ein dekrementierender "Rückwärts"-Zähler hier
die bevorzugte Ausführungsform,
da er mit einer einfacheren Schaltungsanordnung als ein inkrementierender
Zähler
inkrementiert werden kann. In Situationen, in denen die komplexere Schaltungsanordnung
gerechtfertigt ist, kann es natürlich
vorteilhaft sein, einen solchen "Vorwärts"-Zähler zu verwenden.
Wenn der Latenzzeitzähler
vollständig
rückwärts gezählt ist,
wird ein Signal LAT_DONE erzeugt, das angibt, dass vier Bits in
dem Vorausleseregister übertragen
werden können.
-
7 ist
ein Diagramm, das die Zeitbeziehungen der verschiedenen Signale
in der Speicherschaltung während
eines Lesebefehls zeigt. Die Signale (a)–(h) sind externe Eingangssignale,
die in dem Steuerblock 516 aus 5 decodiert werden. Das Signal (1), MD_ACTV,
erzeugt in Verbindung mit der steigenden Flanke von (j), PB_CLK,
bei Ausgabe eines Befehls ACTV das bankspezifische Aktivierungssignal
(k). Das Bankaktivierungssignal aktiviert die gewünschte Bank
und bereitet sie auf den Beginn eines Schreib- oder Lesezyklus vor.
Das Signal (m), MD_READ, beginnt bei der steigenden Flanke von (j),
PB_CLK, die erfasst wird, während sie
die Einstellungs- und Haltekriterien erfüllt, einen Lesezyklus. Der Beginn
des Lesezyklus aktiviert den programmierbaren Latenzzeitzähler (r),
LAT_CNT (3 : 0), um mit dem Rückwärtszählen der
Latenzzeitzyklen zu beginnen. Wenn die Latenzzeit abgelaufen ist,
wird das Signal (s), LAT_DONE, gezündet, um das Signal (ii), IC_GRD,
eine leicht verzögerte
Version des Signals, das auf Leitung 808 aus 8 als IC_AGRD erscheint, zu
aktivieren.
-
8,
die die 8a und 8b umfasst, zeigt die Datenablaufsteuerungs-Schaltungsanordnung 802, das
Eingangsdatenregister 804 und das serielle Ausgangsdatenregister 806 für eine der
zweiunddreißig DQ-Ausgangsanschlussflächen 810 der
Speicherschaltung. Die Aktivierung des Signals (ii) liefert auf
der Leitung 808 das Signal IC_AGRD, das die zwischengespeicherten
Daten von der Datenablaufsteuerungs-Schaltungsanordnung 802 an
ein serielles Datenregister 806 überträgt. Nachdem die Daten aus der
Datenablaufsteuerungs-Schaltungsanordnung an das serielle Datenregister übertragen
worden sind, wird das Signal (kk), IC_SCLK, in dem seriellen Datenregister 806 an
die Leitung 812 angelegt, eine Aktion, die die Daten aus
der DQ-Anschlussfläche 810 herauszutakten
beginnt.
-
9 ist
ein Diagramm, das die Zeitbeziehungen der verschiedenen Signale
in der Speicherschaltung während
eines Schreibbefehls zeigt. Der Schreibzyklus beginnt mit der Aktivierung
einer gewählten
Speicherzellenmatrixbank, wie sie durch den steigenden Pegel des
Signals (k), MC_ACTV(#), angegeben wird. Aus der Ausgabe eines Befehls
WRT von den externen Eingängen
(c), (d), (e) und (f) wird das Signal (1) erzeugt. Bei einer
steigenden Flanke des Signals (j), PB_CLK, wird der gültige Befehl
erfasst. Dies aktiviert den Latenzzeitzähler, um für eine Schreiblatenzzeit von
eins mit dem Rückwärtszählen zu
beginnen. Nachdem die Latenzzeit abgelaufen ist, wird das Signal
(r), LAT_DONE, gezündet.
Bei einer Latenzzeit von null wird LAT_CNT null gesetzt und bei
einer steigenden Flanke des Taktsignals PB_CLK sofort LAT_DONE gezündet. Das
Senden des Signals LAT_DONE lädt
den Datenbündelzähler mit
den Datenbündellängeninformationen
und beginnt zu dekrementieren, um das Signal (kk), IC_SCLK, zu erzeugen,
das die an der DQ-Anschlussfläche
in 8 übergebenen
Daten (i) seriell eintaktet. Das Signal IC_GWR steuert die Datenübertragung
von dem parallelen Daten eingaberegister 804 in die Datenablaufsteuerung 802 und
daraufhin in die Speicherzellenmatrix. Ein Vergleich der 7 und 9 macht deutlich, dass für das Durchflussbit
eine Verschiebung des Signals IC_SCLK für die Lese- und Schreibzyklen
verantwortlich ist.
-
10,
die die 10a bis 10d umfasst, zeigt eine Logikschaltung,
die die in dem Schaltungsblock 206 der in 2 gezeigten Schaltung und in dem RW_CNTL-Schaltungsblock 608 der
in 6 gezeigten Schaltung
beschriebenen Funktionen bereitstellt. Die Eingänge in die Schaltung aus 10 sind in der Figur links
gezeigt und umfassen die Signale von dem Decodierungsschaltungsanordnungsblock 600, MD_DECODE,
aus 6. Die Ausgangssignale
umfassen die oben erwähnten
Signale LAT_DONE und LAT_CNT(3 : 0) sowie verschiedene Lese- und
Schreibsteuersignale. Die allgemein mit dem Bezugszeichen 1000 bezeichnete
Schaltungsanordnung erzeugt das in 7 in
der Zeile (t) gezeigte Signal MC_READ. Die mit 1002 bezeichnete
Schaltungsanordnung erzeugt das Signal LAT_DONE und die mit 1004
bezeichnete Schaltungsanordnung das Signal LAT_CNT. Die Schaltungsanordnung
1006 ist die Zählschaltungsanordnung, die
das Signal LAT_CNT dekrementiert.
-
Die Logikschaltungsanordnung aus 10 wurde unter Verwendung
der Hardwarebeschreibungssprache (VHDL) mit einem Logiksynthesehilfsmittel
erzeugt. Ein Schaltungskonstrukteur schreibt unter Verwendung dieser
Technik den Code, um Eingänge,
Ausgänge
und die gewünschte
Funktion der Schaltungsanordnung zu spezifizieren. Daraufhin erzeugt
ein Computer den tatsächlichen
Stromlaufplan. Die unter Verwendung dieser Synthesesoftware konstruierten
Schaltungen können
sich je nach den an den Computer gegebenen Informationen stark unterscheiden
und dennoch die gleiche Schaltungsfunktion erreichen. Aus diesem
Grund ist dem Fachmann auf dem Gebiet klar, dass die in 10 gezeigte Schaltung einfach
eine Ausführungsform
von vielen ist, die zum Erreichen derselben Funktion möglich sind.
Im Folgenden wird der zum Erzeugen der Schaltung aus 10 verwendete Programmcode
geliefert.
-
-
-
-
-
Obgleich diese Erfindung anhand veranschaulichender
Ausführungsformen
beschrieben wurde, soll diese Beschreibung in keiner Weise beschränkend sein.
Für den
Fachmann auf dem Gebiet sind anhand der Beschreibung verschiedene Änderungen
und Kombinationen der veranschaulichenden Ausführungsformen sowie weitere
Ausführungsformen
der Erfindung offensichtlich. Somit sollen die beigefügten Ansprüche alle diese Änderungen
oder Ausführungsformen
umfassen.