-
Hintergrund
-
Gebiet
-
Die vorliegende Erfindung betrifft allgemein Speichersysteme, und insbesondere Delay-Locked-Loop-Schaltungen (DLL) zur Verwendung in Speichersystemen.
-
Stand der Technik
-
Die Anforderungen an die Datenübertragungsgeschwindigkeit haben in den letzten Jahren eine drastische Steigerung erfahren und werden in absehbarer Zukunft weiter steigen. Um diesen stetig steigenden Anforderungen an die Datengeschwindigkeit zu entsprechen, wurde die Leistungsfähigkeit von Prozessoren und Speichervorrichtungen erhöht und ihre Leistungsfähigkeit wird in absehbarer Zukunft weiter erhöht werden. Eine der Herausforderungen einer ansteigenden Speichervorrichtungsleistungsfähigkeit besteht darin, in der Lage zu sein, die Geschwindigkeit der Übertragung zwischen den Speicherelementen (beispielsweise Speichersteuerung und Speichervorrichtung) zu erhöhen und gleichzeitig die Unversehrtheit des Datentransfers zu wahren.
-
Hochgeschwindigkeitsdatentransfer zwischen den Speicherelementen erfordert eine Synchronisierung zur Wahrung der Integrität des Transfers. Eine derartige Synchronisierung kann durch ein Taktsignal bewirkt werden, welches ein Zeitsteuerungsreferenzsignal für den Transfer der Daten bildet.
-
Zusätzlich zu den steigenden Anforderungen an die Datengeschwindigkeit, sind Systementwickler auch bestrebt, diese erhöhte Funktionalität bei geringerem Volumen und niedrigerem Energieverbrauch zu erreichen.
-
Kurzer Überblick
-
Eine DLL-Schaltung (Delay Locked Loop) kann ein Zeitsteuerungsreferenzsignal liefern, um den Datentransfer in einen und aus einem Speicher zu synchronisieren und zu vereinfachen. In Reaktion auf die genannten zunehmenden Funktionalitätsanforderungen ist nach einer Ausführung der Erfindung gewünscht, dass eine DLL-Schaltung einen geringeren Energieverbrauch hat, wobei gleichzeitig die Zuverlässigkeit der Zeitsteuerungsreferenzsignale gewahrt bleibt, um die Integrität der Datenübertragung zu und von Speichervorrichtungen sicherzustellen. Es besteht daher ein Bedarf an einer Vorrichtung und einem Verfahren, mit welchen eine Hochleistungs-DLL-Schaltung bei gleichzeitiger Verringerung des Energieverbrauchs erreicht werden kann.
-
In einem Ausführungsbeispiel der vorliegenden Erfindung sind eine Energieeinsparvorrichtung und ein solches Verfahren für eine Speichersteuerung und eine zugehörige Speichervorrichtung beschrieben, welche eine DLL-Schaltung zur Datenübertragungssynchronisierung verwendet. Zur Verringerung des Energieverbrauchs wird die DLL-Schaltung für den Zeitraum, der zum Unterstützen des Speicherdatentransfers erforderlich ist, eingeschaltet und zu anderen Zeiten jedoch abgeschaltet. Durch opportunes Nutzen der üblichen Arbeitszyklen der Speichersteuerungsaktivität, kann der Energieverbrauch erheblich verringert werden, ohne die für das Unterstützen des Hochgeschwindigkeitsdatentransfers erforderliche Synchronisierung zu beeinträchtigen.
-
Weitere Ausführungsbeispiele, Merkmale und Vorteile der Erfindung sowie der Aufbau und die Arbeitsweise der verschiedenen Ausführungsbeispiele der Erfindung werden nachfolgend unter Bezugnahme auf die zugehörigen Zeichnungen näher beschrieben.
-
Kurzbeschreibung der Zeichnungen
-
1 zeigt ein Speichersystem nach einem Ausführungsbeispiel der vorliegenden Erfindung.
-
2 zeigt ein Datenlese-Zeitsteuerungsanalysediagramm eines herkömmlichen Speichersystems;
-
3 zeigt ein Datenlese-Zeitsteuerungsanalysediagramm eines Speichersystems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
4 zeigt ein Ablaufdiagramm eines Verfahrens zur Verringerung des Energieverbrauchs einer DLL-Schaltung nach einem Ausführungsbeispiel der vorliegenden Erfindung.
-
Detaillierte Beschreibung der Erfindung
-
1 illustriert ein exemplarisches Ausführungsbeispiel der vorliegenden Erfindung. 1 zeigt eine Rechenvorrichtung 100, eine typische CPU 110, eine Speichersteuerung 120 und eine Speichervorrichtung 140. Die CPU 110 sendet einen oder mehrere Befehle über den internen Systembus 130 an die Speichersteuerung 120. Bei jedem Empfang eines Befehls decodiert die Speichersteuerung 120 den Befehl und sendet einen geeigneten Speicherbefehl über den Speicherbefehlsbus 160 an die Speichervorrichtung 140. Die Speichervorrichtung 140 decodiert den Speicherbefehl. Handelt es sich um einen Lesebefehl, sendet die Speichervorrichtung 140 Daten an die Speichersteuerung 120 über einen Speicherdatenbus 150 zurück. Die Speichersteuerung 120 puffert die Daten und sendet sie über den internen Systembus 130 an die CPU 110 zurück. Handelt es sich bei dem empfangenen Speicherbefehl um einen Schreibbefehl, werden in ähnlicher Weise Daten über die Speichersteuerung 120 auf dem internen Speicherdatenbus 150 an die Speichervorrichtung 140 gesendet. Bei der Rechenvorrichtung 100 kann es sich um ein beliebiges System, Produkt, Kompaktgerät, Gerät, oder einen Teil derselben handeln, in welchem Datenverarbeitung und Speicherzugriff unter Verwendung einer CPU 110 und einer Speichervorrichtung 140 durchgeführt werden, einschließlich (jedoch ohne Einschränkung) eines Computers, eines Mobiltelefons, eines Elektro- oder Haushaltsgeräts, eines Kraftfahrzeugs etc.
-
Für den Hochgeschwindigkeitszugriff auf Daten aus dem Speicher weist die Speichersteuerung 120 eine DLL 180 auf, die ein oder mehrere phasenverriegelte Taktsignale zu Synchronisierungszwecken erzeugt. Die DLL 180 empfängt Eingangssignale, ein Reset-Eingangssignal 182 und ein Referenztakt-Eingangssignal 184. Wenn ein Reset-Eingangssignal 182 anliegt (z. B. das Reset-Signal beispielsweise einen High-Pegel annimmt), ist die DLL 180 deaktiviert und befindet sich in einem Schlafmodus. Wenn das Reset-Eingangssignal 182 nicht mehr anliegt (z. B. das Reset-Signal nimmt beispielsweise einen Low-Pegel an), wird die DLL 180 aktiv und beginnt den Verriegelungsvorgang. Der Verriegelungsvorgang verriegelt das eine oder die mehreren Taktausgangssignale mit dem Referenztakteingangssignal 184. So wird beispielsweise, wenn sich die DLL 180 in ihrem verriegelten Zustand befindet, das Taktausgangssignal (Clk0) 186 mit dem Referenztakt-Eingangssignal 184 verriegelt. Wenn die DLL 180 zwei oder mehr Taktausgangssignale unterstützt, werden alle Taktausgangssignale 186, 188 mit dem Referenztakt-Eingangssignal 184 verriegelt.
-
Nach dem Beenden des Reset-Signals benötigt die DLL 180 eine finite Zeit, um nach dem Beenden des Reset-Eingangssignals 182 ihren verriegelten Zustand zu erreichen. Diese finite Zeit wird als DLL-Verriegelungszeit bezeichnet. Nachdem die DLL ihren Verriegelungszustand erreicht hat, werden sämtliche Taktausgänge 186, 188 der DLL 180 gültig. Die Gültigkeit der Taktausgangssignale 186, 188 kann durch den Verriegelungssignalausgang 190 angegeben werden.
-
In 2 ist ein High-Pegel-Zeitsteuerungsdiagramm 200 für einen herkömmlichen Lesevorgang dargestellt. Die CPU 110 startet einen Lesevorgang, indem sie einen Lesebefehl 220 über den internen Systembus 130 sendet. Die Speichersteuerung 120 benötigt eine finite Zeit zur Decodierung des Befehls. Diese finite Zeit ist in 2 als Steuerungslatenz 230 dargestellt. Nach dem Decodieren sendet die Speichersteuerung 120 einen Lesebefehl 240 über den Speicherbefehlsbus 160 an die Speichervorrichtung 140. Das Referenztakt-Eingangssignal 210 wird an die DLL 180 geliefert, um den Speicherdatenzugriffsvorgang zu unterstützen. Die Speichervorrichtung 140 beginnt mit dem Rücksenden der Daten nach der Anfangs-Zugriffslatenzzeit 260 der Speichervorrichtung 140. Wie in 2 dargestellt, überträgt der Speicherdatenbus 150 nur für einen kurzen Zeitraum aktiv Daten 270. Das Taktausgangssignal 250 bleibt jedoch ständig aktiv. Infolge dessen bleibt auch die DLL 180 ständig aktiv. Dies führt zu einem erheblichen Energieverbrauch der DLL, obwohl über einen beträchtlichen Zeitraum kein Gebrauch von den Taktausgangssignalen der DLL 180 gemacht wird.
-
3 zeigt ein Ausführungsbeispiel der vorliegenden Erfindung, bei welchem der Energieverbrauch verringert werden kann. In 3 empfängt die DLL 180 als Eingang ein DLL-Reset-Signal 360 und ein Taktreferenz-Eingangssignal 310. Wie in 3 dargestellt, befindet sich die DLL 180 anfänglich in einem rückgesetzten oder inaktiven Modus 390, so dass das Taktausgangssignal Clk90 350 nicht getrieben wird. Wenn ein Lesebefehl 320 auf dem internen Systembus 130 anliegt, nimmt die Speichersteuerung 120 das Reset-Signal 360 weg (z. B. das Reset-Signal nimmt einen Low-Pegel an), um den Beginn des Verriegelungsprozesses 392 der DLL 180 einzuleiten. Wie zuvor decodiert die Speichersteuerung 120 den Lesebefehl 320 und sendet nach einer Steuerungslatenzperiode 330 einen Lesebefehl 340 über den Speicherbefehlsbus 160 an die Speichervorrichtung 140. Die Speichervorrichtung 140 decodiert den Lesebefehl. Nach einer Anfangs-Datenzugriffslatenz 370, sendet die Speichervorrichtung 140 Daten 380 über den Speicherdatenbus 150 an die Speichersteuerung 120 zurück. Während dieses Datentransfervorgangs befindet sich die DLL in ihrem verriegelten Zustand 394 und ihr Taktausgangssignal 350 ist in geeigneter Weise mit dem Referenztakt-Eingangssignal 310 verriegelt. Im Anschluss an die Beendigung des Datentransfervorgangs kehrt die DLL aufgrund des Eingangs des Reset-Signals 360 in ihren inaktiven Zustand 396 zurück (z. B. das Reset-Signal nimmt einen High-Pegel ein). Wie zuvor puffert die Speichersteuerung 120 die Daten und sendet sie an die CPU 110 über den internen Systembus 130 zurück.
-
In ihrem verriegelten Zustand verwendet die DLL 180 das Referenztakt-Eingangssignal 310 als Referenz und erzeugt Clk0 186 (in 3 nicht dargestellt) und Clk90 188 (Clk0 um 90° versetzt), welche mit dem Referenztakt-Eingangssignal 310 verriegelt sind. Bei einem Ausführungsbeispiel werden Clk0 und Clk90 zur Synchronisierung während des Datentransfervorgangs verwendet. Bei einem anderen Ausführungsbeispiel kann ein einzelnes Referenztakt-Ausgabesignal Clk90 188 zur Synchronisierung während des Datentransfervorgangs verwendet werden. Bei anderen Ausführungsbeispielen ist die Anzahl der DLL-Taktausgangssignale nicht auf 1 oder 2 Referenztakt-Ausgabesignale begrenzt. Beispielsweise kann die DLL 180 in anderen exemplarischen Ausführungsbeispielen der vorliegenden Erfindung mehr als 2 Taktsignale erzeugen. Zum Beispiel kann die DLL 180 andere Anzahlen von synchronisierten Taktsignalen, einschließlich 4, 8, 16 synchronisierter Taktsignale, erzeugen. Bei diesen Mehrfach-Taktsignal-Ausführungsbeispielen ist jedes Taktsignal gegenüber den anderen Taktsignale phasenverschoben.
-
Die vorangehende Beschreibung geht von einem Lesebefehl aus. Jedoch sind die Ausführungsbeispiele der vorliegenden Erfindung nicht auf einen Lesebefehl beschränkt, sondern decken jeden anderen Speicherzugriffsbefehl ab. Beispielsweise, und ohne Einschränkung, läuft, wenn der empfangene Speicherbefehl ein Schreibbefehl ist, ein ähnlicher Vorgang ab, wobei jedoch die Daten von der CPU 110 ausgehend während des verriegelten Zustands 394 der DLL 180 in die Speichervorrichtung 140 geschrieben werden.
-
Bei diesem Schema wird die DLL 180 kurz vor den Zeitpunkt verriegelt, zu dem gültige Daten 380 auf dem Speicherdatenbus 150 vorliegen. Daher muss die Speichersteuerung 120 den Verriegelungsvorgang der DLL 180 früh genug beginnen, so dass sämtliche Taktausgänge der DLL 180 verriegelt sind und laufen, wenn Daten erfasst werden müssen. Ein Prinzip des vorangehenden Ansatzes besteht darin, dass die DLL-Verriegelungszeit 392 kürzer sein muss als die Summe der Steuerungslatenzzeit 330 und der Anfangs-Datenzugriffslatenzzeit 370, so dass die DLL zur richtigen Zeit für einen synchronisierten Datentransfer verriegelt ist. Insbesondere muss in einem Ausführungsbeispiel die folgende Gleichung erfüllt sein: DLL-Verriegelungszeit 392 < Steuerungslatenz 330 + Anfangs-Zugriffslatenz 320 Gl.(1)
-
Da die Steuerungslatenzzeit 330, die Anfangs-Datenzugriffslatenzzeit 370 und die DLL-Verriegelungszeit sämtlich im Voraus bekannt sind, kann die Gültigkeit des obigen Ansatzes für jede spezifische Wahl einer DLL 180, Speichersteuerung 120 und Speichervorrichtung 140 leicht festgestellt werden.
-
Wie zuvor festgestellt und in 3 dargestellt, kann die Verriegelung der DLL 180 unmittelbar bei Empfang eines Speicherzugriffsbefehls (wie des Lesebefehls 320) durch die Speichersteuerung 120 erfolgen. Bei einem weiteren Ausführungsbeispiel der vorliegenden Erfindung kann die Verriegelung der DLL 180 verzögert werden, um den Energieverbrauch weiter zu verringern. Beispielsweise kann der Überschuss der Summe der Steuerungslatenzzeit 330 und der Anfangs-Datenzugriffslatenzzeit 370 gegenüber der DLL-Verriegelungszeit 392 genutzt werden, indem die Verriegelung der DLL 180 bis zum letztmöglichen Zeitpunkt verzögert wird. Durch das Verzögern des Beginns der Verriegelung 392 der DLL 180 wird zusätzlich weniger Energie verbraucht.
-
Verschiedene Ansätze können verwendet werden, um die Verzögerung des Beginns der Verriegelung der DLL 180 zu bewirken. Bei einem exemplarischen Ausführungsbeispiel kann ein Zähler 195 in der Speichersteuerung 120 verwendet werden, um den Betrag der Zeitverzögerung (z. B. Taktzyklen) zwischen dem Empfang eines Speicherzugangsbefehls (z. B. Lesebefehl 320) und dem Beginn der Verrieglung der DLL 180 zu zählen. Indem der Zähler 195 entweder verwendet wird, um bis zur gewünschten Verzögerung aufwärts zu zählen, oder der Zähler 195 verwendet wird, um von der bekannten Verzögerung aus abwärts bis null zu zählen, gibt der Zähler 195 ein Signal, das zur Bildung eines Reset-Signals 182 verwendet wird, an die DLL aus.
-
Bei einem weiteren Ausführungsbeispiel der vorliegenden Erfindung kann der Zähler 195 ein dynamischer Zähler sein, der auf Echtzeit-Änderungen der Steuerungslatenzzeit 330 und der Anfangs-Datenzugriffslatenzzeit 370 in dem Maße reagieren kann, dass diese Zeiten dynamisch messbar sind und dem Zähler 195 mitgeteilt werden können.
-
Bei einem exemplarischen Ausführungsbeispiel kann die Verriegelungszeit der DLL 180 zwischen 6 Zyklen und 40 Zyklen oder mehr betragen. Bei einem derartigen Ausführungsbeispiel kann die Steuerungslatenzzeit üblicherweise 4 bis 10 Zyklen betragen, und die Anfangs-Zugriffslatenzzeit kann zwischen 24 ns (8 Zyklen bei einem Takt von 333 MHz) für eine Vorrichtung vom schnellen DRAM-Typ und 120 ns (17 Zyklen bei einem Takt von 133 MHz) für eine Vorrichtung vom nichtflüchtigen NOR-Speichertyp variieren. Derartige Parameterwerte geben dem Entwickler eine Vielzahl von Möglichkeiten, die obige Gleichung (1) zu erfüllen und die Änderungen einzubeziehen.
-
4 zeigt ein Ablaufdiagramm eines beispielhaften, einem Ausführungsbeispiel der vorliegenden Erfindung entsprechenden Verfahrens 400 für das Erreichen eines verringerten Energieverbrauchs (sowie einhergehender Vorteile, wie eine verringerte Wärmeerzeugung, eine verlängerte Nutzdauer, etc.) bei einem Hochgeschwindigkeitsspeicherdatenzugriffsgerät.
-
Das Verfahren beginnt in Schritt 410. In Schritt 410 wird ein Speicherzugriffsbefehl von einer Speichersteuerung empfangen. Bei einem Ausführungsbeispiel empfängt die Speichersteuerung 120 einen Speicherzugriffsbefehl (z. B. einen Lesebefehl 320, einen Schreibbefehl, etc.) von der CPU 110 über den internen Systembus 130.
-
In Schritt 420 wird in Reaktion auf einen solchen Empfang die DLL 180 zum Einschaltzeitpunkt eingeschaltet. Bei einem Ausführungsbeispiel wird das Einschalten der DLL 180 erreicht, indem das Reset-Signal 360 beendet wird (z. B. nimmt das Reset-Signal einen Low-Pegel an) und der Verriegelungsprozess beginnt, wobei nachfolgend ein Datentransfer stattfindet, während die DLL 180 in einem verriegelten Zustand ist. Der Einschaltzeitpunkt für eine DLL ist derart bestimmt, dass die DLL bei oder vor dem erforderlichen Speicherdatentransfer verriegelt wird. Bei einem Ausführungsbeispiel wird der Einschaltzeitpunkt der DLL 180 auf der Grundlage der DLL-Verriegelungszeit 392, der Steuerungslatenzzeit 330 und der Anfangs-Datenzugriffslatenzzeit 370 bestimmt. Die DLL 180 kann unmittelbar bei Empfang eines Speicherzugriffsbefehls durch die Speichersteuerung 120 eingeschaltet werden. Alternativ kann das Einschalten der DLL 180 auf der Grundlage des Überschusses der Summe der Steuerungslatenzzeit 330 und der Anfangs-Datenzugriffslatenzzeit 370 gegenüber der DLL-Verriegelungszeit 392 verzögert werden. Bei einem exemplarischen Ausführungsbeispiel kann der Zähler 195 verwendet werden, um die Verzögerung vor dem Einschalten der DLL 180 wirksam werden zu lassen.
-
In Schritt 430 endet der Datentransfer und die DLL 180 schaltet ab. Bei einem Ausführungsbeispiel erkennt die Speichersteuerung 120 den Abschluss des Datentransfers und legt ein Reset-Signal 360 (z. B. nimmt das Reset-Signal 360 einen High-Pegel an) an die DLL 180 an.
-
In Schritt 440 endet das Verfahren 400.
-
Wie zuvor erwähnt, handelt es sich bei den obigen Beschreibungen um exemplarische Darstellungen exemplarischer Architekturen, auf welche der obige Ansatz angewendet werden kann. Zum Beispiel können andere Systeme, Verfahren oder Anwendungen, bei denen synchronisierte Taktsignale für Szenarien mit geringem Duty-Cycle erforderlich sind, den obigen Ansatz ebenfalls verwenden.
-
Es sei darauf hingewiesen, dass der Abschnitt der detaillierten Beschreibung, nicht jedoch die Abschnitte des Überblicks und der Zusammenfassung, zur Auslegung der Ansprüche dienen sollen. Die Abschnitte des Überblicks und der Zusammenfassung können ein oder mehrere, jedoch nicht alle exemplarischen Ausführungsbeispiele der von den Erfindern vorgesehenen vorliegenden Erfindung wiedergeben und sollen somit in keiner Weise der Einschränkung der vorliegenden Erfindung und der beigefügten Ansprüche dienen.
-
Die vorliegende Erfindung wurde im Vorhergehenden anhand von Funktionsbausteinen beschrieben, welche die Implementierung spezifizierter Funktionen und die Zusammenhänge zwischen diesen darstellen. Die Grenzen dieser Funktionsbausteine wurden zu Zwecken der Beschreibung hierin beliebig definiert. Alternative Grenzen können definiert werden, solange die spezifizierten Funktionen und Zusammenhänge zwischen diesen in geeigneter Weise ausgeführt werden.
-
Die vorangehende Beschreibung der spezifischen Ausführungsbeispiele lassen die allgemeine Natur der Erfindung derart erkennen, dass andere unter Anwendung des Wissens eines Fachmanns leicht in der Lage sind, derartige spezifische Ausführungsbeispiele ohne unnötigen Versuchsaufwand für verschiedene Anwendungen zu modifizieren und/oder anzupassen, ohne den allgemeinen Rahmen der vorliegenden Erfindung zu verlassen. Derartige Anpassungen und Modifikationen fallen in den Rahmen von Äquivalenten der offenbarten Ausführungsbeispiele, welche auf den hierin angegebenen Lehren und Anleitungen basieren. Es sei darauf hingewiesen, dass die Phraseologie oder Terminologie vorliegend dem Zweck der Beschreibung und nicht der Beschränkung dient, so dass die Terminologie oder Phraseologie der vorliegenden Beschreibung durch den Fachmann im Lichte der vorliegenden Lehren und Anleitungen zu interpretieren ist.
-
Die Weite und der Umfang der vorliegenden Erfindung sollte nicht durch eines der zuvor beschriebenen exemplarischen Ausführungsbeispiele beschränkt werden, sondern sollte nur gemäß den nachfolgenden Ansprüchen und deren Äquivalenten definiert werden.
-
Die Ansprüche der vorliegenden Anmeldung unterscheiden sich von denjenigen der Stammanmeldung oder anderer verwandter Anmeldungen. Die Anmelderin setzt somit in Bezug auf die vorliegende Anmeldung jede Ausschlusserklärung hinsichtlich des Anspruchsumfangs außer Kraft, die in der Stammanmeldung oder irgendeiner Vorläuferanmeldung abgegeben wurde. Der Prüfer wird daher darauf hingewiesen, dass eine solche Ausschlusserklärung und die genannten Referenzen, welche dadurch umgangen werden sollten, möglicherweise neu betrachtet werden müssen. Ferner wird der Prüfer auch daran erinnert, dass jede in der vorliegenden Anmeldung gemachte Ausschlusserklärung nicht in oder gegen die Stammanmeldung gelesen werden sollte.