-
Technisches
Gebiet
-
Die Erfindung betrifft allgemein
integrierte Schaltungsbauelemente, insbesondere betrifft sie eine Schaltung
und ein Verfahren zum unabhängigen
Einstellen der jeweiligen Zeitverzögerung von mehreren digitalen
Signalen, damit ein internes Taktsignal bei dem Erfassen solcher
digitaler Signale bei hohen Datentransferraten verwendet werden
kann.
-
Hintergrund
der Erfindung
-
Herkömmliche Computersysteme enthalten
einen (nicht dargestellten) Prozessor, der an eine Vielfalt an Speicherbauelementen
gekoppelt ist, darunter Festspeicher ("ROMs"), die traditionell
Befehle für
den Prozessor speichern, und ein Systemspeicher, in den der Prozessor
möglicherweise
Daten schreibt, und aus dem der Prozessor Daten lesen kann. Außerdem kommuniziert
der Prozessor mit einem externen Cachespeicher, bei dem es sich
im Allgemeinen um einen statischen Schreib-/Lese-Speicher handelt
("SRAM"). Der Prozessor kommuniziert außerdem mit Eingabegeräten, Ausgabegeräten und
Datenspeichergeräten.
-
Prozessoren arbeiten im Allgemeinen
bei einer relativ hohen Geschwindigkeit. Prozessoren wie die Mikroprozessoren
Pentiumâ und
Pentium IIå sind
derzeit für
Betrieb mit Taktgeschwindigkeiten von mindestens 400 MHz verfügbar. Die übrigen Komponenten
existierender Rechnersysteme sind allerdings mit Ausnahme des SRAM-Caches
nicht in der Lage, bei der Geschwindigkeit des Prozessors zu arbeiten.
Aus diesem Grund werden die Systemspeicherbauelemente ebenso wie
die Eingabegeräte,
Ausgabegeräte
und Datenspeichergeräte
nicht direkt an den Prozessorbus gekoppelt. Statt dessen werden
Systemspeicherbauelemente im Allgemeinen über eine Speichersteuerung,
eine Busbrücke
oder ein ähnliches
Bauelement mit dem Prozessor gekoppelt, während die Ein gabegeräte, Ausgabegeräte und Datenspeichergeräte mit dem
Prozessorbus über eine
Busbrücke
gekoppelt werden. Die Speichersteuerung ermöglicht den Systemspeichergeräten, bei
einer niedrigeren Taktfrequenz zu arbeiten, die beträchtlich
geringer ist als die Taktfrequenz des Prozessors. In ähnlicher
Weise ermöglicht
die Busbrücke
den Eingabegeräten,
den Ausgabegeräten
und Datenspeichergeräten, bei
einer wesentlich geringeren Frequenz zu arbeiten. Derzeit kann beispielsweise
ein Prozessor mit einer Taktfrequenz von 300 MHz auf einer Mutterplatine
gehaltert sein, die eine Taktfrequenz von 66 MHz besitzt, um die
Systemspeichergeräte
und andere Komponenten zu steuern.
-
Zugriff zu dem Systemspeicher ist
ein häufiger
Vorgang für
den Prozessor. Die für
den Prozessor, der z. B. bei 300 MHz arbeitet, benötigte Zeitaufwand
zum Lesen von Daten aus dem Systemspeichergerät oder zum Einschreiben von
Daten in dieses Gerät,
das z. B. bei 66 MHz arbeitet, verlangsamt stark die Geschwindigkeit,
mit der der Prozessor eigentlich seine Operationen ausführen könnte. Deshalb
wird viel Mühe
darauf verwandt, die Betriebsgeschwindigkeit von Systemspeicherbauelementen
zu steigern.
-
Systemspeicherbauelemente sind im
Allgemeinen dynamische Schreib-/Lese-Speicher ("DRAMs"). Am Anfang waren
DRAMs asynchron und arbeiteten nur bei exakt der Taktgeschwindigkeit
der Mutterplatine. Tatsächlich
machte ein Zugriff auf asynchrone DRAMs häufig Wartezustände erforderlich,
die generiert wurden, um den Prozessor so lange anzuhalten, bis
der DRAM einen Speichertransfer abgeschlossen hatte. Allerdings
wurde die Betriebsgeschwindigkeit von asynchronen DRAMs erfolgreich
gesteigert durch Innovationen wie z. B. in Form von DRAMs mit Gas-
und Page-Modus, die nicht erfordern, dass an den DRAM bei jedem Speicherzugriff
eine Adresse gegeben wird. In jüngerer
Zeit wurden synchrone dynamische Schreib-/Lese-Speicher ("SDRAMs")
entwickelt, die den Pipeline-Transfer von Daten mit der Taktgeschwindigkeit
der Mutterplatine ermöglichen.
Dennoch sind auch SDRAMs nicht in der Lage, bei der Taktgeschwindigkeit
derzeit verfügbarer
Prozessoren zu arbeiten. Damit können
SDRAMs nicht direkt an den Prozessorbus angeschlossen werden, sondern
benötigen
statt dessen eine Schnittstelle bezüglich des Prozessorbusses über eine
Speichersteuerung, eine Busbrücke
oder ein ähnliches
Bauelement. Die Diskre panz zwischen der Betriebsgeschwindigkeit
des Prozessors und der Arbeitsgeschwindigkeit von SDRAMs beschränkt immer
noch die Geschwindigkeit, mit der Prozessoren Operationen abschließen können, die
einen Zugriff zum Systemspeicher erfordern.
-
Eine Lösung dieser Betriebsgeschwindigkeits-Diskrepanz
wurde in Form einer Rechnerarchitektur vorgeschlagen, die als Synchron-Link-Architektur
bekannt ist. Bei dieser Synchron-Link-Architektur läßt sich der
Systemspeicher entweder direkt über
den Prozessorbus oder über
eine Speichersteuerung mit dem Prozessor koppeln. Anstatt separate
Adressen- und Steuersignale für
den Systemspeicher zu erfordern, empfangen Synchron-Link-Speicherbauelemente
Befehlspakete, welche sowohl Steuer- als auch Adresseninformation
enthalten. Das Synchron-Link-Speicherbauelement gibt dann Daten
auf einen Datenbus oder empfängt
Daten von diesem, wobei der Datenbus direkt mit dem Datenbusteil
des Prozessorbusses gekoppelt ist.
-
Ein Beispiel für ein Computersystem 10,
welches die Synchron-Link-Architektur verwendet, ist in 1 gezeigt. Das Computersystem 10 enthält einen
Prozessor 12 mit einem Prozessorbus 14, der über eine Speichersteuerung 18 und
einen Systemspeicherbus 23 an drei paketierte oder Synchron-Link-Schreib-/Lese-Speicherbauelemente
("SLDRAM") 16a–16c gekoppelt
ist. Das Computersystem 10 enthält außerdem ein oder mehrere Eingabegeräte 20,
beispielsweise in Form einer Tastatur oder einer Maus, die an den
Prozessor 12 über
eine Busbrücke 22 und
einen Erweiterungsbus 24 gekoppelt ist, beispielsweise
einem der Industrie-Standardarchitektur ("ISA") entsprechenden Bus
oder einen peripheren Komponentenanschlussbus ("PCI"). Die Eingabegeräte 20 ermöglichen
es einer Bedienungsperson oder einem elektronischen Gerät, Daten
in das Computersystem 10 einzugeben. Mit dem Prozessor 12 ist
ein oder sind mehrere Ausgabegeräte 30 gekoppelt,
um von dem Prozessor 12 erzeugte Ausgabedaten anzuzeigen
oder anderweitig auszugeben. Die Ausgabegeräte 30 sind mit dem
Prozessor 12 über
den Erweiterungsbus 24, die Busbrücke 22 und den Prozessorbus 14 gekoppelt.
Beispiele für
Ausgabegeräte 24 umfassen
Drucker und Videoanzeigeeinheiten. Ein oder mehrere Datenspeichergeräte 38 sind
mit dem Prozessor 12 über
den Prozessorbus 14, die Busbrücke 22 und den Erwei terungsbus 24 gekoppelt,
um Daten in einen (nicht gezeigten) Massenspeicher zu speichern
oder Daten aus diesem zu holen. Beispiele für Speichergeräte 38 und
Speichermedien (Massenspeicher) beinhalten Festplattenlaufwerke,
Floppy-Disk-Laufwerke, Bandkassetten-Laufwerke und CD-ROM-Laufwerke.
-
Im Betrieb sendet der Prozessor 12 einen
Datentransferbefehl über
den Prozessorbus 14 zu der Speichersteuerung 18,
die ihrerseits mit den Speicherbauelementen 16a–16c über den
Systemspeicherbus 23 kommuniziert, indem sie an die Speicherbauelemente 16a–16c Befehlspakte
sendet, die sowohl Steuer- als auch Adresseninformation enthalten.
Zwischen der Speichersteuerung 18 und den Speicherbauelementen 16–16c werden
Daten über
einen Datenbusteil des Systemspeicherbusses 23 gekoppelt.
Während
eines Lesevorgangs erfolgt ein Datentransfer aus den paketierten
Speicherbauelementen 16a–16c über den
Speicherbus 23 zu der Speichersteuerung 18, die
ihrerseits Daten über
den Prozessorbus 14 an den Prozessor 12 weitergibt.
Der Prozessor 12 transferiert Schreibdaten über den
Prozessorbus 14 zu der Speichersteuerung 18, die
wiederum die Schreibdaten über
den Systemspeicherbus 23 an die paketierten Speicherbauelemente 16a–16c transferiert.
Obschon sämtliche
Speicherbauelemente 16a–16c an die gleichen
Leiter des Systemspeicherbusses 23 gekoppelt sind, liest
nur ein Speicherbauelement 16a–16c zu gegebener
Zeit Daten oder Schreibdaten, wodurch eine Kollision auf dem Speicherbus 23 vermieden
wird. Vermieden wird ein Stau auf dem Bus durch jedes der Speicherbauelemente 16a–16c auf
dem Systemspeicherbus 23 dadurch, dass die Bauelemente
jeweils eine einzigartige Kennung besitzen, während das Befehlspaket einen
Kennungscode enthält,
der lediglich eine dieser Komponenten auswählt.
-
Das Computersystem 10 enthält weiterhin
eine Anzahl zusätzlicher
Komponenten und Signalleitungen, die aus Gründen der Kürze in 1 weggelassen sind. Beispielsweise empfangen
die Speicherbauelemente 16a–16c auch ein Befehlstaktsignal
für die
Schaffung interner Zeitsteuersignale, und sie empfangen und liefern
Datentaktsignale zum Eintakten von Daten in das Speicherbauelement
oder zum Austakten von Daten aus diesem, ferner empfangen sie ein
FLAG-Signal, welches den Start eines Befehlspakets kennzeichnet,
wie weiter unten näher
erläutert
wird.
-
Ein typisches Befehlspaket CA<0:39> für ein paketiertes Speicherbauelement
ist in 2 gezeigt und besteht
aus vier Befehlspaketwörtern
CA<0:9>, jeweils 10 Datenbits
enthaltend. Wie weiter unten näher
erläutert
wird, wird jedes Paketwort CA<0:9> an einen Befehlsbus
CA gelegt, welcher 10 Leitungen CA0-CA9 enthält. In 2 umfassen die vier Paketwörter CA<0:9> ein Befehlspaket CA<0:39> bezeichnet mit PW1–PW4. Das
erste Paketwort PW1 enthält
7 Datenbits, welche das paketierte Speicherbauelement 16a–16c kennzeichnen,
welches der vorgesehene Empfänger
des Befehlspakets ist. Wie weiter unten erläutert wird, ist jedes der paketierten
Speicherbauelemente 16a–16c mit einem einzigartigen
ID-Code (Kennungscode) versehen, der mit den 7 ID-Bits des ersten
Paketworts PW1 verglichen wird. Obschon also sämtliche paketierten Speicherbauelemente 16a–16c das
Befehlspaket CA<0:39> empfangen, spricht
nur dasjenige paketierte Speicherbauelement auf das Paket an, welches
einen mit den 7 ID-Bits des ersten Paketworts PW1 übereinstimmenden ID-Code
besitzt.
-
Die übrigen 3 Bits des ersten Paketworts
PW1 sowie 3 Bits des zweiten Paketworts PW2 bilden einen 6-Bit-Befehl.
Typische Befehle sind Lesen und Schreiben in einer Vielfalt von
Betriebsarten (Modi), so z. B. Zugriffe auf Seiten oder Bänke von
Speicherzellen. Die übrigen
7 Bits des zweiten Paketworts PW2 und Teile des dritten und vierten
Paketworts PW3 und PW4 umfassen eine 20-Bit-Adresse, die eine Bank-, Reihen- und Spalten-Adresse
für einen
Speichertransfer oder den Start eines Mehrfachbit-Speichertransfers
spezifizieren. Bei einer Ausführungsform
wird die 20-Bit-Adresse aufgeteilt in 3 Bits der Bankadresse, 10
Bits der Reihenadresse und 7 Bits der Spaltenadresse. Obschon das
in 2 gezeigte Befehlspaket
sich aus 4 Paketwörtern PW1
bis PW4 mit jeweils bis zu 10 Bits zusammensetzt, versteht sich,
dass ein Befehlspaket auch weniger oder mehr Paketwörter umfassen
kann und dass jedes Paketwort weniger oder mehr Bits enthalten kann.
-
Das Speicherbauelement 16a ist
in 3 in Form eines Blockdiagramms
dargestellt. Jedes der Speicherbauelemente 16a–16c enthält eine
Taktgeneratorschaltung 40, die einen Befehlstaktsignal
CCLK empfängt
und eine große
Anzahl wei terer Takt- und Zeitsteuersignale zum Steuern des zeitlichen
Ablaufs verschiedene Operationen innerhalb des Speicherbauelements 14a erzeugt.
Das Speicherbauelement 16a enthält weiterhin einen Befehlspuffer 46 und
eine Adressenauffangschaltung 48, die einem internen Taktsignal ICLK
ein Befehlspaketwort CA<0:9> auf einem 10-Bit-Befehlsbus
CA empfangen, und einen Anschluß 52 zum Empfangen
eines FLAG-Signals. Der Taktgenerator 40 erzeugt das ICLK-Signal
ansprechend auf das Signal CCLK, und das Signal ICLK hat gegenüber dem
Signal CCLK eine Phasenverschiebung. Eine (nicht gezeigte) Speichersteuerung
oder ein anderes Bauelement sendet normalerweise Befehlspaketwörter CA<0:9> an das Speicherbauelement 16a in Übereinstimmung
mit dem Befehlstaktsignal CCLK. Wie oben erläutert wurde, enthält das Befehlspaket
CA<0:39>, welches im Allgemeinen
vier 10-Bit-Paketwörter
PW1–PW4
beinhaltet, Steuer- und Adresseninformation für jeden Speichertransfer. Das
FLAG-Signal wird in Übereinstimmung
mit dem Paketwort CA<0:9> übertragen und kennzeichnet
den Beginn eines Befehlspakets CA<9:39>. Außerdem signalisiert
das FLAG-Signal den Beginn einer Betriebsmodus-Initialisierung,
wie weiter unten näher
erläutert wird.
-
Der Befehlspuffer 46 speichert
das Befehlspaket CA<0:39> von dem Befehlsbus
CA abhängig
vom Signal ICLK, und er vergleicht zumindest einen Teil des Befehlspakets
zum Identifizieren von Daten aus einem ID-Register 56,
um festzustellen, ob das Paket zu dem Speicherbauelement 16a oder
zu einem anderen Speicherbauelement 16b, c gerichtet ist.
Wenn der Befehlspuffer 46 feststellt, dass das Befehlspaket
an das Speicherbauelement 16a gerichtet ist, liefert es
den Befehlsteil des Pakets an eine Befehlsdecodier- und Ablaufsteuerung 60.
Die Befehlsdecodier- und Ablaufsteuerung 60 erzeugt eine
große
Anzahl von internen Steuersignalen, um den Betrieb des Speicherbauelements 16a während eines
Speichertransfers zu steuern.
-
Die Adressenauffangschaltung 48 empfängt außerdem das
Befehlspaket CA<0:39> von dem Befehlsbus
CA und gibt eine dem Adressenteil des Befehlspakets entsprechende
20-Bit-Adresse aus. Die Adresse wird auf eine Adressenablaufsteuerung 64 gegeben,
die eine 3-Bit-Bankadresse auf einem Bus 66, eine 10-Bit-Reihenadresse
auf einem Bus 68 und eine 7-Bit-Spaltenadresse auf einem
Bus 70 erzeugt. Die Reihen- und Spaltenadressen werden
von Reihen- und
Spaltenadressenpfaden in der unten näher erläuterten Weise verarbeitet.
-
Eins der Probleme bei herkömmlichen
DRAMs ist deren relativ geringe Geschwindigkeit, bedingt durch die
Zeit, die erforderlich ist, um die Schaltung in dem DRAM-Array voraufzuladen
und auszugleichen. Das paketierte Speicherbauelement 16a nach 3 vermeidet dieses Problem
wesentlich dadurch, dass eine Mehrzahl von Speicherbänken 80 verwendet
wird, im vorliegenden Fall acht Speicherbänke 80a–80h.
Nach einem Lesevorgang aus einer Bank 80a kann die Bank 80a voraufgeladen
werden, während
die übrigen
Bänke 80b–80h für den Zugriff
frei sind. Jede der Speicherbänke 80a–80h empfängt eine
Reihenadresse von einem zugehörigen
Auffangspeicher/Decodierer/Treiber 82a-82h. Sämtliche Reihen-Auffangspeicher/Decodierer/Treiber 82a–82h empfangen
die selbe Reihenadresse von einem Vordecodierer 84, der
seinerseits eine Reihenadresse von entweder einem Reihenadressenregister 86 oder
einer Auffrischungszelle 88 empfängt, was jeweils von einem
Multiplexer 90 festgelegt wird. Allerdings ist nur einer
der Reihen-Auffangspeicher/Decodierer/Treiber 82a–82h zu
einem gegebenen Zeitpunkt aktiv, was von einer Bank-Steuerlogik 84 als
Funktion einer Bankadresse aus einem Bankadressenregister 96 festgelegt
wird.
-
Die Spaltenadresse auf dem Bus 70 wird
an einen Spalten-Auffangspeicher/Decodierer 100 gelegt, der E/A-Gattersignale
an eine E/A-Gatterschaltung 102 gibt, die eine Schnittstelle
bezüglich
der Spalten der Speicherbänke 80a–80h über Leseverstärker 104 bildet.
Daten werden auf die Speicherbänke 80a–80h oder von
diesen über
die Leseverstärker 104 und
die E/A-Gatterschaltung 102 auf ein Datenweg-Subsystem 100 gekoppelt,
welches einen Lesedatenpfad 110 und einen Schreibdatenpfad 112 enthält. Der
Lesedatenpfad 110 enthält
einen Lese-Auffangspeicher 120, der Daten aus der E/A-Gatterschaltung
102 speichert.
-
In dem in 3 gezeigten Speicherbauelement 16a werden
72 Datenbits in dem Lese-Auffangspeicher 120 gespeichert,
der dann vier 18-Bit-Datenwörter
an einen Ausgabemultiplexer 122 gibt, welcher sequentiell
jedes der 18-Bit-Da tenwörter
in einen Lese-FIFO-Puffer 124 eingibt. Es werden aufeinanderfolgende 18-Bit-Datenwörter von
einem Taktsignal RCLK, das aus einem internen Taktsignal ICLK generiert
wird, in den Lese-FIFO-Puffer 124 eingetaktet. Die 18-Bit-Datenwörter werden
dann aus dem Lese-FIFO-Puffer 124 durch ein Taktsignal
ausgetaktet, welches dadurch erhalten wird, dass das Signal RCLK über eine
programmierbare Verzögerungsschaltung 126 geleitet
wird. Die programmierbare Verzögerungsschaltung 126 wird
während
der Initialisierung des Speicherbauelements 16a derart
programmiert, dass die Daten aus dem Speicherbauelement von einer
Speichersteuerung, einem Prozessor oder einem anderen (in 3 nicht gezeigten) Gerät zum passenden
Zeitpunkt empfangen werden. Der FIFO-Puffer 124 legt sequentiell
die 18-Bit-Datenwörter
an eine Treiberschaltung 128, die ihrerseits die 18-Bit-Datenwörter an
einen Datenbus DQ legt, der Teil des Prozessorbusses 14 ist
(vgl. 1). Außerdem legt
die Treiberschaltung 124 eines der beiden Datentaktsignale DCLK0
und DCLK1 an die Datentaktleitungen 132 bzw. 133.
Die Datentakte DCLK0 und DCLK1 ermöglichen einem Bauelement wie
z. B. dem Prozessor 12, dass das Lesen der Daten auf dem
Datenbus DQ mit den Daten synchronisiert wird. Spezielle Bits innerhalb
des Befehlsteils des Befehlspakets CA0–CA9 legen fest, welcher der
beiden Datentakte DCLK0 und DCLK1 von der Treiberschaltung 128 angelegt
wird. Man sieht, dass die Taktsignale CCLK, DCLK0 und DCLK1 Differenztaktsignale
sind, die jeweils wahre und komplementäre Signale enthalten, wobei
allerdings zur Vereinfachung der Beschreibung jeweils nur ein Signal
für jeden
Takt dargestellt und beschrieben ist.
-
Der Schreibdatenpfad 112 enthält einen
Empfangspuffer 140, der an den Datenbus 130 gekoppelt
ist, und der sequentielle 16-Bit-Datenwörter von dem Datenbus DQ an
vier Eingaberegister 142 legt, von jenen jedes selektiv
durch ein Signal von einer Taktgeneratorschaltung 144 freigegeben
wird. Die Taktgeneratorschaltung 144 erzeugt diese Freigabesignale
abhängig
von einem ausgewählten
Signal aus den Datentaktsignalen DCLK0 und DCLK1. Die Speichersteuerung
oder der Prozessor stellt fest, welcher Datentakt DCLK0 oder DCLK1
während
einer Schreiboperation verwendet wird, wozu der Befehlsteil des
Befehlspakets CA<0:39> an das Speicherbauelement 16a gelegt
wird. Wie bei dem Befehlstaktsignal CCLK und dem Befehlspaket, sendet
die Speichersteue rung oder das andere (nicht gezeigte) Bauelement
normalerweise die Daten an das Speicherbauelement 16a in Übereinstimmung
mit dem ausgewählten
Signal von den Taktsignalen DCLK0 und DCLK1. Der Taktgenerator 144 wird
während
der Initialisierung so programmiert, dass der zeitliche Ablauf des
an die Eingaberegister 142 gelegten Taktsignals relativ
zu dem ausgewählten
einen Datentaktsignal DCLK0 bzw. DCLK1 so liegt, dass die Eingaberegister 142 die
Schreibdaten zu den passenden Zeitpunkten abfangen können. Ansprechend
auf das abhängig
von dem ausgewählten
Datentakt DCLK0 oder DCLK1 erzeugte Taktsignal speichern die Eingaberegister 142 sequentiell
vier 16-Bit-Datenwörter
und kombinieren sie zu einem 64-Bit-Datenwort, welches an einen
Schreib-FIFO-Puffer 148 gelegt wird, welcher durch ein
Signal von dem Taktgenerator 144 und einem internen Schreibtakt
WCLK so getaktet wird, dass 64-Bit-Schreibdaten sequentiell an einen Schreib-Auffangspeicher
und -treiber 150 gelegt werden. Der Schreib-Auffangspeicher und
-treiber 150 legt die 64-Bit-Schreibdaten über die E/A-Gatterschaltung
102 und die Leseverstärker 140 an eine
der Speicherbänke 80a–80h.
-
Wie oben ausgeführt, besteht das Ziel der Synchron-Link-Architektur
darin, einen Datentransfer zwischen einem Prozessor und einem Speicherbauelement
in der Weise zuzulassen, dass er bei einer signifikant höheren Geschwindigkeit
abläuft.
Angemerkt sei, dass der Begriff "Datentransfer" hier sämtliche
digitalen Signale umfaßt,
die zu dem Speicherbauelement 16a und aus ihn heraus stattfinden,
mithin Signale auf den CA und DQ-Bus ebenso wie das FLAG-Signal
umfaßt.
Wenn die Datentransferrate zunimmt, wird es schwieriger, die erforderliche
zeitliche Abstimmung zwischen den an das Speicherbauelement 16a gesendeten
Signalen aufrecht zu erhalten. Beispielsweise wird, wie oben erwähnt, das
Befehlspaket CA<0:39> normalerweise übereinstimmend
mit dem Befehlstaktsignal CCLK an das Speicherbauelement 16a gesendet,
und normalerweise werden die Daten in Übereinstimmung mit dem ausgewählten Datentaktsignal
DCLK0 oder DCLK1 an das Speicherbauelement 16a übertragen.
Aufgrund von ungleichen Signalverzögerungen und weiteren Faktoren können allerdings
die Befehlspaketwörter
CA<0:1> an dem Speicherbauelement 16a nicht
zeitgleich mit dem Befehlstaktsignal CCLK ankommen, und die Schreibdatenpaketwörter DQ<0:17> können an dem Speicherbauelementen 16a nicht übereinstimmend mit
dem ausgewählten
Datentaktsignal DCLK0 oder DCLK1 ankommen. Wenn außerdem diese
Signale tatsächlich
in Übereinstimmung
miteinander auf das Speicherbauelement 16a gekoppelt werden,
so kann diese zeitliche Lage verloren gehen, wenn die Signale auf
Schaltungen innerhalb des Speicherbauelements gegeben werden. Zum
Beispiel erfordern interne Signale Zeit zur Ausbreitung bis zu unterschiedlichen
Schaltungsteilen innerhalb des Speicherbauelements 16a,
und verschiedene Längen von
Signalwegen können
Ursache sein für
Unterschiede in den Zeitpunkten, zu denen Signale die Schaltung erreichen,
wobei Unterschiede der kapazitiven Belastung von Signalleitungen
ebenfalls Ursache sein können für unterschiedliche
Zeitpunkte, zu denen Signale die Schaltung erreichen.
-
Die Probleme in Verbindung mit schwankenden
Ankunftszeiten können
bei hohen Datentransferraten beträchtlich sein und schließlich die
Betriebsgeschwindigkeit des paketierten Speicherbauelements begrenzen.
Wenn z. B. der interne Takt CLK, der von dem Befehlstakt CCLK abgeleitet
ist, nicht bewirkt, dass jedes der Paketwörter CA<0:9>,
die ein Befehlspaket CA<0:39> bilden, zur richtigen
Zeit gespeichert wird, so kann es zu Fehlern beim Betrieb des Speicherbauelements 16a kommen.
Die zeitliche Lage oder die Phasenverschiebung des internen Taktsignals
ICLK relativ zu dem Befehlstaktsignal CCLK muß einen Wert haben, der dem
Signal ICLK ermöglicht,
erfolgreich beim Zwischenspeichern jedes der jeweiligen Befehlssignale CA<0>-CA<9> des
Paketworts CA<0:9> verwendet zu werden.
Das gleiche gilt für
die jeweiligen internen Taktsignale, die von den Signalen DCLK0
und DCLK1 abgeleitet werden, wobei diese internen Taktsignale dazu verwendet
werden, die an den Datenbus DQ gelegten Signale DQ<0>-DQ<17> zwischenzuspeichern.
-
Wenn die Datentransferrate zunimmt,
nimmt die Dauer, während
der jedes Signal CA<0>-CA<9> innerhalb
eines Paketworts CA<0:9> gültig ist, um einen entsprechenden
Betrag ab, wie für
die Fachmann ersichtlich ist. Insbesondere wird das Datenfenster
oder das "Auge" für
jedes der Signale CA<0>-CA<9> bei
höheren
Datentransferraten kleiner, und das Gleiche gilt für die jeweiligen
Datensignale DQ<0>-DQ<17>,
die an den Datenbus DQ gelegt werden. Die folgende Diskussion betrifft
sowohl die Signale CA<0>-CA<9> als
auch DQ<0>-DQ<17>,
wobei allerdings hier nur die Signale CA<0>-CA<9> detailliert diskutiert
werden. Wie der Fachmann sieht, definiert das Datenauge oder das
Augenmuster für
jedes der Signale CA<0>-CA<9> die
tatsächliche
Zeitspanne, innerhalb der jedes Signal gültig ist, nachdem der zeitliche
Versatz des Signals berücksichtigt
ist. Der zeitliche Versatz der Signale CA<0>-CA<9> ergibt sich aus einer
Vielfalt von Zeitsteuerfehlern, so z. B. aus dem Laden der Leitungen
des CA-Busses und den baulichen Längen derartiger Leitungen. 4 ist ein Impulsdiagramm,
welches die Augenmuster für
eine Reihe von Signalen CA<0>-CA<9> veranschaulicht.
Jedes dieser Signale entspricht dem selben Paketwort CA<0:1>, angelegt an den Befehlsbus
CA von der Speichersteuerung 18. Die ausgezogenen Linien
bedeuten die idealen Signale CA<0>, CA<1> und CA<9>, die gestrichelten
Linien bedeuten den potentiellen Zeitversatz für die aktuellen Signale CA<0>, CA<1> und CA<9>. Die Augenmuster DE
für die
Signals CA<0>, CA<1> und CA<9> sind definiert durch
Zeitintervalle t0-t2, t1-t4, bzw. t5-t7. Der Zeitversatz
reduziert die Augenmuster DE der Signale CA<0>,
CA<1> und CA<9> und verringert somit
die gültige
Zeitspanne, während
der jedes dieser Signale erfolgreich aufgenommen werden kann.
-
Wenn die Augenmuster der angelegten
Signale CA<0>-CA<9> bei
hohen Transferraten kleiner werden, besteht die Möglichkeit,
dass eines oder mehrere dieser Signale in jedem Paketwort CA<0:9> Ankunftszeiten haben,
bei denen nicht sämtliche
Signale innerhalb eines Paketworts an dem Speicherbauelement 16a gleichzeitig
gültig
sind und somit nicht erfolgreich von dem internen Taktsignal ICLK
erfaßt
werden können.
In 4 überlappen
sich z. B. das Augenmuster DE des Signals CA<0> zwischen
den Zeitpunkten t0-t2 und
das Augenmuster des Signals CA<9> zwischen den Zeitpunkten
t5-t7, nicht. In
dieser Situation sind die Signale CA<0> und
CA<9> an dem Speicherbauelement 16a nicht
gleichzeitig gültig,
demzufolge das Paketwort CA<0:1> abhängig von
dem Signal ICLK nicht erfolgreich erfaßt werden können. Der Übergang des ICLK-Signals im
Zeitpunkt t2 könnte erfolgreich die Signale
CA<0> und CA<1> erfassen, allerdings
nicht das Signal CA<9>, hingegen könnte der Übergang
des Signals ICLK im Zeitpunkt t6 erfolgreich
das Signal CA<9> erfassen, allerdings
nicht die Signale CA<0> und CA<1>, die bereits ungültig geworden
sind.
-
Es besteht Bedarf an dem erfolgreichen
Erfassen von Signalen, die mit hohen Datentransferraten an ein paketiertes
Speicherbauelement gelegt werden. Obschon sich die obige Diskussion
auf paketierte Speicherbauelemente wie SLDRAMs bezieht, existieren
allerdings ähnliche
Probleme auch bei anderen Arten integrierter Schaltungen, darunter
andere Typen von Speicherbauelementen, außerdem bei jedem System, welches
digitale Signale erfaßt,
die mit sehr hohen Datentransferraten an einen Bus gelegt werden.
-
Offenbarung
der Erfindung
-
Gemäß einem Aspekt der Erfindung
erfaßt
eine Buserfassungsschaltung digitale Signale, die an einzelne Leitungen
eines Busses gelegt werden. Jeder Zwischen- oder Auffangspeicher
besitzt Eingangs- und Ausgangsanschlüsse und speichert ein an einen
Eingangsanschluß angelegtes
digitales Signal ansprechend auf ein Taktsignal. Die Buserfassungsschaltung
enthält
weiterhin eine Mehrzahl von Signalverzögerungsschaltungen, die jeweils
zwischen eine zugehörige
Busleitung und den Eingangsanschluß eines zugehörigen Auffangspeichers
geschaltet sind. Jede Signalverzögerungsschaltung
bildet ein verzögertes
digitales Signal mit einer Verzögerungszeit
gegenüber
dem an die entsprechende Busleitung gelegten digitalen Signale,
und sie legt das verzögerte
digitale Signal an den Eingangsanschluß des zugehörigen Auffangspeichers. Eine
Steuerschaltung ist mit den Signalverzögerungsschaltungen und mit
den Ausgangsanschlüssen
der Auffangspeicher gekoppelt und derart betreibbar, dass sie unabhängig die
jeweiligen Verzögerungszeiten
jeder Signalverzögerungsschaltung
als eine Funktion des Daten-Augenmusters des digitalen Signals justiert,
welches an den Eingang der Signalverzögerungsschaltung gelegt wird.
Auf diese Weise justiert die Buserfassungsschaltung die jeweilige
Verzögerungszeit
jeder Signalverzögerungsschaltung
in der Weise, dass der zugehörige
Auffangspeicher das von der Signalverzögerungsschaltung ausgegebene
verzögerte
digitale Signal ansprechend auf ein angelegtes Taktsignal erfolgreich
zwischenspeichert.
-
Gemäß einem zweiten Aspekt der
Erfindung arbeitet die Steuerschaltung in einem Überwachungsmodus zum Nachweisen
von Verschiebungen des Daten-Augenmusters
eines externen Taktsignals. Ermittelt die Steuerschaltung eine derartige
Verschiebung, so justiert die Steuerschaltung die Verzögerungszeit
sämtlicher Signalverzögerungsschaltungen
durch eine Verzögerungs-Einstellzeit.
Gemäß einem
weiteren Aspekt der Erfindung ist die Buserfassungsschaltung in
einem paketierten Speicherbauelement enthalten, beispielsweise einem
SLDRAM, und arbeitet während
eines Initialisierungsmodus so, dass sie die Verzögerungszeiten
jeder Signalverzögerungsschaltung
als Funktion des Daten-Augenmusters
des digitalen Signals justiert, welches an den Eingang dieser Signalverzögerungsschaltung
gelegt wird.
-
Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm eines herkömmlichen
Computersystems mit mehreren paketierten Speicherbauelementen.
-
2 ist
ein Diagramm eines typischen Befehlspakets, welches von den in 1 gezeigten paketierten
Speicherbauelementen empfangen wird.
-
3 ist
ein Blockdiagramm eines herkömmlichen
paketierten Speicherbauelements in dem Computersystem nach 1.
-
4 ist
ein Impulsdiagramm, welches die Auswirkung von Zeitversetzungen
der jeweiligen Befehlssignale bei hohen Datentransfergeschwindigkeiten
veranschaulicht.
-
5 ist
ein funktionelles Blockdiagramm einer Bit-zu-Bit-Zeitkorrekturschaltung
gemäß einer
Ausführungsform
der Erfindung.
-
6 ist
ein Impulsdiagramm, welches den Betrieb der Zeitkorrekturschaltung
nach 5 während eines
Initialisierungsmodus veranschaulicht.
-
7 ist
ein Impulsdiagramm, welches den Betrieb der Zeitsteuerschaltung
nach 5 während eines Überwachungsmodus
veranschaulicht.
-
8A und 8B sind jeweils eine schematische
Darstellung einer Ausführungsform
von einem der Befehlsverzögerungsringe
in 5.
-
9 ist
eine schematische Ansicht einer Ausführungsform eines der Verzögerungsringzellen
in 8A.
-
10A und 10B sind jeweils eine schematische
Ansicht einer Ausführungsform
einer der Datenverzögerungsringe
aus 5.
-
11 ist
eine schematische Darstellung einer Ausführungsform einer der Verzögerungsschaltungen aus 5.
-
12 ist
ein funktionelles Blockdiagramm einer Ausführungsform der Überwachungsschaltung
aus 5.
-
13 ist
ein Impulsdiagramm, das die Arbeitsweise der Überwachungsschaltung aus 12 erläutert.
-
14A–14C sind schematische Ansichten einer Ausführungsform
der Überwachungsschaltung
in 12.
-
15 ist
eine schematische Ansicht einer Ausführungsform eines der Schieberegister
in 5.
-
16 ist
eine schematische Ansicht einer Ausführungsform eines der in den 9, 14B und 14 gezeigten Register,
-
17 ist
eine schematische Ansicht einer Ausführungsform eines Setzregisters
aus 10A.
-
18 ist
eine schematische Ansicht einer Ausführungsform des Rücksetzregisters
aus 10A.
-
Detaillierte
Beschreibung der Erfindung
-
5 ist
ein funktionelles Blockdiagramm einer bitweisen Zeitkorrekturschaltung 500 gemäß einer Ausführungsform
der Erfindung. Die bitweise oder Bitzu-Bit-Zeitkorrekturschaltung 500 ist
typischerweise in dem Befehlspuffer 46, der Adressenerfassungsschaltung 48 und
der Schreibdatenweg-Schaltung 112 des paketierten Speicherbauelements 16a aus 3 enthalten, kann aber auch
in irgendeinem anderen Typ von integrierter Schaltung enthalten
sein, einschließlich
anderer Typen von Speicherbauelementen. Im Betrieb arbeitet die
bitweise Zeitkorrekturschaltung 500 in zwei Betriebsarten
oder Modi, einem Initialisierungsmodus und einem Überwachungsmodus.
Während
des Initialisierungsmodus justiert die bitweise Zeitkorrekturschaltung 500 unabhängig die
einzelnen Zeitverzögerungen
für jedes
der Signale CA<0>-CA<9> und
das FLAG-Signal, die an den Befehlsbus CA gelegt werden, so dass
diese Signale erfolgreich von einem internen Taktsignal abgefangen
werden können,
welches abhängig
von dem Befehlstaktsignal CCLK erzeugt wird, und die Schaltung arbeitet
in der gleichen Weise, um unabhängig
die einzelnen Verzögerungszeiten
für jedes
der Datensignale DQ<0>-DQ<17> zu
justieren, demzufolge diese Signale erfolgreich von den jeweiligen
internen Taktsignalen erfasst werden können, die abhängig von
den Signalen DCLK0 und DCLK1 erzeugt werden, wie im Folgenden in
größerer Ausführlichkeit
erläutert
wird. Während
des Überwachungsmodus
erfasst die bitweise Zeitkorrekturschaltung 500 Verschiebungen
des Daten-Augenmusters des Befehlstaktsignals CCLK und justiert die
zuvor bestimmten Zeitverzögerungen
für jedes
der Signale CA<0>-CA<9>,
DQ<0>-DQ<17> und FLAG, wenn eine
solche Verschiebung festgestellt wird, um dadurch ein erfolgreiches
Aufnehmen dieser Signale während
des normalen Be triebs des paketierten Speicherbauelements 16a aufrechtzuerhalten,
welches die bitweise Zeitkorrekturschaltung 500 beinhaltet,
wie weiter unten näher
erläutert
wird.
-
Die bitweise Zeitkorrekturschaltung 500 enthält eine
Mehrzahl von Datenempfängern 502a–502k,
von denen jeder ein zugehöriges
Signal der Befehlssignale CA<0>-CA<9> empfängt, die
an einen Befehlsbus CA gegeben werden. Jeder der Datenempfänger 502a–502k bildet
ein zugehöriges
Ausgangssignal CAIN<0>-CAIN<9> ansprechend auf das
entsprechende Befehlssignal CA<0>-CA<9>,
welches an seinen Eingang gegeben wird. Die Datenempfänger 502a–502k arbeiten
wie herkömmliche
Datenempfänger,
wobei jeder Datenempfänger
das entsprechende Signal CAIN<0>-CAIN<9> von seinem Ausgang
auf den gleichen logischen Spannungspegel bringt, wie ihn das entsprechende
Signal CA<0>-CA<9> an
seinem Ausgang hat, wobei eine minimale Zeitverzögerung zwischen Eingangssignal
und Ausgangssignal erzeugt wird. Ein Datenempfänger 502k arbeitet
in gleicher Weise, indem er das Signal FLAG an seinem Eingang empfängt und
an seinem Ausgang abhängig
von dem empfangenen Signal FLAG ein Signal FLAGIN bildet. Ein Datenempfänger, der
für jeden
der Datenempfänger 502a–502k verwendet
werden kann, ist in größerer Einzelheit
beschrieben in der US-Patentanmeldung 09/140,857 von Brent Keeth
et al. mit dem Titel "LOW SKEW DIFFERENTIAL RECEIVER WITH DISABLE
FEATURE", hier durch Bezugnahme inkorporiert.
-
Die von den Datenempfängern 502–502k kommenden
Signale CA<0>-CA<9> und FLAGIN werden
an einen Befehlserfassungsblock 504 gegeben, der jedes
dieser empfangenen Befehlssignale um eine zugehörige Zeitverzögerung verzögert und
verzögerte
Befehlssignale CADEL<0>-CADEL<9> sowie FLAGDEL erzeugt,
wie weiter unten ausführlicher
erläutert
wird. Der Befehlserfassungsblock 504 enthält mehrere
Befehlsverzögerungsringe 506a–506k,
von jeden jeder ein zugehöriges
Signal der Signale CAIN<0>-CAIN<9> und FLAGIN empfängt und
außerdem
mehrere Steuersignale 510 sowie ein Auswahlwort SEL<0:4> von einer Initialisierungssteuerschaltung 508 empfängt. Während des
Betriebs erzeugt jeder der Befehlsverzögerungsringe 506a–506k das
entsprechende verzögerte
Befehlssignal CADEL<0>-CADEL<9> und FLAGDEL, die eine variable
oder justierbare Verzögerungszeit
relativ zu dem angelegten Signal CAIN<0>-CAIN<9> und FLAGIN haben.
Beispielsweise erzeugt der Befehlsverzögerungsring 506a das
Signal CADEL<0> mit einer justierbaren Zeitverzögerung gegenüber dem
an seinem Eingang gelegten Signal CAIN<0>.
Die Werte der jeweiligen Verzögerungszeiten
der Befehlsverzögerungsringe 506a–506k bestimmen
sich durch die Steuerschaltung 508 während eines Initialisierungsmodus,
und durch eine Überwachungsschaltung 512 während eines Überwachungsbetriebs.
Während
des Initialisierungsmodus wählt
die Steuerschaltung 508 einen der Befehlsverzögerungsringe 506a–506k dadurch
aus, dass das Wort SEL<0:4> mit einen Wert, der
dem ausgewählten
Befehlsverzögerungsring
entspricht, anlegt, und dann die Steuersignale 510 bildet,
um den Wert der entsprechenden Zeitverzögerung einzustellen. Es sei
angemerkt, dass die Steuersignale 510 von der Steuerschaltung 508 nur die
Zeitverzögerung
des ausgewählten
Befehlsverzögerungsrings 506a–506k justieren,
jedoch von sämtlichen nicht
ausgewählten
Befehlsverzögerungsringen
ignoriert werden. Während
des Überwachungsbetriebs
wird keiner der Befehlsverzögerungsringe 506a–506k von
dem Wort SEL<0:4> ausgewählt, und
die Überwachungsschaltung 512 legt
mehrere Steuersignale 514 an jeden der Befehlsverzögerungsringe 506a–506k an, um
jede der zugehörigen
Verzögerungszeiten
um den gleichen Betrag nachzujustieren. Bei der Bildung der Steuersignale 514 tastet
die Überwachungsschaltung 512 das
Daten-Augenmuster eines von einem Datenempfänger 542 gebildeten
Taktsignals CCLKM abhängig
vom Signal CCLK ab und stellt Verschiebungen in diesem Daten-Augenmuster
fest, wie weiter unten näher
erläutert
wird. Eine Initialisierungs-Steuerschaltung 508 legt ein
Freigabesignal ENABLE an, um die Überwachungsschaltung 512 zu
aktivieren, damit sie mit dem Überwachungsbetrieb
beginnt. Im Gegensatz zum Initia lisierungsmodus, in welchen nur
die Verzögerungszeit des
ausgewählten
Befehlsverzögerungsrings 506a–506k eingestellt
wird, werden im Überwachungsbetrieb
die jeweiligen Verzögerungszeiten
sämtlicher
Befehlsverzögerungsringe 506a um
den gleichen Betrag verstellt. Der Betrieb der Befehlsverzögerungsringe 506a–506k während sowohl
des Initialisierungs- als auch des Überwachungsmodus wird im Folgenden
näher erläutert.
-
Mehrere Schieberegister 512a–516k empfangen
die verzögerten
Signale CA-DeL<0>-CADEL<9> und das Signal FLAGEL
an ihren Eingängen,
sie werden getaktet von einem verzögerten Befehlstaktsignal CCLKD.
Jedes der Schieberegister 516a–516k enthält vier
Stufen und verschiebt das entsprechende Verzögerungssignal CADEL<0:9> und FLAGDEL an seinem
Eingang in die erste Stufe bei jeder Vorderflanke des Signals CCLKD,
und bei jeder Rückflanke
des Signals CCLKD in die zweite Stufe. Anschließend wird das Signal in der
ersten Stufe aus dieser ersten Stufe ansprechend auf die nächste Anstiegsflanke
des Signals CCLKD zur dritten Stufe verschoben, und in die erste
Stufe wird ein neues verzögertes
Signal geschoben. Das Signal in der zweiten Stufe wird sodann aus
der zweiten Stufe ansprechend auf die nächste Rückflanke des Signals CCLKD
in die vierte Stufe verschoben, und in die zweite Stufe wird ein
neues Verzögerungssignal
geschoben. Jedes der Register 516a–516k gibt die vier
gespeicherten Signale an die Steuerschaltung 508 als entsprechendes
4-Bit-Wort CADEL0<0:3>-CADEL9<0:3> und FLAGDEL<0:3>. Während des Normalbetriebs des
paketierten Speicherbauelements 16a, welches die Korrekturschaltung 500 enthält, werden
die Signale CADEL<0:9> in einem (nicht gezeigten)
Register gespeichert und verwendet bei der Steuerung des Betriebs des
Speicherbauelements 16a, wie der Fachmann erkennt.
-
Die Verzögerungsschaltung 518 erzeugt
das CCLKD-Signal ansprechend auf ein von einem Taktempfänger 520 empfangenes
internes Befehlstaktsignal CCLKIN, wobei das Signal CCLKD gegenüber letztgenanntem
Signal eine vor bestimmte Zeitverzögerung besitzt. Der Taktempfänger 520 bildet
das Signal CCLKIN ansprechend auf das an seinen Eingang angelegte
Befehlstaktsignal CCLK. Der Taktempfänger 520 arbeitet analog,
wie es oben für
die Datenempfänger 502a–502k beschrieben
wurde, indem das Signal CCLKIN an seinem Ausgang mit einer minimalen
Zeitverzögerung
gegenüber
dem angelegten Signal CCLK erzeugt wird. Im Betrieb arbeiten die
Verzögerungsschaltung 518 und
der Taktempfänger 520 im
Verein, um die Schieberegister 516a–516k mit dem Signal
CCLKD zu takten, welches eine vorbestimmte Zeitverzögerung gegenüber dem
Signal CCLK hat. Die Schieberegister 516a–516k werden
anstatt von dem Signal CCLKIN von dem Signal CCLKD getaktet, um
zu garantieren, dass die Signale CA<0>-CA<9> und das Signal FLAG
von den Verzögerungsringen 506a–506k verzögert werden
müssen,
um das korrekte Erfassen durch die Auffangspeicher 516a–516k zu
garantieren. In anderen Worten, die Befehlsverzögerungsringe 506–506k können die
Signale CA<0>-CA<9> und
FLAG verzögern,
können
aber diese Signale nicht vorrücken,
so dass das Signal CCLK um einen ausreichenden Betrag verzögert werden
muß, um
sicherzustellen, dass ein spezieller Übergang des Signals CCLK dazu
benutzt werden kann, erfolgreich die Signale CADEL<0:9> und FLAGDEL zu erfassen,
die von den Verzögerungsringen 506a–506k ansprechend
auf die Signale CA<0:9> und FLAG gebildet
werden, welche übereinstimmend
mit dem speziellen Übergang
des Signals DCLK gesendet werden, wie der Fachmann versteht.
-
Die bitweise Zeitkorrekturschaltung 500 enthält weiterhin
mehrere Datenempfänger 522a–522r,
welche jeweils die zugehörigen
Datensignale DQ<0>-DQ<17> empfangen, die an
den Datenbus DQ gelegt werden. Die Datenempfänger 522a–522r arbeiten
in der gleichen Weise, wie das oben für die Datenempfänger 502a–502k erläutert wurde,
um Ausgangssignale DQIN<0>-DQIN<17> abhängig von
entsprechenden Signalen DQ<0>-DQ<17> zu
erzeugen. Die Signale DQIN<0>-DQIN<17> von den Datenempfängern 522–522r werden
an mehrere Datenverzögerungsringe 524a–524r gelegt,
die einen Da tenerfassungsblock 526 bilden. Jeder der Datenverzögerungsringe 524–524r erzeugt
ein entsprechendes Paar erster und zweiter verzögerter Datensignale D0DEL<0:17> und D1DEL<0:17>, die jeweilige Zeitverzögerungen
bezüglich
der entsprechenden Signale DQIN<0>-DQIN<17> haben, die an seinen
Eingang angelegt werden. Beispielsweise erzeugt der Datenverzögerungsring 524a das
erste verzögerte
Datensignal D0DEL<0> mit einer ersten Zeitverzögerung gegenüber dem
an seinen Eingang angelegten Signal DQIN<0>,
und er erzeugt das zweite verzögerte
Datensignal D1DEL<0> mit einer zweiten
zeitlichen Verzögerung
gegenüber
dem Signal DQIN<0>. Die Initialisierungssteuerschaltung 508 legt
die Steuersignale 510 und das Signal SEL<0:4> als Wort an die Datenverzögerungsringe 524a–524r,
um deren Betrieb im Initialisierungsmodus und im Überwachungsmodus
so zu steuern, dass die ersten Zeitverzögerungen der Signale D0DEL<0:17> justiert werden, wie
es oben für
die Befehlsverzögerungsringe 506a–506k erläutert wurde.
Darüber
hinaus legt während
des Initialisierungsmodus die Steuerschaltung 508 ein Zeitverzögerungsversatz-Wort an den ausgewählten Datenverzögerungsringen 524a–524r,
um die Zeitverzögerung
des Signals D1DEL<0> einzujustieren, nachdem
die Zeitverzögerung
des Signals D0DEL bestimmt wurde, wie unten näher erläutert wird. Jeder der Datenverzögerungsringe 524a–524r empfängt außerdem die
Steuersignale 514 von der Überwachungsschaltung 512,
um jede der Zeitverzögerungen
der Datenverzögerungsringe 524a–524r während des Überwachungsmodus
einzujustieren, wie ebenfalls unten näher erläutert wird.
-
Eine erste Gruppe von Schieberegistern 528a–528r empfängt die
verzögerten
Datensignale D1DEL<0>-D0DEL<17>, wobei jedes Schieberegister
vier Stufen enthält.
Ein Taktempfänger 532 und
eine Verzögerungsschaltung 530 arbeiten
in der gleichen Weise, wie dies oben für den Taktempfänger 520 und
für die
Verzögerungsschaltung 518 erläutert wurde,
indem sie die Register 528a–528r mit einem verzögerten Datentaktsignal
DCLK1 D takten, welches gegenüber
dem Signal DCLK1 eine vorbestimmte Zeitverzögerung besitzt. Jedes der Schieberegister 528a–528r ist
identisch mit dem betreffenden Register der Schieberegister 516a–516k und
arbeitet in der gleichen Weise, indem es sequentiell das angelegte
Signal D1DEL<0:17> an seinen für jeweiligen
Stufen ansprechend auf das Signal DCLK1D verschiebt. Jedes Register 528a–528r gibt die
vier gespeicherten Verzögerungssignale
als die entsprechenden 4-Bit-Wörter D1DEL0<0:3>-D1DEL17<0:3> aus, und diese Wörter werden
an die Initialisierungssteuerschaltung 508 gegeben, welche
die Wörter
dazu benutzt, die betreffenden zweiten Zeitverzögerungen für die Datenverzögerungsringe 524a-524r zu
bestimmen, wie weiter unten näher
ausgeführt
wird. Die Schieberegister 528a–528r werden von dem
Signal DCLK1 D getaktet, bei dem es sich um eine verzögerte Version
des Signals DCLK1 handelt, um sicherzugehen, dass ein spezieller Übergang
des Signals DCLK1 dazu benutzt werden kann, erfolgreich die verzögerten Datensignale
D1DEL<0:17> zu speichern, die
von den Datenverzögerungsringen 524a–524r in
Abhängigkeit
der Signale DQ<0:17> gebildet werden, welche
in Übereinstimmung
mit diesem speziellen Übergang
der Signale DCLK1 gesendet werden, wie oben in Verbindung mit dem
Signal CCLKD erläutert
wurde, welches die Register 516a–516r taktet.
-
Eine zweite Gruppe von Schieberegistern 234a–234r empfängt die
verzögerten
Datensignale D0DEL<0>-D0DEL<17> von den Datenverzögerungsringen 524a–524r.
Jedes der Schieberegister 524–524r ist identisch
zu den Schieberegistern 516a–516k und 528a–528r,
und es arbeitet auch in der gleichen Weise, indem es sequentiell
das angelegte Signal D0DEL<0:17> in die jeweiligen
Stufen schiebt und die vier gespeicherten verzögerten Datensignale ausgibt
als ein entsprechendes 4-Bit-Wort D0DEL0<0:3>-D0DEL17<0:3>, die an die Initialisierungssteuerschaltung 508 gelegt
werden, welche diese Wörter
bei der Bestimmung der jeweiligen ersten Zeitverzögerungen
für die
Datenverzögerungsringe 524a–524r verwendet,
wie weiter unten ausführlicher
beschrieben wird. Ein Taktempfänger 536 und
eine Verzögerungsschaltung 538 arbeiten
genauso wie der Taktempfänger 532 und
die Verzögerungsschaltung 530,
indem sie die Schieberegister 534a–534r mit einem verzögerten Datentaktsignal
DCLK0D takten, das eine vorbestimmte Zeitverzögerung gegenüber dem
Signal DCLK0 hat, so dass ihr Betrieb im Folgenden nicht näher erläutert wird.
-
Die bitweise Zeitkorrekturschaltung 500 enthält außerdem eine
Synchronisationsdetektorschaltung 548, die das Signal FLAG
empfängt
und ein Kalibriersignal CAL erzeugt, wenn das Signal FLAG angibt,
dass das die Zeitkorrekturschaltung 500 enthaltende paketierte
Speicherbauelement 16a in den Initialisierungsmodus versetzt
werden soll. Wie oben bereits erläutert, wird das Speicherbauelement 16a dadurch
in den Initialisierungsmodus gebracht, dass zwei aufeinanderfolgende
1en als Signal FLAG angelegt werden. Wenn also die Synchronisationsdetektorschaltung 548 zwei
aufeinanderfolgende 1en im Signal FLAG erkennt, legt sie ein aktives
Signal CAL an die Initialisierungssteuerschaltung 508,
wodurch die Zeitkorrekturschaltung 500 in den Initialisierungsmodus
gelangt. Eine ausführlichere
Beschreibung der Ausführungsform
der Synchronisationsdetektorschaltung 548 findet sich in
der US-Patentanmeldung Nr. 09/146,716 von Manning mit dem Titel
"METHOD AND APPARATUS FOR RESYNCHRONIZING A PLURALITY OF CLOCK SIGNALS
USED IN LATCHING RESPECTIVE DIGITAL SIGNALS APPLIED TO A PACKETIZED
MEMORY DEVICE", hier durch Bezugnahme inkorporiert.
-
Im Betrieb arbeitet die bitweise
Zeitkorrekturschaltung
500 in zwei Betriebsarten (Modi),
einem Initialisierungsmodus und einem Überwachungsmodus. Um die bitweise
Zeitkorrekturschaltung
500 in den Initialisierungsmodus
zu bringen, legt die Speichersteuerung
18 (
1) ein 15 Bits umfassendes, sich wiederholendes
Pseudozufalls-Bitmuster an jede Leitung des Befehlsbusses CA, an
die das Signal FLAG empfangene FLAG-Leitung und an jede Leitung
des Datenbusses DQ. Ein
15 Bits umfassendes, sich wiederholendes
Pseudozufalls-Bitmuster, welches an diese Leitungen gelegt werden
kann, ist in der nachstehenden Tabelle angegeben.
Tabelle
1
-
Wie aus der Tabelle 1 ersichtlich,
wird die 15 Bits umfassende Pseudozufalls-Bitsequenz auf benachbarten Leitungen
des Befehlsbusses CA und des Datenbusses DQ komplementiert. So z.
B. beginnt die Folge mit 0000 auf der Leitung CA<9>,
mit 1111 auf CA<8>, 0000 auf CA<7> und so fort, so dass
die auf jede Leitung gelegte Sequenz das Komplement der auf die
benachbarten Leitungen gelangenden Sequenz ist. Die sich wiederholende
Pseudo-Zufalls-Bitsequenz garantiert, dass nicht vier aufeinanderfolgende
Bits fehlerhaft für
irgendwelche anderen vier aufeinanderfolgenden Bits gehalten werden
können,
wie der Fachmann leicht sieht.
-
Ansprechend auf die angelegte 15-Bit-Pseudozufalls-Bitsequenz
aktiviert die Synchronisationsdetektorschaltung 548 das
Signal CAL, indem sie die bitweise Zeitkorrekturschaltung 500 in
den Initialisierungsmodus versetzt. Insbesondere beginnt gemäß Tabelle
1 die Pseudozufalls-Bitsequenz mit aufeinanderfolgenden 1en für das Signal
FLAG. Wie bereits erläutert,
aktiviert die Synchronisati onsdetektorschaltung 548 ansprechend
auf zwei für
das Signal FLAG aufeinanderfolgend angelegte 1en das Signal CAL,
um die bitweise Zeitkorrekturschaltung 500 in den Initialisierungsmodus
zu versetzen. Ansprechend auf das aktive Signal CAL erzeugt die
Initialisierungssteuerschaltung 508 die Steuersignale 510,
das Wort OFFSET<0:3> und das SEL<0:4>, um sequentiell und
unabhängig
die jeweiligen Zeitverzögerungen
für jeden
der Befehlsverzögerungsringe 506a–506k und
der Datenverzögerungsringe 524a–524r zu
justieren, wie im Folgenden noch ausführlicher erläutert wird.
-
Nach Empfangen des aktiven CAL-Signals
erzeugt die Initialisierungssteuerschaltung 508 das Wort SEL<0:4>, um einen Anfangsring
aus den Befehlsverzögerungsringen 506a–506k und
den Datenverzögerungsringen 524a–524r auszuwählen. Bei
der Ausführungsform
nach 5 setzt die Initialisierungssteuerschaltung 508 am
Anfang den Wert des Wort SEL<0:4> auf 00000, um dadurch
den Befehlsverzögerungsring 506a auszuwählen. Wie
oben diskutiert wurde, spricht ausschließlich der ausgewählte Ring
von den Befehlsverzögerungsringen 506a–506k und
den Datenverzögerungsringen 524a–524r auf
die Steuersignale 510 von der Initialisierungssteuerschaltung 508 an.
Auf diese Weise kann diese Schaltung unabhängig die jeweiligen Zeitverzögerungen
für jeden
der Befehlsverzögerungsringe 506a–506k und
der Datenverzögerungsringe 524a–524r dadurch
einstellen, dass sie das Wort SEL<0:4> entsprechend den ausgewählten Verzögerungsring
erzeugt und anschließend
die Steuersignale 510 zum Einstellen der Zeitverzögerung des
ausgewählten Verzögerungsrings
anlegt. An dieser Stelle legt die Initialisierungssteuerschaltung 508 die
Steuersignale 510 an den ausgewählten Befehlsverzögerungsring 506a,
um die Verzögerungszeit
des Befehlsverzögerungsrings 506 auf
einen ersten Wert einzustellen. Dieser Verzögerungsring bildet anschließend das
Signal CADEL<0> mit einer ersten Zeitverzögerung gegenüber dem
an seinem Eingang anliegenden Signal CAIN<0>.
-
An dieser Stelle wird das Signal
CA<0> von der Speichersteuerung 18 (1) über den Datenempfänger 502a angelegt
und von dem Befehlsverzögerungsring 506a um
die erste Verzögerungszeit
verzögert, und
dieses verzögerte
Signal wird als das Signal CADEL<0> an das Schieberegister 516a gegeben,
welches anschließend
das Signal CADEL<0> abhängig von
jedem Übergang
des Signals CCLKD zwischenspeichert und das zwischengespeicherte
Wort CA-DEL<0:3> an die Initialisierungssteuerschaltung 508 ausgibt,
welche den Wert jedes Bits in dem zwischengespeicherten Wort CADEL0<0:3> mit einem Erwartungswert
vergleicht und das Vergleichsergebnis abspeichert. Die Initialisierungssteuerschaltung 508 kann
die Erwartungswerte für das
zwischengespeicherte Wort CADEL0<0:3> aus der bekannten
15-Bit-Pseudozufalls-Bitsequenz für dieses Signal generieren,
das oben in Verbindung mit Tabelle 1 erläutert wurde. Eine Schaltung
zum Generieren der erwarteten Daten ist offenbart in der US-Patentanmeldung
Nr. 09/146,860 von Manning mit dem Titel "METHOD AND APPARATUS FOR
GENERATING EXPECT DATA FROM A CAPTURED BIT PATTERN, AND MEMORY DEVICE
USING SAME", hier durch Bezugnahme inkorporiert. Das Ergebnis dieses
Vergleichs gibt an, ob die erste Zeitverzögerung für den Befehlsverzögerungsring 506a in
einem erfolgreichen Erfassen des Signals CADEL<0> in
dem Schieberegister 516a führt. Anders ausgedrückt: Wenn
das zwischengespeicherte Wort CADEL0<0:3> den
erwarteten Wert hat, wird das an den Befehlsbus CA angelegte Signal
CA<0> um den Betrag verzögert, der
diesem Signal ermöglicht,
erfolgreich in dem Schieberegister 516a abhängig von
dem Signal CCLKD erfasst zu werden. Wenn hingegen das Wort CADEL0<0:3> nicht seinen erwarteten
Wert hat, so erlaubt die erste Zeitverzögerung des Befehlsverzögerungsrings 506a kein
erfolgreiches Erfassen des an den Befehlsbus CA gelegten Signals
CA<0>.
-
Nachdem die Initialisierungssteuerschaltung 508 das
Ergebnis des Vergleichs des Worts CADEL0<0:3> bei
der ersten Zeitverzögerung
abgespeichert hat, legt sie die Steuersignale 510 an, um
die Zeitverzögerung
des Befehlsverzöge rungsrings 506a auf
einen zweiten Wert zu erhöhen.
Der Befehlsverzögerungsring 506a verzögert anschließend das
Signal CA<0> um die zweite Verzögerungszeit
und legt erneut das Signal CADEL<0> mit der zweiten Zeitverzögerung an
das Schieberegister 516a. Erneut speichert das Schieberegister 510a das
Signal CADEL<0> ansprechend auf das
Signal CCLKD und gibt das gespeicherte Wort CADEL0<0:3> an die Initialisierungssteuerschaltung 508,
die in der oben beschriebenen Weise den gespeicherten Wert des Worts
CADEL0<0:3> bei der zweiten Verzögerungszeit
mit dem erwarteten Wert für
dieses Signal vergleicht und das Vergleichsergebnis abspeichert.
-
Die Initialisierungssteuerschaltung 508 setzt
anschließend
den Betrieb in dieser Weise fort, um sequentiell die Zeitverzögerung des
Befehlsverzögerungsrings 506a zu
justieren und das gespeicherte Wort CADEL0<0:3> mit
jeder Zeitverzögerung
zu vergleichen mit dem erwarteten Wert für dieses Wort, um die Vergleichsergebnisse
abzuspeichern. Bei einer Ausführungsform
stellt die Initialisierungssteuerschaltung 508 die Zeitverzögerung des
Befehlsverzögerungsrings 506a zweiundzwanzig
Mal ein und speichert die Ergebnisse des Vergleichs jedes gespeicherten
Worts CADEL0<0:3> bei jeder Zeitverzögerung.
Bei einer Ausführungsform
beträgt
die inkrementelle Differenz zwischen den Verzögerungszeiten etwa 100 Picosekunden.
Nach dem die Initialisierungssteuerschaltung 508 die entsprechenden
zweiundzwanzig Ergebnissignale gespeichert hat, wählt sie
für den
Befehlsverzögerungsring 506a aus
denjenigen Zeitverzögerungen
eine optimale Zeitverzögerung
aus, die zu dem Wort CADEL0<0:3> mit dem erwarteten
Wert geführt
haben. Eine analoge Prozedur kann von der Steuerschaltung 508 dazu
benutzt werden, die optimale Verzögerungszeit für den Befehlsverzögerungsring 506a zu
bestimmen, wie dies in größerer Einzelheit
in der US-Anmeldung Nr. 08/890,055 von Baker et al. beschrieben
ist, hier durch Bezugnahme inkorporiert. Nachdem die Initialisierungssteuerschaltung 508 die
optimale Zeitverzögerung
für den
Befehlsverzögerungsring 506a bestimmt
hat, bildet sie die Steuersignale 510 zum Einstellen der
Zeitver zögerung
des Befehlsverzögerungsrings 506a entsprechend
dem optimalen Wert.
-
Nach der Einstellung der Zeitverzögerung des
Befehlsverzögerungsrings 506a auf
den optimalen Wert inkrementiert die Initialisierungssteuerschaltung 508 den
Wert des Worts SEL<0:4>, um dadurch den (nicht
gezeigten) Befehlsverzögerungsring 506b auszuwählen, anschließend arbeitet
sie in der gleichen Weise, wie es oben erläutert wurde, um die Zeitverzögerung für den Befehlsverzögerungsring 506b auf
dessen optimalen Wert einzustellen. In anderen Worten, die Initialisierungssteuerschaltung 508 entwickelt
die Steuersignale 510 zur sequentiellen Einstellung des
Werts der Zeitverzögerung
des Befehlsverzögerungsrings 506b,
und sie vergleicht jedes der entsprechenden gespeicherten Wörter CADEL1<0:3> mit dessen Erwartungswert
und speichert das entsprechende Ergebnissignal. Nach zweiundzwanzig-maligem
Erhöhen
der Zeitverzögerung
bestimmt die Initialisierungssteuerschaltung 508 erneut
die optimale Zeitverzögerung
für den
Befehlsverzögerungsring 506b aus
den Zeitverzögerungen,
die zu einem erfolgreichen Erfassen des Worts CADEL1<0:3> führen, und sie bildet die Steuersignale 510 zur
Einstellung der Zeitverzögerung
des Befehlsverzögerungsrings 506b auf
den optimalen Wert. Man beachte, dass, weil der Befehlsverzögerungsring 506b von
dem Wort SEL<0:4> ausgewählt wird,
der Befehlsverzögerungsring 506a ebenso
wie sämtliche übrigen Befehlsverzögerungsringe 506c–506k und
die Verzögerungsringe 524a–524r nicht
auf die Steuersignale 510 ansprechen. Auf diese Weise wird,
nachdem die Initialisierungssteuerschaltung 508 eine optimale
Zeitverzögerung
für einen speziellen
Befehlsverzögerungsring 506a–506k oder
Datenverzögerungsring 524a–524r bestimmt
hat, die Zeitverzögerung
für diesen
Ring so lange nicht beeinflusst wird, bis er erneut von der Initialisierungssteuerschaltung 508 ausgewählt wird.
Tatsächlich
können
die jeweiligen Zeitverzögerungen
für sämtliche
Befehlsverzögerungsringe 506a–506k und
Datenverzögerungsringe 524a–524r von
der Überwachungsschaltung 512 im Überwachungsmodus
justiert werden, wie dies im Folgenden ausführlicher erläutert wird.
-
Danach erhöht die Initialisierungssteuerschaltung 508 sequentiell
das Wort SEL<0:4>, um dadurch sequentiell
jeden der Befehlsverzögerungsringe 506c-506k auszuwählen, uns
sie bestimmt die zugehörigen
optimalen Zeitverzögerungen
für jeden
dieser Verzögerungsringe.
Nachdem die Initialisierungssteuerschaltung 508 die Zeitverzögerung für den Befehlsverzögerungsring 506k auf
dessen optimalen Wert eingestellt hat, erhöht sie das Wort SEL<0:4>, um hierdurch den
Datenverzögerungsring 524a auszuwählen. Wie
oben beschrieben, besitzt jeder Datenverzögerungsring 524a–524r eine
erste Zeitverzögerung
entsprechend dem Signal D0DEL<0:17>, und eine zweite Zeitverzögerung entsprechend
dem Signal D1DEL<0:17>. Die Initialisierungssteuerschaltung 508 muß natürlich den
optimalen Wert für
jede dieser Zeitverzögerungen
bestimmen.
-
Im Betrieb erhöht die Initialisierungssteuerschaltung 508 am
Anfang das Wort SEL<0:4> zwecks Auswahl des
Datenverzögerungsrings 524a.
Danach arbeitet die Initialisierungssteuerschaltung 508 identisch
wie bei dem oben beschriebenen Prozess für die Befehlsverzögerungsringe 506a–506k,
um den optimalen Wert für
die erste Zeitverzögerung
für das
Signal D0DEL<0> zu bestimmen. In anderen
Worten: Die Initialisierungssteuerschaltung 508 bildet
die Steuersignale 510, um den Wert für die erste Zeitverzögerung des
Datenverzögerungsrings 524a sequentiell
einzustellen. Das Schieberegister 534a speichert danach
sequentiell das von dem Datenverzögerungsring 524a ausgegebene
Signal DODEL<0> und legt das gespeicherte
Wort D0DEL0<0:3> an die Initialisierungssteuerschaltung,
die ihrerseits in der oben beschriebenen Weise dieses Wort mit seinem
Erwartungswert vergleicht und das Ergebnis des Vergleichs abspeichert.
Wiederum bestimmt die Initialisierungssteuerschaltung 508,
nachdem sie die erste Zeitverzögerung
des Datenverzögerungsrings 524a zweiund zwanzig
Mal eingestellt hat, einen optimalen Wert für die erste Zeitverzögerung und
bildet die Steuersignale 510 zur Einstellung der ersten
Verzögerungszeit
auf den optimalen Wert.
-
An dieser Stelle erhöht die Initialisierungssteuerschaltung 508 sequentiell
das Wort OFFSET<0:3> und dadurch sequentiell
die zweite Zeitverzögerung
des Datenverzögerungsrings 524a einzustellen.
Wie oben beschrieben, legt die zweite Zeitverzögerung die Verzögerung des
Signals D1DEL<0> in Bezug auf das angelegte
Signal DQIN<0> fest. Insbesondere
justiert oder "versetzt" (OFFSET) der Wert des Worts OFFSET<0:10> den Wert der zweiten
Zeitverzögerung
des Signals D1DEL<0> gegenüber der
ersten Zeitverzögerung
des Signals D0DEL<0>. In dieser Situation
justiert die Initialisierungssteuerschaltung 508 sequentiell
das Wort OFFSET<0:3>, um so die zweite
Zeitverzögerung
relativ zu dem zuvor bestimmten optimalen Wert für die erste Zeitverzögerung zu
justieren. Für
jeden Wert des Wort OFFSET<0:3> arbeitet die Initialisierungssteuerschaltung 508 so,
wie es oben für
die Ermittlung erläutert
wurde, ob das Signal D1DEL<0> erfolgreich von dem
Schieberegister 528a bei dem speziellen Wert des Worts
OFFSET<0:3> gespeichert wurde.
Beispielsweise legt die Initialisierungssteuerschaltung 508 am
Anfang das Wort OFFSET<0:3> mit dem Wert 0000
an den Datenverzögerungsring 524a.
Ansprechend auf dieses angelegte Wort OFFSET<0:3> justiert
der Datenverzögerungsring 524a die
Zeitverzögerung
des Signals D1DEL<0> auf einen ersten Wert
in Bezug auf die zuvor bestimmte optimale Zeitverzögerung für das Signal
D0DEL<0>. Das Schieberegister 528a speichert
danach das Signal D1DEL zu der ersten relativen Zeitverzögerung ansprechend
auf das Signal DCLK1D und legt das gespeicherte Wort D1DEL0<0:3> an die Initialisierungssteuerschaltung 504,
welche das gespeicherte Wort D1DEL0<0:3> mit
dessen Erwartungswert vergleicht und ein entsprechendes Ergebnissignal
speichert, welches das Vergleichsergebnis widerspiegelt.
-
An dieser Stelle erhöht die Initialisierungssteuerschaltung 508 den
Wert des Worts OFFSET<0:3>, um so die Zeitverzögerung des
Signals D1DEL0<0> relativ zu der zuvor
bestimmten optimalen Zeitverzögerung für das Signal
D0DEL<0> zu bestimmen. Erneut
speichert das Schieberegister 528a das Signal D1DEL<0> bei dieser neuen Zeitverzögerung ansprechend
auf das Signal DCLK1D, und die Initialisierungssteuerschaltung 508 stellt
fest, ob das gespeicherte Wort D1DEL0<0:3> seinen
erwarteten Wert hat. Bei einer Ausführungsform legt die Initialisierungssteuerschaltung 508 elf
unterschiedliche Werte des Worts OFFSET<0:3> an den
Datenverzögerungsring 524a,
damit dieser die zweite Zeitverzögerung
des Signals D1DEL<0> elf Mal einstellt.
Nachdem die Initialisierungssteuerschaltung 508 das durch
Vergleich des Worts D1DEL0<0:3> bei jeder der elf
Zeitverzögerungen
mit dem zugehörigen
Erwartungswert ermittelte Ergebnissignal gespeichert hat, wählt sie
die optimale zweite Zeitverzögerung
für das
Signal D1DEL<0> aus den Zeitverzögerungen
aus, die zu einem erfolgreichen Erfassen des Signals D1DEL<0> durch das Schieberegister 524a resultieren.
Die Initialisierungssteuerschaltung 508 legt anschließend das
Wort OFFSET<0:3> an den Datenverzögerungsring 524a mit
einen Wert, welcher der ermittelten optimalen Zeitverzögerung für das Signal
D1DEL<0> entspricht, damit
der Datenverzögerungsring 524a die
zweite Zeitverzögerung
von D1DEL<0> auf denjenigen Wert
einstellt, der diesem Wort OFFSET<0:3> entspricht.
-
Danach erhöht die Initialisierungssteuerschaltung 508 das
Wort SEL<0:4>, um den (nicht gezeigten) Datenverzögerungsring 524b auszuwählen, und
sie arbeitet in der oben beschriebenen Weise, um die jeweiligen
Zeitverzögerungen
für die
von dem Datenverzögerungsring 524b ausgegebenen
Signale D0DEL<1> und D1DEL<1> einzustellen. Die
Initialisierungssteuerschaltung 508 fährt mit der Erhöhung des
Worts SEL<0:4> und der Einstellung
den zugehörigen
Zeitverzögerungen
des entsprechenden Datenverzögerungsrings 524a–524r so
lange fort, bis die jeweiligen Zeitverzögerungen für die von dem Verzögerungsring
524r kommenden
Signale D0DEL<17> und D1DEL<17> eingestellt sind.
Nachdem die Initialisierungssteuerschaltung die erste und die zweite
Verzögerungszeit
für den
Datenverzögerungsring 524r auf
die optimalen Werte eingestellt hat, wird der Initialisierungsmodus
beendet, da die Zeitverzögerungen
für jeden
der Befehlsverzögerungsringe 506a–506k und
jeden der Datenverzögerungsringe 524a–524r auf
ihre jeweiligen optimalen Werte eingestellt sind.
-
Um den Initialisierungsmodus zu beenden,
setzt die Initialisierungssteuerschaltung 508 zunächst den Wert
des Worts SEL<0:4> auf 11111, so dass
keiner der neunundzwanzig Verzögerungsringe
(elf Befehlsverzögerungsringe 506a-506k und
achtzehn Datenverzögerungsringe 524a–524r)
ausgewählt
ist. An dieser Stelle aktiviert die Initialisierungssteuerschaltung 508 das
Signal ENABLE, um die Überwachungsschaltung 512 zu
aktivieren. Wie oben beschrieben, überwacht die Überwachungsschaltung 512 das
Daten-Augenmuster des Signals CCLKM und weist Verschiebungen in
diesem Augenmuster nach. Wenn die Überwachungsschaltung 512 eine
Verschiebung im Augenmuster des Signals CCLKM feststellt, bildet
sie die Steuersignale 514, um die jeweiligen Zeitverzögerungen
für jeden
der Befehlsverzögerungsringe 506a–506k und
Datenverzögerungsringe 524a–524r so
einzujustieren, dass die festgestellte Verschiebung kompensiert
wird.
-
6 ist
ein Impulsdiagramm, welches den Betriebsablauf der bitweisen Zeitkorrekturschaltung 500 bei
der Justierung der jeweiligen Zeitverzögerungen der Signale CADEL<0:9> und FLAGDEL zum Zentrieren der
jeweiligen Augenmuster in Bezug auf die Übergänge des Signals CCLKD veranschaulicht.
In 6 sind die Signale
CADEL<0>, CADEL<1> und FLAGDEL vor und
nach dem Justieren der jeweiligen Zeitverzögerungen tDCA0,
tDCA1, und tDFL dieser
Signale durch die Korrekturschaltung 500 dargestellt. Die
Signale auf der linken Seite veranschaulichen die Signale CADEL<0>, CADEL<1> und FLAGDEL, bevor
ihre jeweiligen Zeitverzögerungen
tDCA0, tDCA1, und
tDFL eingestellt wurden. An dieser Stelle,
also vor der Verzögerung
der Signale CADEL<0>, CADEL<1> und FLAGDEL, könnte ein Übergang
des Signals CCDLKD zu irgendeiner Zeit diese Signale nicht erfolgreich
in den zugehörigen
Schieberegistern 516a–516k festhalten
oder erfassen. Nachdem die bitweise Zeitkorrekturschaltung 500 die
jeweiligen Zeitverzögerungen
tDCA0, tDCA1, und
tDFL für
die Signale CADEL<0>, CA-DEL<1> und FLAGDEL einjustiert
hat, ist das Daten-Augenmuster von jedem dieser Signale annähernd zentriert
bezüglich
eines Übergangs
des Signals CCLKD im Zeitpunk t0 gemäß 5. Im Ergebnis wird jedes
Signal CADEL<0>, CADEL<1> und FLAGDEL erfolgreich
in einem zugehörigen
Register der Schieberegister 516a–516k abhängig vom
Signal CCLKD festgehalten. Obschon nur die Signale CADEL<0:9> und FLAGDEL in Verbindung
mit 6 diskutiert sind,
wird bei sämtlichen
Signalen D0DEL<0:17> und D1DEL<0:17> in ähnlicher
Weise eine Zentrierung von deren Augenmustern auf die Übergänge der
verzögerten
internen Taktsignale CDLK0D bzw. DCLK1 D bewirkt.
-
Im Folgenden soll anhand der 7 die Arbeitsweise der Überwachungsschaltung 512 näher erläutert werden. 7 ist ein Impulsdiagramm,
welches die Arbeitsweise der Überwachungsschaltung 512 im Überwachungsmodus
veranschaulicht. Am Anfang hat das Signal CCLKM ein Daten-Augenmuster
DE, wie es durch die ausgezogene Linie dargestellt ist. Außerdem dargestellt
sind die Augenmuster DE0, DE9 und
DEF für die
Signale CADEL<0>, CADEL<9> bzw. FLAGDEL, nachdem
jedes dieser Signale mit einer zugehörigen Zeitverzögerung ausgestattet
wurde, einjustiert von der Initialisierungssteuerschaltung 508 während des
Initialisierungsbetriebs. Das Signal CCLKD hat gemäß Darstellung
im Zeitpunkt t0 eine Anstiegsflanke, die
etwa in der Mitte der Augenmuster DE0, DE9 und DEF liegt.
Dies zeigt das Ergebnis der bitweisen Zeitkorrekturschaltung 500 nach
dem Initialisierungsmodus, wobei die Initialisierungssteuerschaltung 508 die
jeweiligen Verzögerungszeiten
für jeden
der Befehlsverzögerungsringe 506a–506k derart
einjustiert hat, dass jeder Übergang des
Signals CCLKD etwa in der Mitte der jeweiligen Augenmuster der Signale
CADEL<0:9> und FLAG DEL liegt.
Obschon in 7 nicht dargestellt,
gilt dies auch für
die verzögerten
Datensignale D0DEL<0:17> gegenüber dem
Signal DCLK0D und die Signale D1DEL<0:17> in
Bezug auf das Signal DCLK1 D.
-
In 7 ist
eine Verschiebung des Augenmusters des Signals CCLKM durch eine
gestrichelte Linie dargestellt und entspricht dem Signals CCLKM,
das gegenüber
dem anfänglichen
Signal CCLKM um eine Zeitspanne tSHIFT verschoben
ist. Das Signal CCLKM entspricht dem Signal CCLK, welches über den
Datenempfänger 542 angelegt
wird, der identisch ist mit den Datenempfängern 502a-502k, die
die Signale CA<0:9> und FLAG empfangen,
und somit folgt das Augenmuster des Signals CCLKM den Augenmustern
der Signale CA<0:9> und FLAG, welche über die
Datenempfänger 502a–502k angelegt
werden. Jegliche Verschiebung der Arbeitskennlinie des Datenempfängers 542 manifestiert
sich als Verschiebung des Augenmusters des Signals CCLKM, wobei
diese Verschiebungen der Arbeitskennlinie des Datenempfängers 552 beispielsweise durch
Schwankungen in der an den Datenempfänger 542 gelangenden
Versorgungsspannung hervorgerufen werden, oder Ergebnis von Temperaturschwankungen
in der Betriebsumgebung sind, in der die bitweise Zeitkorrekturschaltung 500 arbeitet.
Weil der Datenempfänger 542 identisch
mit den Datenempfängern 502a–502k ist,
welche die Signale CA<0:9> und FLAG empfangen,
treten jegliche Verschiebungen im Augenmuster des Signals CCLKM
typischerweise auch bei den Signalen CADEL<0:9> und
FLAGDEL auf, weil diese Signale über
die identischen Datenempfänger 502a–502k angelegt
werden.
-
In 7 sind
das Augenmuster für
die Signale CADEL<0>, CADEL<9> und FLAGDEL dargestellt
mit einer Verschiebung nach rechts um gleiche Zeitdauer tSHIFT wie das Signal CCLKM. Ansprechend auf
diese Verschiebung justiert die Überwachungsschaltung 512 die
jeweiligen Zeitverzögerungen
für die
Befehlsverzögerungsringe 506a–506k um
den gleichen Betrag, damit die Augenmuster der Signale CADEL<0:9> und FLAGDEL um den
Betrag tSHIFT nach links ver schoben werden,
damit die Augenmuster für
all diese Signale erneut um den Übergang
des Signals CCLKD im Zeitpunkt t0 zentriert
werden. Auf diese Weise ermittelt die Überwachungsschaltung 512 Verschiebungen
der Daten-Augenmuster des Signals CCLKM und justiert die jeweiligen
Zeitverzögerungen
für jeden
der Befehlsverzögerungsringe 506a–506k um
den gleichen Betrag, so dass die Augenmuster der Signale CADEL<0:9> und FLAGDEL annähern zentriert
bleiben bezüglich
der Übergänge des
Signals CCLKD. Obschon nur die Signale CADEL<0:9> und
FLAGDEL hier in Verbindung mit 7 beschrieben
sind, arbeitet die Überwachungsschaltung 512 genauso
beim Justieren der jeweiligen Zeitverzögerungen für jeden der Datenverzögerungsringe 524a–524r,
so dass die Augenmuster der Signale D0DEL<0:17> um
die Übergänge des
Signals DCLK0D zentriert bleiben und die Augenmuster der Signale D1DEL<0:17> gleichermaßen bezüglich der Übergänge des
Signals DCLK1 D zentriert bleiben. Die bitweise Zeitkorrekturschaltung 500 erfaßt mit Erfolg
die Signale CA<0:9>, FLAG und DQ<0:17> bei sehr hohen Datentransfergeschwindigkeiten.
Außerdem
ermöglicht
die Schaltung 50 eine rasche Erholung von Bereitschaftszuständen des
paketierten Speicherbauelements 16a, welches die Schaltung 500 enthält. Während eines
Energieeinsparmodus beispielsweise wird das Signal CCLK angehalten,
und das Speicherbauelement 16a geht in einen Betriebsmodus
mit geringerer Leistungsaufnahme über. In dieser Situation behalten
die Verzögerungsringe 506a–506k und 524a–524r ihre
zuvor festgelegten Zeitverzögerungen.
Wenn zum Beendigen des Energiesparmodus wieder das Signal CCLK angelegt
wird, beginnt die Schaltung 500 damit, angelegte Signale
zu erfassen, ohne dass es zu einer signifikanten Verzögerung kommt,
indem die zuvor festgelegten Zeitverzögerungen benutzt werden.
-
Obschon die Zeitkorrekturschaltung 500 so
beschrieben wurde, dass sie zunächst
im Initialisierungsmodus und dann im Überwachungsmodus arbeitet,
erkennt der Fachmann, dass man die Betriebsabläufe bei diesen zwei Betriebsarten
auch variieren kann. Bei einer weiteren Ausführungsform der Zeitkorrektur schaltung 500 arbeitet
beispielsweise die Überwachungsschaltung 512 kontinuierlich
im Überwachungsbetrieb,
um Verschiebungen im Daten-Augenmuster des Signals CCLKM festzustellen
und die jeweiligen Zeitverzögerungen der
Verzögerungsringe 506a–506k und 524a–524r in
der oben beschriebenen Weise zu justieren. Bei dieser Ausführungsform
arbeitet die Initialisierungssteuerschaltung 508 während des
Initialisierungsmodus so, dass sie sequentiell die Verzögerungsringe 506a–506k und 524a–524k auswählt und
die Zeitverzögerung
für den ausgewählten Ring
auf dessen optimalen Wert einstellt, wie es oben ausgeführt wurde.
Wenn einer der Verzögerungsringe 506a–506k und 524–524r ausgewählt ist,
ignoriert er die Steuersignale 510, die von der Initialisierungssteuerschaltung 508 kommen,
um abhängig
von den Steuersignalen 514 zu arbeiten, die von der Überwachungsschaltung 512 kommen,
wie dies oben erwähnt
wurde und im Folgenden näher
erläutert
wird. Damit steuert bei dieser Ausführungsform die Überwachungsschaltung 512 kontinuierlich
sämtliche
Verzögerungsringe 506a–506k und 524a–524r mit
Ausnahme des jeweils ausgewählten
Verzögerungsrings.
Bei einer anderen Ausführungsform
der Zeitkorrekturschaltung 500 justiert im Initialisierungsmodus
die Initialisierungssteuerschaltung 508 die jeweiligen
Zeitverzögerungen
der verzögerten
Signale CADEL<0:9>, FLAG, D0DEL<0:17> und DIDEL<0:17> parallel anstatt seriell.
-
Der Gesamt-Betriebsablauf der bitweisen
Zeitkorrekturschaltung 500 und der allgemeine Arbeitsablauf
bei den verschiedenen Komponenten innerhalb der Schaltung wurden
in Verbindung mit den 5 bis 7 erläutert. An dieser Stelle soll
nun die Arbeitsweise der einzelnen Komponenten innerhalb der bitweisen
Zeitkorrekturschaltung 500 detailliert erläutert werden. 8A und 8B sind eine schematische Darstellung
einer Ausführungsform
des Befehlsverzögerungsrings 506a aus 5. Die Befehlsverzögerungsringe 506a–506k gemäß 5 sind identisch ausgebildet,
so dass aus Gründen
der Knappheit nur der Befehlsverzögerungsring 506a anhand
der 6A und 6B näher erläutert wird.
Gemäß 6A enthält der Befehlsverzögerungsring 506a eine
Verzö gerungsschaltung 800,
die aus einer Mehrzahl von Ringverzögerungszellen RDC1–RDC22 gebildet
ist, welche einen Verzögerungsring
bilden. Es sei angemerkt, dass mehrere der Ringverzögerungszellen RDC1–RDC22 in 8 weggelassen sind, um die Figur nicht
zu überlasten.
Die Verzögerungszellen RDC1-RDC22 bilden
einen Ring, wobei die Ausgänge
von der letzten Ringverzögerungszelle RDC22 an
die Eingänge
der ersten Ringverzögerungszelle RDC1 gelegt
sind, wie aus der Zeichnung hervorgeht. Während des Betriebs werden die
Signale CAIN<0> und CAIN<0> selektiv in eine der
Ringverzögerungszellen RDC1–RDC22 abhängig von
mehreren Steuersignalen 822 eingegeben, um auf diese Weise
die Zeitverzögerung
des Signals CADEL<0> gegenüber dem
Signal CAIN<0> einzustellen, wie
im Folgenden näher
erläutert wird.
-
Bevor der Gesamtbetrieb des Verzögerungsrings 800 beschrieben
wird, sollen anhand der 9 die Ringverzögerungszellen RDC1–RDC22 näher erläutert werden. 9 zeigt eine Ausführungsform
der Ringverzögerungszelle RDC6 in 8A, und weil sämtliche
Ringverzögerungszellen RDC1–RDC22 mit
dieser Ringverzögerungszelle RDC6 identisch
sind, wird nur letztere in Verbindung mit 9 erläutert.
Im Betrieb wählt
die Ringverzögerungszelle
entweder ein erstes Paar von Datensignalen aus, die an die Anschlüsse RIN, RIN gelegt sind oder ein zweites
Paar von Datensignalen, die an die Anschlüsse DIN, DIN gelegt sind, ansprechend auf die Steuersignale 822,
um ein komplementäres
Paar verzögerter
Datensignale auf Ausgangsanschlüssen
ROUT, ROUT zu erzeugen. Die
verzögerten
Ausgangssignale haben eine vorbestimmte Zeitverzögerung gegenüber dem
ausgewählten
Dateneingangspaar von dem ersten und dem zweiten Eingangspaar, wie
im Folgenden näher
erläutert
wird.
-
Die Ringverzögerungszelle RDC6 enthält ein Paar
Negatoren 900, 902, die als Verzögerungselemente der
Ringverzögerungszelle
arbeiten, wobei jeder Negator für
eine Zeitverzögerung
tD sorgt. Wie der Fachmann weiß, gibt
es eine endliche Zeit zwischen dem Anlegen eines Signals an den
Eingang eines Negators und dem entsprechenden Übergang am Ausgang des Negators
abhängig
von dem angelegten Eingangssignal. Bei einer Ausführungsform
beträgt
die Zeitverzögerung
tD der Negatoren 900 und 902 etwa
100 Picosekunden, was bedeutet, dass ansprechend auf einen Übergang
am Eingang jedes Negators 900, 902 am Ausgang
des Negators ein Übergang
etwa 100 Picosekunden nach dem Übergang
am Eingang stattfindet. Die Ausgangssignale der Negatoren 900 und 902 bilden
die verzögerten
Datensignale an den Ausgangsanschlüssen ROUT bzw. ROUT. Das erste Paar von Dateneingangssignalen
an den Anschlüssen
RIN, RIN wird über ein
Paar von Übertragungs-
oder Durchlaßgattern 904 und 906 auf
die Negatoren 900 bzw. 902 gegeben. Das zweite
Paar von Dateneingangssignalen an den Anschlüssen DIN, DIN wird ebenfalls über ein Paar von Durchlaßgattern 908 und 910 auf
die Negatoren 900 bzw. 902 gegeben. Ein Register 912 gibt
ein Datenausgangsbit-Auswahlsignal BITOUT aus, und dieses Signal
BITOUT wird direkt bzw. über
einen Negator 914 angelegt, um alternativ entweder die
Durchlaßgatter 904 und 906 oder
die Durchlaßgatter 908 und 912 freizugeben.
Hat das Ausgangssignal BITOUT hohen Pegel, werden die Durchlaßgatter 908 und 910 aktiviert,
und die Dateneingangssignale an den Anschlüssen DIN, DIN werden an die Negatoren 900 und 902 gelegt.
Hat hingegen das Signal BITOUT niedrigen Pegel, werden die Durchlaßgatter 904 und 908 aktiviert,
und die Dateneingangssignale an den Anschlüssen RIN, RIN werden an die Negatoren 900 und 902 gelegt.
Auf diese Weise wählt
der Wert des Signals BITOUT aus, welches von den ersten Dateneingangssignalen
an den Anschlüssen
RIN, RIN und den zweiten Dateneingangssignalen
an den Anschlüssen
DIN, DIN an die Negatoren 900 und 902 gelegt
wird, um die verzögerten
Datensignale an den Anschlüssen
ROUT, ROUT zu bilden. In anderen
Worten: Das Signal BITOUT legt fest, ob das erste Bit an den Anschlüssen RIN, RIN oder das zweite Bit an
den Anschlüssen
DIN, DIN von der Ringverzögerungszelle RDC6 ausgegeben
wird. Das Signal BITOUT wird auch an (in 9 nicht gezeigte) benachbarte Ringverzögerungszellen
gelegt, wie im Folgenden näher
erläutert
wird.
-
Ein Durchlaßgatter 916 legt ein
linkes Biteingabesignal BITINL an den Eingang des Registers 912, wenn
komplementäre
Rechts-Steuersignale RIGHT, RIGHT an
zugehörigen
Steueranschlüssen
aktiv sind, und ein Durchlaßgatter 918 legt
ein Biteingabe-Rechtssignal BITINR an den Eingang des Registers 912,
wenn komplementäre
Links-Steuersignale LEFT, LEFT an
zugehörigen
Steuereingängen
aktiv sind. Getaktet wird das Register 912 von einem Paar
komplementärer
Schiebesignale SHIFT, SHIFT,
und es empfängt
außerdem ein
Setzsignal SET und ein Rücksetzsignal REST an betreffenden Setz-
und Rücksetzeingängen. Wenn
das Signal REST niedrigen aktiven
Pegel einnimmt, fängt
das Register 912 das einen niedrigen Signalpegel aufweisende
Signal BITOUT auf, wenn das Signal SET auf aktiven hohen Pegel geht,
speichert das Register 912 das hohe Signal BITOUT.
-
Im Betrieb arbeitet die Ringverzögerungszelle RDC6 in
einem von drei Betriebszuständen
(Modi), nämlich,
einem Linksschiebemodus, einem Rechtsschiebemodus und einem Durchgangsmodus.
Der Durchgangsmodus ist dadurch gekennzeichnet, dass das Signal
BITOUT vom Register 910 niedrig ist, was die Durchlaßgatter 908 und 910 deaktiviert
und die Durchlaßgatter 904 und 906 aktiviert.
Sind letztere aktiviert, werden die ersten Dateneingangssignale
an den Anschlüssen
RIN, RIN über zugehörige Negatoren 900 und 902 angelegt,
um die Signale ROUT, ROUT mit
einer Zeitverzögerung
tD gegenüber
den Signalen RIN, RIN zu erzeugen.
Während
des Durchgangsmodus werden die Signale DIN, DIN durch das Abschalten der Durchlaßgatter 908 und 910 abgetrennt
und haben keinen abträglichen
Einfluß auf
den Betrieb der Ringverzögerungszelle RDC6.
-
Während
des Linksschiebebetriebs wird der Wert des Signals BITOUT der Ringverzögerungszelle rechts
von der Ringverzögerungszelle RDC6,
die in diesem Fall die Ringverzögerungszelle RDC7 ist,
durch das Register 912 geschoben und als Signal BITOOUT
der Ringverzögerungszelle RDC6 ausgegeben,
wie im Folgenden näher
erläutert
wird. Zunächst
sei angenommen, dass das Signal BITOUT von der benachbarten Ringverzögerungszelle RDC7 hohen
Pegel hat. Wie aus 8A ersichtlich
ist, wird das Signal BITOUT von der benachbarten Ringverzögerungszelle RDC7 als
das Signal BITINR der Ringverzögerungszelle RDC6 angelegt,
und somit ist das an die Ringverzögerungszelle RDC6 angelegte
Signal BITINR auf hohem Pegel. Um den Linksschiebebetrieb in Gang
zu setzen, werden die Signale LEFT und LEFT aktiviert,
wodurch das Durchlaßgatter 918 eingeschaltet
wird und das Signal BITINR an den Eingang des Registers 912 gelegt
wird. Die Signale SHIFT und SHIFT takten
anschließend
das Register 912, so dass das an dessen Eingang angelegte hohe
Signal zu seinem Ausgang als hohes Signal BITOUT geschoben wird.
Auf diese Weise wird während
des Linksschiebebetriebs der Wert des Signals BITOUT der benachbarten
Ringverzögerungszelle RDC7 in
die Ringverzögerungszelle RDC6 hineingeschoben.
Wie im Folgenden näher
erläutert
wird, verschiebt der Linksschiebebetrieb die Eingangsanzapfung der
Verzögerungsschaltung 800 nach
links um eine Verzögerungszelle,
wo die Eingangsabzapfung diejenige der Verzögerungszellen ist, die das
Signal an den Anschlüssen
DIN, DIN anlegt, um die verzögerten Datensignale
an den Anschlüssen
ROUT, ROUT zu erzeugen.
-
Während
des Rechtsschiebebetriebs arbeitet die Ringverzögerungszelle RDC6 im
Wesentlichen genau so, wie es oben für den Linksschiebebetrieb erläutert wurde,
nur dass der Wert des Signals BITOUT, der von der Ringverzögerungszelle
benachbart zu der Zelle RDC6 nach links ausgegeben wird,
wo sich die Ringverzögerungszelle RDC5 jetzt
befindet, um in die Ringverzögerungszelle RDC6 verschoben
zu werden. Zunächst
sei angenommen, das Signal BITOUT von der benachbarten Ringverzögerungszelle RDC5 habe
hohen Pegel. Um den Rechtsschiebebetrieb zu beginnen, werden die
Signale RIGHT, RIGHT aktiviert,
wodurch das Durchlaßgatter 916 eingeschaltet
wird. Bei eingeschaltetem Durchlaßgatter 916 wird das
Signal BITINL an den Eingang des Registers 912 gelegt.
Wie aus 8 ersichtlich ist, wird das
Signal BITOUT von der Ringverzö gerungszelle RDC5 als
das Signal BITINL an die Ringverzögerungszelle RDC6 gelegt.
Damit ist das Signal BITINL auf hohem Pegel, und dieses hohe Signal
wird an den Eingang des Registers 912 gelegt, welches anschließend von
den Signalen SHIFT, SHIFT getaktet
wird, wodurch das hohe Signal BITINL am Eingang des Registers zu
dessen Ausgang als hohes Signal BITOUT aus der Ringverzögerungszelle RDC6 herausgeschoben
wird. Auf diese Weise wird während
des Rechtsschiebebetriebs der Wert des Signals BITOUT der Ringverzögerungszelle RDC5 nach
rechts als Signal BITOUT der Ringverzögerungszelle RDC6 verschoben.
Wie unten näher
erläutert
wird, verschiebt der Rechtsschiebebetrieb die Eingangsanzapfung
der Verzögerungsschaltung 800 um
eine Verzögerungszelle
nach rechts.
-
Nunmehr auf 8A zurückkommend, sollten im Folgenden
der Gesamtbetrieb der Verzögerungsschaltung 800 in
größerer Einzelheit
erläutert
werden. Während
des Betriebsablaufs wird am Anfang das an jede der Ringverzögerungszellen RDC1–RDC22 angelegte
Signal RST aktiviert, wodurch
jede der Ringverzögerungszellen RDC1–RDC17 und RDC19–RDC22 zurückgesetzt
wird. Wie oben bereits in Verbindung mit 9 erläutert
wurde, trennt, wenn jede der Ringverzögerungszellen RDC1–RDC22 zurückgesetzt
ist, die Ringverzögerungszelle
von ihren Anschlüssen
DIN, DIN getrennt und gibt
die verzögerten
Datensignale an ihre Ausgangsanschlüsse ROUT, ROUT, abhängig von den Dateneingangssignalen
an den Anschlüssen
RIN, RIN. Bezug nehmend auf
die Ringverzögerungszelle RDC18 sei
angemerkt, dass das Signal RST über einen Negator 801 angelegt
wird, um den Eingang der Ringverzögerungszelle RDC18 zu
setzen. Im Ergebnis nimmt, wenn das Signal RST einen aktiven niedrigen Pegel annimmt,
der Eingang SET einen aktiven hohen Pegel an, wodurch die Ringverzögerungszelle RDC18 gesetzt
wird. Wie oben in Verbindung mit 9 erläutert wurde, speichert
die Ringverzögerungszelle RDC18,
wenn sie gesetzt wird, ihr Signal BITOUT, so dass sie die Signal CAIN<0>, CAIN<0> verzögert, die
an ihren Anschlüssen
DIN, DIN anliegen, und diese
verzögerten
Datensignale gelan gen auf ihre Ausgangsanschlüsse ROUT, ROUT. Auf diese Weise wird, wenn das Signal RST einen aktiven niedrigen
Zustand annimmt, die Verzögerungszelle RDC18 die
Eingangsanzapfung der Verzögerungsschaltung 800.
-
Wenn an dieser Stelle das Signal
CAIN<0> an die Verzögerungsschaltung 800 gelegt
wird, wird dieses Signal in die Ringverzögerungszelle RDC18 eingegeben
und breitet sich anschließend über die
Anschlüsse ROUT, ROUT durch die Verzögerungszelle RDC18 aus,
anschließend über die
Ringverzögerungszellen RDC22, RDC1, RDC2, RDC3, RDC4 usw.
Während
sich das Signal CAIN<0> durch diese Serie
verbundener Ringverzögerungszellen
fortpflanzt, erhöht
sich die Zeitverzögerung
dieses Signals um die Zeitverzögerungsspanne
tD in jeder Ringverzögerungszelle. Wenn z. B. das
Signal CAIN<0> in die Ringverzögerungszelle RDC18 eingegeben
wird, so ist dieses Signal dann insgesamt um die Verzögerungszeit
10tD verzögert, wenn es die Ausgangsanschlüsse ROUT, ROUT der Ringverzögerungszelle RDC5 erreicht
(d. h. es ist um die jeweiligen Verzögerungszeiten tD der
Ringverzögerungszellen RDC18, RDC19–RDC21 (nicht
dargestellt), RDC22, RDC1, RDC2–RDC3 (nicht
dargestellt) und RDC4–RDC5 verzögert). Der
Ausgangsanschluß ROUT
von dieser Ringverzögerungszelle RDC5 ist
die fixierte Ausgangsanzapfung der Verzögerungsschaltung 800 und
wird über
in Reihe geschalteten Negatoren 803 und 805 und
durch ein freigegebenes Durchlaßgatter 807 geleitet, um
aus dem Befehlsverzögerungsring 506a das
Signal CADEL<0> auszugeben.
-
Anschließend werden die Steuersignale 822 an
die Ringverzögerungszellen RDC1–RDC22 gelegt,
um die Eingangsanzapfung der Verzögerungsschaltung 800 zu
verschieben und damit die Verzögerungszeit
des Signals CADEL<0> gegenüber dem
Signal CAIN<0> zu verschieben. Während des
Initialisierungsmodus werden die Steuersignale 822 ansprechend
auf die Steuersignale 510 von der Initialisierungssteuerschaltung 508 (8) erzeugt, um die Eingangsanzapfung der
Verzögerung 800 sequentiell
um eine Ringverzögerungszelle
RDC1–RDC22 nach
links zu verschieben und dadurch die Verzögerungszeit des Signals CADEL<0> gegenüber dem
Signal CAIN<0> zu verschieben. Nachdem
beispielsweise die Initialisierungssteuerschaltung 508 ermittelt
hat, ob das Signal CADEL<0> von dem entsprechenden
Schieberegister 516a (5)
bei der Gesamtzeitverzögerung
10td, bei der es sich um die Zeitverzögerung des
Signals CADEL<0> unmittelbar nach Rücksetzen
der Verzögerungsschaltung 800 handelt,
erfaßt
wurde, legt die Initialisierungssteuerschaltung 508 die Steuersignale 822 an,
um die Ringverzögerungszellen RDC1–RDC22 zu
veranlassen, im Linksschiebebetrieb zu arbeiten, wie es oben in
Verbindung mit 9 erläutert wurde.
Im Ergebnis wird das hohe Signal BITOUT aus der Ringverzögerungszelle RDC18 in
die Ringverzögerungszelle RDC17 verschoben,
und nun arbeitet diese Verzögerungszelle
als Eingangsanzapfung der Verzögerungsschaltung 800.
In anderen Worten: Das Signal CAIN<0> wird jetzt in die
Ringverzögerungszelle RDC17 anstelle
der Ringverzögerungszelle RDC18 eingegeben.
Auf diese Weise wird die Gesamtverzögerungszeit des Signals CADEL<0> jetzt durch die betreffende
Verzögerungszeit
tD der Ringverzögerungszelle RDC17 erhöht. Damit
beträgt
nun die Gesamtverzögerungszeit
des Signals CADEL<0> gegenüber dem
Signal CAIN<0> 11tD.
Während
des Initialisierungsmodus fährt
die Initialisierungssteuerschaltung 508 damit fort, die
Eingangsanzapfung der Verzögerungsschaltung 800 so
lange nach links zu verschieben, bis sie festgestellt hat, ob das
Signal CADEL<0> erfolgreich zu jeder der
jeweiligen Gesamtverzögerungszeiten
erfaßt
wurde, die jeder Eingangsanzapfung entsprechen. Nachdem sämtliche
Eingangsanzapfungen ausgewählt
sind, veranlaßt
die Initialisierungssteuerschaltung 508 die Steuerschaltungen 522,
die Eingangsanzapfung zu ihrer optimalen Stelle derart zu verschieben,
dass die Gesamtverzögerungszeit
des Signals CADEL<0> ihren optimalen Wert
annimmt, wie oben bereits erläutert
wurde.
-
Während
der Überwachungsbetriebsart
steuert die Überwachungsschaltung 512 die
Steuersignale 822 so, dass sie die Eingangsanzapfung der
Verzöge rungsschaltung 800 entweder
nach links oder nach rechts verschieben und dadurch die Gesamtverzögerungszeit
der Verzögerungsschaltung 800 in
der erforderlichen Weise justieren. Wenn z. B. die Überwachungsschaltung 512 feststellt,
dass die Verzögerungszeit
des Signals CADEL<0> erhöht werden
sollte, wird die Eingangsanzapfung der Verzögerungsschaltung 800 um
die erforderliche Anzahl von Anzapfungen nach links verschoben.
Wenn beispielsweise die Ringverzögerungszelle RDC17 der
Eingangsanzapfung der Verzögerungsschaltung 800 entspricht
und die Überwachungsschaltung 512 feststellt,
dass die Verzögerungszeit
des Signals CADEL<0> um 2tD erhöht werden
muß, bildet
die Überwachungsschaltung 512 die
Steuersignale 822 in der Weise, dass die Eingangsanzapfung
von der Ringverzögerungszelle RDC17 verschoben
wird zu der Verzögerungszelle RDC15,
um dadurch die Verzögerungszeit
des Signals CADEL<0> um den geforderten
Betrag von 2tD zu erhöhen.
-
Gemäß 8B enthält der Befehlsverzögerungsring 506a eine
Adressendecodier- und Multiplexerschaltung 801, welche
steuert, ob die Steuersignale 510 von der Initialisierungssteuerschaltung 508 (5) oder die Steuersignale 514 von
der Überwachungsschaltung 512 (5) dazu benutzt werden,
die Steuersignale 822 zu erzeugen, die angelegt werden,
um die Verzögerungsschaltung 800 des
Befehlsverzögerungsrings 506a in
der oben in Verbindung mit 8A beschriebenen
Weise zu steuern. Die Schaltung 801 enthält eine
Adressenschaltung 802, die eine spezielle Auswahladresse
für den
Befehlsverzögerungsring 506a entsprechend
dem speziellen Wert des Worts SEL<0:4> codiert und diese
codierte Adresse decodiert, um festzustellen, wann der Befehlsverzögerungsring 506a ausgewählt wurde.
Insbesondere wird jedes Bit des Worts SEL<0:4> über einen
entsprechenden Negator 810a–810e an einen Eingang
entweder eines NAND-Gatters 804 oder eines NAND-Gatters 806 angelegt,
wie aus der Zeichnung ersichtlich ist. Jeder der Negatoren 810a–810e wird
selektiv gemäß den gestrichelten
Linien umgangen, um die Auswahladresse entsprechend einem speziellen
Wert des Worts SEL<0:4> zu codieren. Wie oben
in Verbindung mit 5 erläutert wurde,
besitzt der Befehlsverzögerungsring 506a die
Auswahladresse 00000 für
das Wort SEL<0:4>. In dieser Situation wird
keine der Negatoren 810a–810e umgangen, so
dass, wenn das Wort SEL<0:4> mit dem Wert 00000
angelegt wird, jeder der Negatoren 810a–810e seinen entsprechenden
Ausgang auf hohes Potential bringt.
-
Wenn sämtliche Ausgänge der
Negatoren 810a–810e hohen
Pegel haben, werden sämtliche
hohen Eingänge
an die NAND-Gatter 804 und 806 gegeben, wodurch
die NAND-Gatter an ihren Ausgängen
niedrigen Pegel annehmen. Wenn beide Ausgänge der NAND-Gatter 804 und 806 niedrig
werden, wird das Ausgangssignal eines NOR-Gatters 808 hoch,
wodurch das Signal SELECT einen aktiven hohen Pegel annimmt, und
das Signal SELECT wird über
einen Negator 812 gegeben, wodurch das komplementäre Auswahlsignal SELECT erzeugt wird. Wenn
somit das Wort SEL<0:4> mit dem Wert 00000
an den Befehlsverzögerungsring 506a angelegt
wird, gelangt der Ausgang des NOR-Gatters 808 auf einen
hohen Pegel, was die Signale SELECT, SELECT aktiviert
und dadurch signalisiert, dass der Befehlsverzögerungsring 506a von
der Initialisierungssteuerschaltung 508 ausgewählt wurde
(5).
-
Die Signale SELECT und SELECT werden an die jeweiligen Adressenanschlüsse einer
Gruppe von Multiplexern 814a–814d gelegt. Jeder
der Multiplexer 814a-814d enthält einen
ersten und einen zweiten Eingang und schaltet entweder seinen ersten
oder seinen zweiten Eingang ansprechend auf die angelegten Signale
SELECT, SELECT auf einen Ausgangspunkt.
Die Multiplexer 814a und 814c empfangen ein Rechtssteuersignal
CRIGHT und ein Steuerschiebesignal CSHIFT an ersten Eingängen. Die
Signale CRIGHT und CSHIFT sind in den Steuersignalen 510 enthalten,
die von der Initialisierungssteuerschaltung 508 (5) während des Initialisierungsmodus
in der oben beschriebenen Weise erzeugt werden. Das Signal CRIGHT
wird über
einen Negator 816 angelegt, um ein Signal CLEFT zu erzeugen,
welches an den ersten Eingang des Multiplexers 814b gelangt,
und das Signal CSHIFT wird über
einen Negator 818 angelegt, um ein Signal CSHIFT zu erzeugen, welches an einen ersten
Eingang des Multiplexers 814d gelegt wird. In ähnlicher
Weise empfangen die Multiplexer 814a-814d ein Rechtsschiebesignal
RIGHT, ein Linksschiebesignal LEFT und komplementäre Schiebesignale
SHIFT und SHIFT auf jeweiligen
zweiten Eingängen,
wie aus der Zeichnung ersichtlich ist. Die Signale RIGHT, LEFT,
SHIFT und SHIFT sind in den
Steuersignalen 514 enthalten, die von der Überwachungsschaltung 512 (5) während des Überwachungsmodus in der oben
beschriebenen Weise erzeugt werden. Wenn im Betrieb die Signale
SELECT und SE LECT aktiv hoch und niedrig sind, was dann
der Fall ist, wenn das Wort SEL<0:4> den Wert 00000 hat,
entsprechend der ausgewählten
Adresse des Befehlsverzögerungsrings 506a,
schalten die Multiplexer 814a–814d auf ihre anderen
Ausgänge
die Signale CRIGHT, CLEFT, CSHIFT und CSHIFT.
Diese Signale an den Ausgängen
der Multiplexer 814a–814d werden
dann über in
Reihe geschaltete Negatorenpaare 820–826 geleitet, um
die Steuersignale 822 zu erzeugen, die angelegt werden
zum Steuern jeder der Ringverzögerungszellen RDC1–RDC22,
wie oben in Verbindung mit 8A erläutert wurde.
-
Die Schaltung 801 enthält ferner
eine Rücksetzschaltung 824,
die ein komplementäres
Paar von Rücksetzsignalen
RST und RST erzeugt. Insbesondere
empfängt
ein NAND-Gatter 827 ein Systemrücksetzsignal RESET, welches von einer (nicht gezeigten)
Schaltung in dem paketierten Speicherbauelement 16a erzeugt wird,
welches den Befehlsverzögerungsring 506a beinhaltet.
Das Signal RESET kann aktiven
niedrigen Pegel beispielsweise dann annehmen, nachdem das Speicherbauelement 16a zurückgesetzt
ist, oder während
das Speicherbauelement nach dem Einschalten hochgefahren wird. Wenn
das Signal RESET einen aktiven
niedrigen Pegel annimmt, nimmt das NAND-Gatter 827 ein
hohes Ausgangssignal an, welches über einen ersten Negator 829 geleitet
wird, um das Signal RST zu
erzeugen, und welches über
einen zweiten Negator 830 zum Erzeugen des Signals RST
geleitet wird. Ein NOR-Gatter 832 gibt sein Ausgangssignal über einen
Negator 834 an einen zweiten Eingang des NAND-Gat ters 827.
Das NOR-Gatter 832 wird freigegeben von dem aktiven niedrigen
Signal SELECT, welches dann
aktiv ist, wenn die Initialisierungssteuerschaltung 508 (5) den Befehlsverzögerungsring 506a ausgewählt hat,
wie oben erläutert
wurde. Wenn das NOR-Gatter 832 freigegeben wird und die
Initialisierungssteuerschaltung 508 das Signal RESET aktiviert, bringt das NOR-Gatter 832 seinen
Ausgang auf hohes Potential, wodurch der Negator 834 an
seinem Ausgang ein niedriges Potential annimmt. Wie oben beschrieben,
bringt das NAND-Gatter 826 dann, wenn ein Eingangssignal
von ihm niedrigen Pegel hat, seinen Ausgang auf hohes Potential,
was die Signale RST, RST erzeugt
und dadurch die Ringverzögerungszellen RDC1–RDC22 zurücksetzt.
-
10A und 10B sind eine schematische
Ansicht einer Ausführungsform
des Datenverzögerungsrings 524a aus 5. Jeder der Datenverzögerungsringe 524a–524r ist
identisch, so dass aus Gründen
der Kürze
nur der Datenverzögerungsring 524a in
Verbindung mit den 10A und 10B in größerer Einzelheit erläutert wird.
Außerdem
enthält
der Datenverzögerungsring
eine Reihe von Komponenten, die identisch mit entsprechenden Komponenten
sind, die oben in Verbindung mit dem Befehlsverzögerungsring 506a anhand
der 8A und 8B erläutert wurden. Diese identischen
Komponenten haben die gleichen Bezugszeichen wie in den 8A und 8B und werden zur Vereinfachung nicht
näher erläutert. Nach 10A ist die Verzögerungsschaltung 1000 identisch
mit der zuvor anhand der 8A beschriebenen
Verzögerungsschaltung,
ausgenommen das Vorhandensein mehrerer Ausgangsanzapfungen 1000a–1000k,
die zum Justieren der Verzögerungszeit
des Signals D1DEL<0> verwendet werden,
wie weiter unten näher
ausgeführt
wird. Jede der Ausgangsanzapfungen 1000a–1000k enthält ein entsprechendes
Paar von in Reihe geschalteten Negatoren 1002a–1002k und
ein entsprechendes Durchlassgatter 1004a–1004k,
das zwischen ausgewählten
Ausgängen
der Ringverzögerungszellen RDC1–RDC22 und
einem Ausgangsknoten 1006 liegt, wie aus der Zeichnung
hervorgeht. Die Durchlassgatter 1004a–1004k empfangen komplementäre Paare
von Freigabesignalen aus einem Freigabeort EN<0:10> und
eines komplementären
Freigabeworts EN<0:10>. Eines der Durchlassgatter 1004a–1004k wird
zu einer gegebenen Zeit freigegeben, so dass nur eine einzige Ausgangsanzapfung 1000a–1000k an
den Ausgangsknoten 106 durchgeschaltet wird, um das Signal
D1DEL<0> zu erzeugen.
-
Bezug nehmend auf 10B erzeugt eine OFFSET- oder Versetzungsschaltung 1008 die
Wörter EN<0:10> und EN<0:10> abhängig von
dem angelegten Signal OFFSET<0:10>, welches von der Initialisierungssteuerschaltung 508 (5) erzeugt wird. Insbesondere
werden einzelne Bits des Worts OFFSET<0:10> durch ein Paar von
Registern 1010 und 1012 geschoben, wie dargestellt
ist. Ein NAND-Gatter 1014 ist mit seinem Ausgang einerseits
direkt und andererseits über
einen Negator 1016 angeschlossen, um die Register 1010 und 1012 abhängig von
einem STROBE-Signal und dem Signal SELECT zu takten, die an zugehörige Eingänge gegeben
werden.
-
Während
des Initialisierungsmodus bestimmt die Initialisierungssteuerschaltung 508 (5) zunächst die optimale Verzögerungszeit
für das
Signal D0DEL<0>, wie es oben erläutert wurde.
Danach erhöht
die Initialisierungssteuerschaltung 508 das Wort OFFSET<0:10>,
um die Verzögerungszeit
für das
Signal D1DEL<0> relativ zu der bestimmten
optimalen Verzögerungszeit
für D0DEL<0> einzustellen, wie
im Folgenden näher
erläutert
wird. Das Wort OFFSET<0:10> wird mit einem ersten
Wert auf die Register 1010 und 1012 gegeben, anschließend bringt
die Steuerschaltung 508 das Signal STROBE auf aktiven hohen
Pegel, wodurch das NAND-Gatter 1014 die Register 1010 und 1012 taktet
und damit das angelegte Wort OFFSET<0:10> in diese Register
schiebt. Es sei angemerkt, dass das NAND-Gatter 1014 von
dem hohen Signal SELECT dann freigegeben wird, wenn der Datenverzögerungsring 524a ausgewählt wurde,
wie oben erläutert
ist. An dieser Stelle schaltet eines der Durchlassgatter 1004a–1004k ein,
indem das Ausgangssignal von der zugehörigen Ringver zögerungszelle RDC1–RDC10 oder RDC22 als
Signal D1DEL<0> an den Ausgangsknoten 1006 gegeben
wird. Die Steuerschaltung 508 (5) bestimmt anschließend, ob das Signal D1DEL<0> erfolgreich zu der
Verzögerungszeit
entsprechend der ausgewählten
Anzapfung erfasst wurde. Nachdem die Steuerschaltung 508 diese
Feststellung getroffen hat, inkrementiert sie den Wert des Worts OFFSET<0:10> und
wechselt erneut das Signal STROBE auf einen anderen Pegel, wodurch
dieses neue Wort OFFSET<0:10> in die Register 1010 und 1012 geschoben
wird. Ansprechend auf das von den Registern 1010 und 1012 ausgegebenen neue
Wort OFFSET<0:10> wird
das nächste
der Durchlassgatter 1004a–1004k eingeschaltet,
wodurch eine andere Ausgangsanzapfung auf den Ausgangsknoten 1006 geschaltet
wird. Wiederum bestimmt die Steuerschaltung 508, ob das
Signal D1DEL<0> erfolgreich zu der
Verzögerungszeit
erfasst wurde, die der neuen ausgewählten Ausgangsanzapfung entspricht.
Dann legt die Steuerschaltung 508 das Wort OFFSET<0:10> mit dem der optimalen
Ausgangsanzapfung entsprechenden Wert an die Register 1010 und 1012 und
das Signal STROBE, um diesen Wert in die Register 1010 und 1012 zu übernehmen
und so das Durchlassgatter von den Durchlassgattern 1000a–1000k einzuschalten,
welches der optimalen Anzapfung entspricht. Durch Verwendung des
Verzögerungsrings 524a gemäß den 10A und 10B sind keine zwei Verzögerungsringe
für jedes Datensignal
DQ<0:17> erforderlich. Der
Fachmann erkennt allerdings, dass man auch zwei separate Datenverzögerungsringe
in Verbindung mit den jeweiligen Ausgangssignalen der beiden Datenverzögerungsringe verwenden
könnte,
die dann von zugehörigen
internen Taktsignalen zwischengespeichert werden, die ansprechend
auf die beiden extern angelegten Datentaktsignale DCLK0 und DCLK1
erzeugt werden.
-
11 ist
eine schematische Ansicht einer Ausführungsform der Verzögerungsschaltung 518 der 5, die in der bereits beschriebenen
Weise das Signal CCLKD erzeugt. Jede der Verzögerungsschaltungen 518, 530 und 538 der 5 kann identisch sein, so
dass aus Gründen
der Kürze
nur die Verzöge rungsschaltung 518 in
Verbindung mit 11 näher erläutert wird.
Die Verzögerungsschaltung 518 enthält mehrere
Ringverzögerungszellen RDC1–RDC14,
die mit ihren Eingangsanschlüssen
RIN, RIN und ihren Ausgangsanschlüssen ROUT, ROUT in Reihe geschaltet sind,
wobei jede Zelle mit ihren entsprechenden Signalanschlüssen an
entweder eine Versorgungsspannungsquelle VCC oder
an Masse angeschlossen ist. Zurückkehrend
zu der 9, sieht man,
dass, wenn jede der Ringverzögerungszellen RDC1–RDC14 seine
Steueranschlüsse
in der dargestellten Weise verschaltet hat, jede Ringverzögerungszelle
das an ihren Eingangsanschlüssen
RIN, RIN anstehende Signal
durch entsprechende Negatoren 900 und 902 leitet,
um ein verzögertes
Datensignal an den Ausgangsanschlüssen ROUT, ROUT zu erzeugen, die die Verzögerungszeit
tD in Bezug auf das angelegte Eingangssignal
aufweisen. Im Betrieb werden die an die Ringverzögerungszelle RDC1 gelegten
Signal CCLKIN, CCLKIN um die
Verzögerungszeit
tD verzögert,
wenn sie sich durch jede der in Reihe geschalteten Ringverzögerungszellen RDC1–RDC14 ausbreiten,
und es wird ein verzögertes
Taktsignal an den Ausgangsanschlüssen
ROUT, ROUT erzeugt, das eine
Gesamtverzögerungszeit
von 14 tD in Bezug auf das Signal CCLKIN, CCLKIN besitzt. Dieses verzögerte Taktsignal
an den Ausgangsanschlüssen
ROUT, ROUT der Ringverzögerungszelle RDC14 wird über zwei
Sätze von
in Reihe geschalteten Negatoren 1100 und 1102 geleitet,
um die verzögerten
Taktsignale CCLKD bzw. CCLKD zu
erzeugen.
-
12 ist
ein funktionelles Blockdiagramm einer Ausführungsform der Überwachungsschaltung 512 aus 5, die, wie bereits erläutert, während des Überwachungsbetriebs
arbeitet, um die Verzögerungszeiten für sämtliche
Verzögerungsringe 506a–506k und 524a–524r ansprechend
auf Verschiebungen des Daten-Augenmusters des Signals CCLKM zu justieren.
Die Überwachungsschaltung 512 enthält einen
Befehlstakt-Verzögerungsring 540,
der von dem Datenempfänger 542,
der identisch mit den die entsprechenden Signale CA<0:9>, FLAG und DQ<0:14> empfangenden Datenempfängern 502a–502k und 522a–522r ist,
das Signal CCLKM empfängt.
Durch Verwendung des Datenempfängers 542,
der identisch zu den Datenempfängern 502a–502k, 522a-522r ausgebildet
ist, unterliegt das von dem Datenempfänger 542 gebildete
Signal CCLKM den gleichen Schwankungen wie die Datensignale, die
von diesen anderen Datenempfängern
während
des Betriebs des paketierten Speicherbauelements 16a ausgegeben
werden, welches die bitweise Zeitkorrekturschaltung 500 beinhaltet.
Wenn z. B. die Betriebstemperatur des Speicherbauelements 16a mit
der darin enthaltenen Zeitkorrekturschaltung 500 schwankt,
so ändern
sich in gleichem Maß die
Betriebscharakteristika der Datenempfänger 502a-502k und 522a–522r,
was zu Schwankungen der jeweiligen Daten-Augenmuster der von diesem
Datenempfänger
gebildeten Signale führt.
In dieser Situation erleidet auch das von dem Datenempfänger 542 gebildete
Signal CCLKM die gleichen Schwankungen, da er identisch mit den
Datenempfängern 502a–502k und 522a–522r ausgebildet
ist.
-
Der Verzögerungsring 540 transferiert
das Signal CCLKM durch N in Reihe geschaltete Verzögerungsstufen,
die jeweils eine vorbestimmte Verzögerungszeit td besitzen.
Der Verzögerungsring 540 gibt
N Probensignale auf einzelne Anzapfungen DOUT, DLEAD<0:11> und DLAG<0:11>, wobei jedes Probensignal
dem Ausgangssignal der zugehörigen
Verzögerungsstufe
entspricht. Beispielsweise entspricht das Probensignal an der Anzapfung
DLAG<0> dem Signal CCLKM,
welches um die Zeitverzögerung
einer Verzögerungsstufe gegenüber dem
Signal an der Mittelanzapfung DOUT verzögert ist, und das Probensignal
an der Anzapfung DLAG<1> entspricht dem Signal
CCLKM, welches um die Verzögerungszeit
von zwei Verzögerungsstufen
gegenüber
dem Signal an der Mittelanzapfung DOUT verzögert ist, usw., wobei die Signale
an den Anzapfungen DLEAD<0:11> dem Signal an der
Mittelanzapfung DOUT sukzessive um Zeitverzögerungen td vorauseilen.
Die Probensignale von den Anzapfungen werden aufgefangen und von
mehreren Auffangspeichern 544 in Abhängigkeit des Signals CCLKD.
Wie der Fachmann sieht, arbeiten der Verzögerungsring
540 und
die Auffangspeicher 544 im Verein, um das Signal CCLKM überabzutasten.
In anderen Worten, jedes der Probensignale an den Anzapfungen DOUT,
DLAG<0:11> und DLEAD<0:11> repräsentiert
den Wert des Signals CCLKM zu einer vorbestimmten Verzögerungszeit
gegenüber
den anderen Probensignalen. So z. B. entspricht das Probensignal
an der Anzapfung DLEAD<11> dem Wert des Signals
CCLKM bei N Verzögerungszeiten
vor dem Wert des Probensignals von der Anzapfung DLAG<11>. Wenn z. B. jede Verzögerungsstufe
einer Zeitverzögerung
td entspricht, so repräsentieren die Probensignale
von den Anzapfungen DOUT, DLEAD<0:11> und DLAG<0:11> N Werte des Signals
CCLKM, ein Abtastwert bei jeder Zeitspanne td innerhalb
eines Gesamtzeitintervalls von N × td.
Ansprechen auf die von den Auffangspeichern 544 gehaltenen
Probensignale überwacht
die Logikschaltung 546 innerhalb der Überwachungsschaltung 512 das
Augenmuster des Signals CCLKM und ermittelt Verschiebungen des Augenmusters.
Wenn die Logikschaltung 546 eine Verschiebung des Daten-Augenmusters
des Signals CCLM feststellt, legt sie die Steuersignale 514 an
die Befehlsverzögerungsringe 506a–506k und
die Datenverzögerungsringe 524a–524r,
um die jeweiligen Verzögerungszeiten
jedes dieser Ringe um einen vorbestimmten Betrag zu verschieben,
wie oben erläutert
wurde.
-
Im Folgenden wird die Arbeitsweise
der Überwachungsschaltung 512 in
größerer Einzelheit
anhand der 13 erläutert, bei
der es sich um ein Impulsdiagramm handelt, welches das Abtastdaten-Augenmuster DE
des CCLKM-Signals veranschaulicht. In dem in 13 gezeigten Beispiel sind die Werte
jedes der Probensignale von den Anzapfungen DOUT, DLEAD<0:11 > und DLAG<0:11>, die von den Auffangspeichern 544 ansprechend
auf einen speziellen Übergang
des Signals CCLKD aufgefangen werden, durch Kreise an dem CCLKM-Signal
dargestellt. Bei dem Beispiel der 6 ist
das Daten-Augenmuster DE des Signals CCLKM am Anfang bezüglich der
Mittelanzapfung DOUT des Verzögerungsrings 540 zentriert.
In anderen Worten, die Übergänge des
Signals CCLKM auf beiden Seiten der Mittelanzapfung DOUT sind bezüglich dieser
Anzapfung äquidistant.
Insbesondere sind auf der linken Seite der Mittelanzapfung DOUT
die neun Signale von den Anzapfungen DLEAD<0:8> sämtlich auf
hohem Pegel, und die drei Signale von den Anzapfungen DLEAD<9:11> sind niedrig. In ähnlicher
Weise sind auf der rechten Seite der Mittelanzapfung DEOUT die neun
Signale von den Anzapfungen DLAG<0:8> sämtlich hoch, und die drei Signale
von den Anzapfungen DLAG<9:11> sind niedrig. Damit
tritt die Anstiegsflanke des Signals CCLKM auf der linken Seite
der Mittelanzapfung DOUT zwischen den Anzapfungen DLEAD<8> und DLEAD<9> auf, was dem neunten
und zehnten Signal auf der linken Seite der Mittelanzapfung DOUT
entspricht. In ähnlicher
Weise liegt die Rückflanke
des Signals CCLKM zwischen dem neunten und dem zehnten Signal DLAG<8> und DLAG<9> auf der rechten Seite
der Mittelanzapfung DOUT. Auf diese Weise ist am Anfang das Daten-Augenmuster DE bezüglich der
Mittelanzapfung DOUT zentriert.
-
Eine Verschiebung des Daten-Augenmusters
DE des Signals CCLKM ist durch die gestrichelte Linie am Signal
CCLKM in 13 angedeutet.
Bei diesem Beispiel hat sich die Anstiegsflanke des Signals CCLKM verschoben
von der Stelle zwischen den Anzapfungen DLEAD<8> und
DLEAD<9> hin zu der Stelle
zwischen den Anzapfungen DLEAD<6> und DLEAD<7>, während die Rückflanke sich von der Stelle
zwischen den Anzapfungen DLAG<8> und DLAG<9> zu einer Stelle zwischen
den Anzapfungen DLAG<10> und DLAG<11> verschoben hat, wie
aus der Zeichnung ersichtlich ist. An dieser Stelle ist das Daten-Augenmuster
DE des Signals CCLKM nicht mehr bezüglich der Mittelanzapfung DOUT
zentriert. Ansprechend auf eine solche Verschiebung des Daten-Augenmusters
DE des Signals CCLKM erzeugt die Logikschaltung 546 die
Steuersignale 514 so, dass sie die jeweiligen Zeitverzögerungen
für jeden
der Befehlsverzögerungsringe 506a–506k und Datenverzögerungsringe 524a–524r um
einen Betrag verschiebt, der so groß ist wie die Verschiebung
des Daten-Augenmusters des Signals CCLKM. Ansprechend auf die Steuersignale 514 verschiebt
der Verzö gerungsring 540 außerdem die
jeweiligen Verzögerungszeiten
jedes der Signale von den Anzapfungen DOUT, DLEAD<0:11> und DLAG<0:11> um einen vorbestimmten
Betrag, um dadurch zu veranlassen, dass das Daten-Augenmuster DE
erneut bezüglich
der Mittelanzapfung DOUT zentriert ist.
-
14A–14C stellen eine detaillierte schematische
Ansicht einer Ausführungsform
der Überwachungsschaltung 512 aus 12 dar. 15A zeigt
eine Ausführungsform
eines Steuersignalgenerators 1001, der in dem Logikschaltungsteil 546 der Überwachungsschaltung 512 enthalten
ist, und zwar in größerer Einzelheit.
Der Steuersignalgenerator 1001 erzeugt die Signale SHIFT, SHIFT, LEFT und RIGHT, um
die jeweiligen Zeitverzögerungen
der Befehlsverzögerungsringe 506a–506k und
Datenverzögerungsringe 524a–524r sowie
des CCLK-Verzögerungsrings 540 während des Überwachungsbetriebs
einzustellen, wie es oben in Verbindung mit 12 erläutert wurde und im Folgenden
näher beschrieben
wird. Wie in 14A dargestellt ist,
sind die Signale SHIFT, SHIFT,
LEFT und RIGHT in den oben in Verbindung mit 5 erläuterten
Steuersignalen 514 enthalten. Der zweite Steuersignalgenerator 1001 enthält ein erstes
RS-Flipflop 1002, gebildet durch kreuzgekoppelte NAND-Gatter 1004 und 1006.
Ein NAND-Gatter 1008 legt ein aktives niedriges Setzeingangssignal S an das RS-Flipflop 1002,
wenn sämtliche
Eingänge
hoch sind. Ein Rechtsschiebesignal SHIFTR wird über einen
Negator 1010 an einen ersten Eingang eines NAND-Gatters 1008 gelegt,
und ein Linksschiebesignal SHIFTL wird
direkt an einen zweiten Eingang des NAND-Gatters 1008 gelegt.
Ein herkömmlicher
Frequenzteiler 1012 erzeugt ein Taktsignal CLK, welches
ein Viertel der Frequenz des angelegten Signals CCLKD aufweist,
und legt das Signal CLK zum Freigeben an das NAND-Gatter 1008.
-
Ein NAND-Gatter 1016 legt
ein hohes Ausgangssignal an das NAND-Gatter 1014, wenn
entweder das Signal SHIFTL niedrig
oder das Signal SHIFTR hoch
ist, wodurch das NAND-Gatter 1014 den Auffangspeicher 1002 zurücksetzt, wenn
das Signal CLK hoch ist, und wenn entweder das Signal SHIFTL niedrig oder das Signal SHIFTR hoch ist. Das Ausgangssignal des
Auffangspeichers 1002 wird über in Reihe geschaltete Negatoren 1020–1026 zum
Erzeugen des Signals RIGHT angelegt. Wenn während des Betriebs das Signal
CLK hohen Pegel hat, so wird der Auffangspeicher 1002 ansprechend
darauf gesetzt, dass das Signal SHIFTR auf aktiv
niedrigen Pegel geht und das Signal SHIFTL inaktiv
hoch ist. Wenn der Auffangspeicher 1002 gesetzt ist, geht
der Ausgang des NAND-Gatters 1004 auf hohen Pegel, der über die
Negatoren 1020–1026 gelangt
und ein hohes Signal RIGHT liefert. Wenn das Signal SHIFTL aktiv niedrig ist, wird das NAND-Gatter 1008 gesperrt,
so dass selbst dann, wenn das Signal SHIFTR aktiv
niedrig wird, der Auffangspeicher 1002 nicht gesetzt wird.
Der Auffangspeicher 1002 wird von dem Ausgangssignal des
NAND-Gatters 1014 ansprechend auf das CLK-Signal und das
Ausgangssignal des NAND-Gatters 1016 zurückgesetzt.
Wenn das Signal CLK hoch ist, wodurch das NAND-Gatter 1014 freigegeben
wird, bildet dies am Ausgang einen niedrigen Pegel, was den Auffangspeicher 1002 dann
zurücksetzt,
wenn der Ausgang des NAND-Gatters 1016 hohen Pegel annimmt, was,
wie oben erläutert
wurde, dann geschieht, wenn entweder das Signal SHIFTL niedrig oder das Signal SHIFTR hoch ist.
-
Ein NOR-Gatter 1028 gibt
sein Ausgangssignal über
in Serie geschaltete Negatoren 1030-1036 und in Reihe geschaltete
Negatoren 1038–1048,
um die Signale SHIFT bzw. SHIFT zu
erzeugen. Das NOR-Gatter 1028 wird freigegeben durch das
Signal ENABLE von der Initialisierungssteuerschaltung 508 (5) und durch das über einen
Negator 1046 gegebene Ausgangssignal eines NAND-Gatters 1044.
Wenn das Signal ENABLE niedrig
und das Ausgangssignal des NAND-Gatters 1044 hoch ist,
wird das NOR-Gatter 1028 freigegeben und erzeugt die Signale
SHIFT, SHIFT ansprechend auf
einen von einem Impulsgenerator 1048 erzeugten Impuls.
Der Impulsgenerator 1048 legt einen niedrigen Impuls fester
Dauer an das NOR-Gatter 1028 ansprechend auf eine Rückflanke
des an seinen Eingang gelegten Signals CLK. Wenn im Betrieb der
Auffangspeicher
1002 gesetzt ist, bildet das NOR-Gatter 1004 am
Ausgang ein hohes Signal, wodurch der Negator 1020 an das
NAND-Gatter 1044 einen niedrigen Pegel gibt, worauf ansprechend
das NAND-Gatter am Ausgang einen hohen Pegel bildet, der über den
Negator 1046 das NOR-Gatter freigibt. Wenn also der Auffangspeicher 1002 gesetzt
ist, erzeugt das NOR-Gatter 1028 die Signale SHIFT, SHIFT ansprechend auf den
von dem Impulsgenerator 1048 kommenden Impuls.
-
Der Steuersignalgenerator 1001 enthält weiterhin
eine Reihe von Komponenten 1050-1070, die so arbeiten,
dass das Signal LEFT in im Wesentlichen der gleichen Weise gebildet
wird, wie dies für
die das Signal RIGHT erzeugende Schaltung beschrieben wurde, so
dass aus Gründen
den Kürze
diese Komponenten nicht weiter erläutert werden. Allerdings sei
angemerkt, dass bei aktiv niedrigem Signal SHIFTR das NAND-Gatter 1054 gesperrt
wird und den Auffangspeicher 1058 nicht setzt, unabhängig vom
Zustand des Signals SHIFTL, genau
so, wie dies für
das NAND-Gatter 1008 und das Signal SHIFTL beschrieben wurde. Wenn somit beide Signale SHIFTL und SHIFTR gleichzeitig aktiv niedrig sind,
wird keiner der Auffangspeicher 1002 und 1058 gesetzt,
so dass weder das Signal LEFT noch das Signal RIGHT erzeugt wird.
Dies verhindert, dass die Überwachungsschaltung 512 (5) die Verzögerungszeiten
der Befehlsverzögerungsringe 506a–506k und
der Datenverzögerungsringe 524a–524r in
dieser Situation verschiebt.
-
In 14B ist
ein Teil einer Übergangsdetektorschaltung 2000 dargestellt,
die Teil der Logikschaltung 546 in der Überwachungsschaltung 510 ist.
Im Betrieb detektiert die Übergangsdetektorschaltung 2000 den ersten Übergang
entweder nach rechts oder nach links bezüglich der Mittelanzapfung DOUT
und erzeugt die Signale SHIFTL oder SHIFTR, wenn der festgestellte
erste Übergang
nach rechts bezüglich
der Mittelanzapfung DOUT bzw. der erste Übergang nach links bezüglich der
Mittelanzapfung nicht äquidistant
gegenüber
der Mittelanzapfung sind, um dadurch das Daten-Augenmuster des Signals
CCLK bezüglich der
Mittelanzapfung DOUT zu zentrieren, wie unten näher erläutert wird. Die Mittelanzapfung
DOUT gelangt über
in Reihe geschaltete Negatoren 2002 und 2004 und
ein freigegebenes Durchlassgatter 2006 sowie einen Negator 2008 an
die Eingänge
von Registern 2010 und 2012. Die Signale CCLKD
und CCLKD werden in der dargestellten
Weise über
Negatoren 2014–2024 zum
Takten der Register 2010 und 2012 angelegt. Das
Register 2012 taktet das an seinem Eingang angelegte Signal
ansprechend auf jede Anstiegsflanke des Signals CCLKD auf seinem Ausgang.
Auf diese Weise speichert das Register 2012 den Wert der
Mittelanzapfung DOUT ansprechend auf jede Anstiegsflanke des Signals
CCLKD, und das Register 2010 speichert den Wert der Mittelanzapfung DOUT
ansprechend auf jede Rückflanke
des Signals CCLKD. Jede der Anzapfungen DELAG<0:11> links
von der Mittelanzapfung DOUT wird an ein entsprechendes Registerpaar
gelegt, genauso, wie es gerade für
die Mittelanzapfung DOUT erläutert
wurde. Aus Gründen
der Knappheit sind in 12B lediglich
die Komponenten 2014–2036 für die Anzapfungen
DLEAD<0> und DLEAD<1> gezeigt. In ähnlicher
Weise wird jede der Anzapfungen DLAG<0:11> rechts
von der Mittelanzapfung DOUT an ein entsprechendes Registerpaar
gelegt, genau so, wie es für
die Mittelanzapfung DOUT beschrieben wurde, wobei aus Gründen der
Knappheit nur die Komponenten 2038–2072 für die Anzapfungen
DLAG<0:2> dargestellt sind.
-
Die Übergangsdetektorschaltung 2000 enthält weiterhin
mehrere Exklusiv-NOR-Gatter
(„XNOR") 2074–2096,
die paarweise gemäß Darstellung
angeordnet sind, und denen jedes Paar an die Register benachbarter
Anzapf-Ausgänge
angeschlossen ist. Beispielsweise sind die XNOR-Gatter 2086–2088 mit
ihren Eingängen
so verschaltet, dass sie die Ausgangssignale von den Registern 2010 und 2012 empfangen,
die zu der Mittelanzapfung DOUT gehören, sowie die Ausgangssignale
der Register 2046 und 2048 empfangen, die zu der
Anzapfung DLAG<0> gehören. Insbesondere
empfängt
das XNOR-Gatter 2086 das Ausgangssignal von dem Register 2010 direkt
und über
einen Negator 2100 an ei nem ersten Paar komplementärer Eingänge, und
es empfängt
das Ausgangssignal von dem Register 2046 direkt bzw. über einen
Negator 2104 an einem zweiten Paar komplementärer Eingänge. Somit
vergleicht das XNOR-Gatter 2046 den Wert der Mittelanzapfung
DOUT, der abhängig
von der Rückflanke
des Signals CLKD festgehalten wurde, mit dem Wert der Anzapfung
DLAG<0>, der ansprechend auf
die Rückflanke
des Signals CCLKD festgehalten wurde. Wenn der Wert der Mittelanzapfung
DOUT sich von demjenigen der Anzapfung DLAG<0> unterscheidet,
was einen Übergang des
CCLK-Signals bedeutet, geht der Ausgang des XNOR-Gatters 2086 auf
niedrigen Pegel. Wenn ein solcher Übergang nicht gegeben ist,
haben beide Anzapfungen DOUT und DLAG<0> gleiche
Binärwerte,
und das XNOR-Gatter bringt seinen Ausgang auf hohen Pegel. Wenn
also nur ein Übergang
zwischen den Anzapfungen DOUT und DLAG<0> auftritt,
so bringt das XNOR-Gatter 2086 seinen Ausgang auf niedrigen
Pegel. Das XNOR-Gatter 2088 arbeitet in der gleichen Weise
in Abhängigkeit
von den Werten der Mittelanzapfung DOUT und der Anzapfung DLAG<0>, die von den Registern 2012 und 2048 ansprechend
auf die Anstiegsflanken des Signals CCLKD erfasst wurde, wie oben
ausgeführt
wurde. Jedes Paar von XNOR-Gattern 2074–2096 arbeitet in
der gleichen Weise, um einen Übergang
zwischen den entsprechenden benachbarten Anzapfungen zu erkennen.
-
Die Ausgangssignale von jedem Paar
von XNOR-Gattern 2074–2096 werden
an die jeweiligen Eingänge
eines Gatters einer Gruppe von NAND-Gattern 2108-2118 gegeben.
Die NAND-Gatter 2108–2112 erzeugen
die Signale L<2>, L<1> und
L<0> an ihren Ausgängen, und
die NAND-Gatter 2114–2118 erzeugen
an ihren Ausgängen
die Signale R<0>-R<2>.
Im Betrieb hält
jedes der NAND-Gatter 2108–2118 seinen
Ausgang auf hohem Pegel, wenn kein Übergang von dem zugehörigen Gatter
der XNOR-Gatter 2074–2096 festgestellt wird,
und es bringt seinen Ausgang auf niedrigen Pegel, wenn ein derartiger Übergang
von dem entsprechenden Paar von XNOR-Gattern festgestellt wird,
wie im Folgen den näher
erläutert
wird. Bezug nehmend auf das Gatter 2114 bringt, wenn eines
der XNOR-Gatter 2086 und 2088 einen Übergang
zwischen der Mittelanzapfung DOUT und der Anzapfung DLAG<0> erkennt, das XNOR-Gatter
seinen Ausgang auf niedrigem Pegel, wie bereits beschrieben wurde.
Wenn der Ausgang von einem der XNOR-Gatter 2086 und 2088 niedrigen
Wert annimmt, treibt das NAND-Gatter 2114 das Signal R<0> auf hohen Wert, was
signalisiert, dass ein solcher Übergang
festgestellt wurde. Jedes der NAND-Gatter 2108-2118 arbeitet
in der gleichen Weise, indem es seinen Ausgang auf einen hohen Wert
bringt, wenn das entsprechende Paar von XNOR-Gattern 2074–2096 einen Übergang
zwischen den betreffenden Anzapfungen feststellt.
-
Mehrere NOR-Gatter, die die Ausgänge von
einem ersten der NAND-Gatter 2108–2118 rechts von der Mittelanzapfung
DOUT und von einem entsprechenden der NAND-Gatter 2108–2118 links
von der Mittelanzapfung DOUT empfangen, beinhalten nur zwei Gatter,
nämlich
die in 12B dargestellten NOR-Gatter 2144 und 2146 in
der Zeichnung, obschon der Fachmann sieht, dass bei einer Ausführungsform
der Überwachungsschaltung 510,
die in Verbindung mit den 12A–12C beschrieben wurde, die Übergangsdetektorschaltung 2000 tatsächlich elf
derartige NOR-Gatter beinhaltet. Diese NOR-Gatter arbeiten so, dass
sie ausgewählte
NAND-Gatter 2108–2118 sperren,
nämlich
die, die zu solchen Anzapfungen gehören, die von der Mittelanzapfung
DOUT weiter weg liegen als die Anzapfungen, zwischen denen ein Übergang
festgestellt wurde, wie weiter unten näher erläutert wird. Zunächst sei
angenommen, dass am Anfang zwischen irgendwelchen Anzapfungen nach 12B kein Übergang stattfindet, so dass
jedes der NAND-Gatter 2108–2118 seinen Ausgang
auf niedrigem Wert hält,
wie bereits erläutert
wurde. In dieser Situation empfangen beide NOR-Gatter 2144 und 2146 zwei
niedrige Eingangssignale und bringen dementsprechend ihre Ausgänge auf einen
hohen Wert. Das hohe Ausgangssignal des NOR-Gatters 2146 gibt
die NAND-Gatter 2110 und 2116 frei, das hohe Ausgangssignal
des NOR-Gatters 2144 gibt die NAND-Gatter 2108 und 2118 frei.
-
Wenn man nun annimmt, dass ein Übergang
stattfindet zwischen den Anzapfungen DLAG<0> und DLAG<1>, wodurch ein oder
mehrere der XNOR-Gatter 2090 und 2092 ihren Ausgang
auf niedriges Potential bringen, so bewirkt dies wiederum, dass
das NAND-Gatter 2116 das Signal R<1> an
seinem Ausgang auf hohes Potential bringt, wodurch das NOR-Gatter 2144 am
Ausgang einen niedrigen Wert annimmt, was die NAND-Gatter 2108 und 2118 sperrt.
Man beachte, dass die gesperrten NAND-Gatter 2108 und 2118 die
Signale L<2> und R<2> an ihren jeweiligen
Ausgängen
auf hohen Wert bringt, wodurch das diese Signale empfangende NOR-Gatter
(in 12B nicht gezeigt) dazu bringt,
das NAND-Gatter direkt links von dem NAND-Gatter 2108 (nicht
dargestellt) und das NAND-Gatter direkt rechts von dem NAND-Gatter 2118 (nicht dargestellt)
sperrt. Die NAND-Gatter außerhalb
der Mittelanzapfung DOUT bleiben in der gleichen Weise gesperrt,
bis das NOR-Gatter, welches die Signale L<10> und
R<10> von den entsprechenden
NAND-Gattern links und rechts von den NAND-Gattern 2108–2118 empfängt, das
NAND-Gatter, welches das Signal L<1> erzeugt (nicht dargestellt)
und da NAND-Gatter, welches das Signal R<11> erzeugt
(nicht dargestellt), sperrt. Durch Sperren der Gruppe von NAND-Gattern,
die die NAND-Gatter 2108–2118 enthält, erkennt
die Übergangsdetektorschaltung 2000 auf
diese Weise den nächstkommenden Übergang
auf entweder die rechte oder die linke Seite bezüglich der Mittelanzapfung DOUT,
um sämtliche übrigen Übergänge, die
von der Mittelanzapfung weiter entfernt sind, zu ignorieren.
-
Jeder der Ausgänge der NAND-Gatter 2108–2118 wird
direkt bzw. über
einen aus einer Gruppe von Negatoren 2120–2130 an
ein entsprechendes NAND-Gatter einer zweiten Gruppe von NAND-Gattern 2132–2142 gelegt.
Die NAND-Gatter 2132–2136 legen
ihre Ausgangssignale an ein NAND-Gatter 2144, wodurch wiederum
dessen Ausgang an ein NOR-Gatter 2146 gelangt, um das Signal SHIFTL zu erzeugen. In ähnlicher
Weise legen die NAND-Gatter 2138–2142 ihre Ausgänge an ein
NAND-Gatter 2148, was wiederum dessen Ausgang auf ein NOR-Gatter 2150 gibt,
welches das Signal SHIFTR erzeugt.
Wenn im Betrieb irgendeines der NAND-Gatter 2108–2118 seinen
Ausgang auf hohen Wert bringt, was einen Übergang zwischen den entsprechenden
Anzapfungen signalisiert, bringt das entsprechende NAND-Gatter der
NAND-Gatter 2132–2142 seinen
Ausgang auf niedrigen Wert, es sei denn, es gäbe gleich große Übergänge von
links nach rechts bezüglich
der Mittelanzapfung DOUT, was weiter unten näher erläutert wird. Zunächst sei
angenommen, dass es keine Übergänge gäbe, ausgenommen
einen einzelnen Übergang
zwischen den Anzapfungen DLAG<0> und DLAG<1>. In dieser Situation
bringt eines oder bringen beide der XNOR-Gatter 2090 und 2092 ihren
Ausgang auf niedrigen Wert, wodurch das NAND-Gatter 2116 am Ausgang einen
hohen Wert erhält.
An dieser Stelle empfängt
das NAND-Gatter 2140 ein hohes Ausgangssignal von dem NAND-Gatter 2116 und
ein hohes Ausgangssignal von dem Negator 2122, da das NAND-Gatter 2110 das
Signal L<1> niedrig hält, da kein Übergang
zwischen den Anzapfungen DLEAD<0> und DLEAD<1> feststellt. Ansprechend
auf den Empfang von zwei hohen Eingangssignalen bringt das NAND-Gatter 2140 seinen
Ausgang auf niedrigen Wert, wodurch das NAND-Gatter 2148 an
seinem Ausgang einen hohen Wert erhält. Ansprechend darauf erzeugt das
NOR-Gatter 2150 das aktive niedrige Signal SHIFTR. Man beachte allerdings, dass beim
Erkennen eines Übergangs
zwischen den beiden Anzapfungen DLAG<0:1> und
DLEAD<0:1> das NAND-Gatter 2140 an
seinem Ausgang einen niedrigen Wert erhielte, so dass kein Signal SHIFTR erzeugt würde. Wenn
insbesondere auch ein Übergang
zwischen den Anzapfungen DLEAD<0:1> erkannt wird, bringt
das NAND-Gatter 2110 das Signal
L<1> auf hohen Wert, wodurch
der Negator 2122 mit seinem niedrigen Ausgangssignal das
NAND-Gatter 2140 sperrt, demzufolge dieses gesperrte NAND-Gatter 2140 seinen
Ausgang nicht auf niedrigen Pegel bringen kann, auch wenn das Signal
R<1> von dem NAND-Gatter 2116 hohen
Pegel bildet. Man beachte, dass das hohe Ausgangssignal von dem
NAND-Gatter 2116 dazu führt,
dass der Negator 2128 seinen Ausgang auf niedrigen Pegel
bringt und dadurch das NAND-Gatter 2134 sperrt, so dass
es nicht einen niedri gen Ausgangspegel hat, durch den das NOR-Gatter 2146 das
Signal SHIFTL auf einen aktiven
niedrigen Pegel bringen würde.
Auf diese Weise wird, wenn äquidistante Übergänge links
und rechts von der Mittelanzapfung DOUT festgestellt werden, weder
das Signal SHIFTL noch das
Signal SHIFTR erzeugt. In dieser
Situation besteht zum Erzeugen der Signale SHIFTL oder SHIFTR deshalb
keine Notwendigkeit, weil das Daten-Augenmuster des Signals CCLK
in dieser Situation bezüglich
der Mittelanzapfung DOUT zentriert ist.
-
Nunmehr auf 14C Bezug nehmend, wird eine detailliertere
Darstellung des CCLK-Verzögerungsrings 540 der 12 vorgestellt. Der Verzögerungsring 540 enthält Ringverzögerungszellen RDC1–RDC26, die
genau so verschaltet sind, wie es oben für den Befehlsverzögerungsring 506a gemäß 8 erläutert
wurde. Anstelle einer einzelnen Ausgangsanzapfung enthält der Verzögerungsring 540 die
Mittelanzapfung DOUT zusammen mit Anzapfungen DLAG<0:11> und DLEAD<0:11> gemäß Darstellung.
Im Betrieb werden die Signale CCLKM, CCLKM in
eine ausgewählte
Zelle der Ringverzögerungszellen RDC1–RDC26 eingefügt, so dass
das Daten-Augenmuster des Signals CCLKM und dementsprechend auch
das Augenmuster des Signals CCLK bezüglich der Mittelanzapfung DOUT
zentriert wird. Der Steuersignalgenerator 1001 der 12A arbeitet in Abhängigkeit der von der Übergangsdetektorschaltung 2000 in 12B kommenden Signale SHIFTL und SHIFTR,
um die Steuersignale 514 zu erzeugen, mit denen die Eingangsanzapfung
des Verzögerungsrings 540 verschoben
und damit die jeweiligen Zeitverzögerungen für jede der Anzapfungen justiert
werden, bis das Daten-Augenmuster des Signals CCLKM bezüglich der
Mittelanzapfung DOUT zentriert ist.
-
15 zeigt
eine schematische Darstellung einer Ausführungsform des Schieberegisters 516a aus 5. Jedes der Schieberegister 516a–516k, 528a–528r und 534a–534r kann
identisch sein, so dass aus Gründen
der Knappheit nur das Schieberegister 516a in größerer Einzelheit
anhand der 15 erläutert wird.
-
Das Schieberegister 516a enthält ein erstes
Paar von in Serie geschalteten Registern 1300 und 1302 und
ein zweites Paar von in Serie geschalteten Registern 1304 und 1306.
Das Signal CADEL<0> wird über einen
Negator 1308 an die Eingänge des Registers 1300 und 1304 gelegt.
Die Signale CCLKD und CCLKD werden über Negatoren 1310–1320 gemäß Darstellung
zum Takten der Register 1300–1306 angelegt. Die
Verbindung der Negatoren 1310–1320 führt in den
Registern 1304 und 1306 zu einer Verschiebung
von Daten, die an ihre Eingänge
angelegt werden, hin zu ihren Ausgängen, abhängig von der Vorderflanke des
Signals DCLKD, während
die Register 1300 und 1302 an ihren Eingängen anstehende
Daten ansprechend auf die Rückflanken
des Signals CCLKD an ihre Ausgänge
schieben.
-
Während
des Betriebs wird ein erstes Signal CADEL<0> an
die Eingänge
der Register 1300 und 1304 gelegt, und das Register 1304 verschiebt
das Signal zu seinem Ausgang, wenn die Anstiegsflanke des Signals CCLKD
ansteht. Ein zweites Signal CADEL<0> wird anschließend über den
Negator 1308 an die Eingänge der Register 1300 und 1304 gelegt,
so dass das Register 1303 dieses zweite angelegte Signal
an seinem Eingang ansprechend auf die nächste Rückflanke des Signals CCLKD
zu seinem Ausgang verschiebt. Ein drittes Signal CADEL<0> wird dann über den
Negator 1308 an die Register 1300 und 1304 gelegt,
so dass das Register 1304 dieses Signal bei der nächsten Vorderflanke
des Signals CCLKD zu seinem Ausgang verschiebt. Weiterhin sei beachtet,
dass bei der Verschiebung des dritten Signals CADEL<0> in das Register 1304 das erste
Signal CADEL<0> am Eingang des Registers 1306 zum
Ausgang dieses Registers verschoben wird. Wenn schließlich ein
viertes Signal CADEL<0> über den Negator 1308 an
die Eingänge
der Register 1300 und 1307 gelegt wird, verschiebt
das Register 1300 dieses Signal zu seinem Ausgang, ansprechend
auf die nächste
Rückflanke
des Signals CCLKD. Darüber
hinaus wird, während
das vierte Signal CADEL<0> in das Register 1300 geschoben
wird, das zweite am Eingang des Registers 1302 anstehende
Signal CADEL<0> zum Ausgang die ses
Registers verschoben. An dieser Stelle sind ansprechend auf vier Übergänge des
Signals CCLKD die vier aufeinanderfolgend angelegten Signale CADEL<0> in die jeweiligen
Register 1300–1306 verschoben, wie
oben beschrieben wurde. Das erste von dem Register 1306 ausgegebene
Signal CADEL<0> wird über einen
Negator 1322 zum Erzeugen des Signals CADEL<0> angelegt, und das
dritte, von dem Register 1304 ausgegebene Signal CADEL<0> wird zum Erzeugen
des Signals CADEL0<2> über einen Negator 1324 geleitet.
In ähnlicher
Weise wird das zweite von dem Register 1302 ausgegebene
Signal CADEL<0> über einen Negator 1326 geleitet,
um das Signal CADEL0<1> zu erzeugen, und das
vierte von dem Register 1300 ausgegebene Signal CADEL<0> wird über einen
Negator 1328 geleitet, um das Signal CADEL0<3> zu erzeugen. Wie oben
in Verbindung mit 5 erläutert wurde,
wird das Wort CADEL0<0:3> an die Initialisierungssteuerschaltung 504 (5) gelegt und wird von der
Steuerschaltung dazu benutzt, festzustellen, ob die Signale CADEL<0> erfolgreich bei der
Erfassung in den Registern 1300 und 1304 waren.
-
16 ist
eine schematische Darstellung einer Ausführungsform des Registers 1300 der 15. Die Register 1300–1306 der 15 sowie die Register 912 der 9 und die Register der 14B sind identisch, so dass aus Gründen der
Knappheit anhand der 16 stellvertretend
nur das Register 1300 beschrieben wird. Das Register 1300 enthält einen
ersten Auffangspeicher 1400, gebildet aus einem kreuzgekoppelten Paar
von Negatoren 1402 und 1404, außerdem einen
zweiten Auffangspeicher 1406 aus kreuzgekoppelten Negatoren 1408 und 1410.
Ein Durchlassgatter 1412 koppelt ein an den Eingang A des
Registers 1300 gelegte Signal zu dem Eingang des Auffangspeichers 1400,
wenn die komplementären
Taktsignale C, C an die betreffenden
Steuereingänge
gelegt werden, und ein Durchlassgatter 1414 legt das Signal
am Ausgang des Auffangspeichers 1400 an den Eingang des
Auffangspeichers 1406 bei den Taktsignalen C, C. Die Durchlassgatter 1412 und 1414 arbeiten
in komplementärer
Weise derart, dass, wenn das eine Durchlassgatter eingeschaltet
ist, das andere ausgeschaltet ist. Wenn insbesondere die Signale
C und C hoch bzw. niedrig sind,
wird das Durchlassgatter 1414 eingeschaltet und das Durchlassgatter 1412 ausgeschaltet.
Wenn die Signale C und C niedrig
bzw. hoch sind, ist das Durchlassgatter 1412 eingeschaltet
und das Durchlassgatter 1414 ausgeschaltet. Ein Setztransistor 1416 koppelt
den Eingang des Auffangspeichers 1406 ansprechend auf ein
an sein Gate angelegtes Setzsignal S auf Masse.
-
Ein Rücksetztransistor 1418 legt
zwischen dem Eingang des Auffangspeichers 1406 und einer
Versorgungsspannung VCC und treibt den Eingang
des Auffangspeichers 1406 ansprechend auf ein niedriges
Rücksetzsignal R an seinem Gatter auf die
Versorgungsspannung. Wenn im Betrieb die Taktsignale C, C niedrig bzw. hoch sind, wird ein an den
Eingang A gelegtes Signal von dem Auffangspeicher 1400 aufgenommen. Wenn
C und C nach dem Übergang
hoch bzw. niedrig sind, schaltet das Durchlassgatter 1412 ab,
wodurch der Eingang A vom Auffangspeicher 1400 getrennt
wird und das Durchlassgatter 1404 eingeschaltet wird, was das
Eingangssignal vom Auffangspeicher 1400 in den Auffangspeicher 1406 bringt,
der das Signal speichert und dieses Zwischenspeichersignal an den
Ausgang B des Schieberegisters 1300 bringt. Das Setzsignal
S und das Rücksetzsignal R sind komplementäre Signale,
und es sind niemals beide Signale gleichzeitig aktiv. Wenn das Signal
S einen aktiven hohen Wert und das Signal R einen inaktiven hohen Wert hat, schaltet
der Transistor 1418 ab und der Transistor 1416 ein,
so dass der Zwischenspeicher 1406 an seinem Eingang einen niedrigen
und an seinem Ausgang B einen hohen Wert annimmt. Ist hingegen das
Signal S auf inaktivem niedrigen und das Signal R auf aktivem niedrigen Pegel, schaltet
der Transistor 1416 aus und schaltet der Transistor 1418 ein,
so dass der Zwischenspeicher 1406 seinen Eingang auf hohen
Wert und den Ausgang B auf niedrigen Wert schaltet.
-
17 ist
eine schematische Darstellung einer Ausführungsform des Bitsetzregisters 1010 der 10B. Das Register 1010 enthält einen
durch kreuzgekoppel te Negatoren 1502 und 1504 gebildeten
Auffangspeicher 1500. Ein Setztransistor 1506 koppelt
den Eingang des Auffangspeichers 1500 ansprechend auf ein
an sein Gate angelegtes aktives hohes Signal SET in Masse. Ein Durchlassgatter 1508 legt
ein Signal am Eingang A an den Eingang des Zwischenspeichers 1500,
wenn die komplementären
Signale S und S an seine Steueranschlüsse gelegt
werden. Wenn im Betrieb die Signale S und S hoch bzw. niedrig sind, schaltet das Durchlassgatter 1508 ein,
wodurch ein Signal am Eingang A auf den Eingang des Auffangspeichers 1500 gelangt,
welches seinen Eingang auf den logischen Pegel des angelegten Eingangssignals
und seinen Ausgang auf den dazu komplementären logischen Pegel bringt.
Eingang und Ausgang des Auffangspeichers 1500 erzeugen
die Ausgangssignale B und B
des Bitsetzregisters 1010. Wenn das Setzsignal SET aktiven
hohen Pegel annimmt, schaltet der Transistor 1506 ein,
wodurch der Auffangspeicher 1500 das niedrige Signal B und das hohe Signal B speichert.
-
18 ist
eine schematische Darstellung einer Ausführungsform des Bit-Rücksetz-Registers 1012 aus 10B. Dieses Bit-Rücksetz-Register 1012 enthält einen
Auffangspeicher 1600, gebildet aus einem Paar kreuzgekoppelter
Negatoren 1602 und 1604. Ein Rücksetztransistor 1606 koppelt
den Eingang des Auffangspeichers 1600 ansprechend auf ein
aktives Rücksetzsignal R an seinem Gate mit der Versorgungsspannung
VCC. Ein Durchlassgatter 1608 verbindet
oder trennt selektiv ein Signal am Eingang A mit bzw. von dem Eingang
des Auffangspeichers 16 in Abhängigkeit
von einem Paar komplementärer
Taktsignale S und S. Wenn die
Taktsignale S und S hoch bzw.
niedrig sind, schaltet das Durchlassgatter 1608 ein und
legt das Signal am Eingang A an den Eingang des Auffangspeichers 1600,
welches seinen Eingang auf den gleichen logischen Pegel bringt,
den auch das angelegte Eingangssignal hat, während der Ausgang den dazu
komplementären logischen
Pegel erhält.
Eingang und Ausgang des Auffangspeichers 1600 werden auf
die gespeicherten Ausgangssignale B bzw.
B von dem Register 1012 gegeben. Wenn das Rücksetzsignal R aktiv niedrig ist, schaltet der
Transistor 1606 ein, wodurch der Auffangspeicher 1600 das
hohe Signal B und das niedrige
Signal B speichert.
-
Es versteht sich, dass zwar verschiedene
Ausführungsformen
und Vorteile der Erfindung in der obigen Beschreibung dargelegt
wurden, dass die obige Offenbarung jedoch lediglich anschaulich
zu verstehen ist und Änderungen
in Einzelheiten zugänglich
sind, dabei aber immer noch innerhalb der Grundprinzipien der Erfindung
liegen. Beispielsweise können
zahlreiche der oben beschriebenen Komponenten mit Hilfe digitaler
oder analoger Schaltungen implementiert werden, oder mit Hilfe einer
Kombination solcher Schaltungen, und außerdem können sie gegebenenfalls durch
Software implementiert werden, die auf einer geeigneten Verarbeitungsschaltung
ausgeführt
wird. Deshalb wird die vorliegende Erfindung ausschließlich durch
die beigefügten Ansprüche beschrieben.