-
HINTERGRUND
-
1. Technisches Gebiet
-
Ausführungsformen der vorliegenden Erfindung beziehen sich im Aligemeinen auf Datenkommunikationstechniken. Spezieller beziehen sich Ausführungsformen auf Techniken zur Taktung von Datenaustausch auf einer bidirektionalen Datenverbindung zwischen zwei Schnittstellen.
-
2. Hintergrund
-
1 veranschaulicht ein System 100 gemäß bestehender Techniken für bidirektionale Package-zu-Package Datenkommunikationen zwischen einem Verarbeitungsgerät 102 und einem Speichergerät, beispielsweise ein Direktzugriffspeicher (random access memory, RAM) 152. Eine Verarbeitungsschnittstelle 104 von Verarbeitungsgerät 102 koordiniert ein Puffern von Daten für den Austausch mit/von Verarbeitungseinheit 102, z. B. über einen Empfangs-FIFO-(receive first-in-first-out)-Puffer-Rx-FIFO 120 und/oder einen Übertragungspuffer Tx FIFO 110. Verarbeitungsschnittstelle 104 kann beispielsweise ein analoges Frontend von Verarbeitungsgerät 102 beinhalten. Eine RAM-Schnittstelle 150 koordiniert Datenaustausch im Auftrag von RAM 152.
-
Verarbeitungsschnittstelle 104 für Verarbeitungseinheit 102 kann ein Übertragungslatch 114 in einem Übertragungspfad 112 beinhalten, um Daten von Tx FIFO 110 zu einer bidirektionalen Verbindung DQ 140 zu transportieren, während RAM-Schnittstelle 150 für RAM 152 ein Empfangslatch 164 in einem Empfangspfad 162 beinhalten kann, um Daten von DQ 140 zu RAM 152 zu transportieren. Ein Schreiben von Daten in RAM 152 durch Verarbeitungseinheit 102 kann getaktetes Latchen durch Übertragungslatch 114 und Empfangslatch 164 beinhalten. Gleichermaßen beinhaltet RAM-Schnittstelle 150 ein Übertragungslatch 174 in einem Übertragungspfad 172, um Daten von RAM 152 zu DQ 140 zu transportieren, während Verarbeitungsschnittstelle 104 ein Empfangslatch 124 in einem Empfangspfad 122 beinhaltet, um Daten von DQ 140 zu Rx FIFO 120 zu transportieren. Ein Lesen von Daten aus RAM 152 durch Verarbeitungseinheit 102 beinhaltet getaktetes Latchen durch Übertragungslatch 174 und Empfangslatch 124.
-
Um das Latchen von Daten zu/von DQ 140 zu takten, generiert eine Taktquellen-130-Schaltung von Verarbeitungsschnittstelle 104 ein Taktsignal CLKW 142, z. B. basierend auf einem empfangenen Referenztaktsignal CLKRef 135. Zusätzlich zu dem Antreiben von getaktetem Latchen von Übertragungslatch 114 und Empfangslatch 124, wird CLKW 142 ebenfalls der RAM-Schnittstelle 150 für getaktetes Latchen von Daten in Empfangslatch 164 zu RAM 152 und/oder für getaktetes Latchen von Daten in Übertragungslatch 174 zu DQ 140 bereitgestellt. Beim Empfangen von CLKW 142 von Verarbeitungsschnittstelle 104 muss RAM-Schnittstelle 150 einen Signalrückgewinnungs-Schaltkreis, z. B. eine Clean-up-Schaltung 180, beinhalten, um Rauschkomponenten aus CLKW 142 zu filtern, die durch ihre Generierung bei und/oder ihre Übertragung von Verarbeitungsschnittstelle 104 eingeführt werden.
-
Für die Taktsynchronisation lokalisieren sich bestehende Taktaufbauten physisch als Taktquelle 130 in einer zentralen Position von Verarbeitungsgerät 102, um kürzere Takt-/Phasenverteilung durch einen Taktbaum des Prozessors bereitzustellen. Dementsprechend verlassen sich bestehende Datenverarbeitungstechniken auf die „Prozessorseite” von System 100, um der „Speicherseite” ein Taktsignal von der Taktquelle der Prozessorseite zum Koordinieren des Latchens von Daten zu und/oder von DQ 140 von der Speicherseite bereitzustellen. Dieses Verlassen auf eine Prozessorschnittstelle, ein Taktsignal an eine Speichergerätschnittstelle bereitzustellen, fällt recht gering aus, zumindest insofern, dass es wertvollen Substratoberflächenbereich auf der Prozessorseite verbraucht.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die verschiedenen Ausführungsformen der vorliegenden Erfindung werden exemplarisch und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen veranschaulicht, und in denen:
-
1 ein Blockdiagramm ist, das Elemente eines Systems veranschaulicht, das den Stand der Technik für ein Latchen einer bidirektionalen Datenverbindung implementiert.
-
2 ein Blockdiagramm ist, das Elemente eines Systems veranschaulicht, das getaktetes Latchen einer bidirektionalen Datenverbindung gemäß einer Ausführungsform implementiert.
-
3 ein Blockdiagramm ist, das Elemente eines Systems veranschaulicht, das getaktetes Latchen gemäß einer Ausführungsform implementiert.
-
4 ein Blockdiagramm ist, das Elemente eines Systems veranschaulicht, das getaktetes Latchen gemäß einer Ausführungsform implementiert.
-
5 ein Ablaufdiagramm ist, das Elemente eines Algorithmus für das Latchen einer bidirektionalen Datenverbindung gemäß einer Ausführungsform veranschaulicht.
-
6 ein Blockdiagramm ist, das eine Taktquelle gemäß einer Ausführungsform veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie hierin erörtert, stellen bestimmte Ausführungsformen ein effizientes Taktschema für das Latchen von Daten einer bidirektionalen Datenverbindung zwischen zwei IC-(integrated cirucuit)-Packages bereit. Ein erstes IC-Package kann eine erste Schnittstelle für ein oder mehr Speichergeräte beinhalten, und ein zweites IC-Package kann eine zweite Schnittstelle für ein Verarbeitungsgerät beinhalten, das konfiguriert ist, um auf das eine oder mehr Speichergeräte über eine bidirektionale Datenverbindung zwischen der ersten und zweiten Schnittstelle zuzugreifen. Das erste IC-Package kann eine Taktquelle beinhalten, um ein Taktsignal für das Latchen von Daten zu und/oder von der bidirektionalen Datenverbindung zu generieren. Die Taktquelle kann beispielsweise eine Phasenregelschleifen-(phase-locked loop, PLL)-Schaltung beinhalten.
-
Bei bestimmten Ausführungsformen kann die erste Schnittstelle das Taktsignal, das von der Taktquelle generiert wurde, verwenden, um Daten, die bei dem ersten IC-Package eingehen, auf der bidirektionalen Datenverbindung zu latchen. Alternativ dazu oder zusätzlich kann das Taktsignal, das von der Taktquelle generiert wurde, von dem ersten IC-Package zu dem zweiten IC-Package gesendet werden. Die zweite Schnittstelle kann ein Latchen von Daten zu und/oder von der bidirektionalen Datenverbindung in Antwort auf das Empfangen des Taktsignals von dem ersten IC-Package ausführen. Beispielsweise kann die zweite Schnittstelle das empfangene Taktsignal (oder eine Ableitung davon) nutzen, um eingehende Daten zu latchen, und/oder um das Latchen von ausgehenden Daten neu zu synchronisieren.
-
2 veranschaulicht ausgewählte Elemente eines Systems 200 zur Implementierung eines Taktschemas gemäß einer Ausführungsform. System 200 kann ein Verarbeitungsgerät 202 mit einer Verarbeitungsschnittstelle 204 beinhalten, durch die Verarbeitungsgerät 202 Daten mit einem oder mehr Speichergeräten austauscht.
-
Verarbeitungsgerät 202 kann jedes aus einer Vielzahl von Geräten beinhalten, z. B. einen Hauptprozessor (central processing unit, CPU), einen Grafikprozessor (graphical processing unit, GPU), einen Controller, etc., die Datenverarbeitung implementieren und Daten für die Verarbeitung auf einer oder mehr Datenverbindungen austauschen. Bei verschiedenen Ausführungsformen kann Verarbeitungsgerät 202 einen oder mehr Prozessorkerne (nicht gezeigt) beinhalten. Verarbeitungsschnittstelle 204 kann beispielsweise ein analoges Frontend von Verarbeitungsgerät 202 beinhalten.
-
Das eine oder mehr Speichergeräte, mit dem Verarbeitungsgerät 202 Daten austauscht, kann einen Direktzugriffspeicher (random access memory, RAM) 252 von System 200 beinhalten. RAM 252 kann jedes aus einer Vielzahl von Kombinationen aus RAM-Geräten umfassen, u. a. einen dynamischen RAM (DRAM), einen statischen RAM (SRAM), einen synchronen Grafik-RAM (SGRAM) etc. Verarbeitungsschnittstelle 204 kann Daten mit RAM 252 über beispielsweise eine RAM-Schnittstelle 250 austauschen. Bei einer Ausführungsform kann RAM-Schnittstelle 250 in RAM 252 integriert sein. Alternativ dazu oder zusätzlich kann RAM-Schnittstelle 250 von einem oder mehr Speichergeräten getrennt sein, z. B. wobei RAM-Schnittstelle 250 eine gemeinsame Schnittstelle für Verarbeitungsgerät 202 zum Austausch von Daten mit mehreren getrennten Speichergeräten ist.
-
Wie in 2 veranschaulicht, kann eine bidirektionale Datenverbindung DQ 240 zwischen Verarbeitungsschnittstelle 204 und RAM-Schnittstelle 250 Lese- und/oder Schreibdaten für Verarbeitungsgerät 202 und RAM 252 austauschen. Verarbeitungsschnittstelle 204 kann das Empfangen von eingehenden Daten – und/oder das Senden von ausgehenden Daten – auf DQ 240 im Auftrag von Verarbeitungsgerät 202 koordinieren. Zum Zwecke der Veranschaulichung und in keiner Weise einschränkend, kann Verarbeitungsschnittstelle 204 einen Übertragungspfad 212, einschließlich eines Übertragungslatches 214, umfassen, um Daten von einem Übertragungspuffer Tx FIFO 210 zu einer bidirektionalen Verbindung DQ 240 zu transportieren. Alternativ dazu oder zusätzlich kann Verarbeitungsschnittstelle 204 einen Empfangspfad 222, einschließlich eines Empfangslatches 224, umfassen, um Daten von DQ 240 zu einem Empfangspuffer Rx FIFO 220 zu transportieren. Tx FIFO 210 und Rx FIFO 220 können auf verschiedene Art und Weise auszutauschende Daten zwischen Verarbeitungsschnittstelle 204 und anderen Elementen von Verarbeitungsgerät 202 Puffern.
-
Beispielsweise kann Tx FIFO 210 bzw. Rx FIFO 220 Daten von und Daten zu einem kernlosen Abschnitt von Verarbeitungsgerät 202 zur späteren Datenverarbeitung empfangen bzw. senden. Wie hierin verwendet, bezieht sich „kernlos” auf einen Teil eines Verarbeitungsgeräts, das Operationen in Unterstützung von Prozessorkern(en) bereitstellt, aber tatsächlich kein Teil des/der Prozessorkern(e) ist.
-
RAM-Schnittstelle 250 kann einen Empfangspfad 262, einschließlich eines Empfangslatches 264, umfassen, um Daten von DQ 240 zu RAM 252 zu transportieren. Alternativ dazu oder zusätzlich kann RAM-Schnittstelle 250 einen Übertragungspfad 272, einschließlich eines Übertragungslatches 274, umfassen, um Daten von RAM 252 zu DQ 240 zu transportieren. Austauschen von Daten mit RAM 252 kann beinhalten, dass Empfangspfad 262 Daten sendet an – und/oder, dass Übertragungspfad 272 Daten empfangt von – jede(r) aus einer Vielzahl von Kombinationen aus Puffern, Bussen oder anderen Datenkommunikationsmitteln (nicht gezeigt) innerhalb RAM 252.
-
Ein Schreiben von Daten in RAM 252 durch Verarbeitungseinheit 202 kann getaktetes Latchen durch Übertragungslatch 214 und Empfangslatch 264 beinhalten. Alternativ dazu oder zusätzlich kann ein Lesen von Daten aus RAM 252 durch Verarbeitungseinheit 202 getaktetes Latchen durch Übertragungslatch 274 und Empfangslatch 224 beinhalten. Das getaktete Latchen von verschiedenen Latches von Verarbeitungsschnittstelle 204 und RAM-Schnittstelle 250 kann durch ein Taktsignal, das von einer Taktquelle innerhalb RAM-Schnittstelle 250 generiert wird, koordiniert werden. Beispielsweise kann RAM-Schnittstelle 250 eine PLL 280 beinhalten, um ein Taktsignal CLKR 242, z. B. aus einem empfangenen Referenztaktsignal CLKRef 235, zu generieren.
-
Bei einer Ausführungsform kann CLKR 242 verschiedenen Latches von RAM-Schnittstelle 250 bereitgestellt werden. Alternativ dazu oder zusätzlich kann CLKR 242 von RAM-Schnittstelle 250 an Verarbeitungsschnittstelle 204 bereitgestellt werden, z. B. um das Latchen von Daten in Übertragungspfad 212 und/oder Empfangspfad 222 zu koordinieren. Das Lokalisieren der PLL 280 in der RAM-Schnittstelle 250 ermöglicht eine verbesserte Anwendung der entsprechenden technologischen Stärken des Verarbeitungsgeräts 202 und der RAM-Schnittstelle 250. RAM-Technologien sind oftmals so ausgelegt, dass sie vergleichsweise hohe Datenraten-Topologien bereitstellen. DRAM-Technologien können beispielsweise isolierte Wannen in ihrem physischen Stack bereitstellen, was bei der Auslegung einer rauscharmen PLL 280 hilft, die hohe Datenraten unterstützt. Außerdem zeigen die physischen Schichten von Prozessoren oftmals verhältnismäßig niedrige Taktlaufzeiten pro Siliziumspurlänge und sind weniger anfällig für durch die Versorgung verursachtes Rauschen. Daher ist es vergleichsweise einfach für Verarbeitungsgerät 202, ein eingehendes Taktsignal von einer externen Taktquelle, z. B. PLL 280, zu tolerieren. Die Vorteile, wenn PLL 280 einen rauscharmen CLKR 242 an ein rauschtolerantes Verarbeitungsgerät 202 bereitstellt, ermöglicht es Verarbeitungsschnittstelle 204, nicht nur auf bestimmte Taktquellenschaltkreise zu verzichten, sondern auch auf den Clean-up-Schaltkreis, um Rauschen von dem empfangenen CLKR 242 zu entfernen. Bei einer Ausführungsform können Verarbeitungsschnittstelle 204 und RAM-Schnittstelle 250 so positioniert sein, dass, um ausreichende Toleranz von jeglichem Rauschen in CLKR 242 zu fördern, die Länge von Verbindung DQ 240 im Wesentlichen bei oder unter ca. 7,5 cm (drei (3) Inch) liegt.
-
Traditionelle Taktschemata sind unter der Annahme ausgelegt worden, dass die „Prozessorseite” eines Systems, Verarbeitungsgerät 102 von System 100 zum Beispiel, eine Taktquelle 130 beinhalten muss, sowohl zum Antreiben des Latchens von internem Verarbeitungsgerät als auch zum Antreiben des Latchens der „Speicherseite” eines solchen Systems. Noch spezieller lokalisieren sich diese bestehenden Taktaufbauten physisch als Taktquelle 130 in einer zentralen Position von Verarbeitungsgerät 102, um kürzere Takt-/Phasenverteilung durch einen Taktbaum des Prozessors bereitzustellen. Auf diese zentrale Positionierung von Taktquelle 130, z. B. innerhalb eines Prozessorkerns von Verarbeitungsgerät 102, verließ man sich in der Vergangenheit hinsichtlich wünschenswerter Taktbaum-Eigenschaften, wie z. B. ein niedriger Jitter während des Energiesparbetriebs.
-
3 veranschaulicht ausgewählte Elemente eines Systems 300 zur Implementierung eines Taktschemas gemäß einer Ausführungsform. System 300 kann ein oder mehr Merkmale beinhalten, die hierin unter Bezugnahme auf System 200 beschrieben sind. Ein Verarbeitungsgerät 302 von System 300 kann eine Verarbeitungsschnittstelle 304 beinhalten, um Daten mit einem oder mehr Speichergeräten, z. B. RAM 352, auszutauschen. Verarbeitungsschnittstelle 304 kann Daten mit RAM 352 über eine RAM-Schnittstelle 350 austauschen, wobei eine bidirektionale Datenverbindung DQ 340 zwischen Verarbeitungsschnittstelle 304 und RAM-Schnittstelle 350 die ausgetauschten Daten transportiert. Verarbeitungsschnittstelle 304 kann einen Übertragungspfad 312, einschließlich eines Übertragungslatches 314, umfassen, um Daten von einem Übertragungspuffer Tx FIFO 310 zu DQ 340 zu transportieren, und einen Empfangspfad 322, einschließlich eines Empfangslatches 324, um Daten von DQ 340 zu einem Empfangspuffer Rx FIFO 320 zu transportieren. Tx FIFO 310 und Rx FIFO 320 können auf verschiedene Art und Weise Daten Puffern, die zwischen Verarbeitungsschnittstelle 304 und anderen Elementen von Verarbeitungsgerät 302, z. B. ein Nichtkern 302, auszutauschen sind.
-
RAM-Schnittstelle 350 kann ein Empfangslatch 364 in einem Empfangspfad 362 umfassen, um Daten von DQ 340 zu RAM 352 zu transportieren, und/oder ein Übertragungslatch 374 in einem Übertragungspfad 372, um Daten von RAM 352 zu DQ 340 zu transportieren. Verarbeitungsgerät 302 kann mittels Operationen, die von getaktetem Latchen der verschiedenen Übertragungs-/Empfangslatches verwaltet werden, auf verschiedene Art und Weise aus RAM 352 lesen oder hineinschreiben. Das getaktete Latchen von verschiedenen Latches von Verarbeitungsschnittstelle 304 und RAM-Schnittstelle 350 kann durch ein Taktsignal CLKR 342, das aus einem Referenztaktsignal CLKRef 335 durch eine Taktquellen-PLL 380 bei RAM-Schnittstelle 350 generiert wird, koordiniert werden. CLKR 342 kann an Verarbeitungsschnittstelle 304 bereitgestellt werden, um das Latchen von Daten in Übertragungspfad 312 und/oder Empfangspfad 322 zu koordinieren.
-
System 300 kann weiter Mittel für das Steuern der Taktphase über die verschiedenen Latches von Verarbeitungsschnittstelle 304 beinhalten. Bei einer Ausführungsform kann Verarbeitungsschnittstelle 304 Phaseninterpolatoren 316, 326 und 386 beinhalten, die mit entsprechenden Latches 314, 324 und 384 verbunden sind. Jeder Phaseninterpolator (phase interpolator, PI) kann einen Schaltkreis beinhalten, um eine Phasenverzögerung des Signal CLKR 342 (oder einer Ableitung davon) anzupassen, kurz bevor der CLKR 342 auf verschiedene Art und Weise eingeht, um die entsprechenden Latches 314, 324 und 384 anzutreiben. Die Phasenanpassung durch verschiedene PIs kann durch Trainingslogik 306 von Verarbeitungsgerät 302 gesteuert werden.
-
Bei einer Ausführungsform kann Latch 384 Daten zu einer Verbindung CMD/ADD 344 latchen, die weiter Verarbeitungsschnittstelle 304 und RAM-Schnittstelle 350 koppelt.
-
Beispielsweise kann Latch 384 zusätzliche Information zu CMD/ADD 344 latchen, z. B. Befehls- und/oder Adressinformation, die mit Lese- und/oder Schreibdaten, die über DQ 340 ausgetauscht werden, verbunden sind. RAM-Schnittstelle 350 kann ein entsprechendes Latch 388 beinhalten, um die Information über CMD/ADD 344 zu empfangen. Beispielsweise kann Information durch Latch 388 gelatcht werden, um Mittel 394 der RAM-Schnittstelle 350 zu steuern, die das Adressieren von Datenlese-/-schreibzugriffen durch RAM 352 bestimmen. Das Latchen von Daten in CMD/ADD 344 durch Latch 384 und/oder Latch 388 kann mit einem Takt CK 346, z. B. einer Ableitung von CLKR 342, synchronisiert werden. Das Taktsignal CK 346 kann ebenfalls an andere Latchschaltkreise in RAM 352 selbst bereitgestellt werden, wie durch ein Signal 390 veranschaulicht ist, das ein Latch 389 von RAM 352 antreibt.
-
RAM-Schnittstelle 350 kann jede aus einer Vielzahl von Kombinationen aus Phaseninterpolatoren beinhalten, z. B. einen oder mehr von PIs 392, 396, um Phasenanpassung auf der Speicherseite von System 300 auszuführen. RAM-Schnittstelle 350 kann weiter eine zusätzliche Trainings-/Trackinglogik beinhalten, z. B. in Steuermittel 394, um Phasenanpassungen für Latches in RAM-Schnittstelle 350 zu überwachen und/oder auszurichten. Das Lokalisieren von PIs in der Nähe der Taktquelle, z. B. in RAM-Schnittstelle 350 mit PLL 380, ermöglicht eine verhältnismäßig schnellere Temperaturdriftkompensation für das Takten von Befehls-/Adressaustausch. Außerdem kann die zumindest teilweise Entlastung von Verarbeitungsgerät 302 hinsichtlich Phasetracking und/oder Training das Anpassen vereinfachen, das von Verarbeitungsgerät 302 erfordert wird, in dem Maße, wie es auf verschiedene Art und Weise in Energiezustände übergeht. Dies kann schnellere, energieeffizientere Übergänge in/aus Schlafzuständen von Verarbeitungsgerät 302 ermöglichen.
-
4 veranschaulicht ausgewählte Elemente eines Systems 400 zur Implementierung eines Taktschemas gemäß einer Ausführungsform. System 400 kann ein oder mehr Merkmale beinhalten, die hierin unter Bezugnahme auf Systeme 200 und 300 beschrieben sind. Ein Verarbeitungsgerät 402 von System 400 kann eine Verarbeitungsschnittstelle 404 beinhalten, um Daten mit einem oder mehr Speichergeräten, z. B. RAM 452, auszutauschen. Verarbeitungsschnittstelle 404 kann Daten mit RAM 452 über eine RAM-Schnittstelle 450 austauschen, wobei eine bidirektionale Datenverbindung DQ 440 zwischen Verarbeitungsschnittstelle 404 und RAM-Schnittstelle 450 die ausgetauschten Daten transportiert. Verarbeitungsschnittstelle 404 kann einen Übertragungspfad 412, einschließlich eines Übertragungslatches 414, umfassen, um Daten von einem Übertragungspuffer Tx FIFO 410 zu DQ 440 zu transportieren, und einen Empfangspfad 422, einschließlich eines Empfangslatches 424, um Daten von DQ 440 zu einem Empfangspuffer Rx FIFO 420 zu transportieren. Tx FIFO 410 und Rx FIFO 420 können auf verschiedene Art und Weise Daten Puffern, die zwischen Verarbeitungsschnittstelle 404 und anderen Elementen von Verarbeitungsgerät 402 auszutauschen sind.
-
RAM-Schnittstelle 450 kann ein Empfangslatch 464 in einem Empfangspfad 462 umfassen, um Daten vom DQ 440 zu RAM 452 zu transportieren, und/oder ein Übertragungslatch 474 in einem Übertragungspfad 472, um Daten von RAM 452 zu DQ 440 zu transportieren. Verarbeitungsgerät 402 kann mittels Operationen, die durch getaktetes Latchen der verschiedenen Übertragungs-/Empfangslatches verwaltet werden, auf verschiedene Art und Weise aus RAM 452 lesen oder hineinschreiben. Das getaktete Latchen von verschiedenen Latches von Verarbeitungsschnittstelle 404 und RAM-Schnittstelle 450 kann durch ein Taktsignal CLKR 442, das aus einem Referenztaktsignal CLKRef 435 durch eine Taktquellen-PLL 480 bei RAM-Schnittstelle 450 generiert wird, koordiniert werden. CLKR 442 kann an Verarbeitungsschnittstelle 404 bereitgestellt werden, um das Latchen von Daten in Übertragungspfad 412 und/oder Empfangspfad 422 zu koordinieren.
-
Die PLL 480 kann CLKR 442 aus einem Referenzsignal CLKRef 435 generieren. Bei einer Ausführungsform kann der gleiche CLKRef 435 ebenfalls direkt an Verarbeitungsgerät 402 zum Antreiben seiner Geräte bereitgestellt werden. Beispielsweise kann CLKRef 435 an eine PLL 406 von Verarbeitungsgerät 402 bereitgestellt werden, die ein Mastertaktsignal CLKM 408 generiert, um einen oder mehr von Tx FIFO 410 und Rx FIFO 420 anzutreiben. Bei einer Ausführungsform können PLL 480 und/oder PLL 406 als eine Taktquelle betrieben werden, indem auf verschiedene Art und Weise Frequenzmultiplikation und/oder Frequenzdivision auf CLKRef 435 angewendet wird.
-
5 veranschaulicht ausgewählte Elemente eines Verfahrens 500 für ein Taktschema gemäß verschiedener Ausführungsformen. Verfahren 500 kann beispielsweise von System 200 ausgeführt werden. Verfahren 500 kann bei 510 das Austauschen eines ersten Taktsignals von einer ersten Schnittstelle für ein Speichergerät mit einer zweiten Schnittstelle für eine Verarbeitungseinheit beinhalten. Basierend auf dem ausgetauschten ersten Taktsignal kann bei 520 ein Latchen von Daten durch die zweite Schnittstelle ausgeführt werden. In Antwort auf das Latchen können Daten bei 530 zwischen der ersten Schnittstelle und der zweiten Schnittstelle ausgetauscht werden.
-
6 veranschaulicht ausgewählte Elemente einer Taktquelle 600 gemäß einer Ausführungsform, die eine PLL 602 beinhalten kann. Taktquelle 600 kann Merkmale in einer oder mehr von beispielsweise PLL 280, PLL 380 und PLL 480 darstellen. Ein Frequenzteiler 612 kann mit der PLL 602 gekoppelt sein. Die PLL 602 kann einen Phasen- und Frequenzdetektor 604 beinhalten. Eine Ladungspumpe 606 ist mit dem Phasen- und Frequenzdetektor 604 gekoppelt. Ein Schleifenfilter (loop filter, LPF) 608 ist mit der Ladungspumpe 606 gekoppelt. Ein spannungsgesteuerter Oszillator (voltage-controlled oscillator, VCO) 610 ist mit dem LPF 608 gekoppelt.
-
Phasen- und Frequenzdetektor 604 kann die Frequenzen von zwei Signalen CLKRef und CLKFB vergleichen, und ein Aufwärts-(oder Abwärts-)Signal erzeugen, das proportional zu dem Unterschied zwischen den Eingangsfrequenzen ist. Das Fehlersignal wird sodann von LPF 608 tiefenpassgefiltert und verwendet, um VCO 610 anzutreiben, der ein Ausgangssignal CLKR generiert. Das Ausgangssignal CLKR wird durch einen Frequenzteiler 612 zurück an den Eingang von Phasen- und Frequenzdetektor 604 geführt, wodurch eine negative Rückkopplungsschleife entsteht. Wenn die Ausgangsfrequenz abdriftet, steigt das Fehlersignal, was den VCO 610 antreibt, eine Frequenz in die entgegengesetzte Richtung auszugeben, um den Fehler zu verringern.
-
Taktquelle 600 kann mit anderen Komponenten, die als Quellen für elektromagnetisches Rauschen in dem Ausgangssignal CLKR dienen können, auf einem Substrat verweilen. Um den Beitrag eines solchen Rauschens zu verringern, können einige oder alle Komponenten von Taktquelle 600 in einer isolierten Wanne lokalisiert sein. Beispielsweise kann PLL 602 in einer P-Diffusions-Wanne 620 in einem Substrat lokalisiert sein, umgeben von einer N-Diffusions-Wanne 630 des Substrats. N-Diffusions-Wanne 630 kann als eine Barriere für andere hochfrequente elektromagnetische Rauschkomponenten dienen, die von anderen Komponenten generiert werden können, z. B. in einer entlegenen P-Diffusions-Wanne 625. Rauschabschirmung kann weiter das Anlegen einer Spannung VCC an die N-Diffusions-Wanne 630 und/oder das Erden der einen oder mehr der P-Diffusions-Wannen 620, 625 beinhalten. Bei Ausführungsformen, in denen dieser Rauschschutz bereitgestellt ist, kann Taktquelle 600 bei einer RAM-Schnittstelle lokalisiert sein und CLKR an eine Prozessorschnittstelle in einem separaten IC-Package bereitstellen.
-
Techniken und Architekturen für Datenkommunikation sind hierin beschrieben. In der obigen Beschreibung werden zum Zweck der Erklärung zahlreiche spezifische Details erläutert, um ein gründliches Verständnis von erfindungsgemäßen Ausführungsformen zu ermöglichen. Für fachkundige Personen ist es jedoch offensichtlich, dass die Erfindung auch ohne diese spezifischen Details realisierbar ist. In anderen Fällen sind Strukturen und Geräte in Form eines Blockdiagramms gezeigt, um die Beschreibung nicht zu verschleiern.
-
Verweise in der Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer erfindungsgemäßen Ausführungsform enthalten ist. Die Verwendung des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf die gleiche Ausführungsform.
-
Einige Teile der ausführlichen Beschreibung, die folgen, sind in Form von Algorithmen und symbolischen Darstellungen von Operationen auf Datenbits innerhalb eines Computerspeichers dargestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die von Fachleuten im Bereich der Datenverarbeitung verwendeten Mittel, um den Inhalt ihrer Arbeit anderen Fachleuten effektiv mitzuteilen. Ein Algorithmus ist hier und wird generell als eine selbstkonsistente Sequenz von Schritten betrachtet, die zu einem gewünschten Resultat führen. Die Schritte sind diejenigen, die physische Manipulationen von physischen Mengen erfordern. Gewöhnlich, obwohl nicht notwendigerweise, nehmen diese Mengen die Form von elektrischen oder magnetischen Signalen an, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich grundsätzlich aus Gründen des allgemeinen Sprachgebrauchs als geeignet erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Zahlen oder Ähnliches zu bezeichnen.
-
Alle diese und ähnlichen Begriffe sind jedoch mit den passenden physischen Mengen zu verbinden und stellen lediglich geeignete Bezeichnungen dar, die auf diese Mengen angewendet werden. Wenn nicht spezifisch anders angegeben, wie offensichtlich aus der folgenden Erörterung, ist es selbstverständlich, dass sich in der Beschreibung Erörterungen, die die Begriffe, wie z. B. „Verarbeiten” oder „Berechnen” oder „Ausrechnen” oder „Bestimmen” oder „Darlegen” und der gleichen, auf die Handlungen und Prozesse eines Computersystems, oder eines ähnlichen elektronischen Computergeräts, beziehen, das Daten, die als physische (elektronische) Mengen innerhalb der Register und Speicher des Computersystems dargestellt sind, in andere Daten transformiert und manipuliert, die gleichermaßen als physische Mengen innerhalb der Computersystemspeicher oder -register oder innerhalb anderer solcher Informationsspeicher, Übertragungs- oder Displaygeräte dargestellt sind.
-
Erfindungsgemäße Ausführungsformen beziehen sich ebenfalls auf eine Vorrichtung zur Ausführung der Operationen hierin. Diese Vorrichtung kann speziell für die erforderlichen Zwecke aufgebaut sein, oder sie kann einen Allzweckcomputer umfassen, der selektiv durch ein in dem Computer gespeichertes Computerprogramm aktiviert oder rekonfiguriert ist. Solch ein Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie beispielsweise, aber nicht beschränkt auf, jede Art Disk, einschließlich Floppy Disks, optische Disks, CD-ROMS und magnetooptische Disks, Festwertspeicher (read-only memories, ROMs), Direktzugriffspeicher (random access memories, RAMs), wie z. B. dynamischer RAM (DRAM), EPROMs, EEPROMs, magnetische oder optische Karten, oder jeden Typ an Medien, der zum Speichern von elektronischen Befehlen geeignet ist, und wobei jedes mit einem Computersystem-Bus gekoppelt ist.
-
Die hierin dargestellten Algorithmen und Displays sind nicht von Natur aus mit irgendeinem besonderen Computer oder anderer Vorrichtung verbunden. Verschiedene Allzwecksysteme können mit Programmen in Übereinstimmung mit den Lehren hierin verwendet werden, oder es kann sich als zweckmäßig herausstellen, eine spezialisiertere Vorrichtung zu gestalten, um die erforderlichen Verfahrensschritte auszuführen. Die erforderliche Struktur für eine Vielzahl dieser Systeme ist hierin beschrieben. Zusätzlich sind die erfindungsgemäßen Ausführungsformen nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es ist selbstverständlich, dass eine Vielzahl von Programmiersprachen verwendet werden kann, um die Lehren der erfindungsgemäßen Ausführungsformen wie hierin beschrieben zu implementieren.
-
Neben den Beschreibungen hierin können verschiedene Modifikationen an den offenbarten erfindungsgemäßen Ausführungsformen und Implementierungen gemacht werden, ohne von deren Umfang abzuweichen. Die Veranschaulichungen und Beispiele hierin sollen deshalb in einem veranschaulichenden und nicht einschränkenden Sinn ausgelegt werden. Der Umfang der erfindungsgemäßen Ausführungsformen soll lediglich unter Bezugnahme auf die folgenden Ansprüche gemessen werden.