PatentDe  


Dokumentenidentifikation DE102005057169A1 13.07.2006
Titel Variable Pipeline-Schaltung
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Schneider, Ronny, Xi'an, Shaanxi, CN
Vertreter Epping Hermann Fischer, Patentanwaltsgesellschaft mbH, 80339 München
DE-Anmeldedatum 30.11.2005
DE-Aktenzeichen 102005057169
Offenlegungstag 13.07.2006
Veröffentlichungstag im Patentblatt 13.07.2006
IPC-Hauptklasse G11C 7/22(2006.01)A, F, I, 20060328, B, H, DE
Zusammenfassung Eine 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.

Beschreibung[de]
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 elektrisch 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 steigende 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 zwischengespeichert, 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 niedriges 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.


Anspruch[de]
  1. Variable Pipeline, die 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.
  2. Variable Pipeline nach Anspruch 1, wobei eine Gesamtverzögerung zwischen dem ersten Signal und dem vierten Signal nicht verlängert wird aufgrund einer Verzögerung der Auswahlschaltung, die das zweite Signal weitergibt, um das dritte Signal bereitzustellen.
  3. Variable Pipeline nach Anspruch 1 oder 2, wobei die Auswahlschaltung einen Multiplexer umfasst.
  4. Variable Pipeline nach einem der Ansprüche 1 bis 3, wobei die erste Flanke des Taktsignals eine abfallende Flanke des Taktsignals ist und die zweite Flanke des Taktsignals eine ansteigende Flanke des Taktsignals ist.
  5. Variable Pipeline nach einem der Ansprüche 1 bis 4, wobei das erste Pipeline-Element einen ersten Flipflop-Zwischenspeicher umfasst und wobei das zweite Pipeline-Element einen zweiten Flipflop-Zwischenspeicher umfasst.
  6. Verzögerungsschaltung, die umfasst:

    – Mittel zum Verzögern eines ersten Signals um eine erste Verzögerung, um ein erstes verzögertes Signal bereitzustellen;

    – Mittel zum Auswählen des ersten verzögerten Signals, um ein ausgewähltes Signal bereitzustellen; und

    – Mittel zum Verzögern des ausgewählten Signals um eine zweite Verzögerung, um ein zweites verzögertes Signal bereitzustellen;

    – wobei eine Gesamtverzögerung zwischen dem zweiten verzögerten Signal und dem ersten Signal durch eine Verzögerung aufgrund des Mittels zum Auswählen des ersten verzögerten Signals nicht verlängert wird.
  7. Verzögerungsschaltung nach Anspruch 6, die weiterhin Folgendes umfasst:

    – Mittel zum Verzögern des ersten verzögerten Signals um eine dritte Verzögerung, um ein drittes verzögertes Signal bereitzustellen;

    – wobei das dritte verzögerte Signal gleich dem zweiten verzögerten Signal ist.
  8. Verzögerungsschaltung nach Anspruch 6 oder 7, wobei das Mittel zum Verzögern des ersten Signals um die erste Verzögerung Mittel umfasst zum Zwischenspeichern des ersten Signals als Reaktion auf eine erste Flanke eines Taktsignals.
  9. Verzögerungsschaltung nach Anspruch 8, wobei das Mittel zum Verzögern des ausgewählten Signals um die zweite Verzögerung Mittel umfasst zum Zwischenspeichern des ausgewählten Signals als Reaktion auf eine zweite Flanke des Taktsignals.
  10. Speicherschaltung, die umfasst:

    – eine variable Pipeline, die 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;

    – einen Multiplexer, der so konfiguriert ist, dass er 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; und

    – einen Speicher, der an die variable Pipeline gekoppelt ist.
  11. Speicherschaltung nach Anspruch 10, wobei eine Gesamtverzögerung zwischen dem ersten Signal und dem vierten Signal nicht verlängert wird aufgrund einer Verzögerung der Auswahlschaltung, die das zweite Signal weitergibt, um das dritte Signal bereitzustellen.
  12. Speicherschaltung nach Anspruch 10 oder 11, wobei das erste Pipeline-Element ein erster Flipflop-Zwischenspeicher ist und wobei das zweite Pipeline-Element ein zweiter Flipflop-Zwischenspeicher ist.
  13. Speicherschaltung nach einem der Ansprüche 10 bis 12, wobei der Speicher einen Direktzugriffsspeicher umfasst.
  14. Speicherschaltung nach Anspruch 13, wobei der Speicher einen dynamischen Direktzugriffsspeicher umfasst.
  15. Speicherschaltung nach Anspruch 14, wobei der Speicher einen synchronen dynamischen Direktzugriffsspeicher umfasst.
  16. Speicherschaltung nach Anspruch 15, wobei der Speicher einen synchronen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
  17. Speicherschaltung nach Anspruch 15, wobei der Speicher einen synchronen dynamischen Direktzugriffsspeicher mit doppelter Datenrate zweiter Generation umfasst.
  18. Verfahren zum variablen Verzögern eines Signals, wobei das Verfahren umfasst:

    – Verzögern eines ersten Signals um eine erste Verzögerung, um ein erstes verzögertes Signal bereitzustellen;

    – Auswählen des ersten verzögerten Signals, um ein ausgewähltes Signal bereitzustellen; und

    – Verzögern des ausgewählten Signals um eine zweite Verzögerung, um ein zweites verzögertes Signal bereitzustellen;

    – wobei eine Gesamtverzögerung zwischen dem zweiten verzögerten Signal und dem ersten Signal durch eine Verzögerung aufgrund des Auswählens des ersten verzögerten Signals nicht verlängert wird.
  19. Verfahren nach Anspruch 18, wobei das Verzögern des ausgewählten Signals das Verzögern des ausgewählten Signals um die Hälfte eines Taktzyklus umfasst.
  20. Verfahren nach Anspruch 18 oder 19, das weiterhin umfasst:

    – Verzögern des ersten verzögerten Signals, um ein drittes verzögertes Signal bereitzustellen,

    – wobei das dritte verzögerte Signal gegenüber dem ersten verzögerten Signal um einen Taktzyklus verzögert wird.
  21. Verfahren nach einem der Ansprüche 18 bis 20, wobei das Verzögern des ersten Signals um die erste Verzögerung das Zwischenspeichern des ersten Signals als Reaktion auf eine erste Flanke eines Taktsignals umfasst, um das erste verzögerte Signal bereitzustellen.
  22. Variable Pipeline, die 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;

    – ein zweites Pipeline-Element, das so konfiguriert ist, dass es das zweite Signal als Reaktion auf eine zweite Flanke des Taktsignals zwischenspeichert, um ein drittes Signal bereitzustellen;

    – ein drittes Pipeline-Element, das so konfiguriert ist, dass es das dritte Signal als Reaktion auf eine dritte Flanke des Taktsignals zwischenspeichert, um ein viertes Signal bereitzustellen;

    – eine Auswahlschaltung, die so konfiguriert ist, dass sie eines des zweiten Signals und des vierten Signals auswählt und das ausgewählte eine des zweiten Signals und des vierten Signals weitergibt, um ein fünftes Signal bereitzustellen; und

    – ein viertes Pipeline-Element, das so konfiguriert ist, dass es das fünfte Signal als Reaktion auf eine vierte Flanke des Taktsignals zwischenspeichert, um ein sechstes Signal bereitzustellen.
  23. Variable Pipeline nach Anspruch 22, die weiterhin umfasst:

    – ein fünftes Pipeline-Element, das so konfiguriert ist, dass es das vierte Signal als Reaktion auf eine fünfte Flanke des Taktsignals zwischenspeichert, um ein siebtes Signal bereitzustellen; und

    – ein sechstes Pipeline-Element, das so konfiguriert ist, dass es das siebte Signal als Reaktion auf eine sechste Flanke des Taktsignals zwischenspeichert, um ein achtes Signal bereitzustellen,

    – wobei die Auswahlschaltung so konfiguriert ist, dass sie eines des zweiten Signals, des vierten Signals und des achten Signals auswählt und das ausgewählte eine des zweiten Signals, des vierten Signals und des achten Signals weitergibt, um das fünfte Signal bereitzustellen.
  24. Variable Pipeline nach Anspruch 23, die weiterhin umfasst:

    – ein siebtes Pipeline-Element, das so konfiguriert ist, dass es das achte Signal als Reaktion auf eine siebte Flanke des Taktsignals zwischenspeichert, um ein neuntes Signal bereitzustellen; und

    – ein achtes Pipeline-Element, das so konfiguriert ist, dass es das neunte Signal als Reaktion auf eine achte Flanke des Taktsignals zwischenspeichert, um ein zehntes Signal bereitzustellen,

    – wobei die Auswahlschaltung so konfiguriert ist, dass sie eines des zweiten Signals, des vierten Signals, des achten Signals und des zehnten Signals auswählt und das ausgewählte eine des zweiten Signals, des vierten Signals, des achten Signals und des zehnten Signals weitergibt, um das fünfte Signal bereitzustellen.
  25. Variable Pipeline nach Anspruch 24, wobei eine Gesamtverzögerung zwischen dem ersten Signal und dem sechsten Signal nicht verlängert wird aufgrund einer Verzögerung der Auswahlschaltung, die das ausgewählte eine des zweiten Signals, des vierten Signals, des achten Signals und des zehnten Signals weitergibt.
  26. Variable Pipeline nach Anspruch 25, wobei die Auswahlschaltung einen Multiplexer umfasst.
  27. Variable Pipeline nach einem der Ansprüche 24 bis 26, wobei das erste Pipeline-Element einen ersten Flipflop-Zwischenspeicher umfasst, das zweite Pipeline-Element einen zweiten Flipflop-Zwischenspeicher umfasst, das dritte Pipeline-Element einen dritten Flipflop-Zwischenspeicher umfasst, das vierte Pipeline-Element einen vierten Flipflop-Zwischenspeicher umfasst, das fünfte Pipeline-Element einen fünften Flipflop-Zwischenspeicher umfasst, das sechste Pipeline-Element einen sechsten Flipflop-Zwischenspeicher umfasst, das siebte Pipeline-Element einen siebten Flipflop-Zwischenspeicher umfasst, und das achte Pipeline-Element einen achten Flipflop-Zwischenspeicher umfasst.
Es folgen 3 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com