-
Die
Erfindung betrifft eine Speicheranordnung die eine DLL-Schaltung
aufweist. Die Erfindung betrifft ferner ein Verfahren zum Betreiben
dieser Speicheranordnung.
-
Eine
DLL-Schaltung (DLL = Delay Locked Loop), die häufig auch als Phasenachführregelkreis bezeichnet
wird, dient allgemein der Aufrechterhaltung einer definierten Verzögerung zweier
korrelierter Signale. Eine solche DLL-Schaltung ist beispielsweise
in der US-Patentschrift
US 6,043,694 beschrieben.
-
Die
immer höheren
Anforderungen an die Zuverlässigkeit,
kleinere Abmessungen, geringerer Energiebedarf, größere Verarbeitungsgeschwindigkeit
und geringerer Preis von integrierten Schaltungen führen zu
einer immer höheren
Integration und zur Entwicklung von hoch und höchst integrierten Schaltkreisen.
Im Zuge dieser Entwicklung werden zunehmend auch komplette Systeme
auf einem Chip realisiert, die so genannten SOC-Systeme (SOC = System On Chip). Solche
SOC-Systeme sollten für die
unterschiedlichsten Applikationen eingesetzt werden, damit sich
der Entwicklungsaufwand in annehmbaren Grenzen hält und das System noch in hinreichend
große
Stückzahl
und damit kostenoptimiert hergestellt werden kann. Moderne SOC-Architekturen weisen
aus Flexibilitätsgründen daher
lediglich solche Funktionseinheiten auf dem Chip auf, die für die unterschiedlichen
Applikationen erforderlich sind. Die weiteren applikationsspezifischen
Funktionseinheiten können
bei Bedarf über
eine Schnittstelle extern angekoppelt werden.
-
So
verwenden moderne SOC-Architekturen externe Speicherbausteine, sofern
für die
jeweilige Applikation größere Speicherressourcen
benötigt werden,
als in dem jeweiligen SOC-System
zur Verfügung
steht. Diese externen Speicherbausteine sind über eine Schnittstelle mit
dem SOC-System gekoppelt und können über einen
Schnittstellencontroller, der Bestandteil des SOC-Systems ist, ausgelesen und
beschrieben werden.
-
Solche
Speicherbausteine können
beispielsweise als DDR-SDRAM-Speicher
(DDR = Double Data Rate; SDRAM = Synchronous Dynamic Read Access
Memory) ausgebildet sein. Im Gegensatz zu herkömmlichen SDR-SDRAM-Speichern
(SDR = Single Data Rate) werden die Daten bei DDR-Speichern nicht
nur auf der ansteigenden, sondern auch auf der abfallenden Flanke
des Systemtaktes übertragen.
Mittels eines DDR-SDRAM-Speichers können somit Daten mit einer
höheren
Frequenz übertragen
werden, das heißt,
ein DDR-SDRAM-Speicher operiert bei einem Bustakt von 100 MHz effektiv
mit 200 MHz und die Übertragungsrate
steigt gegenüber herkömmlichen
SDR-SDRAM-Speichern von beispielsweise 0,8 auf 1,6 GBit/s. Die eigentlichen
Speicherzellen von DDR-SDRAM-Speichern arbeiten nicht schneller
als herkömmliche
SDR-SDRAM-Speicher, jedoch werden sie paarweise angesprochen und
dann nacheinander ausgelesen, so dass effektiv die doppelte Datenübertragungsrate
ermöglicht
wird. DDR-Speicher übertragen
somit bei jedem Takt zwei Datenwörter.
Dieses Prinzip ist seit langem bekannt und wird bei vielen Prozessor
genutzt, so dass auf den Aufbau und die Funktionsweise solcher Speichern
nachfolgend nicht näher
eingegangen wird.
-
Damit
die Übertragung
des zweiten Datenwortes je Taktschritt wirklich präzise läuft, enthalten DDR-SDRAM-Speicher
eine interne Taktsynchronisationsschaltung, die typischerweise als
DLL-Schaltung ausgebildet ist. Diese DLL-Schaltung realisiert eine
definierte Signalverzögerung
von Signalen zum bzw. vom extern angekoppelten Speicher. Damit die genaue
Synchronität
der Datensignale mit dem Taktsignal auch beim Datentransfer erhalten
bleibt, benutzt man ein differenzielles Taktsignal. Zusätzlich kommt
ein bidirektionales Taktungssystem zum Einsatz.
-
Bei
aktuellen Speichertechnologien wie dem DDR-SDRAM-Speicher werden
vom Speicherbaustein zusammen mit den ausgelesenen Daten DQS-Signale
bzw. DQS-Signalwechsel übertragen, die
anzeigen, dass ein gültiges
Datum an der Busschnittstelle anliegt und von dort ausgelesen werden kann.
Diese DQS-Signale werden gleichzeitig mit dem auszulesenden Daten
mit übertragen.
Mit Hilfe dieses DQS-Signals wird das auszulesende Datum über die
Busschnittstelle getaktet ausgelesen.
-
Aufgrund
des asynchronen Charakters dieses auszulesenden Datums und der zugehörigen DQS-Signale
muss das ausgelesene getaktete Datum an der Speicherschnittstelle
entweder auf den Systemtakt des SOC-Systems synchronisiert werden oder
es kann durch die Wahl kleiner Frequenzen und über weite Bereiche stabile
Umgebungsparameter garantiert werden, dass das ausgelesene Datum
an der Busschnittstelle synchron ankommt und dabei möglichst
keine Verletzung der Setup-Zeit und Hold-Zeit mit dem Systemtakt
registriert wird. Im ersteren Falle würde die Bandbreite zum externen Speicherbaustein
durch die dadurch erforderlichen, zusätzlichen Synchronisationsstufen
reduziert werden. Im zweiten Falle ergibt sich eine Bandbreitenreduktion
durch die geringere maximale Frequenz, mit welcher der externe Speicherbaustein
betrieben wird. Für
beide Fälle
ergibt sich somit eine geringere maximale Frequenz und damit eine
geringere Datenübertragungsrate.
Ein weiterer Nachteil besteht darin, dass eine stabile Umgebungstemperatur,
der das SOC-System und der daran angekoppelte Speicher ausgesetzt
sind, nicht immer garantiert werden.
-
Eine
dritte Möglichkeit
besteht darin, den Abtastzeitpunkt der auszulesenden Daten so zu
wählen,
dass dieser stets synchron zum Systemtakt erfolgt. Dieser Abtastzeitpunkt
wird aus den DQS-Signalen gewonnen. Der durch das DQS-Signal gewonnene
Abtastzeitpunkt wird mittels der DLL-Schaltung zeitlich nach hinten
verschoben, sobald er zeitlich zu nahe an der positiven Taktflanke
des Systemtaktes liegt und sich somit eine so genannte "Setup Time" Verletzung ergeben
könnte.
Dabei wird er zeitlich auch gleich so weit nach hinten verschoben,
dass auch keine so genannte "Hold
Time"-Verletzung
auftreten kann. Durch eine über
das DQS-Signal sowie den Systemtakt gesteuerte DLL-Schaltung kann
dies realisiert werden. Diese Zeiträume der Hold Time und der Setup
Time definieren eine so genannte "verbotene Zone", in der der Abtastzeitpunkt nicht gelegt werden
darf, da es dann zu Datenverlusten bei einem Auslesen von Daten
kommen kann.
-
Da
nun die DLL-Schaltung über
Signaländerungen
des DQS-Signals
vom Speicherbaustein gesteuert wird, muss sichergestellt sein, dass
sich dieses DQS-Signal auch regelmäßig ändert, so dass der Abtastzeitpunkt,
der vom DQS-Signal festgelegt ist, an Veränderungen der Umgebungsparameter
(zum Beispiel der Temperatur oder der Spannung) angepasst werden
kann. Findet über
einen längeren
Zeitraum hinweg keine Änderung
der DQS-Signale statt, dann wird die DLL-Schaltung und somit auch
der Abtastzeitpunkt nicht an eine geänderte Laufzeit angepasst.
Eine solche Änderung
der Laufzeit kann sich beispielsweise durch eine Veränderung
der Spannung oder der Temperatur, beispielsweise im Schnittstellen-Controller,
an der Busschnittstelle, im Speicherbaustein, etc., ergeben. Durch
diese Laufzeitänderung
kann es aber zu einer Verschiebung des Abtastzeitpunktes relativ
zum Takt mit der Folge kommen, dass sich der Abtastzeitpunkt nunmehr
in dem "verbotenen
Zeitbereich" befindet.
Wenn dann nach längerer
Zeit ein Zugriff auf den externen Speicher durchgeführt wird
und die aktuelle Einstellung der DLL-Schaltung nicht mehr an die
Laufzeit der Signale vom Speicherbaustein zum Schnittstellencontroller
angepasst ist, kann dies zu Datenverlusten führen.
-
In
der Druckschrift von Xilinx, „XAPP200
Application Note (V2.4). Synthesizable DDR SDRAM Controller", 18.7.02, ist ein
synthetisierbarer DDR-SDRAM Controller beschrieben, der eine Speicheranordnung
mit einem externen Speicher zum Beschreiben und Auslesen von Daten
aufweist. Dieser DDR-SDRAM Controller weist eine DLL-Schaltung und
eine Schnittstellenschaltung auf, wobei die DLL-Schaltung einen
Taktausgang zur Bereitstellung verzögerter Taktsignale aufweist.
Die DLL-Schaltung ist dazu ausgelegt, den Abtastzeitpunkt einer
Registereinrichtung festzulegen und die Registereinrichtung einzusynchronisieren.
Ferner ist eine Einrichtung vorgesehen, die nach einer vorbestimmten
Zeitdauer, innerhalb der kein Zugriff auf den Speicher erfolgt,
einen Auto-refresh Zugriff auf den Speicher vornimmt.
-
In
der japanischen Patentanmeldung JP2001-118385A sowie in der entsprechenden
US 6,608,743 B1 sind
DLL-Schaltungen in einem Speicher beschrieben, die einen Steuereingang
zur Einkopplung eines Steuersignals aufweist. Durch eine Änderung
des Steuersignals wird die DLL-Schaltung aktiviert und ein Takt
für eine
Registereinrichtung bereitgestellt.
-
Vor
diesem Hintergrund liegt der vorliegenden Erfindung nun die Aufgabe
zugrunde, eine gattungsgemäße Speicheranordnung
anzugeben, bei welcher eine sichere Datenübertragung auch bei instabilen
Umgebungsparametern garantiert wird. Ferner soll ein Verfahren zum
Betreiben einer solchen Speicheranordnung angegeben werden.
-
Erfindungsgemäß wird die
anordnungsbezogene Aufgabe durch eine Speicheranordnung mit den
Merkmalen des Patentanspruchs 1 gelöst. Die verfahrensbezogene
Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs
13 gelöst.
Demgemäß ist vorgesehen:
Eine
Speicheranordnung mit DLL-Schaltung,
- – mit einem
externen Speicher, zum Beschreiben und Auslesen von Daten,
- – mit
einer Schnittstelle, die mit dem Speicher gekoppelt ist und an der
bei einem Lesezugriff Daten zusammen mit einem Steuersignal anliegen,
welches anzeigt, dass gültige
Daten an der Schnittstelle anliegen,
- – mit
einer Registereinrichtung, deren Dateneingang mit der Schnittstelle
zum Einkoppeln der dort anliegenden Daten verbunden ist und die
einen Takteingang zum Einkoppeln eines verzögerten Taktsignals aufweist,
- – mit
einer DLL-Schaltung, die einen Steuereingang zur Einkopplung des
Steuersignals aufweist, wobei eine Änderung des Steuersignals die DLL-Schaltung
aktiviert, und die einen Taktausgang zur Bereitstellung des verzögerten Taktsignals
aufweist, welches den Abtastzeitpunkt der Registereinrichtung festlegt
und welches die Registereinrichtung synchronisiert, und
- – mit
einer Einrichtung, die nach einer vorbestimmten Zeitdauer, innerhalb
der kein Lesezugriff auf den Speicher erfolgt ist, einen künstlichen
Lesezugriff auf den Speicher zur Änderung des Steuersignals für die DLL-Schaltung
und zur Synchronisation der DLL-Schaltung vornimmt.
-
Ein
Verfahren zum Auslesen von Daten aus einem Speicher bei einer Speicheranordnung
mit DLL-Schaltung,
- – bei dem zusammen mit den
Daten auch ein Steuersignal übertragen
wird,
- – bei
dem durch eine Änderung
des Steuersignals die DLL-Schaltung
aktiviert und auf einen Takt synchronisiert wird,
- – bei
dem die DLL-Schaltung einen Abtastzeitpunkt für die Daten festlegt und
- – bei
dem nach einer vorbestimmten Zeitdauer, innerhalb der keine Daten
aus dem Speicher ausgelesen wurden, ein künstlicher Lesezugriff auf den
Speicher zur Änderung
des Steuersignals für die
DLL-Schaltung und zur Synchronisation der DLL-Schaltung vorgenommen
wird.
-
Die
der vorliegenden Erfindung zugrunde liegende Idee besteht darin,
einen künstlichen
Zugriff auf einen externen Speicher zu generieren, um dadurch eine Änderung
des DQS-Signals zu erzeugen. Zu diesem Zweck wird die DLL-Schaltung
regelmäßig stimuliert,
auch wenn über
einen längeren
Zeitraum hinweg kein Zugriff auf einen externen Speicher stattgefunden
hat. Vorteilhafterweise wird dadurch verhindert, dass die Synchronität der DLL-Schaltung zum
externen DDR-Speicher im laufenden Betrieb unter sich ändernden
Betriebsbedingungen verloren geht.
-
Die
der vorliegenden Erfindung zugrunde liegende Erkenntnis besteht
vor allem darin, dass eine Synchronität einer DLL-Schaltung bezüglich eines Taktsignals nicht
mehr gewährleistet
ist, wenn über einen
längeren
Zeitraum hinweg kein Zugriff erfolgt und damit auch keine Änderung
des DQS-Signals. Dies
ist insbesondere bei solchen Anwendungen relevant, bei denen die
Umgebungstemperaturen starken Schwankungen ausgesetzt sind. Würde in diesem
Falle keine erneute Synchronisierung der DLL-Schaltung stattfinden,
dann könnte
sich der Abtastzeitpunkt im Falle eines erneuten Speicherzugriffs
in einem verbotenen Bereich, beispielsweise in der Nähe einer
Hold-Zeit oder einer Setup-Zeit, befinden. In diesem Falle könnten Daten
im Extremfall verloren gehen. Mittels des erfindungsgemäßen Verfahrens
bzw. der erfindungsgemäßen Schaltungsanordnung
kann dies verhindert werden, indem ein Zugriff künstlich, d.h. von außen erzwungen
wird, auch wenn gerade keine Daten ausgelesen oder geschrieben werden
sollen. Durch den erzwungenen Zugriff wird das DQS-Signal geändert und
die DLL-Schaltung kann neu synchronisiert werden. Damit wird gewährleistet,
dass der Abtastzeitpunkt immer außerhalb dieser verbotenen Zone
ist.
-
Zu
diesem Zwecke zählt
z. B. ein Zähler
die Takte nach dem letzten Zugriff auf den externen Speicher. Findet
innerhalb eines bestimmten Zeitraums und damit nach einer entsprechenden
Anzahl von Takten kein erneuter Zugriff auf den DDR-Speicher statt, der
einen Signalwechsel des DQS-Signals und damit eine Nachführung der
DLL-Schaltung zur Folge hat, wird quasi "künstlich" ein Zugriff auf
diesen DDR-Speicher vorgenommen. Dieser Zugriff hat dann einen Signalwechsel
des DQS-Signals
zur Folge, woraufhin sich die DLL-Schaltung, in die das DQS-Signal
eingekoppelt wird, neu synchronisiert.
-
Die
bestimmte Anzahl der Takte, ab der ein erneuter "künstlicher" Zugriff auf den
Speicher durchgeführt
wird, kann fest vorgegeben sein oder auch je nach Anwendung einstellbar
sein.
-
Als
Zähler
ist typischerweise ein Hardwarezähler
vorgesehen, welcher zum Beispiel Bestandteil des Schnittstellencontrollers
ist. In einer vorteilhaften Ausgestaltung kann auch eine softwaremäßige Ausführung des
Zählers
vorgesehen sein. In diesem Falle könnte der Softwarezähler Bestandteil
der Recheneinrichtung sein. In einer besonders vorteilhaften Ausgestaltung
kann der Zähler
auch im DDR-Speicher angeordnet sein. In diesem Fall kann der DDR-Speicher
den Zugriff von sich ausführen, falls
bis zum Ablauf der festen oder eingestellten Anzahl von Takten kein
entsprechender Zugriff erfolgt ist.
-
Insbesondere
im Falle eines DDR-Speichers handelt es sich bei dem erzwungenen
Zugriff um einen Lesezugriff, bei dem somit Lesedaten aus dem Speicher
gelesen werden.
-
Vorteilhafte
Ausgestaltungen und Weiterbildungen der Erfindung sind Gegenstand
der weiteren Unteransprüche
sowie der Beschreibung unter Bezugnahme auf die Zeichnungen.
-
Die
Erfindung wird nachfolgend anhand des Ausführungsbeispiels in der einzigen
Figur der Zeichnung erläutert.
Die 1 zeigt ein Blockschaltbild einer erfindungsgemäßen Schaltungsanordnung
zur Verarbeitung von Daten mit einer Schnittstelle zu einem externen
Speicherbaustein und einer einstellbaren DLL-Schaltung.
-
Die
erfindungsgemäße Schaltungsanordnung
weist ein mit Bezugszeichen 1 bezeichnetes SOC-System auf.
Das SOC-System 1 ist über
eine externe Schnittstelle 2 mit einem Speicherbaustein 3 verbunden.
Es sei angenommen, dass der Speicherbaustein 3 in 1 als
DDR-SDRAM-Speicherbaustein – nachfolgend
kurz als DDR-Speicher bezeichnet – ausgebildet ist. Der DDR-Speicher 3 ist über einen
bidirektional betreibbaren Adress- und Datenbus 4 mit der
Speicherschnittstelle 2 gekoppelt. Über die Schnittstelle 2 sowie
den Adress-/Datenbus 4 lassen sich somit auf entsprechende
Anfrage des SOC-Systems 1 hin Daten aus dem DDR-Speicher 3 auslesen bzw.
Daten in entsprechend adressierte Bereiche des DDR-Speichers 3 schreiben.
Die Steuerung dieser Datenkommunikation zwischen SOC-System 1 und
DDR Speicher 3 erfolgt über
einen Schnittstellencontroller 5, der im SOC-System 1 enthalten
ist. Der Schnittstellencontroller 5 ist mit der Speicherschnittstelle 2 über Daten/Adressleitungen 6, 7 verbunden, über die
unidirektional Daten D1 bzw. Adressen A1 vom Schnittstellencontroller 5 auf
die Speicherschnittstelle 2 gelegt werden können. Über die Datenleitungen 7 können somit
Daten D1 in den DDR-Speicher 3 geschrieben werden, wohingegen über die
Adressleitungen 6 entsprechende Speicherbereiche des DDR-Speichers 2 adressiert
werden.
-
Auf
entsprechende Anfrage des Schnittstellencontrollers 5 können auch
Daten D2 aus dem DDR-Speicher 3 ausgelesen werden.
-
Die
entsprechenden Daten, die in den DDR-Speicher 3 geschrieben
werden sollen (Write Data) werden typischerweise von einer Recheneinrichtung 8 bereitgestellt.
Die Recheneinrichtung 8 ist dabei über bidirektional betreibbare
Daten- und Steuerleitungen 9 mit dem Schnittstellencontroller 5 gekoppelt. Über diese
Daten- und Steuerleitungen 9 erfolgt einerseits eine Datenkommunikation
zwischen Recheneinrichtung 8 und Schnittstellencontroller 5 und
andererseits auch eine Steuerung. Dabei kann sowohl die Recheneinrichtung 8 den
Schnittstellencontroller 5 als auch umgekehrt steuern.
Die Recheneinrichtung 8 kann zum Beispiel eine programmgesteuerte
Einrichtung, zum Beispiel einen Mikroprozessor oder Mikrocontroller,
enthalten.
-
Auf
eine Anfrage hin können
auch Daten D2 aus dem DDR-Speicher 3 ausgelesen
werden. Diese werden dann zunächst über den
Adress-/Datenbus 4 auf die Speicherschnittstelle 2 gelegt. Über unidirektional
betreibbare Datenleitungen 10 werden die ausgelesenen Daten
D2 (Read Data) zunächst
einer Registereinrichtung 11 zum Abtasten dieser Daten
D2 zugeführt.
Im Falle einer DDR-Speicherarchitektur enthält die Registereinrichtung 11 zwei
Datenabtastregister 12, 13, deren Dateneingänge mit
den Datenleitungen 10 verbunden sind. Auszulesende Daten D2
werden, abwechselnd in jeweils eines der Datenabtastregister 12, 13 abgelegt,
da in den Takteingang des Datenabtastregisters 13 das invertierte Taktsignal
CLK2 eingekoppelt wird. Die Steuerung erfolgt über den Takt eines verzögerten Taktsignals CLK2,
welches in den Takteingang der Datenabtastregister 12, 13 eingekoppelt
wird. Dies wird nachfolgend noch detailliert beschrieben. In den
Datenabtastregistern 12, 13 erfolgt eine Abtastung
der ausgelesenen Daten D2, wobei die mit doppelter Frequenz abgetasteten
Daten D2 die halbe Datenbreite von zum Beispiel 32 Bit aufweisen.
-
Die
abgetasteten Daten D2' werden
ausgangsseitig über
Datenleitungen 14 einer Einrichtung 15 zur Datenvorverarbeitung
zugeführt.
Diese Einrichtung 15 kann beispielsweise als Speichercontroller,
als FIFO-Speicher (FIFO = First In First Out), als Pufferspeicher,
als Datenbus, als Cache-Speicher, etc. ausgebildet sein. Die Daten
in der Einrichtung 15 weisen hier wieder die doppelte Bitbreite
von zum Beispiel 64 Bit auf, da die von den beiden Datenabtastregistern 12, 13 ausgangsseitig
breitgestellten Daten D2' gleichzeitig
in die Einrichtung 15 eingekoppelt werden. Gegenüber den
Datenabtastregistern 12, 13 werden hier die Daten
allerdings mit der normalen, einfachen Frequenz verarbeitet. Die
von der Einrichtung 15 so vorverarbeiteten Daten D2'' werden über Datenleitungen 16 der
Recheneinrichtung 8 zugeführt, die entsprechend einem
jeweiligen Programm die ausgelesenen Daten D2" geeignet weiter bearbeitet.
-
Das
SOC-System 1 in 1 weist somit einen Schreibpfad 17 sowie
einen Lesepfad 18 auf. Über
den Schreibpfad 17 lassen sich Daten D1 von der Recheneinrichtung 8 über den
Schnittstellencontroller 5 in den DDR-Speicher 3 schreiben.
Im Falle des Lesepfades 18 werden Daten D2 aus dem DDR-Speicher 3 über die
Schnittstelle 2 ausgelesen und über die Registereinrichtung 11 und
die Einrichtung 15 in die Recheneinrichtung 8 geschrieben.
Sowohl für
den Schreibpfad 17 als auch für den Lesepfad 18 ist
jeweils eine DLL-Schaltung 19, 20 vorgesehen.
Im Falle des Schreibpfades 17 ist die DLL-Schaltung 19 Bestandteil
des Schnittstellencontrollers 5. Die lesepfadseitige DLL-Schaltung 20 erzeugt
ein verzögertes
Taktsignal CLK2, welches über Taktleitungen 21 in
die Takteingänge
der Datenabtastregister 12, 13 eingekoppelt wird.
Eine DLL-Schaltung 19, 20 weist insbesondere ein
Verzögerungsglied
auf, welches den eingekoppelten Takt CLK geeignet verzögert. Dieses
Verzögerungsglied
kann beispielsweise aus einer Reihe von Dioden bestehen die eine
definierte Zeitverzögerung
bereitstellen.
-
Das
SOC-System 1 weist ferner eine Einrichtung 22 zur
Bereitstellung des internen Taktsignals CLK auf. Diese Takterzeugungseinrichtung 22 ist
vorliegend Bestandteil der Recheneinrichtung 8. Die Takterzeugungseinrichtung 22 erzeugt
ausgangsseitig ein internes Taktsignal CLK, welches über Taktleitungen 23 in
jeweilige Takteingänge
der DLL-Schaltungen 19, 20 eingekoppelt wird.
Der interne Takt CLK wird über
die Schnittstelle 2 auch dem DDR-Speicher 3 zugeführt. Zu
diesem Zwecke wird das Taktsignal CLK zunächst einer Einrichtung 24 zugeführt, welches
ausgangsseitig ein von diesem Taktsignal CLK abgeleitetes Taktsignal
CLK1 sowie ein dazu invertiertes Taktsignal CLK1' erzeugt wird. Das Taktsignal CLK1 und
das dazu invertierte Taktsignal CLK1' werden über Taktleitungen 25, 26 der Schnittstelle 2 zugeführt. Zur
Verbesserung des Gleichklangs von Takt und Datensignal setzt man hier
ein differenzielles Taktsignal CLK1, CLK1' ein, welches im Unterschied zu einem
massebezogenen Taktsignal störfester
ist und welches sich mit höherer Präzision auswerten
lässt.
-
Zusätzlich kann
vorgesehen sein, dass in der Einrichtung 24 auch eine Verzögerung des
Taktsignals CLK erfolgt.
-
In
der DLL-Schaltung 20 wird das eingangsseitig eingekoppelte
Taktsignal CLK geeignet verzögert.
Die DLL-Schaltung 20 wird dabei über ein DQS-Signal DQS gesteuert.
Dieses DQS-Signal wird der DLL-Schaltung 20 über eine
Steuerleitung 27 zugeführt.
Bei jedem Lesezyklus, wird zusätzlich
zu den ausgelesenen Daten D2 auch ein DQS-Signal geliefert, welches
anzeigt, dass an der Schnittstelle 2 gültige Daten D2 zum Auslesen
anliegen. Mittels des Taktes dieses DQS-Signals wird die DLL-Schaltung 20 auf
den Takt des DQS-Signals kalibriert. Die DLL-Schaltung 20 erzeugt
damit ein sowohl vom internen Taktsignal CLK als auch vom DQS-Signal
abgeleitetes Taktsignal, welches den Takteingängen der Datenabtastregister 12, 13 zugeführt wird.
Abhängig
von dem Ausgangssignal CLK2 der DLL-Schaltung 20 wird somit ein
fester Abtastzeitpunkt in den Datenabtastregistern 12, 13 eingestellt.
-
Der
Aufbau und die Funktionsweise einer DLL-Schaltung im allgemeinen
ist vielfach bekannt, so dass darauf nicht näher eingegangen wird. Hinsichtlich
des Aufbaus einer DLL-Schaltung
zur Verwendung in DDR-SDRAM-Speicherbausteinen, bei denen für das Auslesen
von Daten aus dem DDR-Speicher ein Datenabtastregisterpaar vorgesehen
ist, wird auf die US-Patentschrift
US 6,043,694 verwiesen.
Dort ist eine Einrastschaltung beschrieben, die für kalibrierte
DLL-Schaltungen in DDR-SDRAM-Speicherbausteinen verwendet wird. Hinsichtlich
des allgemeinen Aufbaus und der Funktionsweise einer solchen DLL-Schaltung sowie der verwendeten
Abtastregisterpaare, wie sie zum Beispiel in
1 der vorliegenden
Erfindung dargestellt sind, wird die Druckschrift
US 6,043,694 voll inhaltlich in die
vorliegende Patentanmeldung mit einbezogen.
-
Erfindungsgemäß weist
das SOC-System 1 zumindest einen Zähler 28, 29, 30 auf.
Im Ausführungsbeispiel
in 1 sei angenommen, dass der Zähler 28 Bestandteil
des Schnittstellencontrollers 5 ist und als Hardwarezähler ausgebildet
ist. Denkbar wäre
allerdings auch eine softwaremäßige Ausführung des
Zählers,
z.B. als Bestandteil der Recheneinrichtung 8, wie dies
in 1 gestrichelt dargestellt ist. Denkbar wäre auch
ferner, dass der Zähler 30 auch im
DDR-Speicher 3 angeordnet ist (gestrichelt dargestellt).
-
Nachfolgend
sei das erfindungsgemäße Verfahren
bzw. die erfindungsgemäße Anordnung
zum Synchronisieren der DLL-Schaltung 20 beim
Auslesen von Daten aus dem DDR-Speicher 3 anhand von 1 näher erläutert:
Der
DDR-Speicher 3 sendet Lesedaten D2 zusammen mit einem Wechsel
des DQS-Signals zu der Speicherschnittstelle 2. Die Lesedaten
D2 sind während
eines definierten Zeitraums nach einem Wechsel des DQS-Signals DQS
auf dem Daten-Bus bzw. der Speicherschnittstelle 2 gültig. Die
DLL-Schaltung 20 wird zur Bestimmung des Abtastzeitpunktes
verwendet. Die DLL-Schaltung 20 generiert aus dem DQS-Signal
und dem Systemtakt CLK ein Abtastzeitpunkt für die Lesedaten D2 an der Speicherschnittstelle 2.
Der Abtastzeitpunkt soll zum einen synchron zum Systemtakt CLK und
zum anderen innerhalb eines definierten Zeitraums, in welchem die
Lesedaten D2 stabil sind, liegen. Dieser definierte Zeitraum muss
so gewählt
sein, dass er definiert außerhalb
eines sogenannten "verbotenen" Zeitraums liegt,
in dem die Setup-Zeit und die Hold-Zeit liegt. Synchron bedeutet
in diesem Zusammenhang, dass der Abtastzeitpunkt unter Berücksichtigung
der Setup-Zeit vor der nächsten
Taktflanke liegt oder falls dies nicht möglich ist unter Berücksichtigung
der Setup-Zeit vor der nächsten
Taktflanke liegt oder falls dies nicht möglich ist unter Berücksichtigung
der Hold-Zeit nach der nächsten
Taktflanke liegt.
-
Findet über einen
längeren
Zeitraum hinweg kein Lesezugriff auf den DDR-Speicher 3 statt,
so kann es passieren, dass die DLL-Schaltung bzw. der Abtastzeitpunkt
für das
Abtasten der Lesedaten D2 nicht mehr an die aktuelle Signallaufzeit
vom Schnittstellencontroller 5 zum DDR-Speicher 3 und
vom DDR-Speicher 3 zum
Speichercontroller 15 angepasst ist. Infolgedessen können im
Extremfall bei einem nächsten
Lesezugriff Daten im Speichercontroller 15 verloren gehen.
-
Erfindungsgemäß wird daher
ein künstlicher, stimulierter
Speicherzugriff vorgenommen. Mittels dieses stimulierten Speicherzugriffs
wird eine Änderung
des DQS-Signals vom Speichercontroller 15 erzwungen und
damit die DLL-Schaltung 20 nachgeführt bzw. wieder auf den Systemtakt
synchronisiert.
-
Um
zu bestimmen, wann ein solcher stimulierter Speicherzugriff erfolgen
soll, muss feststellen werden, wann der letzte Speicherzugriff erfolgt
ist. Es wird also die maximale Zeit bestimmt, seit der der letzte
Speicherzugriff erfolgt ist. Die Zeitbestimmung erfolgt im vorliegenden
Beispiel anhand der Anzahl der Takte des internen Taktsignals. Zu
diesem Zweck zählt
der Hardwarezähler 28 die
einzelnen Takte des Taktsignals CLK nach dem letzten Zugriff auf
den externen DDR-Speicher 3, der einen Signalwechsel des
DQS-Signals zur Folge hatte.
-
Die
Anzahl der Takte, nach der ein Speicherzugriff erzwungen wird, sollte
abhängig
von der Frequenz des Speichercontrollers 15 sein. Ferner
muss diese Anzahl abhängig
von den in der Applikation möglichen
Gradienten der Umgebungsparameter so gewählt werden, dass die DLL-Schaltung 20 die
Synchronität
zum DDR-Speicher 3 nicht verliert.
-
Typischerweise
wird der maximale Zeitraum und somit die maximale Anzahl der Takte
zwischen zwei Lesezugriffen auf den DDR-Speicher 3, welcher einen
Signalwechsel des DQS-Signals auslöst, für jedes System spezifisch definiert.
Dies hängt
insbesondere davon ab, unter welchen Umgebungsparametern das jeweilige
System operieren soll. Operiert dieses, System in einer Umgebung
mit stark schwankenden Temperaturen bzw. über einen sehr weiten Temperaturbereich,
dann verringert sich dieser Zeitraum zunehmend. Typischerweise sind
im Falle von Systemen mit extern angekoppelten DDR-SDRAM-Speichermodulen
diese dazu ausgelegt, in einem relativ kleinen Temperaturbereich
von 0°C
bis 70°C
zu operieren. Denkbar wären
jedoch auch Systeme, die über
einen sehr viel größeren Temperaturbereich,
beispielsweise von –40°C bis 150°C operieren,
wie dies beispielsweise bei Automotive-Anwendungen der Fall ist.
In diesen Bereichen würde
die DLL-Schaltung sehr viel schneller aus dem Synchronitätsbereich
herauslaufen und müsste
somit sehr häuftig
künstlich
synchronisiert werden, um funtkionsfähig zu bleiben.
-
Hat
der Hardwarezähler 28 die
Anzahl der Takte, die dem maximalen Zeitraum entspricht, gezählt, dann
wird vom Hardwarezähler 28 ein
Steuersignal S1 erzeugt, welches über eine Steuerleitung 31 der
DLL-Schaltung 20 zugeführt
wird. Über
dieses Steuersignal S1 kann optional eine Kalibration der DLL-Schaltung 20 vorgenommen
werden. Die DLL-Schaltung 20 er zeugt ausgangsseitig ein
Statussignal S2, welches über
Leitungen 32 der Einrichtung 15 zugeführt wird.
Dieses Statussignal S2 gibt die aktuelle Einstellung der DLL-Schaltung 20 an.
-
Ferner
wird ein stimulierter Speicherzugriff auf den DDR-Speicher eingeleitet.
Dabei werden Daten aus dem ausgelesen und das DQS-Signal ausgegeben,
was somit eine Änderung
des DQS-Signals zur Folge hat. Infolge dieser Änderung des DQS-Signals synchronisiert
sich die DLL-Schaltung 20 wieder auf den Systemtakt CLK
und der Abtastzeitpunkt ist wieder definiert außerhalb des verbotenen Zeitraums.
-
Die
Speicheradresse, von der die Daten bei diesem künstlich stimulierten Zugriff
gerade ausgelesen wird, kann entweder fest vorgegeben bzw. einstellbar
sein oder nach einem bestimmten Algorithmus ermittelt werden. Ein
solcher Algorithmus kann beispielsweise vorsehen, dass der letzte
Lesezugriff wiederholt wird. Auch kann vorgesehen sein, dass bei
diesem Lesezugriff so genannte "Dummy"-Daten ausgelesen
werden, die also nicht verarbeitet werden.
-
In
einer alternativen Lösung
kann der erzwungene Speicherzugriff auch über den Speichercontroller 15 oder
ein anderes Modul, beispielsweise einen Softwaretreiber 29 in
der Recheneinrichtung 8, eingeleitet werden. Diese lösen beispielsweise
periodisch nach einer einstellbaren oder fest vorgegebenen Zeit
einen Lesezugriff auf den DDR-Speicher 3 aus, unabhängig davon,
ob zwischenzeitlich ein regulärer
Zugriff stattgefunden hat.
-
In
einer weiteren alternativen Lösung
kann vorgesehen sein, dass zukünftige
externe Speicherbausteine eine Schaltung 30 enthalten,
welche nach einer festen oder einstellbaren Anzahl von Takten ein oder
mehrere Synchronisationsimpulse senden. Diese Synchronisationsimpulse
können
entweder periodisch ausgegeben werden oder nach einer definierten,
fest vorgegebenen Anzahl von Takten, nach der kein erneuter Lesezugriff
auf den Speicherbaustein stattgefunden hat.
-
Obwohl
die vorliegende Erfindung vorstehend anhand eines bevorzugten Ausführungsbeispiel
beschrieben wurde, ist sie nicht darauf beschränkt, sondern auf vielfältige Art
und Weise modifizierbar.
-
So
ist die Erfindung insbesondere nicht auf ein SOC-System beschränkt, sondern
lässt sich
auf beliebige Systeme, welche über
eine Schnittstelle mit einem externen Speicherbaustein gekoppelt
sind und welche eine DLL-Schaltung aufweisen, erweitern. Auch wurde
lediglich eine beispielhafte Architektur für das SOC-System angegeben,
welches durch entsprechende Abwandlung und Modifikation sehr einfach
verändert
werden kann, ohne jedoch vom Grundgedanken der vorliegenden Erfindung
abzuweichen. Ferner sei die Erfindung nicht auf die Verwendung eines
speziellen DDR-SDRAM-Speichers beschränkt, sondern lässt sich
auf beliebige Speicherbausteine, die insbesondere eine ähnliche Funktionalität aufweisen,
erweitern. Es versteht sich, dass die angegebenen Zahlenbeispiele
lediglich beispielhaft angegeben wurden und die Erfindung nicht dahingehend
beschränken
sollen.
-
Die
entsprechenden Controller sind vorliegend als programmgesteuerte
Einrichtungen, insbesondere als Mikrocontroller oder Mikroprozessor, ausgebildet.
Jedoch kann die Funktion dieser Elemente zusätzlich oder alternativ auch
durch jede andere programmgesteuerte Einrichtung oder auch durch
eine fest verdrahtete Einrichtung, die ein entsprechendes Programm
aufweist, oder eine programmierbare Schaltung, z.B. eine FPGA- oder PLD-Schaltung,
ersetzt werden.
-
Im
vorstehenden Ausführungsbeispiel
ist jeweils von einem DQS-Signal die Rede. Es versteht sich, dass
darunter insbesondere auch ein DQS-Signalwechsel verstanden werden
kann.
-
Auch
können
statt einem DQS-Signal auch mehrere DQS-Signale, zum Beispiel vier,
vorgesehen sein.
-
Im
vorstehenden Ausführungsbeispiel
wurde die Erfindung anhand eines Lesezugriffs dargelegt, jedoch
kann sie selbstverständlich
zusätzlich
oder alternativ auch für
einen Schreibzugriff verwendet werden.
-
- 1
- SOC-System
- 2
- (Speicher-)
Schnittstelle
- 3
- Speicherbaustein, DDR-SDRAM-Speicher
- 4
- externer
Adress-Daten-Bus
- 5
- Schnittstellencontroller
- 6
- Adressleitungen
- 7
- Datenleitungen
- 8
- Recheneinrichtungen,
programmgesteuerte Ein
-
- richtung
- 9
- Daten-/Steuerleitungen
- 10
- Datenleitungen
- 11
- Registereinrichtung
- 12,
13
- Datenabtastregister
- 14
- Datenleitungen
- 15
- Einrichtung
zur Daten-Vorverarbeitung, Spei
-
- chercontroller
- 16
- Datenleitungen
- 17
- Schreibpfad
- 18
- Lesepfad
- 19
- (schreibpfadseitige)
DLL-Schaltung
- 20
- (lesepfadseitige)
DLL-Schaltung
- 21
- Taktleitungen
- 22
- Takterzeugseinrichtung
- 23
- Taktleitungen
- 24
- Einrichtung
zum Invertieren eines Taktsignals
- 25,
26
- Taktleitungen
- 27
- Steuerleitungen
- 28
- (Hardware-)
Zähler
- 29
- (Software-)
Zähler
- 30
- Zähler im
Speicher
- 31
- Steuerleitung
- 32
- Verbindungsleitung
- D1
- (Geschriebene)
Daten
- A1
- Adresssignale
- D2,
D2', D''
- (Ausgelesene
Daten)
- CLK,
CLK2
- Taktsignale
- CLK1,
CLK1'
- Taktsignale
- S1,
S2
- Steuersignale
- DQS
- DQS-Signal