Besuchen Sie uns:
Follow us on LinkedIn Follow us on Twitter Like us on Facebook Subscribe to our channel on YouTube Follow us on Tumblr
Weiterleiten:
| More

DLL/PLL auf einem DRAM

Hintergrund

Da CPUs immer schneller werden, stellt die begrenzte Speicherleistung zunehmend ein Hemmnis für die Systemleistung dar. Damit die Systemleistung gesteigert werden kann, muss auch die Speicherleistung zunehmen. Zur Steigerung der Speicherleistung ist es unter anderem wichtig, die Geschwindigkeit zu erhöhen, mit der Daten im Speichersystem an und von den DRAMs übertragen werden können. Anfang der 1990er Jahre entwickelte Rambus die ersten DRAMs mit integrierten DLLs und PLLs. Aufgrund dieser bedeutenden Innovationen konnten DRAMs Übertragungsraten von 500 MHz erreichen, also mehr als das Achtfache der zu dem Zeitpunkt üblichen DRAM-Übertragungsraten.

In modernen Systemen werden durch synchrone Kommunikation hohe Datenübertragungsraten aus den und an die DRAMs des Speichersystems erzielt. Synchron kommunizierende Systeme verwenden ein Taktsignal als Referenzfrequenz, sodass Daten mit einem bekannten Verhältnis zu dieser Referenz übertragen und empfangen werden können. Das Schwierige an der Beibehaltung dieses Verhältnisses ist die Tatsache, dass Abweichungen im Hinblick auf Prozess, Spannung und Temperatur das Timing-Verhältnis zwischen Takt- und Datensignalen ändern können, was zu einer Reduzierung der Timing-Spannen führt. Dieses Problem wird durch höhere Übertragungsgeschwindigkeiten noch verschärft, da Systeme in ihrer Fähigkeit eingeschränkt werden, Daten bei höheren Geschwindigkeiten zu übertragen.

Auswirkungen von Prozess-, Spannungs- und Temperaturabweichungen auf den Bereich gültiger Daten (Data Valid Window)

In Abbildung 1 ist dargestellt, wie Timing-Spannen durch Prozess, Spannung und Temperatur bei niedrigen und hohen Übertragungsgeschwindigkeiten beeinflusst werden. Bei niedrigen Übertragungsgeschwindigkeiten (linke Seite in Abbildung 1) verdeutlicht DataPVT1 den Zusammenhang zwischen dem so genannten „Data Valid Window“ (der Zeitraum, in dem Daten vom Empfänger zuverlässig abgetastet werden können) und dem Takt für eine bestimmte Kombination von Betriebsbedingungen. Analog dazu zeigt DataPVT2, wie das „Data Valid Window“ und der Takt bei einer anderen Kombination der Betriebsbedingungen zusammenhängen. Diese beiden Kombinationen von Betriebsbedingungen entsprechen den Extrembedingungen für den Betrieb des Bausteins. Der Schaltungsaufbau des Empfängers berücksichtigt in der Regel nicht, wie sich das „Data Valid Window“ im Zuge von Prozess-, Spannungs- und Temperaturänderungen beim Sender ändert. Aus diesem Grund ist die Schaltung des Empfängers so aufgebaut, dass innerhalb eines Zeitfensters abgetastet wird, in dem Daten zu allen zulässigen Betriebsbedingungen gültig sind. Angenommen, DataPVT1 und DataPVT2 entsprechen dem frühesten bzw. dem spätesten „Data Valid Window“ (im Verhältnis zum Taktsignal), dann geht der Empfänger davon aus, dass das „Data Valid Window“ der Schnittmenge dieser beiden Werte entspricht, und wählt einen Abtastpunkt innerhalb des daraus resultierenden „Data Valid Window“, der für alle Prozess-, Spannungs- und Temperaturabweichungen gültig ist.

Abbildung 1 zeigt außerdem, dass das „Data Valid Window“ (der Zeitraum, in dem Daten vom Empfänger zuverlässig abgetastet werden können) bei niedrigen Übertragungsgeschwindigkeiten recht groß sein kann. Selbst bei einer erheblichen Verlagerung durch extreme Betriebsbedingungen kann das sich daraus ergebende „Data Valid Window“ noch groß genug sein, um Daten zuverlässig zu übertragen und zu empfangen. Dies ist bei DRAM-Technologien wie SDRAM der Fall. Bei DRAM-Technologien mit höheren Geschwindigkeiten, wie RDRAM und DDR, können Abweichungen bei Prozess, Spannung und Temperatur zum Verlust des „Data Valid Window“ führen. Auf der rechten Seite von Abbildung 1 ist zu sehen, dass die „Data Valid Windows“ sowohl für DataPVT1 als auch für DataPVT2 bei höheren Übertragungsgeschwindigkeiten kleiner sind. Das heißt, Informationen müssen bei höheren Übertragungsraten schneller übertragen werden. Die „Data Valid Windows“ sind zwar kleiner, doch diese Fenster können sich trotzdem durch extreme Betriebsbedingungen verlagern (sofern keine Herstellungsverbesserungen oder Änderungen an der Betriebsumgebung vorgenommen wurden). Da diese „Data Valid Windows“ kleiner sind, entsteht durch die Schnittmenge der Fenster kein Zeitfenster, in dem die Schaltung des Empfängers die Daten zuverlässig abtasten kann.

Ursache von Timing-Abweichungen, die zu einem kleineren „Data Valid Window“ führen

In Abbildung 2 ist eine Ursache für die in Abbildung 1 dargestellte zeitliche Verlagerung dargestellt. Wenn sich Prozess, Spannung und Temperatur verändern, verändern sich auch die zeitlichen Eigenschaften der Ausgangslogik und des Ausgangstreibers, wodurch sich wiederum das „Data Valid Window“ verlagert. Diese zeitliche Abweichung muss entsprechend berücksichtigt werden, wenn Daten bei hohen Geschwindigkeiten übertragen und empfangen werden sollen.

Was sind DLLs und PLLs?

Delay Lock Loops (DLLs) und Phase Lock Loops (PLLs) erfüllen einen ähnlichen Zweck und können eingesetzt werden, um ein konstantes zeitliches Verhältnis zwischen Signalen in Umgebungen aufrechtzuerhalten, in denen Prozess-, Spannungs- und Temperaturänderungen dazu führen, dass sich diese Verhältnisse mit der Zeit ändern. DLLs und PLLs vergleichen kontinuierlich das Verhältnis zwischen zwei Signalen und geben eine Rückmeldung, um eine entsprechende Anpassung vorzunehmen, damit das konstante Verhältnis zwischen den beiden Signalen gewahrt bleibt. Rambus-DRAMs waren die ersten DRAMs mit integrierten DLLs und PLLs. Mit diesen bedeutenden Innovationen konnten im Vergleich zu alternativen DRAM-Technologien höhere Übertragungsgeschwindigkeiten erzielt werden.

Anwendung eines DLL zu Vergrößerung des Data Valid Window

Abbildung 3 zeigt, wie ein DLL eingesetzt wird, um das zeitliche Verhältnis zwischen einem Taktsignal und einem Ausgangsdatensignal aufrechtzuerhalten. Ein entscheidendes Element des DLL ist der Phasendetektor, der Phasenunterschiede zwischen dem Takt und den Ausgangsdaten ermittelt. Wenn diese Phasendifferenz vom Phasendetektor erkannt wurde, sendet dieser Regelinformationen über einen Tiefpassfilter an eine variable Verzögerungsleitung, die das interne Taktsignal so regelt, dass das gewünschte zeitliche Verhältnis beibehalten wird (PLLs arbeiten mit einem spannungsgeregelten Oszillator [VCO], der die Regelung vornimmt). Eine der Schwierigkeiten beim Aufrechterhalten der Phasenverhältnisse zwischen diesen beiden Signalen ist, dass die Schleife, die dem Phasendetektor Rückmeldung erstattet, die zeitlichen Eigenschaften der Ausgangslogik und des Ausgangstreibers berücksichtigen muss. Das ist wichtig, weil dadurch die Phasendifferenzen zwischen dem Taktsignal und den vom Ausgangstreiber beförderten Daten geschätzt wird. Daher werden Schaltungen, die die Verhaltensmerkmale der Ausgangslogik und des Ausgangstreibers nachahmen, in die Rückmeldungsschleife eingefügt, um zeitliche Verzögerungen und Verhaltensänderungen aufgrund von Prozess-, Spannungs- und Temperaturschwankungen zu modellieren. Wenn durch DLLs und PLLs das zeitliche Verhältnis zwischen Taktsignal und Ausgangsdaten auf diese Weise aufrechterhalten wird, ergeben sich größere Timing-Spannen (siehe Abbildung 4), und einer bedeutenden Hürde für die Steigerung von Übertragungsgeschwindigkeiten wird entgegengewirkt.

PLLs funktionieren ähnlich wie DLLs, können jedoch auch eingesetzt werden, um eine externe Taktfrequenz herunterzuteilen oder hochzumultiplizieren, die in anderen Bereichen eines Chips verwendet werden soll. PLLs können eingesetzt werden, um dem Core eines DRAM eine niedrigere Taktfrequenz zur Verfügung zu stellen, während die Schnittstelle mit einer höheren Taktfrequenz arbeitet. Durch eine derartige Verwendung von PLLs wird Core Prefetch in DRAMs ermöglicht. Das heißt, der DRAM-Core kann mit einer niedrigeren Frequenz arbeiten (besserer DRAM-Ertrag), während die Schnittstelle mit einer höheren Geschwindigkeit arbeitet, wodurch sich die Systemleistung verbessert.

Verbesserte Timing-Spannen durch Verwendung eines DLL

Im Jahr 1993 gab Rambus auf der ISSCC (International Solid State Circuits Conference), der wichtigsten Halbleiterkonferenz, Details zum 500-MHz-PLL-Design bekannt. Ein Jahr später veröffentlichte Rambus Details zu einem 500-MHz-DLL in einem Paper, das bei der ISSCC 1994 vorgestellt wurde. Beide Veröffentlichungen wurden mit dem renommierten Best Paper-Preis für die bahnbrechenden Innovationen ausgezeichnet, die darin beschrieben wurden.

Wer profitiert davon?

Diverse Gruppen profitieren von der Integration von DLLs und PLLs in DRAMs:

  • Endbenutzer: Durch ein konstantes Verhältnis zwischen Takt- und Datensignalen lässt sich die DRAM-Leistung und somit auch die Systemleistung steigern.
  • DRAM-Hersteller: Durch Anpassen der Timing-Verhältnisse bei Prozess-, Spannungs- und Temperaturschwankungen werden die Timing-Spannen optimiert, was zu höheren DRAM-Erträgen und damit auch zu niedrigeren Herstellungskosten führt.
  • Controller- und Board-Designer: Da DLLs und PLLs hohe Übertragungsraten pro Pin ermöglichen, können Entwickler von Controllern die Anzahl von I/O-Pins reduzieren, wodurch sich wiederum Baugruppenkosten, Bauteilanzahl, Routing-Bereich und Routing-Komplexität verringern.
  • Systemintegratoren: Da sich mit DLLs und PLLs konstante Timing-Verhältnisse herstellen lassen, haben Bauteilhersteller und Systemintegratoren mehr Spielraum bei den Spezifikationen. Bei Systemen mit variierenden Temperatur- und Spannungseigenschaften können die thermischen und Stromversorgungsanforderungen von Systemen gelockert werden, ohne dass die Timing-Spannen der DRAMs wesentlich beeinträchtigt werden. Gleichzeitig sinken die Kosten für die thermische Lösung, Stromversorgung und Systemfertigung.