-
Die
Erfindung betrifft eine Schaltungsanordnung zum Einstellen ausgewählter Betriebsparameter
in einem RAM-Baustein, gemäß dem Oberbegriff des
Patentanspruchs 1. Gegenstand der Erfindung sind auch Einstellverfahren
unter Verwendung dieser Schaltungsanordnung.
-
Das
Akronym RAM steht bekanntlich für "Random Access Memory", d.h. einen Schreib-Lese-Speicher
mit der Möglichkeit
eines wahlfreien direkten Zugriffs auf adressierte Speicherzellen.
Bevorzugtes, aber nicht ausschließliches Gebiet der Erfindung
sind dynamische RAMs (DRAMS), insbesondere "synchrone" dynamische RAMs (SDRAMS), wie sie als
Arbeitsspeicher oder Grafikspeicher in Computern eingesetzt werden.
-
Ein
RAM-Baustein ist üblicherweise
auf einem Halbleiterchip integriert und enthält eine große Vielzahl von Speicherzellen,
die matrixförmig
in Zeilen und Spalten angeordnet sind und meist auf mehrere einzeln
adressierbare Bänke
verteilt sind. Der Chip hat eine Mehrzahl äußerer Anschlüsse, unter anderem
Adressanschlüsse
zum Anlegen der Information für
die Adressierung der jeweils anzusprechenden Speicherzellen, Datenanschlüsse zur
Ein- und Ausgabe der an den adressierten Speicherzellen einzuschreibenden
bzw. ausgelesenen Speicherdaten, und Befehlsanschlüsse zum
Anlegen von Befehlen für
die Steuerung des Speicherbetriebs. Im Betrieb ist der RAM-Baustein über die
erwähnten
Anschlüsse
mit einem "Controller" verbunden, der die einzuschreibenden
Speicherdaten sendet und die ausgelesenen Daten empfängt und
auch die Adressinformation sowie die Steuerbefehle sendet.
-
Um
den RAM-Baustein hinsichtlich seiner Einsatzmöglichkeiten flexibel zu machen,
ihn also an verschiedene Verwendungsarten und Umgebungen anpassen
zu können,
sind üblicherweise
Mittel vorgesehen, um diverse Zustandsgrößen, hier als "Betriebsparameter" oder kurz "Parameter" bezeichnet, nach
Wunsch einzustellen. Diese "Modus"-Einstellungen erfolgen
gewöhnlich
während
einer Initialisierungsphase bei jeder Inbetriebnahme des Bausteins durch
den Controller, der hierzu die notwendige Stellinformation an den
Baustein sendet, wo sie in einem Modusregister gespeichert wird.
Der Inhalt des Modusregisters bestimmt dann die Werte der besagten Parameter
für den
anschließenden
Nutzbetrieb des Bausteins.
-
Zum
Einspeichern der Stellinformation in das Modusregister sendet der
Controller einen Einstellbefehl MRS ("Modus-Register setzen") in Form eines bestimmten
Musters von Parallelbits an die Befehlsanschlüsse des RAM-Bausteins und gleichzeitig
die Stellinformation, ebenfalls als Muster von Parallelbits, an
andere vorhandene Anschlüsse
des Bausteins. Da während
der Initialisierungsphase keine Übertragung
von Speicherdaten zwischen RAM-Baustein und Controller und mithin
auch keine Adressierung von Speicherzellen erfolgt, können in
dieser Zeit die Adressanschlüsse
und auch die Datenanschlüsse
für die
Eingabe der Stellinformation genutzt werden. Somit wird eine bestimmte
Menge dieser Anschlüsse
ausgewählt,
um während
der Initialisierungsphase die Rolle von Stellinformations-Anschlüssen zu
erfüllen.
Diese dedizierte Menge kann ein bestimmter Teil (z.B. nur die Adressanschlüsse) oder
die Gesamtheit aller Adress- und Datenanschlüsse sein. Jeder Stellinformations-Anschluss
ist mit dem Dateneingang genau einer nur ihm zugeordneten Zelle
des Modusregisters verbunden, dessen Setzeingang durch den Einstellbefehl
MRS getriggert wird.
-
Die
Größe (Anzahl
der Zellen) des Modusregisters ist also begrenzt auf die Anzahl
der Stellinformations-Anschlüsse.
Dies beschränkt
die Einstellmöglichkeiten,
und zwar sowohl hinsichtlich der Anzahl einstellbarer Parameter
als auch hinsichtlich der Variationsbreite oder der Feinheit in
der Einstellung der Parameterwerte. Diese Beschränkung führt dazu, dass manche Modus-Einstellungen,
die an sich erwünscht
wären,
in der Praxis bisher nicht implementiert werden konnten. So wäre es z.B.
vorteilhaft, für
jeden Daten-Sendetreiber (Off-Chip
Driver OCD) an den Datenanschlüssen
des RAM-Bausteins jeweils einen oder mehrere Betriebsparameter wie
z.B. die Stromstärke
oder das Tastverhältnis
der gesendeten Datenimpulse individuell und relativ fein einstellen
zu können.
Die hierzu erforderliche Gesamtanzahl von Bits für die Einstellinformation übersteigt
bei weitem die Anzahl der verfügbaren
Stellinformations-Anschlüsse,
selbst wenn man hierzu alle Adress- und Datenanschlüsse dediziert.
Man müsste,
um die bisher übliche
Organisation des Modusregisters beibehalten zu können, viele zusätzliche
externe Stellinformations-Anschlüsse am Chip
vorsehen, was jedoch aus Platzgründen
unerwünscht
ist.
-
Aus
der
DE 195 13 587
A1 ist eine Schaltungsanordnung gemäß dem Oberbegriff des Anspruchs
1 bekannt. Aus der
DE
102 20 969 A1 ist weiterhin ein RAM-Baustein bekannt, bei
dem die Änderungsgeschwindigkeit
der Ausgangsspannung einer Daten-I/O-Schaltung
in Abhängigkeit
von dem in einem Modusregister gespeicherten Wert geändert werden
kann.
-
Die
Aufgabe der Erfindung besteht darin, die Anzahl der Einstellungsoptionen
für Betriebsparameter
eines RAM-Bausteins zu erhöhen,
ohne dass hierzu die Anzahl der externen Anschlüsse, die für die Eingabe der Einstellinformation
verwendet werden, erhöht
werden muss. Diese Aufgabe wird erfindungsgemäß durch die im Patentanspruch
1 gekennzeichnete Schaltungsanordnung gelöst.
-
Demnach
wird die Erfindung realisiert in einer Schaltungsanordnung zum Einstellen
ausgewählter
Betriebsparameter in einem RAM-Baustein, der einen Befehlseingang
zum Empfang von externen Betriebsbefehlen hat und weitere Anschlüsse zum
Eingeben und Ausgeben von Speicherdaten und zum Eingeben von Adressinformationen
aufweist, wobei eine Untermenge dieser weiteren Anschlüsse auch
der Eingabe von Stellinformation für verschiedene Betriebsparameter
dediziert ist und wobei eine Registeranordnung vorgesehen ist, die durch
ein Steuersignal aktivierbar ist, um die an den dedizierten Stellinformations- Anschlüssen eingegebene
Stellinformation zu speichern. Erfindungsgemäß enthält die Registeranordnung für jedes
Element einer Menge von M verschiedenen Betriebsparametern jeweils
ein individuell zugeordnetes und durch ein individuelles Steuersignal
setzbares Wertregister zum Speichern einer für den betreffenden Parameter
eingegeben Wertinformation. Eine erste Gruppe der Stellinformations-Anschlüsse ist
der Eingabe von Zielinformation dediziert, welche den jeweils einzustellenden
Parameter bezeichnet, und eine zweite Gruppe der Stellinformations-Anschlüsse ist
der Eingabe von Wertinformation für die Parameter dediziert ist.
Ferner ist eine Selektionseinrichtung vorgesehen, welche durch die
an der ersten Anschlussgruppe eingegebene Zielinformation steuerbar
ist, um die an der zweiten Anschlussgruppe eingegebene Wertinformation
nur in dasjenige Wertregister zu übertragen, welches dem bezeichneten
Parameter zugeordnet ist.
-
Mit
der erfindungsgemäßen Schaltungsanordnung
können
die zur Eingabe der Stellinformation dedizierten Anschlüsse des
RAM-Bausteins mehrfach
genutzt werden, um eine Vielzahl von Einstellungen vorzunehmen,
für welche
es insgesamt einer Informationsmenge bedarf, die weit mehr Bits
enthält als
es der Anzahl der dedizierten Anschlüsse entspricht. Dies eröffnet den
Weg für
Einstellungen, die bisher aus Gründen
begrenzter Anschlusszahl am Baustein nicht implementiert werden
konnten.
-
Besondere
Ausführungsformen
der Erfindung und ein Verfahren zur Anwendung einer erfindungsgemäßen Schaltungsanordnung
sind in nachgeordneten Patentansprüchen gekennzeichnet. Zur näheren Erläuterung
der Erfindung werden nachstehend verschiedene Ausführungsbeispiele
anhand von Zeichnungen beschrieben.
-
1 zeigt
schematisch eine erste Variante einer erfindungsgemäßen Schaltungsanordnung;
-
2 zeigt
eine zweite Variante einer erfindungsgemäßen Schaltungsanordnung;
-
3 zeigt
eine dritte Variante einer erfindungsgemäßen Schaltungsanordnung;
-
4 zeigt
ein Flussdiagramm für
ein Trimmverfahren unter Anwendung einer erfindungsgemäßen Schaltungsanordnung.
-
In
den Figuren sind gleichartige oder ähnliche Elemente mit jeweils
den selben Abkürzungen
in Großbuchstaben
bezeichnet, wobei jeweils eine nachgestellte Zahl der näheren Identifizierung
dient. In der folgenden Beschreibung steht ein Doppelpunkt ":" zwischen zwei solchen Zahlen für das Wort "bis". So ist z.B. "AP1:3" zu lesen als "AP1 bis AP3".
-
Die
Schaltungsanordnung, die in den 1 bis 3 in
unterschiedlichen Varianten gezeigt ist, bildet einen Bestandteil
eines RAM-Bausteins, der auf einem Chip integriert ist. Am linken
Rand jeder Figur ist eine Mehrzahl externer Anschlüsse des
Chips gezeigt, die auch als "Pins" bezeichnet werden
und im Betrieb mit entsprechenden Anschlüssen eines Controllers verbunden
sind (nicht gezeigt). Dargestellt sind vier "Kommandopins" CP0:3, vierzehn "Adresspins" AP0:13, vier "Datenpins" DP0:3 und ein "Taktpin" CLP.
-
Die
Kommandopins CP bilden einen Befehlseingang zum Empfang von Befehlen
in Form eines 4-Bit-Parallelcodewortes, das in einem nachgeschalteten
Befehlsdecoder 10 decodiert wird, um jeweils eine von mehreren
Befehlsleitungen zu aktivieren, abhängig vom Bitmuster des Codewortes.
Die vier Kommandobits an den Pins CP0:3 werden üblicherweise aus historischen
Gründen
mit CS, RAS, CAS, WE bezeichnet. In jeder Taktperiode eines am Taktpin
CLP angelegten Taktsignals CLK wird den Kommandopins CP irgendein
gewähltes
Codewort angelegt, welches entweder ein Operationsbefehl ist, der
irgendeine Operation des RAM-Bausteins befiehlt, oder ein sogenannter "NOP"-Befehl (no operation),
der die Bedeutung "keine
Operation" hat.
Zu den Operationsbefehlen gehören
unter anderem der Befehl "Schreiben" zur Aktivierung
des Einschreibens von Daten, der Befehl "Lesen" zur Aktivierung des Auslesens von Daten
und der bereits erwähnte Befehl "Modusregister setzen", abgekürzt MRS,
zur Aktivierung eines Vorganges zum Einstellen von Betriebsparametern
des RAM-Bausteins.
-
Die
Datenpins DP dienen zur Ein- und Ausgabe der Speicherdaten und sind
zu diesem Zweck jeweils mit dem Eingang eines Empfangstreibers ET und
dem Ausgang eines Sendetreibers ST verbunden. Diese Treiber haben
(nicht gezeigte) Steueranschlüsse,
um in Ansprache auf einen Befehl "Schreiben" die Empfangstreiber ET zu aktivieren,
so dass sie die an den Datenpins DP angelegten Schreibdatenbits
auf zugeordnete Datenleitungen DL eines internen Datenbus geben.
In Ansprache auf einen Befehl "Lesen" werden die Sendetreiber
ST aktiviert, um die auf den Datenleitungen DL erscheinenden Lesedatenbits
an die Datenpins DP zu übertragen.
-
Die
Selektion der Datenspeicherzellen, an denen die Schreibdaten eingeschrieben
oder die Lesedaten ausgelesen werden sollen, erfolgt durch Adressbits,
die zu geeigneter Zeit an den Adresspins AP angelegt werden. Eine
bestimmte Untermenge der Adresspins dient der Bankadressierung,
und die übrigen
Adresspins dienen der Zeilen- und Spaltenadressierung. Die Zeilen-
und Spaltenadressbits werden in Zeilen- und Spalten-Adressdecodern decodiert.
Die Adressdecoder und deren Verbindungen mit den Adresspins AP sind
in der Figur nicht dargestellt, ebensowenig die Matrix der Speicherzellen
und die interne Steuerschaltung zur Durchschaltung der Datenübertragungswege
zwischen den Datenleitungen DL und den jeweils adressierten Speicherzellen. Alle
diese Elemente können
von einer herkömmlichen
Art sein, wie sie auf dem Gebiet der RAM-Baustein allgemein bekannt ist.
-
Die
in den 1 bis 3 gezeigten Anzahlen der Adresspins
AP und Datenpins DP sind nur ein Beispiel. Der gezeigte Fall von
4 Datenpins erlaubt das Schreiben und Lesen von Datenwörtern im
Parallelformat mit eine Wortbreite von 4 Bits, d.h. mit jeder Adresse
wird eine Gruppe von 4 Speicherzellen in der Speichermatrix adressiert
(sogenannter "x4-Baustein"). Derzeit üblich sind
auch RAM-Bausteine mit 8 oder 16 oder sogar 32 Datenpins, wobei letztere
(also x32-Bausteine) insbesondere als Grafikspeicher benutzt werden.
Die notwendige Anzahl der Adressbits AP hängt zum einen von der Speichergröße (Gesamtzahl
der Datenspeicherzellen) und zum anderen von der Anzahl der benutzten
Datenpins DP ab. Demnach kann die Anzahl der Adresspins AP auch
kleiner oder größer sein
als beim gezeigten Beispiel.
-
Wie
bereits erwähnt,
können
zur Eingabe von Stellinformation für die Einstellung diverser
Betriebsparameter des RAM-Bausteins die Adresspins AP und/oder die
Datenpins DP verwendet werden. Bei den hier beschriebenen Ausführungsbeispielen sind
es nur die Adresspins AP, die als Stellinformations-Anschlüsse dienen.
Zu diesem Zweck ist jeder der vierzehn Adresspins AP1:13 mit dem
Dateneingang D eines jeweils zugeordneten Exemplars von vierzehn
D-Flipflops (Datenflipflops) F0:13 verbunden, deren Trigger- oder
Setzeingänge
S mit derjenigen Befehlsleitung verbunden sind, die bei Empfang des
Befehls "Modusregister
setzen" (MRS-Befehl) aktiviert
wird, d.h. auf den Logikwert "1" geht. Die Flipflops
F0:13 bilden somit ein 14-zelliges "Modusregister", welches die aus 14 Bits bestehende
Stellinformation aufnimmt, die an den Adresspins A0:13 zum Zeitpunkt
des MRS-Befehls angelegt wird. Die Q-Ausgänge der Flipflops liefern also
ein Abbild dieser Information. Insoweit entspricht die Anordnung dem
Stand der Technik.
-
Beim
Stand der Technik ist die Gesamtmenge der Zellen des Modusregister
F0:13 in eine Mehrzahl disjunkter Untermengen derart aufgeteilt,
dass jede Untermenge jeweils einem bestimmten Betriebsparameter
fest zugeordnet ist, um den einzustellenden Wert nur dieses Parameters
zu speichern. Das heißt,
jede dieser Untermengen bildet für
sich ein Wertregister, dessen Q-Ausgänge fest mit einem Steuerelement
für den
fest zugeordneten Parameter verbunden sind.
-
Bei
der erfindungsgemäßen Schaltungsanordnung
ist dies jedoch anders. Gemäß den 1 bis 3 ist
für jeden
Parameter einer Menge von M = 8 verschiedenen Parametern jeweils
ein eigenes Wertregister VRi vorgesehen, das (im Unterschied zum
Stand der Technik) "selektiv" durch ein eigenes Triggersignal
VSi gesetzt werden kann (der Buchstabe i = 0, 1, ... 7 steht hier
für die
jeweilige Nummer des Wertregisters VR). Jedes der Wertregister VR0:7 enthält beim
dargestellten Beispiel vier D-Flipflops zur Speicherung eines 4-Bit-Wortes,
das den Wert für den
zugeordneten Parameter vorgibt und im Parallelformat über ein
vieradriges Leitungsbündel
VL übertragen
wird. Dieses Leitungsbündel
VL ist mit den Dateneingängen
der vier Flipflops in jedem der acht Wertregister VR0:7 verbunden.
-
Die
gezielte Selektion jeweils eines der acht Wertregister VR0:7 erfolgt
mittels eines 1-aus-8-Decoders 20, der hierzu eine Zielinformation
von 3 Bits benötigt,
die an drei zugeordneten Eingängen
Z1, Z2, Z3 des Decoders angelegt werden. Das Muster dieser 3 Bits
bestimmt, welches der Triggersignale VS0:7 aktiviert wird, und bestimmt
somit auch, in welches der Wertregister VR0:7 die auf dem Leitungsbündel VL
erscheinende Stellinformation eingespeichert wird.
-
Das
beschriebene System der Verwendung jeweils eines selektiv adressierbaren
Wertregisters VR für
jeden von mehreren Parametern und die Bereitstellung einer Stellinformation
als Kombination einer Zielinformation, die das jeweilige Wertregister
selektiert, und einer Wertinformation, die den einzustellenden Wert
des Parameters angibt, ermöglicht
wie gesagt eine Mehrfachnutzung dedizierter Anschlüsse für die Einstellung
von Betriebsparametern. Hierbei gibt es verschiedene Möglichkeiten,
wie die dedizierten Anschlüsse
belegt werden können.
-
Eine
Möglichkeit
besteht darin, für
die Eingabe der Zielinformation und die Eingabe der Wertinformation
zumindest teil weise die selben Anschlüsse zu benutzen, wobei die
beiden Informationen für
jeden einzustellenden Parameter zeitlich nacheinander eingegeben
werden müssen.
Hierbei sind wiederum zwei Varianten möglich: bei einer ersten Variante
wird zuerst die Zielinformation und dann die Wertinformation eingegeben,
bei einer zweiten Variante ist die Reihenfolge umgekehrt. In beiden
Fällen
braucht die Anzahl der dedizierten Stellinformations-Anschlüsse nur
so groß zu
sein wie die Anzahl der Bits des "breitesten" Informations-Wortes. Beim hier beschriebenen
Beispiel besteht die Wertinformation immer aus 4 Bits, ist also "breiter" als die aus 3 Bits
bestehende Zielinformation. Demnach werden 4 Anschlüsse für die Eingabe
der Stellinformation benötigt.
-
Die 1 zeigt
eine Schaltungsanordnung für
die erste Variante. Als mehrfach zu nutzende Stellinformations-Anschlüsse sind
die vier Adresspins AP1:4 ausgewählt,
wobei die Pins AP1:4 eine Gruppe GV bilden, an welche die 4-Bit-Wertinformation
gelegt werden soll. Die Pins AP1:3 bilden eine Gruppe GZ, an welche
die 3-Bit-Zielinformation zur Selektion eines der acht Wertregister
VR0:7 gelegt werden soll (die Gruppe GZ ist eine Untermenge der Pins
der Gruppe GV).
-
Da
bei der Variante nach 1 zuerst die 3-Bit-Zielinformation
an den Pins AP1:3 (Gruppe GZ) eingegeben werden soll, müssen irgendwelche
Mittel vorgesehen sein, um diese Information vorübergehend in der Schaltungsanordnung
zu halten, und zwar entkoppelt von den Pins AP1:3, damit die anschließend an
den Pins AP1:4 eingegebene Wertinformation dem durch die Zielinformation
bestimmten Wertregister VR zugeführt
wird. Beim gezeigten Beispiel dienen hierzu die drei Flipflops F1:3
des Modusregisters, deren D-Eingänge
mit den Pins AP1:3 verbunden sind und die durch den MRS-Befehl getriggert
werden, so dass sie die Zielinformation aufnehmen. Diese Information
bleibt nach dem Verschwinden des MRS-Befehls erhalten und gelangt
von den Q-Ausgängen
der Flipflops F1:3 zu den drei Eingängen des Decoders 20.
Der Decoder 20 wird bei jedem fol genden Taktimpuls, nachdem
der MRS-Befehl verschwunden ist (und stattdessen z.B. ein NOP-Befehl eingegeben
wird), getaktet, um das Triggersignal VSi für das von der Zielinformation
bestimmte Wertregister VRi zu aktivieren. Die Taktung des Decoders 20 kann
z.B. durch den Ausgang eines UND-Gatters 30 erfolgen, welches
das Taktsignal CLK mit dem invertierten Signal der MRS-Befehlsleitung
(also mit der Negation des MRS-Befehls)
verknüpft.
-
Nach
dem Verschwinden des MRS-Befehls kann die 4-Bit-Wertinformation
für den
durch die vorherige Zielinformation bestimmten Parameter an den Pins
AP1:4 (Gruppe GV) eingegeben werden. Diese Pins sind bei der Variante
nach 1 mit dem Leitungsbündel VL verbunden, das zu den
Dateneingängen
aller acht Wertregister VR0:7 führt.
Dank der vorstehend beschriebenen Operation des Decoders 20 gelangt
die Wertinformation aber, wie gewünscht, nur in das durch die
Zielinformation selektierte Wertregister VRi.
-
Anschließend kann
ein anderer Parameter über
die selben Pins A1:4 eingestellt werden, indem mit erneuter Eingabe
des MRS-Befehls
der vorstehend beschriebene Vorgang wiederholt wird, mit einer Zielinformation
zur Selektion eines anderen der Wertregister VR0:7 und mit einer
Wertinformation für dieses
andere Register.
-
Die 2 zeigt
eine Schaltungsanordnung für
die zweite Variante. Als mehrfach zu nutzende Stellinformations-Anschlüsse sind
auch hier die vier Adresspins AP1:4 ausgewählt, wobei auch hier die Pins
AP1:4 die Gruppe GV bilden, an welche die 4-Bit-Wertinformation
gelegt werden soll, und die Pins AP1:3 die Gruppe GZ bilden, an
welche die 3-Bit-Zielinformation zur Selektion eines der acht Wertregister
VR0:7 gelegt werden soll. Der Unterschied gegenüber der ersten Variante nach 1 besteht
nur darin, dass (a) das Leitungsbündel VL, welches die Bits der
Wertinformation an die Dateneingänge
der Wertregister VR0:7 liefert, nicht mit den Pins AP1:4 sondern
stattdessen mit den Q-Ausgängen
der Modusregister-Flipflops F1:4 verbunden sind, deren Dateneingänge an die
Pins AP1:4 angeschlossen sind, und dass (b) die drei Eingänge des Decoders 20 direkt
mit den Pins AP1:3 verbunden sind.
-
Wie
leicht zu erkennen ist, muss beim Betrieb dieser zweiten Variante
nach 2 zuerst, beim Erscheinen des MRS-Befehls, die
Wertinformation an der Pingruppe GV eingegeben werden, um diese Information über die
Flipflops F1:4 auf dem Leitungsbündel
VL zu halten. Wenn dann, bei einem der nächsten Taktimpulse nach dem
Verschwinden des MRS-Befehls, die Zielinformation an der Pingruppe GZ
eingegeben wird, decodiert der Decoder 20 diese Information,
um das hierdurch bestimmte Wertregister VRi zu triggern, so dass
es die auf dem Leitungsbündel
VL gehaltene Wertinformation speichert.
-
Die
beiden Varianten nach den 1 und 2 sind
funktionell gleichwertig. Die Variante nach 1 kann aber
vorteilhafter sein, wenn die Zielinformation weniger Bits enthält als die
Wertinformation, wie beim gezeigten Beispiel. In diesen Fällen gibt
es eine Menge von Pins, die nur für Wertinformation und nicht
für die
Zielinformation benötigt
werden. Für
diese Pins (in 1 ist es nur der Pin AP4) wird
kein Flipflop zum Halten des betreffenden Informationsbits benötigt, so
dass die Anzahl Flipflops im Modusregister vermindert werden kann.
Das heißt
für den
in 1 dargestellten Fall, dass das Flipflop F4 weggelassen
werden kann.
-
In ähnlicher
Weise könnte
die Variante nach 2 vorteilhafter sein, wenn die
Wertinformation weniger Bits enthält als die Zielinformation.
In diesen Fällen
gäbe es
eine Menge von Pins, die nur für
die Zielinformation und nicht für
die Wertinformation benötigt
werden. Für
diese Pins wird kein Flipflop zum Halten des betreffenden Informationsbits
benötigt,
so dass die Anzahl Flipflops im Modusregister vermindert werden
kann.
-
Abweichend
von den in den 1 und 2 gezeigten
Varianten ist es auch möglich,
für die
Eingabe der Zielinformation und die Eingabe der Wertinformation
jeweils unterschiedliche Anschlüsse
zu benutzen, so dass die beiden Informationen für einen einzustellenden Parameter
gleichzeitig eingegeben werden können.
Eine entsprechende dritte Variante ist in der 3 gezeigt.
-
Bei
der Variante nach 3 sind die von der Zielinformation
und von der Wertinformation zu belegenden Gruppen GZ und GV der
Adresspins disjunkte Untermengen AP1:3 und AP4:7 der Menge der Adresspins.
Die Eingänge
des Decoders 20 sind mit den Q-Ausgängen der D-Flipflops F1:3 verbunden, deren
D-Eingänge
an die Pins der Gruppe GZ angeschlossen sind. Die Adern des Leitungsbündels VL, welche
zu den Dateneingängen
der Wertregister VR0:7 führen,
sind mit den Q-Ausgängen
der D-Flipflops
F4:7 verbunden, deren D-Eingänge
an die Pins der Gruppe GV angeschlossen sind. Wenn der MRS-Befehl
nach Eingabe der Ziel- und Wertinformation verschwindet, spricht
der Decoder 20 beim nächsten
Taktimpuls an, um das durch die Zielinformation bestimmte Wertregister
VRi zu triggern, so dass es die Wertinformation aufnimmt. Anschließend kann,
bei erneuter Eingabe des MRS-Befehls, an den selben Pingruppen GZ
und GV die Ziel- und Wertinformation für ein anderes der Wertregister
VR0:7 gelegt werden, um einen anderen Parameter einzustellen.
-
Bei
den vorstehend beschriebenen Beispielen ist eine Untermenge der
Pins für
die mehrfache Eingabe von Stellinformation reserviert (diese "reservierten" Pins sind in den
Figuren voll schwarz gezeichnet). Die übrigen Pins können in
herkömmlicher Weise
genutzt werden, um Information für
andere Einstellungen in die mit diesen Pins verbundenen Flipflops
des Modusregisters einzuschreiben, so dass diese Flipflops wie beim
Stand der Technik direkt als Wertregister für andere Parameter dienen können. Die
Information für
diese Flipflops muss zumindest beim letzten MRS-Befehl an den betreffen Pins
vorhanden sein.
-
Die
Erfindung ist natürlich
nicht auf die beschriebenen Beispiele beschränkt. Es sind zahlreiche Modifikationen
oder Alternativen der beschriebenen Schaltungsanordnungen möglich, um
das der Erfindung zugrunde liegende Prinzip zu verwirklichen. Einige
davon werden nachstehend angesprochen.
-
Die "Wortbreite" (d.h. die Anzahl
von Parallelbits) der Zielinformation und der Wertinformation und
somit die Anzahl der für
die Mehrfacheingabe von Stellinformation zu reservierenden Pins
ist bestimmt durch die Anzahl der einzustellenden Parameter und
durch die gewünschte
Auflösung
der Wertinformation. So kann, je nach den Erfordernissen, eine mehr
oder weniger große
Untermenge der Pins oder sogar die Gesamtmenge der Pins für die Mehrfacheingabe
reserviert werden.
-
Die
Wortbreite der Zielinformation kann gleich der Wortbreite der Wertinformation
sein, oder kleiner oder größer. Wenn
die beiden Pingruppen GZ und GV für die Zielinformation und die
Wertinformation keine disjunkten Gruppen sind, sind die Pins der einen
Gruppe vorzugsweise eine Untermenge der Pins der anderen Gruppe
(oder identisch mit diesen, falls Ziel- und Wertinformation gleiche
Wortbreite haben). Es ist aber auch möglich, die beiden Gruppen nur
teilweise zu überlappen,
so dass die Schnittmenge der Pins der beiden Gruppen nicht eine
ganze Gruppe umfasst.
-
Die
Erfindung ist nicht darauf beschränkt, für die Mehrfacheingabe von Stellinformation
ausschließlich
Adresspins zu reservieren. Auch Datenpins können hierzu herangezogen werden.
-
Die
erfindungsgemäße Schaltungsanordnung
kann auch so ausgebildet werden, dass für verschiedene disjunkte Mengen
von Parametern verschiedene disjunkte Untermengen der Pins je weils zur
Mehrfacheingabe benutzt werden, wobei in jeder dieser Untermengen
eine Gruppe GZ für
die Eingabe einer Zielinformation dient, welche den einzustellenden
Parameter der betreffenden Parametermenge bezeichnet, und eine Gruppe
GV für
die Eingabe der Wertinformation für den bezeichneten Parameter dient.
Für jede
Parametermenge ist dann jeweils eine eigene Untermenge von Halteflipflops
zu reservieren und ein eigener Decoder vorzusehen, der das Wertregister
für den
durch die Zielinformation bestimmten Parameter genau dieser Parametermenge
selektiert. Diese Variante erlaubt es, zeitgleich jeweils einen
Parameter aus mehreren verschiedenen Parametermengen einzustellen.
-
Mit
der Erfindung ist es möglich,
eine unbegrenzte Vielzahl verschiedener Parameter eines RAM-Bausteins über eine
begrenzte Anzahl von externen Anschlüssen einzustellen. Dies eröffnet wie gesagt
eine Vielzahl neuer Einstellmöglichkeiten,
so z.B. auch die Einstellung von Betriebsparametern individuell
für jeden
einzelnen Sendetreiber an den Datenleitungen des Bausteins. Eine
vorteilhafte Anwendung der Erfindung bezieht sich auf diese Einstellungen
und wird nachstehend näher
erläutert.
-
Bei
RAM-Bausteinen, insbesondere bei mit sehr hoher Geschwindigkeit
betriebenen Bausteinen wie z.B. Grafikspeichern, kann es wünschenswert sein,
manche Parameter der Daten-Sendetreiber individuell trimmen ("trainieren") zu können, und
zwar innerhalb der Arbeitsumgebung des Bausteins. Die zu trimmenden
Parameter können
unter anderem sein:
- – Stärke des Treiberstroms. Dieser
Parameter ist einstellbar z.B. durch Parallelschaltung einer auswählbaren
Anzahl von Treibertransistoren (gleicher oder unterschiedlicher
Größe) in jedem
der beiden Zweige innerhalb des Treibers, die zwischen der ausgangsseitigen
Datenleitung und dem "hohen" bzw. "niedrigen" Logikpotential liegen.
Diese Einstellung kann aber auch für jeden (oder nur einen) der
beiden Zweige individuell vorgenommen werden, wie nachstehend angeführt.
- – Pullup-Treiberstärke, d.h.
die Stärke
des Treiberstroms für
den "hohen" Pegel (z.B. Binärwert "1") des binären Sendesignals. Dieser Parameter ist
einstellbar z.B. durch Parallelschaltung einer auswählbaren
Anzahl von Treibertransistoren (gleicher oder unterschiedlicher
Größe) in demjenigen
Zweig des Treibers, der zwischen der ausgangsseitigen Datenleitung
und dem "hohen" Logikpotential liegt.
- – Pulldown-Treiberstärke, d.h.
die Stärke
des Treiberstroms für
den "niedrigen" Pegel (z.B. Binärwert "0") des binären Sendesignals. Dieser Parameter
ist einstellbar z.B. durch Parallelschaltung einer auswählbaren
Anzahl von Treibertransistoren (gleicher oder unterschiedlicher
Größe) in demjenigen
Zweig des Treibers, der zwischen der ausgangsseitigen Datenleitung
und dem "niedrigen" Logikpotential liegt.
- – Tastverhältnis der
Datenimpulse; einstellbar z.B. mittels einer variablen Verzögerungsschaltung
für die
Vorder- oder Rückflanke
der Datenimpulse.
- – Steilheit
der Vorderflanke der Datenimpulse; einstellbar z.B. durch ein variables
RC-Glied.
- – Steilheit
der Rückflanke
der Datenimpulse; einstellbar z.B. durch ein variables RC-Glied.
- – Phasenlage
der Datenimpulse bezüglich
einer gemeinsamen Zeitreferenz (z.B. relativ zu Strobeimpulsen,
die parallel mit den Datensignalen gesendet werden); einstellbar
durch eine variable Verzögerungsschaltung.
-
Für die Einstellung
solcher Parameter werden die Wertregister VR einer Schaltungsanordnung der
in den 1 bis 3 gezeigten Art an entsprechende
Trimmschaltungen der Sendetreiber ST angeschlossen, derart dass
die in den Wertregistern gespeicherten Bits die Einstellung der
jeweiligen Trimmschaltungen steuern. So können z.B. die vier Wertregister
VR0:3 den Trimmschaltungen für
die Phasenlage der Datenimpulse aus den vier Sendeverstärken ST0:3
zugeordnet werden, und die vier Wertregister VR4:7 können den
Trimmschaltungen für
die Treiberstromstärke
dieser vier Sendeverstärker
zugeordnet werden. Dies ist in den 1 bis 3 durch
entsprechend beschriftete Steuerleitungen an den Sendetreibern veranschaulicht.
Die jeweiligen Trimmschaltungen sind durch kleine rechteckige Kästchen am
oberen und rechten Rand der Sendetreiber-Symbole angedeutet. Jede
Trimmschaltung kann beim dargestellten Beispiel in einen ausgewählten von
24 = 16 verschiedenen Zuständen versetzt
werden, entsprechend der 4-Bit-Wertinformation,
die im zugeordneten Wertregister VR gespeichert ist.
-
Um
z.B. die Phasenlage der vom Sendetreibers STO gesendeten Datenimpulse
zu trimmen, wird an der Gruppe GZ der Adresspins AP die Zielinformation
für das
Wertregister VRO eingegeben, und an der Gruppe GV wird eine Wertinformation
für eine Verzögerungszeit τR eingegeben,
welche die Verzögerung
der gesendeten Datenimpulse bestimmt. Diese Eingabe erfolgt mithilfe
des MRS-Befehls, wie weiter oben in Verbindung mit den 1 bis 3 beschrieben.
Anschließend
können
in der gleichen Weise Verzögerungs-Einstellwerte
für die
anderen Sendetreiber ST1:3 in die Wertregister VR1:3 eingegeben
werden.
-
In
einem anschließenden
Prüfvorgang
kann ein Lesebetrieb eingeschaltet werden, um auf ein im RAM-Baustein
erzeugtes bekanntes Testmustermuster von Daten über die Sendetreiber ST0:3
und die Datenpins DP0:3 an den (nicht gezeigten) Controller zu senden.
Die über
den Controller empfangenen Lesedaten können mit dem bekannten Muster
verglichen werden. Eventuelle Fehler können analysiert werden, um
festzustellen, ob und in welchem Sinne welche der eingestellte Parameter τR zu ändern ist. Durch
Wiederholung dieser Folge von Einstell- und Prüfschritten mit jeweils geänderten
Parameterwerten können
schließlich
die optimalen Einstellungen gefunden werden.
-
Das "Trainieren" eines anderen Parameters wie
z.B. der Stromstärke
der Sendetreiber ST0:3 kann ähnlich
erfolgen wie das vorstehend beschriebene Trainieren der Phasenlage,
wobei die Zielinformation bei den Einstellschritten jeweils eines
der Wertregister VR4:7 selektiert. Auch die anderen der oben aufgezählten Sendetreiber-Parameter
können in
entsprechender Weise trainiert werden. Natürlich muss für jeden
Parameter jedes Sendetreibers jeweils ein eigenes Wertregister vorgesehen
sein.
-
Das
Trainieren kann automatisch unter Steuerung durch ein "Training"-Programm erfolgen,
das in einer gesonderten Testvorrichtung oder im Controller installiert
sein kann. In ein solches Programm kann gewünschtenfalls auch eine Subroutine
eingefügt werden,
um innerhalb des Controllers Parameter der zugeordneten Daten-Empfangspfade
individuell zu trimmen. Dies gilt insbesondere für die Phase der empfangenen
Datenimpulse gegenüber
dem Strobesignal, das im Lesebetrieb gemeinsam mit den Daten über eine
Strobeleitung am Controller empfangen wird und dort die Zeitreferenz
für die
Abtastung der empfangenen Datenbits bildet.
-
Ein
Bespiel für
ein das erfindungsgemäße Verfahren
realisierendes Trimm- oder Training-Programm wird nachstehend anhand
des in 4 gezeigten Flussdiagramms beschrieben, und zwar
in seiner Ausübung
zum Trimmen der Datenimpuls-Phase an den Daten-Sendeverstärkern des RAM-Bausteins,
die im Folgenden mit der geläufigen Abkürzung OCD
("Off-Chip Driver") bezeichnet werden.
Das in 4 gezeigte Trimm- oder "Training"-Programm
enthält
eine Vielzahl von Schritten, die als Blöcke B1 bis B16 dargestellt
sind und im Folgenden der Reihe nach erläutert werden:
- B1 Der Controller initialisiert den RAM-Baustein. Dies erfolgt
gewöhnlich
durch Schalten eines Signals CKE ("Clock Enable") auf hohen Pegel (H-Pegel). Besagtes
Signal wird vom Controller über
eine gesonderte Leitung an einen CKE-Eingang des RAM-Bausteins gelegt
(in den 1 bis 3 nicht
dargestellt). Der RAM-Baustein ist nun empfänglich für das Taktsignal CLK am Takteingang,
und sein Befehlsdecoder 10 decodiert Befehle, die an den
Befehlseingängen
CP0:3 empfangen werden.
- B2 Der Controller sendet den Befehl MRS ("Modusregister setzen") und die Zielinformation für das Wertregister
(z.B. VRO), in das der an einem gewählten ersten OCD (z.B. STO)
einzustellende Wert für
eine Verzögerungzeit τR eingegeben
werden soll, welche die Phasenlage der vom OCD gesendeten Datenimpulse
bestimmt.
- B3 Der Controller sendet eine Wertinformation für τR,
vorzugsweise den Wert in der Mitte des τR-Einstellbereichs.
Hiermit wird eine Verzögerungseinrichtung
am betreffenden OCD auf diesen Wert eingestellt. Anschließend läuft eine
aus den Schritten B4 bis B9 bestehende Subroutine I zur Durchführung der
oben erwähnten
Controller-Trimmung:
- B4 Im Controller wird eine Verzögerungszeit τC, welche
die Strobe/Daten-Phasenbeziehung in demjenigen Daten-Empfangspfad des
Controllers bestimmt, der dem gewählten OCD des RAM-Bausteins
zugeordnet ist, auf einen Minimalwert eingestellt. Die Auswahl des
betreffenden Empfangspfades erfolgt im Controller unter Verwendung
der OCD-Identifizierung, die in der beim Schritt B2 gesendeten Zielinformation
enthalten ist.
- B5 Der Controller befiehlt dem RAM-Baustein, über die
OCDs ein Testbitmuster zu senden, das dem Controller "bekannt" ist. Dieses Muster
kann im RAM-Baustein von einem gesonderten Mustergenerator erzeugt
werden (es könnte
aber auch in einem Lesebetrieb durch Auslesen von bestimmten Speicherzellen
gesendet werden, an denen dieses Muster in einem vorherigen Schreibbetrieb vom
Controller eingespeichert wurde). Das Testbitmuster vom Ausgang
des ausgewählten
OCD wird im Controller über den
ausgewählten
Daten-Empfangspfad empfangen.
- B6 Der Controller prüft
die Empfangsqualität
des Testbitmusters, z.B. durch Vergleich mit dem ihm bekannten Original,
und speichert eine Bewertung dieser Qualität für den eingestellten τC-Wert.
- B7 Verzweigung: Da τC beim Schritt B4 nicht auf den Maximalwert
eingestellt wurde, geht es zum Schritt B8.
- B8 Der Wert der Verzögerung τC wird
inkrementiert, und die Schrittfolge B5 bis B7 wird mehrmals durchlaufen,
bis τC auf den Maximalwert inkrementiert ist.
Dann führt
die Verzweigung vom Schritt B7 zum Schritt B9.
- B9 Die bei den Durchläufen
der Schleife B7-B8-B5-B6 in der Subroutine I gespeicherten Bewertungen
werden verglichen. Die Verzögerung τC im
Controller wird endgültig
auf denjenigen Wert eingestellt, der die beste Bewertung ergab. Die
Controller-Trimmung für
den ausgewählten Daten-Empfangspfad
ist damit beendet, und es geht zum Schritt B10, mit welchem eine
aus Schritten B10 bis B13 bestehende Subroutine II beginnt, um die
Verzögerung τR am
ausgewählten OCD
im RAM-Baustein zu trimmen.
- B10 Wie beim Schritt B5 wird wieder das Testmuster vom RAM-Baustein über den
ausgewählten
OCD gesendet und im Controller über
den zugeordneten Daten-Empfangspfad empfangen.
- B11 Der Controller analysiert die Empfangsqualität des Testbitmusters,
z.B. unter Vergleich mit dem ihm bekannten Original.
- B12 Verzweigung: Wenn die Empfangsqualität verbessert werden sollte,
geht es zum Schritt B13.
- B13 Der Controller sendet eine geänderte Wertinformation für τR an
den RAM-Baustein. Hiermit wird die Verzögerungseinrichtung am betreffenden
OCD auf einen anderen Wert eingestellt, und die Subroutine II (Schleife
der Schritte B10-B11-B12-B13) wird so lange mit jeweils neuer τR-Einstellung
durchlaufen, bis die beim Schritt B12 analysierte Empfangsqualität nicht
mehr zu verbessern ist. Dann ist die τR-Trimmung
am ausgewählten
OCD beendet, und es geht es von der Verzweigung B12 zur Verzweigung
B14.
- B14 Verzweigung: Wenn noch nicht alle OCDs im RAM-Baustein für die τR-Trimmung
ausgewählt worden
sind, geht es zum Schritt B15.
- B15 Der Controller sendet den Befehl MRS ("Modusregister setzen") und die Zielinformation für das Wertregister
(z.B. VR1), welches den an einem nächsten gewählten OCD (z.B. ST1) einzustellenden
Verzögerungswert τR bestimmt.
Dann folgt wieder der Schritt B3, bei welchem eine Wertinformation
für τR in
das betreffende Wertregister gesendet wird. Hiermit wird eine Verzögerungseinrichtung
am betreffenden OCD auf diesen Wert eingestellt. Anschließend laufen
wieder die bereits beschriebenen Subroutinen I und II zur τC-Trimmung
desjenigen Controller-Empfangspfades, der dem derzeit gewählten OCD
des RAM-Bausteins zugeordnet ist, und zur τR-Trimmung
an diesem OCD. So lange an der Verzweigung B14 entschieden wird,
dass noch nicht alle OCDs zur τR-Trimmung
ausgewählt
wurden, geht von B14 jedesmal wieder zum Schritt B15, um einen weitern
OCD auszuwählen.
- B16 Beendigung τR-Trimmprogramms, wenn an der Verzweigung
B14 entschieden wird, dass die τR-Trimmung an allen OCDs durchgeführt wurde.
-
Das
gleiche Programm kann zur Trimmung beliebiger anderer Parameter
der OCDs verwendet werden. Die Variable für das Hauptprogramm ist die Zielinformation
zur Selektion der OCDs und des zu trimmenden Parameters. Die Variable
für die
Trimmungs-Subroutine II ist die Wertinformation zur Vorgabe der
auszuprobierenden Werte des jeweiligen Parameters. Sollen mehrere
Parameter an jedem OCD getrimmt werden, kann das ganze Programm mehrmals
hintereinander durchgespielt werden, jedesmal mit Definition eines
anderen Parameters in der Zielinformation. Die Subroutine I (Schritte B4-B5-B6-B7-B8-B9)
für die
Trimmung der Daten/Strobe-Phasenbeziehung im Controller braucht aber
nur bei einer Durchspielung des Programms durchlaufen zu werden,
vorzugsweise bei der erstmaligen Durchspielung. Bei nachfolgenden
Wiederholungen des ganzen Programms zur Trimmung anderer Parameter
der OCDs wird die Subroutine übersprungen.
Dies ist in 4 symbolisiert durch den hinter
dem Block B3 eingezeichneten Schalter und den angeschlossenen Überbrückungs-Programmpfad
zum Block B10. Die Subroutine I kann allerdings auch ganz weggelassen
werden.
-
Die
Subroutine II für
die Parameter-Trimmung an den OCDs des RAM-Bausteins (Schleife B10-B11-B12-B13)
kann auch so ausgebildet werden, dass die Änderung der Wertinformation
(τR beim Beispiel nach 4) inkrementell
vom Minimalwert bis zum Maximalwert des Wertebereichs erfolgt, wobei
Bewertungen der Empfangsqualität
für alle
Werte gespeichert werden und anschließend der Wert, der die beste
Empfangsqualität
brachte, für
die endgültige
Einstellung des Parameters verwendet wird, ähnlich wie es in Verbindung
mit der Subroutine I beschrieben wurde.
-
Eine
weitere Variante besteht darin, die Subroutine II in die Subroutine
I zu integrieren, z.B. indem man die Schleife B10-B11-B12-B13 an die
Stelle der Schrittfolge B5-B6 setzt.
-
Es
sei noch bemerkt, dass die in der vorstehenden Beschrei bung und
auch in den Patentansprüchen
verwendete Bezeichnung "Controller" stellvertretend
auch für
einen Grafikprozessor steht, der beim Betrieb von Grafik-Speicherbausteinen
die Rolle des ansonsten üblichen
Controller-Bausteins übernimmt.
-
- 10
- Befehlsdecoder
- 20
- Zielinformations-Decoder
- 30
- UND-Gatter
- AP(0:13)
- Adressanschlüsse
- CLK
- Taktsignal
- CLP
- Taktanschluss
- CP(0:3)
- Befehlsanschlüsse
- ET(0:3)
- Daten-Empfangstreiber
- DL(0:3)
- Datenbus-Leitungen
- DP(0:3)
- Datenanschlüsse
- F(0:13)
- Modusregister-Flipflops
- GV
- Anschlussgruppe
für Wertinformation
- GZ
- Anschlussgruppe
für Zielinformation
- MRS
- Einstellbefehl
- ST(0:3)
- Daten-Sendetreiber
- VL
- Leitungen
für Wertinformation
- VR(0:7)
- Wertregister
- VS(0:7)
- Triggersignale
für die
Wertregister
- Z(1:3)
- Eingänge des
Zielinformations-Decoders