-
Hintergrund
-
Integrierte
Schaltungen wie etwa dynamische Direktzugriffsspeicher (DRAMs),
synchrone dynamische Direktzugriffsspeicher (SDRAMs), synchrone
dynamische Direktzugriffsspeicher mit doppelter Datenrate (DDR-SDRAMs)
und synchrone dynamische Direktzugriffsspeicher mit doppelter Datenrate
zweiter Generation (DDR2-SDRAMs) arbeiten bei immer höheren Frequenzen.
Um in integrierten Schaltungen verschiedene Funktionen durchzuführen, müssen Signale
eine Pipeline wie etwa einen Wartezeitzähler mehrfach durchlaufen,
um das Signal zu verzögern
und es auf andere Signale abzugleichen.
-
Variable
Pipelines enthalten in der Regel eine Kette mehrerer Pipeline-Elemente.
Ein zu verzögerndes
Signal wird durch das erste Pipeline-Element und jedes nachfolgende
Pipeline-Element
geschickt, um das Signal um einen gewünschten Betrag zu verzögern. Die
Ausgabe jedes Pipeline-Elements wird an eine Auswahlschaltung geschickt,
die die Ausgabe von dem Pipeline-Element auswählt, das die gewünschte Verzögerung bereitstellt.
Die Auswahlschaltung verzögert
weiter das Ausgangssignal auf der Basis der Anzahl der Logikgatter,
die das Ausgangssignal in der Auswahlschaltung durchläuft. Mit
zunehmender Frequenz integrierter Schaltungen wird die Verzögerung der
Auswahlschaltung unerwünscht.
Die Signallaufzeiten in den integrierten Schaltungen zu reduzieren,
ist mit den steigenden Frequenzen der integrierten Schaltungen vorteilhaft. Die
Signallaufzeiten können
reduziert werden, indem unerwünschte
Verzögerungen
wie etwa die Verzögerung
eines Signals durch eine Auswahlschaltung reduziert oder eliminiert
werden.
-
Zusammenfassung
-
Eine
Ausführungsform
der vorliegenden Erfindung stellt eine variable Pipeline bereit.
Die variable Pipeline umfasst ein erstes Pipeline-Element, das so
konfiguriert ist, dass es ein erstes Signal als Reaktion auf eine
erste Flanke eines Taktsignals zwischenspeichert, um ein zweites
Signal bereitzustellen, eine Auswahlschaltung, die so konfiguriert
ist, dass sie das zweite Signal auswählt und das zweite Signal weiterleitet,
um ein drittes Signal bereitzustellen, und ein zweites Pipeline-Element,
das so konfiguriert ist, dass es das dritte Signal als Reaktion
auf eine zweite Flanke des Taktsignals zwischenspeichert, um ein
viertes Signal bereitzustellen. Bei einer Ausführungsform eignet sich die
variable Pipeline für den
Einsatz in einer Speicherschaltung.
-
Kurze Beschreibung
der Zeichnungen
-
Ausführungsformen
der Erfindung lassen sich unter Bezugnahme auf die folgenden Zeichnungen
besser verstehen. Die Elemente der Zeichnungen sind relativ zueinander
nicht notwendigerweise maßstabsgetreu.
Gleiche Referenzzahlen bezeichnen entsprechende ähnliche Teile.
-
1 ist
ein Blockdiagramm, das eine Ausführungsform
eines Speichersystems darstellt, das eine variable Pipeline enthält.
-
2 ist
ein Schemadiagramm, das eine Ausführungsform der variablen Pipeline
darstellt.
-
3 ist
ein Ablaufdiagramm, das eine Ausführungsform der zeitlichen Abstimmung
von Signalen für
die variable Pipeline darstellt.
-
Ausführliche
Beschreibung
-
1 ist
ein Blockdiagramm, das eine Ausführungsform
eines Speichersystems 100 darstellt. Das Speichersystem 100 enthält eine
Speicherschaltung 102 und einen Host 106. Die
Speicherschaltung 102 ist über eine Kommunikationsverbindung 104 e lektrisch
an den Host 106 gekoppelt. Die Speicherschaltung 102 enthält eine
variable Pipeline 110. Die variable Pipeline 110 empfängt ein
Eingangssignal (IN) auf dem IN-Signalweg 112, ein Taktsignal
(CLK) auf dem CLK-Signalweg 114, ein invertiertes Taktsignal
(bCLK) auf dem bCLK-Signalweg 116, ein erstes Auswahlsignal
(MX0) auf dem MX0-Signalweg 122 und ein zweites Auswahlsignal
(MX1) auf dem MX1-Signalweg 120. Die variable Pipeline 110 liefert ein
Ausgangssignal (OUT) auf dem OUT-Signalweg 118.
-
Auf
der Basis des MX1-Signals auf dem MX1-Signalweg 120 und
dem MX0-Signal auf dem MX0-Signalweg 122 verzögert die
variable Pipeline 110 das IN-Signal auf dem IN-Signalweg 112 durch eine
ausgewählte
Anzahl von Pipeline-Elementen, um das OUT-Signal auf dem OUT-Signalweg 118 bereitzustellen.
Die Verzögerung
durch die Auswahlschaltung der variablen Pipeline 110 erhöht nicht
die Gesamtverzögerung
zwischen dem IN-Signal und dem OUT-Signal.
-
Bei
einer Ausführungsform
umfasst die Speicherschaltung 102 einen Direktzugriffsspeicher
wie etwa einen dynamischen Direktzugriffsspeicher (DRAM), einen
synchronen dynamischen Direktzugriffsspeicher (SDRAM), einen synchronen
dynamischen Direktzugriffsspeicher mit doppelter Datenrate (DDR-SDRAM),
oder einen synchronen dynamischen Direktzugriffsspeicher mit doppelter
Datenrate zweiter Generation (DDR2-SDRAM). Obwohl die variable Pipeline 110 unter
Bezugnahme auf die Speicherschaltung 102 beschrieben wird,
lässt sich
die variable Pipeline 110 auf viele andere geeignete Arten
von Schaltungen anwenden.
-
2 ist
ein Schemadiagramm, das eine Ausführungsform der variablen Pipeline 110 darstellt. Die
variable Pipeline 110 enthält eine Kette von Pipeline-Elementen
einschließlich
Flipflop-Zwischenspeicher 130-144 und einen Multiplexer 146.
Der IN-Signalweg 112 ist elektrisch an den Eingang D des
Flipflop-Zwischenspeichers 130 gekoppelt. Der bCLK-Signalweg 116 ist
elektrisch an die Takteingänge
(CK) der Flipflop-Zwischenspeicher 130, 134, 138 und 142 gekoppelt.
Der Ausgang Q des Flipflop-Zwischenspeichers 130 ist elektrisch
an den Eingang D des Flipflop-Zwischenspeichers 132 und
den Eingang A des Multiplexers 146 durch den A1-Signalweg 148 gekoppelt.
Der CLK-Signalweg 114 ist elektrisch an die CK-Eingänge der
Flipflops 132, 136, 140 und 144 gekoppelt.
-
Der
Ausgang Q des Flipflop-Zwischenspeichers 132 ist elektrisch
an den Eingang D des Flipflop-Zwischenspeichers 134 durch
den A2-Signalweg 150 gekoppelt. Der Ausgang Q des Flipflop-Zwischenspeichers 134 ist
elektrisch an den Eingang D des Flipflop-Zwischenspeichers 136 und
den Eingang B des Multiplexers 146 durch den B1-Signalweg 152 gekoppelt.
Der Ausgang Q des Flipflop-Zwischenspeichers 136 ist elektrisch
an den Eingang D des Flipflop-Zwischenspeichers 138 durch
den B2-Signalweg 154 gekoppelt. Der Ausgang Q des Flipflop-Zwischenspeichers 138 ist
elektrisch an den Eingang D des Flipflop-Zwischenspeichers 140 und den
Eingang C des Multiplexers 146 durch den C1-Signalweg 156 gekoppelt.
-
Der
Ausgang Q des Flipflop-Zwischenspeichers 140 ist elektrisch
an den Eingang D des Flipflop-Zwischenspeichers 142 durch
den C2-Signalweg 158 gekoppelt. Der Ausgang Q des Flipflop-Zwischenspeichers 142 ist
elektrisch an den Eingang D des Multiplexers 146 durch
den D1-Signalweg 160 gekoppelt. Der Weg 122 des
ersten Auswahlsignals (MX0) ist elektrisch an einen Eingang des
Multiplexers 146 gekoppelt. Der Weg 120 des zweiten
Auswahlsignals (MX1) ist elektrisch an einen anderen Eingang des
Multiplexers 146 gekoppelt. Der Ausgang Y des Multiplexers 146 ist
elektrisch an den Eingang D des Flipflop-Zwischenspeichers 144 durch den
M1-Signalweg 162 gekoppelt. Der Flipflop-Zwischenspeicher 144 stellt
das OUT-Signal auf dem OUT-Signalweg 118 bereit.
-
Der
Flipflop-Zwischenspeicher 130 empfängt das IN-Signal auf dem IN-Signalweg 112 und
das bCLK-Signal auf dem bCLK- Signalweg 116 und
stellt das A1-Signal auf dem A1-Signalweg 148 bereit. Der Flipflop-Zwischenspeicher 130 speichert
das IN-Signal an jeder ansteigenden Flanke des bCLK-Signals zwischen.
Bei einem logisch niedrigem IN-Signal und als Reaktion auf eine
ansteigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 130 das
logisch niedrige IN-Signal zwischen, um ein logisch niedriges A1-Signal
bereitzustellen. Bei einem logisch hohem IN-Signal und als Reaktion
auf eine ansteigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 130 das
logisch hohe IN-Signal zwischen, um ein logisch hohes A1-Signal bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 132 empfängt das A1-Signal auf dem A1-Signalweg 148 und
das CLK-Signal auf dem CLK-Signalweg 114 und stellt das
A2-Signal auf dem A2-Signalweg 150 bereit. Der Flipflop-Zwischenspeicher 132 speichert
das A1-Signal bei jeder steigenden Flanke des CLK-Signals zwischen.
Bei einem logisch niedrigem A1-Signal und als Reaktion auf eine
steigende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 132 das logisch
niedrige A1-Signal zwischen, um ein logisch niedriges A2-Signal
bereitzustellen. Bei einem logisch hohem A1-Signal und als Reaktion
auf eine ansteigende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 132 das
logisch hohe A1-Signal zwischen, um ein logisch hohes A2-Signal
bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 134 empfängt das A2-Signal auf dem A2-Signalweg 150 und
das bCLK-Signal auf dem bCLK-Signalweg 116 und
stellt das B1-Signal auf dem B1-Signalweg 152 bereit. Der Flipflop-Zwischenspeicher 134 speichert
das A2-Signal bei jeder steigenden Flanke des bCLK-Signals zwischen.
Bei einem logisch niedrigem A2-Signal und als Reaktion auf eine
steigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 134 das
logisch niedrige A2-Signal zwischen, um ein logisch niedriges B1-Signal
bereitzustellen. Bei einem logisch hohem A2-Signal und als Reaktion auf
eine ansteigende Flanke des bCLK-Signals speichert der Flipflop- Zwischenspeicher 134 das
logisch hohe A2-Signal zwischen, um ein logisch hohes B1-Signal
bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 136 empfängt das B1-Signal auf dem B1-Signalweg 152 und
das bCLK-Signal auf dem CLK-Signalweg 114 und
stellt das B2-Signal auf dem B2-Signalweg 154 bereit. Der Flipflop-Zwischenspeicher 136 speichert
das B1-Signal bei jeder steigenden Flanke des CLK-Signals zwischen.
Bei einem logisch niedrigem B1-Signal und als Reaktion auf eine
steigende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 136 das logisch
niedrige B1-Signal zwischen, um ein logisch niedriges B2-Signal
bereitzustellen. Bei einem logisch hohem B1-Signal und als Reaktion
auf eine ansteigende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 136 das
logisch hohe B1-Signal zwischen, um ein logisch hohes B2-Signal
bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 138 empfängt das B2-Signal auf dem B2-Signalweg 154 und
das bCLK-Signal auf dem bCLK-Signalweg 116 und
stellt das C1-Signal auf dem C1-Signalweg 156 bereit. Der Flipflop-Zwischenspeicher 138 speichert
das B2-Signal bei jeder steigenden Flanke des bCLK-Signals zwischen.
Bei einem logisch niedrigem B2-Signal und als Reaktion auf eine
steigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 138 das
logisch niedrige B2-Signal zwischen, um ein logisch niedriges C1-Signal
bereitzustellen. Bei einem logisch hohem B2-Signal und als Reaktion auf
eine ansteigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 138 das
logisch hohe B2-Signal zwischen, um ein logisch hohes C1-Signal
bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 140 empfängt das C1-Signal auf dem C1-Signalweg 156 und
das CLK-Signal auf dem CLK-Signalweg 114 und stellt das
C2-Signal auf dem C2-Signalweg 158 bereit. Der Flipflop-Zwischenspeicher 140 speichert
das C1-Signal bei jeder steigenden Flanke des CLK-Signals zwischen.
Bei einem logisch niedrigem C1-Signal und als Reaktion auf eine
stei gende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 140 das logisch
niedrige C1-Signal zwischen, um ein logisch niedriges C2-Signal
bereitzustellen. Bei einem logisch hohem C1-Signal und als Reaktion
auf eine ansteigende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 140 das
logisch hohe C1-Signal zwischen, um ein logisch hohes C2-Signal
bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 142 empfängt das C2-Signal auf dem C2-Signalweg 158 und
das bCLK-Signal auf dem bCLK-Signalweg 116 und
stellt das D1-Signal auf dem D1-Signalweg 160 bereit. Der Flipflop-Zwischenspeicher 142 speichert
das C2-Signal bei jeder steigenden Flanke des bCLK-Signals zwischen.
Bei einem logisch niedrigem C2-Signal und als Reaktion auf eine
steigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 142 das
logisch niedrige C2-Signal zwischen, um ein logisch niedriges D1-Signal
bereitzustellen. Bei einem logisch hohem C2-Signal und als Reaktion auf
eine ansteigende Flanke des bCLK-Signals speichert der Flipflop-Zwischenspeicher 142 das
logisch hohe C2-Signal zwischen, um ein logisch hohes D1-Signal
bereitzustellen.
-
Der
Multiplexer 146 empfängt
das A1-Signal auf dem A1-Signalweg 148,
das B1-Signal auf dem B1-Signalweg 152, das C1-Signal auf
dem C1-Signalweg 156, das D1-Signal auf dem D1-Signalweg 160,
das MX1-Signal auf dem MX1-Signalweg 120 und das MX0-Signal
auf dem MX0-Signalweg 122. Der Multiplexer 146 liefert
das M1-Signal auf dem M1-Signalweg 120. Auf der Basis des
MX1-Signals und des MX0-Signals gibt der Multiplexer 146 eines der
Eingangssignale A1, B1, C1 oder D1 weiter, um das M1-Signal bereitzustellen.
-
Bei
einer Ausführungsform
wird bei einem logisch niedrigem MX0-Signal und einem logisch niedrigem
MX1-Signal der Eingang A des Multiplexers 146 ausgewählt, um
das A1-Signal weiterzugeben, um das M1-Signal bereitzustellen. Bei
einem logisch hohem MX0-Signal und einem logisch niedrigem MX1-Signal
wird der Eingang B des Multiplexers 146 ausgewählt, um
das B1-Signal weiterzugeben,
um das M1-Signal bereitzustellen. Bei einem logisch niedrigem MX0-Signal
und einem logisch hohem MX1-Signal wird der Eingang C des Multiplexers 146 ausgewählt, um
das C1-Signal weiterzugeben, um das M1-Signal bereitzustellen. Bei
einem logisch hohem MX0-Signal und einem logisch hohem MX1-Signal
wird der Eingang D des Multiplexers 146 ausgewählt, um
das D1-Signal weiterzugeben, um das M1-Signal bereitzustellen.
-
Der
Flipflop-Zwischenspeicher 144 empfängt das M1-Signal auf dem M1-Signalweg 162 und
das CLK-Signal auf dem CLK-Signalweg 114 und stellt das
OUT-Signal auf dem OUT-Signalweg 118 bereit. Der Flipflop-Zwischenspeicher 144 speichert
das M1-Signal bei
jeder steigenden Flanke des CLK-Signals zwischen. Bei einem logisch
niedrigem M1-Signal und als Reaktion auf eine steigende Flanke des CLK-Signals
speichert der Flipflop-Zwischenspeicher 144 das
logisch niedrige M1-Signal zwischen, um ein logisch niedriges OUT-Signal
bereitzustellen. Bei einem logisch hohem M1-Signal und als Reaktion
auf eine ansteigende Flanke des CLK-Signals speichert der Flipflop-Zwischenspeicher 144 das
logisch hohe M1-Signal zwischen, um ein logisch hohes OUT-Signal
bereitzustellen.
-
Bei
einer Ausführungsform
enthält
die variable Pipeline 110 mehr als die vier dargestellten Pipeline-Stufen,
um mehr als vier mögliche
Verzögerungslängen bereitzustellen.
Bei einer weiteren Ausführungsform
enthält
die variable Pipeline 110 weniger als die vier dargestellten
Pipeline-Stufen, um weniger als vier mögliche Verzögerungslängen bereitzustellen. Der Multiplexer 146 wird
auf der Basis der Anzahl der Pipeline-Stufen ausgewählt.
-
Bei
Betrieb werden die MX0- und MX1-Signaleingänge zum Multiplexer 146 so
gesetzt, dass sie das Eingangssignal A1, B1, C1 oder D1 auswählen zum
Weitergeben zu dem M1-Signalweg 162, um das M1-Signal bereitzustellen.
Das IN-Signal auf dem IN- Signalweg 112 wird
vom Flipflop-Zwischenspeicher 130 bei der steigenden Flanke
des bCLK-Signals zwischengespeichert, um das A1-Signal bereitzustellen.
Wenn der Multiplexer 146 gesetzt ist, um das A1-Signal
weiterzugeben, dann wird auch das A1-Signal von dem Multiplexer 146 weitergegeben, um
das M1-Signal bei
der steigenden Flanke des bCLK-Signals bereitzustellen. Bei der
steigenden Flanke des CLK-Signals wird das M1-Signal vom Flipflop-Zwischenspeicher 144 zwischengespeichert, um
das OUT-Signal auf dem OUT-Signalweg 118 bereitzustellen.
Die Verzögerung
des A1-Signals durch den Multiplexer 146 wird zwischen
der steigenden Flanke des bCLK-Signals und der steigenden Flanke des
CLK-Signals versteckt, so dass die Verzögerung die Gesamtverzögerung zwischen
dem IN-Signal und dem OUT-Signal nicht vergrößert. Bei einer Ausführungsform
werden, wenn der Multiplexer 146 gesetzt ist, um das A1-Signal weiterzugeben,
die Taktsignale zu den CK-Eingängen
der Flipflop-Zwischenspeicher 132, 134, 136, 138, 140 und 142 blockiert, um
zu verhindern, dass die Flipflop-Zwischenspeicher 132, 134, 136, 138, 140 und 142 arbeiten.
Durch Blockieren der CK-Eingänge
zu den unbenutzten Flipflop-Zwischenspeichern
wird Strom gespart.
-
Wenn
der Multiplexer 146 gesetzt ist, um das B1-Signal weiterzugeben,
dann wird das A1-Signal vom Flipflop-Zwischenspeicher 132 bei der
steigenden Flanke des CLK-Signals
zwischengespeichert, um das A2-Signal bereitzustellen. Das A2-Signal wird
vom Flipflop-Zwischenspeicher 134 bei der nächsten steigenden
Flanke des bCLK-Signals zwischengespeichert, um das B1-Signal bereitzustellen. Das
B1-Signal wird ebenfalls von dem Multiplexer 146 weitergegeben,
um das M1-Signal bei der steigenden Flanke des bCLK-Signals bereitzustellen. Bei
der steigenden Flanke des nächsten
CLK-Signals wird das M1-Signal von dem Flipflop-Zwischenspeicher 144 zwischengespeichert,
um das OUT-Signal auf dem OUT-Signalweg 118 bereitzustellen. Wieder
wird die Verzögerung
des B1-Signals durch den Multiplexer 146 versteckt, so
dass die Verzögerung
nicht die Gesamtverzögerung
zwischen dem IN-Signal und dem OUT-Signal vergrößert. Bei einer Ausführungsform
werden, wenn der Multiplexer 146 gesetzt ist, um das B1-Signal
weiterzugeben, die Taktsignale zu den CK-Eingängen der Flipflop-Zwischenspeicher 136, 138, 140 und 142 blockiert,
um zu verhindern, dass die Flipflop-Zwischenspeicher 136, 138, 140 und 142 arbeiten.
Durch Blockieren der CK-Eingänge
zu den unbenutzten Flipflop-Zwischenspeichern wird Strom gespart.
-
Wenn
der Multiplexer 146 gesetzt ist, um das C1-Signal weiterzugeben,
dann wird das B1-Signal vom Flipflop-Zwischenspeicher 136 bei der
nächsten steigenden
Flanke des CLK-Signals zwischengespeichert, um das B2-Signal bereitzustellen.
Das B2-Signal wird vom Flipflop-Zwischenspeicher 138 bei
der nächsten
steigenden Flanke des bCLK-Signals zwischengespeichert, um das C1-Signal
bereitzustellen. Das C1-Signal wird ebenfalls von dem Multiplexer 146 weitergegeben,
um das M1-Signal bei der steigenden Flanke des bCLK-Signals bereitzustellen.
Bei der steigenden Flanke des nächsten CLK-Signals
wird das M1-Signal von dem Flipflop-Zwischenspeicher 144 zwischengespeichert,
um das OUT-Signal auf dem OUT-Signalweg 118 bereitzustellen.
Wieder wird die Verzögerung
des C1-Signals durch den Multiplexer 146 versteckt, so
dass die Verzögerung
nicht die Gesamtverzögerung
zwischen dem IN-Signal und dem OUT-Signal vergrößert. Bei einer Ausführungsform
werden, wenn der Multiplexer 146 gesetzt ist, um das C1-Signal
weiterzugeben, die Taktsignale zu den CK-Eingängen der Flipflop-Zwischenspeicher 140 und 142 blockiert,
um zu verhindern, dass die Flipflop-Zwischenspeicher 140 und 142 arbeiten.
Durch Blockieren der CK-Eingänge
zu den unbenutzten Flipflop-Zwischenspeichern
wird Strom gespart.
-
Wenn
der Multiplexer 146 gesetzt ist, um das D1-Signal weiterzugeben,
dann wird das C1-Signal vom Flipflop-Zwischenspeicher 140 bei der
nächsten steigenden
Flanke des CLK-Signals zwischengespeichert, um das C2-Signal bereitzustellen.
Das C2-Signal wird vom Flipflop-Zwischenspeicher 142 bei
der nächsten
steigenden Flanke des bCLK-Signals zwischen gespeichert, um das D1-Signal
bereitzustellen. Das D1-Signal wird ebenfalls von dem Multiplexer 146 weitergegeben,
um das M1-Signal bei der steigenden Flanke des bCLK-Signals bereitzustellen.
Bei der steigenden Flanke des nächsten CLK-Signals
wird das M1-Signal von dem Flipflop-Zwischenspeicher 144 zwischengespeichert,
um das OUT-Signal auf dem OUT-Signalweg 118 bereitzustellen.
Wieder wird die Verzögerung
des D1-Signals durch den Multiplexer 146 versteckt, so
dass die Verzögerung
nicht die Gesamtverzögerung
zwischen dem IN-Signal und dem OUT-Signal vergrößert.
-
Bei
einer Ausführungsform
werden die CK-Eingänge
zu den Flipflop-Zwischenspeichern 130-144 umgekehrt,
so dass das CLK-Signal
an die CK-Eingänge
der Flipflop-Zwischenspeicher 130, 134, 138 und 142 geliefert
wird, und das bCLK-Signal wird an die CK-Eingänge der Flipflop-Zwischenspeicher 132, 136, 140 und 144 geliefert.
Bei einer weiteren Ausführungsform
speichern die Flipflop-Zwischenspeicher 130-144 das
Signal am Eingang D bei der fallenden Flanke des CK-Signaleingangs
anstelle der steigenden Flanke des CK-Signaleingangs zwischen. Bei
einer Form der Erfindung wird ein einzelner CK-Signaleingang für alle Zwischenspeicher 130-144 verwendet.
Bei dieser Ausführungsform speichern
die Zwischenspeicher 130, 134, 138 und 142 das
Signal am Eingang D bei der steigenden Flanke des CK-Signals zwischen,
und die Zwischenspeicher 132, 136, 140 und 144 speichern
das Signal am Eingang D bei der fallenden Flanke des CK-Signals
zwischen oder umgekehrt.
-
3 ist
ein Ablaufdiagramm 200, das eine Ausführungsform der Taktsteuerung
von Signalen für die
variable Pipeline 110 darstellt. Das Taktsteuerungsdiagramm 200 enthält das CLK-Signal 202 auf dem
CLK-Signalweg 114, das bCLK-Signal 204 auf dem
bCLK-Signalweg 116, das IN-Signal 206 auf dem
IN-Signalweg 112,
das A1-Signal 208 auf dem A1-Signalweg 148, das
A2-Signal 210 auf dem A2-Signalweg 150, das B1-Signal 212 auf
dem B1-Signalweg 152, das B2-Signal 214 auf dem B2- Signalweg 154,
das C1-Signal 216 auf dem C1-Signalweg 156, das
C2-Signal 218 auf dem C2-Signalweg 158 und das
D1-Signal 220 auf dem D1-Signalweg 160. Das Zeitsteuerungsdiagramm 200 enthält außerdem das
OUTA-Signal 222 auf dem OUT-Signalweg 118,
wobei der Multiplexer 146 so gesetzt ist, dass er das A1-Signal 208 weitergibt,
das OUTB-Signal 224 auf dem OUT-Signalweg 118,
wobei der Multiplexer 146 so gesetzt ist, dass er das B1-Signal 212 weitergibt,
das OUTC-Signal 226 auf dem OUT-Signalweg 118,
wobei der Multiplexer 146 so gesetzt ist, dass er das C1-Signal 216 weitergibt, und
das OUTD-Signal 228 auf dem OUT-Signalweg 118,
wobei der Multiplexer 146 so gesetzt ist, dass er das D1-Signal 220 weitergibt.
-
Das
bCLK-Signal 204 wird bezüglich des CLK-Signals 202 invertiert.
Das IN-Signal 206 geht bei 230 zu einem logischen
hoch über.
Als Reaktion auf die steigende Flanke 232 des bCLK-Signals 204 speichert
der Flipflop-Zwischenspeicher 130 das IN-Signal 206 zwischen,
um die steigende Flanke 234 des A1-Signals 208 bereitzustellen.
Als Reaktion auf die steigende Flanke 236 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 132 das
logisch hohe A1-Signal 208 zwischen, um die steigende Flanke 238 des
A2-Signals 210 bereitzustellen. Das IN-Signal 206 geht
bei 231 zu einem logischen niedrig über. Als Reaktion auf die steigende
Flanke 240 des bCLK-Signals 204 speichert
der Flipflop-Zwischenspeicher 130 das logisch niedrige IN-Signal 206 zwischen,
um die fallende Flanke 242 des A1-Signals 208 bereitzustellen.
Ebenfalls als Reaktion auf die steigende Flanke 240 des
bCLK-Signals 204 speichert der Flipflop-Zwischenspeicher 134 das
logisch hohe A2-Signal 210 zwischen, um die steigende Flanke 244 des
B1-Signals 212 bereitzustellen.
-
Als
Reaktion auf die steigende Flanke 246 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 132 das logisch niedrige
A1-Signal 208 zwischen, um die fallende Flanke 248 des
A2-Signals 210 bereitzustellen. Ebenfalls als Reaktion
auf die steigende Flanke 246 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 136 das logisch hohe B1-Signal 212 zwischen,
um die steigende Flanke 250 des B2-Signals 214 bereitzustellen.
Als Reaktion auf die steigende Flanke 252 des bCLK-Signals 204 speichert
der Flipflop-Zwischenspeicher 134 das logisch niedrige
A2-Signal 210 zwischen, um die fallende Flanke 254 des
B1-Signals 212 bereitzustellen. Ebenfalls als Antwort auf
die steigende Flanke 252 des bCLK-Signals 204 speichert
der Flipflop-Zwischenspeicher 138 das logisch hohe B2-Signal 214,
um die steigende Flanke 256 des C1-Signals 216 bereitzustellen.
Als Reaktion auf die steigende Flanke 258 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 136 das logisch niedrige B1-Signal 212 zwischen,
um die fallende Flanke 260 des B2-Signals 214 bereitzustellen.
Ebenfalls als Reaktion auf die steigende Flanke 258 des
CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 140 das logisch hohe C1-Signal 216 zwischen,
um die steigende Flanke 262 des C2-Signals 218 bereitzustellen.
-
Als
Reaktion auf die steigende Flanke 264 des bCLK-Signals 204 speichert
der Flipflop-Zwischenspeicher 138 das logisch niedrige
B2-Signal 214 zwischen, um die fallende Flanke 266 des
C1-Signals 216 bereitzustellen. Ebenfalls als Antwort auf die
steigende Flanke 264 des bCLK-Signals 204 speichert
der Flipflop-Zwischenspeicher 142 das logisch hohe C2-Signal 218 zwischen,
um die steigende Flanke 268 des D1-Signals 220 bereitzustellen. Als
Reaktion auf die steigende Flanke 270 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 140 das logisch niedrige
C1-Signal 216 zwischen, um die fallende Flanke 272 des
C2-Signals 218 bereitzustellen. Als Reaktion auf die steigende Flanke 274 des
bCLK-Signals 204 speichert der Flipflop-Zwischenspeicher 142 das
logisch niedrige C2-Signal 218 zwischen,
um die abfallende Flanke 276 des D1-Signals 220 bereitzustellen.
-
Wenn
der Multiplexer 146 so gesetzt ist, dass er das A1-Signal 208 weitergibt,
speichert der Flipflop-Zwischenspeicher 144 als
Reaktion auf die steigende Flanke 236 des CLK-Signals 202 ein
von dem logisch hohem A1-Signal 208 weitergegebenes logisch
hohes M1-Signalzwischen, um die steigende Flanke 278 des
OUTA-Signals 222 bereitzustellen. Als
Reaktion auf die steigende Flanke 246 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 144 ein von dem logisch niedrigem
A1-Signal 208 weitergegebenes logisch niedriges M1-Signal
zwischen, um die fallende Flanke 280 des OUTA-Signals 222 bereitzustellen.
Wenn der Multiplexer 146 so gesetzt ist, dass er das B1-Signal 212 weitergibt,
speichert der Flipflop-Zwischenspeicher 144 als Reaktion
auf die steigende Flanke 246 des CLK-Signals 202 ein
von dem logisch hohem B1-Signal 212 weitergegebenes logisch
hohes M1-Signal zwischen, um die steigende Flanke 282 des
OUTB-Signals 224 bereitzustellen.
Als Reaktion auf die steigende Flanke 258 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 144 ein von dem logisch niedrigem
B1-Signal 212 weitergegebenes logisch niedriges M1-Signal
zwischen, um die fallende Flanke 284 des OUTB-Signals 224 bereitzustellen.
Wenn der Multiplexer 146 so gesetzt ist, dass er das C1-Signal 216 weitergibt,
speichert der Flipflop-Zwischenspeicher 144 als Reaktion
auf die steigende Flanke 258 des CLK-Signals 202 ein
von dem logisch hohem C1-Signal 216 weitergegebenes logisch
hohes M1-Signal zwischen, um die steigende Flanke 286 des
OUTC-Signals 226 bereitzustellen.
Als Reaktion auf die steigende Flanke 270 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 144 ein
von dem logisch niedrigem C1-Signal 216 weitergegebenes
logisch niedriges M1-Signal zwischen, um die fallende Flanke 288 des
OUTC-Signals 226 bereitzustellen.
Wenn der Multiplexer 146 so gesetzt ist, dass er das D1-Signal 220 weitergibt,
speichert der Flipflop-Zwischenspeicher 144 als
Reaktion auf die steigende Flanke 270 des CLK-Signals 202 ein
von dem logisch hohem D1-Signal 220 weitergegebenes logisch
hohes M1-Signal zwischen, um die steigende Flanke 290 des
OUTD-Signals 228 bereitzustellen. Als
Reaktion auf die steigende Flanke 294 des CLK-Signals 202 speichert
der Flipflop-Zwischenspeicher 144 ein von dem logisch niedrigem
D1-Signal 220 weitergegebenes logisch niedri ges M1-Signal
zwischen, um die fallende Flanke 292 des OUTD-Signals 228 bereitzustellen.
Wie in dem Ablaufdiagramm 200 dargestellt, ist die Verzögerung zwischen
jeder Signalauswahl (OUTA, OUTB,
OUTC und OUTD) ein
Zyklus des CLK-Signals 202. Außerdem ist die Verzögerung durch
den Multiplexer 146 innerhalb der Verzögerung von einem Zyklus verborgen.
Beispielsweise ist das A2-Signal 210 ähnlich dem OUTA-Signal 222,
das B2-Signal 214 ist dem OUTB-Signal 224 ähnlich und
das C2-Signal 218 ist dem
OUTC-Signal 226 ähnlich.
Deshalb verlängert die
Verzögerung
durch den Multiplexer 146 nicht die Gesamtverzögerung zwischen
dem OUT-Signal und dem IN-Signal. Die vorliegende Erfindung stellt
eine variable Pipeline ohne zusätzliche
Verzögerung
aufgrund des Auswählens
der Länge
der Verzögerung bereit.