-
Die
Erfindung betrifft eine Speicheranordnung zur Verarbeitung von Daten,
die eine DLL-Schaltung aufweist. Die Erfindung betrifft ferner ein
Verfahren zur Verarbeitung von Daten.
-
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 werden für die
unterschiedlichsten Applikationen eingesetzt, damit sich der Entwicklungsaufwand
in annehmbaren Grenzen hält
und das System noch in hinreichend großer 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
stehen. Diese externen Speicherbausteine sind über eine externe 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 GBits 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 Prozessoren
genutzt, so dass auf den Aufbau und die Funktionsweise solcher Speicher
nachfolgend nicht näher
eingegangen wird.
-
Damit
die Datenübertragung
der beiden, je Taktschritt ausgelesenen Datenworte wirklich präzise ablä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.
-
Bei
aktuellen Speichertechnologien, wie dem DDR-SDRAM-Speicher, werden
vom Speicherbaustein zusammen mit den ausgelesenen Daten DQS-Signale
bzw. DQS-Signalwechsel übertragen. Diese
DQS-Signale, die auch als Daten-Strobe-Signale bezeichnet werden,
werden gleichzeitig mit dem auszulesenden Daten mit übertragen
und zeigen an, dass ein gültiges
Datum an der Busschnittstelle anliegt und von dort ausgelesen werden
kann. Diese DQS-Signale werden lediglich dann gesendet, wenn ein
gültiges
Datum anliegt. 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. Die Zeiträume
der Hold-Zeit und
der Setup-Zeit definieren eine so genannte "verbotene Zone", in die der Abtastzeitpunkt zum Auslesen
der Lesedaten nicht gelegt werden darf, da es dann zu Datenverlusten
bei einem Auslesen von Daten kommen könnte. Im ersteren Falle würde die
Bandbreite zum externen Speicherbaustein durch die dadurch erforderlichen zusätzlichen
Synchronisationsstufen unerwünschterweise
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, für
viele Anwendungen nicht immer garantiert werden können.
-
Eine
dritte Möglichkeit
besteht darin, den Abtastzeitpunkt der auszulesenden Daten so zu
wählen,
dass dieser stets synchron zum Systemtakt erfolgt. Durch eine über das
DQS-Signal sowie den Systemtakt gesteuerte DLL-Schaltung kann hier
der optimale Abtastzeitpunkt DQS-Signal gewonnen werden, wobei hier
auch darauf geachtet wird, dass sich keine Setup-Zeit- und Hold-Zeit-Verletzung
ergibt. Da nun die DLL-Schaltung über Signaländerungen des DQS-Signals vom
Speicherbaustein gesteuert wird, muss aber 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 wird.
-
Problematisch
daran ist allerdings, dass dieses DQS-Signal lediglich dann gesendet
wird, wenn auch Lesedaten gesendet werden. Werden über einen
längeren
Zeitraum allerdings keine Daten gesendet, dann wird auch kein DQS-Signal
gesendet, welches aber für
die Synchronisation der DLL-Schaltung erforderlich wäre. Dies
kann dazu führen,
dass die DLL-Schaltung beispielsweise bei geänderten Umgebungsparametern
nicht mehr an diese angepasst ist, was insgesamt dazu führt, dass
der optimale Abtastzeitpunkt für
einen Lesezugriff relativ zum Systemtakt verschoben wird, mit der
Folge, dass sich der Abtastzeitpunkt nunmehr in dem "verbotenen Zeitbereich" befindet. Wenn dann
nach längerer
Zeit ein Lesezugriff 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 unter Umständen zu Datenverlusten führen. Dies
gilt es aber möglichst
zu vermeiden.
-
Besonders
problematisch ist dies bei für
Anwendungen im Kraftfahrzeugbereich (Automotive-Anwendungen) ausgelegte
Speicheranordnungen. Während
bei herkömmlichen
Anwendungen, beispielsweise bei so genannten Consumer- oder Industrieanwendungen,
die Laufzeiten eines Taktsignals vom SOC-System zu dem externen
Speicher und zurück
im Allgemeinen kleiner als ein Takt des Systemtaktes ist, sind diese
bei Automotive-Anwendungen
aufgrund der dort vorkommenden, sehr viel stärker variierenden Umgebungsparametern
mitunter deutlich größer. Insbesondere
müssen
Automotive-Anwendungen für
einen relativ großen
Temperaturbereich von –40°C bis 150°C ausgelegt
sein. Aufgrund dieser großen
Temperaturschwankungen kann es dazu kommen, dass die Laufzeiten
von dem SOC-System zu dem Speicher und zurück größer sind als ein Takt des Systemtaktes,
so dass hier der Lesepfad asynchron zu dem Taktpfad betrieben wird. Dies
erschwert die Synchronisation der DLL-Schaltung ungemein, da hier
nie davon ausgegangen werden kann, dass ein Takt des von dem Speicherbaustein
kommenden DQS-Signals nun innerhalb oder außerhalb eines Taktes des Systemtaktes
ist.
-
In
der noch nicht veröffentlichten
Deutschen Patentanmeldung mit dem Aktenzeichen DE 103 33 522.6-55,
die von der selben Anmelderin der vorliegenden Patentanmeldung angemeldet
wurde, wird das obige Problem dadurch gelöst, dass nach einer vorbestimmten
Zeit ein erzwungener Lesezugriff oder ein Dummy-Lesezugriff vorgenommen wird. Dadurch kann
sich die DLL-Schaltung
wieder auf den optimalen Abtastzeitpunkt einstellen. Allerdings
geht dies mit einem schaltungstechnischen Zusatzaufwand einher.
Darüber
hinaus ist dies bei manchen Anwendungen, wie den oben beschriebenen
Automotive-Anwendungen, nicht immer realisierbar.
-
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine Speicheranordnung
und ein Verfahren zur Verarbeitung von Daten anzugeben, bei denen
stets eine sichere Datenübertragung
auch bei instabilen, insbesondere bei Temperatur instabilen Umgebungsparametern
garantiert ist.
-
Erfindungsgemäß wird diese
Aufgabe durch eine Speicheranordnung mit den Merkmalen des Patentanspruchs
1 sowie durch ein Verfahren mit den Merkmalen des Patentanspruchs
13 gelöst.
Demgemäß ist vorgesehen:
- – Eine
Speicheranordnung zur Verarbeitung von Daten, mit einer mit einem
Speicher gekoppelten Schnittstelle, an der bei einem Lesezugriff
auf den Speicher Lesedaten anliegen und an der permanent ein von
einem internen Taktsignal abgeleitetes RDT-Taktsignal, welches synchron
zu den Lesedaten ist, anliegt, mit einer DLL-Schaltung zur Bestimmung
des optimalen Abtastzeitpunktes der Lesedaten, die durch Vergleichen
des internen Taktsignals mit dem RDT-Taktsignal und bei einer Verletzung
der Setup-Zeit und/oder Hold-Zeit durch Verschieben des durch Vergleich
gewonnenen Taktsignals an einem Taktausgang ein verzögertes Taktsignal
bereitstellt, welches ein den Abtastzeitpunkt der an der Schnittstelle
anliegenden Lesedaten synchron zum internen Taktsignal festlegt,
mit mindestens einer Registereinrichtung, die dateneingangsseitig
mit der Schnittstelle verbunden ist und der zum Abtasten der an
der Schnittstelle anliegenden Lesedaten takteingangsseitig das verzögerte Taktsignal
zuführbar
ist. Die Erfindung betrifft ferner ein Verfahren zur Verarbeitung von
Daten. (Patentanspruch 1)
- – Ein
Verfahren zum Auslesen von Daten aus einem Speicher, insbesondere
bei einer erfindungsgemäßen Speicheranordnung,
- • bei
dem bei einem Lesezugriff auf den Speicher Lesedaten an einer Schnittstelle
zu dem Speicher anliegen,
- • bei
dem an der Schnittstelle permanent ein von einem internen Taktsignal
abgeleitetes RDT-Taktsignal, welches synchron zu den Lesedaten ist, anliegt,
- • bei
dem zur Bestimmung des optimalen Abtastzeitpunktes der Lesedaten
eine DLL-Schaltung bereitgestellt wird,
- • bei
dem die DLL-Schaltung durch Vergleichen des internen Taktsignals
mit dem RDT-Taktsignal einen optimalen Abtastzeitpunkt für die Lesedaten bestimmt
und abhängig
von dem bestimmten Abtastzeitpunkt ein verzögertes Takt- signals erzeugt, welches zum Abtakten
der Lesedaten verwendet wird (Patentanspruch 13).
-
Die
der vorliegenden Erfindung zugrunde liegende Idee besteht darin,
mit Hilfe einer modifizierten, funktionserweiterten DLL-Schaltung
den Abtastzeitpunkt für
Lesedaten so zu wählen,
dass er stets synchron zum Systemtakt, also dem intern erzeugten Taktsignal,
ist, so dass eine Synchronisation der gelesenen Lesedaten auf den
Systemtakt nicht mehr erforderlich ist. Zur Synchronisation der
DLL-Schaltung wird dieser zu diesem Zwecke nicht das DQS-Signal zugeführt, sondern
ein so genanntes RDT-Signal (Read Data Takt-Signal), welches direkt
aus dem internen Taktsignal abgeleitet ist. Dieses RDT-Signal wird
dem SOC-System permanent zugeführt,
also auch dann, wenn kein Lesezugriff angefordert wird und damit
keine Lesedaten an der Speicherschnittstelle anliegen.
-
Das
RDT-Signal wird dem SOC-System direkt von dem Speicherbaustein zur
Verfügung
gestellt oder über
eine Feedback-Schleife
aus einem internen oder externen Taktsignal abgeleitet. Das RDT-Signal
beziehungsweise dessen Takt ist stets synchron zu den Lesedaten
und wird auch zusammen mit den Lesedaten übertragen. Das RDT-Signal entspricht
vorzugsweise der Charakteristik des internen Taktsignals, welches
aber einen Laufzeitunterschied zu diesem internen Taktsignal aufweist.
Das RDT-Signal ist in diesem Falle also ein um diesen Laufzeitunterschied
verzögertes
internes Taktsignal. Dieser Laufzeitunterschied trägt der von
dem Taktsignal benötigten
Laufzeit von der Speicherschnittstelle zu dem externen Speicherbaustein
und zurück Rechnung.
Dadurch, dass das RDT-Signal
zusammen mit den ausgelesenen Lesedaten übertragen wird, ist dem RDT-Signal
bereits eine Information über
solche Umgebungsparameter (z.B. die Umgebungstemperatur) inhärent, welche
das RDT-Signal und damit die ausgelesenen Lesedaten gegenüber dem
internen Taktsignal mehr oder weniger stark verzögert. Das RDT-Signal und die
ausgelesenen Lesedaten sind daher synchron zueinander.
-
In
der erfindungsgemäß modifizierten,
funktionserweiterten DLL-Schaltung wird nun dieses RDT-Signal, welches
von dem Speicherbaustein oder der Feedback-Schleife bereitgestellt
wird, mit dem Systemtakt verglichen und so verschoben, dass die
positive Flanke des verschobenen RDT-Signals zum Einen innerhalb
des Zeitfensters liegt, in welchem die Lesedaten gültig sind,
und zum Anderen aber weit genug von der positiven Taktflanke des Systemtaktes
entfernt ist, so dass bei einem Abtakten durch das verschobene RDT-Signal
und einem direkten Weiterverarbeiten der Daten auf der Basis des
Systemtaktes dort keine Setup- bzw. Hold-Zeit-Verletzungen auftreten
können.
Zusätzlich oder
alternativ kann auch der Systemtakt als Grundlage für den Abtasttakt
verwendet werden. Eine wesentliche Randbedingung hierfür ist lediglich,
dass die Länge,
das heißt
die Dauer des aufgrund der Setup- und Hold-Zeit gesperrten Zeitfensters kleiner
ist als das Zeitfenster für
an der Speicherschnittstelle anliegende, gültige Lesedaten. Dies trifft
aber in den meisten Fällen
zu.
-
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 der in den Figuren der Zeichnung
angegebenen Ausführungsbeispiele
näher erläutert. Es
zeigt dabei:
-
1 ein
Blockschaltbild einer erfindungsgemäßen Speicheranordnung zur Verarbeitung
von Daten mit einer Schnittstelle zu einem externen Speicherbaustein
und einstellbaren DLL-Schaltung zur Bereitstellung eines verzögerten Taktsignals;
-
2 Signal-Zeit-Diagramme
des Systemtaktes und des RDT-Taktsignals
zur Veranschaulichung der Funktionsweise der erfindungsgemäßen Speicheranordnung
entsprechend 1.
-
In
allen Figuren der Zeichnung sind gleiche und funktionsgleiche Elemente
und Signale – sofern nichts
anderes angegeben ist – mit
denselben Bezugszeichen versehen worden.
-
1 zeigt
ein Blockschaltbild einer erfindungsgemäßen Speicheranordnung 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
Bus 4 mit der Speicherschnittstelle 2 gekoppelt.
Im vorliegenden Ausführungsbeispiel
enthält
der Bus 4 eine Vielzahl von Adress- und Datenleitungen,
die vorzugsweise bidirektional betreibbar sind, sowie Taktleitungen
zur bidirektionalen Übertragung
von Taktsignalen. Die Speicherschnittstelle 2 enthält entsprechend
eine Vielzahl von Eingangs-/Ausgangsanschlüssen (I/O-Ports) zum Einkoppeln
und Abgreifen von entsprechenden Daten-, Adress- und Taktsignalen.
-
Über die
Speicherschnittstelle 2 sowie den Bus 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
Datenlei tungen 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.
-
Die
entsprechenden Daten D1, die in den DDR-Speicher 3 geschrieben
werden sollen (Schreibdaten, Write Data) werden in 1 von
einer Recheneinrichtung 8 bereitgestellt. Die Recheneinrichtung 8 ist ü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 eine Steuerung. Dabei kann sowohl die Recheneinrichtung 8 den
Schnittstellencontroller 5 steuern. Zusätzlich oder alternativ kann
auch der Schnittstellencontroller 5 die Recheneinrichtung 8 steuern.
Die Recheneinrichtung 8 kann zum Beispiel eine programmgesteuerte
Einrichtung, zum Beispiel einen Mikroprozessor oder Mikrocontroller,
enthalten.
-
Auf
entsprechende Anfragen des SOC-Systems 1 bzw. des Schnittstellencontrollers 5 können auch
Daten D2 aus dem DDR-Speicher 3 ausgelesen werden.
Diese werden dann zunächst über den
Bus 4 auf die Speicherschnittstelle 2 gelegt.
Zusammen mit diesen Daten D2 wird von dem Speicherbaustein 3 auch
ein DQS-Signal DQS mit übertragen.
Dieses DQS-Signal DQS wird hier als so genanntes "Data Valid"-Signal verwendet,
welches also anzeigt, ob bei einem Lesezugriff gültige Lesedaten D2 an der Speicherschnittstelle 2 anliegen.
-
Über unidirektional
betreibbare Datenleitungen 10 werden die ausgelesenen Daten
D2 (Lesedaten, 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,
wobei die Steuerung über
den Takt eines verzögerten
Taktsignals CLK2 erfolgt. Das verzögerte Taktsignal CLK2 wird
in einer eigens dafür vorgesehenen
DLL-Schaltung 20, wie nachfolgend noch beschrieben wird,
erzeugt. Dabei wird in den Takteingang des Datenabtastregisters 12 das
Taktsignal CLK2 und in den Takteingang des Datenabtastregisters 13 das
invertierte Taktsignal CLK2 eingekoppelt. 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
so abgetasteten Daten D2' werden
ausgangsseitig über
Datenleitungen 14 einer Einrichtung 15 zur Datenvorverarbeitung
zugeführt.
In einen Takteingang dieser Einrichtung 15 wird zusätzlich das
interne Taktsignal CLK zugeführt,
mit welchen die Datensignale D2' in
der Einrichtung 15 abgetaktet werden. 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, also 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
verarbeitet.
-
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.
Die DLL-Schaltungen 19, 20 weisen hierfür insbesondere
ein (in 1 nicht dargestelltes) 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, der den Systemtakt
des SOC-Systems 1 darstellt und mit welchem auch der externe
Speicher 3 betrieben werden kann, auf. Diese Takterzeugungseinrichtung 22 ist
im vorliegenden Ausführungsbeispiel
Bestandteil der Recheneinrichtung 8, kann jedoch auch gesondere
Einrichtung im SOC-Systems 1 oder als externe Takterzeugung
ausgebildet sein. Das von der Takterzeugungseinrichtung 22 an
ihrem Taktausgang erzeugte Taktsignal CLK wird über Taktleitungen 23 in
jeweilige Takteingänge
der DLL-Schaltungen 19, 20 sowie der Einrichtung 15 eingekoppelt.
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, welche
aus dem Taktsignal CLK ausgangsseitig differentielle Taktsignale CLK1,
CLK1' erzeugt. Zur
Verbesserung des Gleichklangs von Takt- und Datensignalen setzt
man hier das differenzielles Taktsignal CLK1, CLK1' ein, welches im
Unterschied zu einem nichtdifferentiellen, massebezogenen Taktsignal
störfester
ist und welches sich vorteilhafterweise mit höherer Präzision auswerten lässt. Die
differentiellen Taktsignale CLK1, CLK1' werden über Taktleitungen 25, 26 der
Schnittstelle 2 zugeführt.
-
Zusätzlich oder
alternativ 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 hierfür über ein so genanntes RDT-Signal
RDT (Read Data Takt-Signal) gesteuert.
Dieses RDT-Signal RDT wird der DLL-Schaltung 20 über eine
Steuerleitung 27 zugeführt.
Bei diesem RDT-Signal RDT handelt es sich um ein aus dem internen
Taktsignal CLK bzw. aus den differentiellen Taktsignalen CLK1, CLKl' abgeleitetes Taktsignal
RDT. Im Unterschied zu dem DQS-Signal,
welches lediglich dann gesendet wird, wenn gültige Daten an der Speicherschnittstelle 2 anliegen,
ist das RDT-Signal
RDT permanent vorhanden und wird somit von dem Speicherbaustein 3 über die
Speicherschnittstelle 2 permanent dem SOC-System 1 zur
Verfügung
gestellt. Zur Erzeugung dieses RDT-Signals RDT kann in einer ersten Ausgestaltung
ein Taktsignal von dem Speicher 3 zusammen mit den aus
dem Speicher 3 ausgelesenen Daten D2 über Taktleitungen 28 und
die Schnittstelle 2 zurück
zu dem SOC-System 1 übertragen
werden. Das Taktsignal kann beispielsweise von dem Speicher 3 selbst
bereitgestellt worden sein oder von einer externen Takterzeugungseinrichtung
bereitgestellt werden. Typischerweise wird das Taktsignal aus dem
Systemtakt CLK, CLK1, CLKl' gewonnen.
Zu diesem Zweck wird das Taktsignal CLKl, CLK1' über die
Schnittstelle 2 und den Bus 4 dem Speicher zugeführt (siehe
gestrichelte Leitung 28').
In dem Speicher kann dann das so in den Speicher 3 eingekoppelte
Taktsignal beispielsweise über
eine PLL-Schaltung 34 in geeigneter Weise verzögert werden
und anschließend
zusammen mit den aus dem Speicherbaustein 3 ausgelesenen
Daten D2 über
die Taktleitungen 28 zurück zu dem SOC-System 1 übertragen werden.
-
Alternativ
kann zur Erzeugung des RDT-Signals RDT auch eine Feedback-Schleife 30 bereitgestellt
werden, die die Laufzei ten, welche das Taktsignal CLK1, CLK1' zu dem Speicherbaustein 3 und
zurück
benötigen
würde,
nachbildet. Die Taktleitungen 28, 28', die PLL-Schaltung 34 und
die Feedback-Schleife 30 sind
in 1 nur angedeutet.
-
Mittels
des Taktes dieses RDT-Signals RDT wird die DLL-Schaltung 20 auf den Takt des
RDT-Signals RDT kalibriert. Die DLL-Schaltung 20 stellt
an ihrem Taktausgang 33 damit ein sowohl vom internen Taktsignal
CLK als auch vom RDT-Signal RDT abgeleitetes und verzögertes Taktsignal
CLK2 bereit, welches – wie
bereits oben beschrieben wurde – den Takteingängen der
Datenabtastregister 12, 13 zugeführt wird.
Abhängig
von dem verzögerten
Taktsignal CLK2 wird somit ein fester, optimaler Abtastzeitpunkt in
den Datenabtastregistern 12, 13 eingestellt, der insbesondere
unabhängig
von Schwankungen der Umgebungsparameter, insbesondere der Umgebungstemperatur,
ist, da diese Parameter bereits im RDT-Signal RDT, welches für die Erzeugung
des verzögerten
Taktsignals CLK2 verwendet wird, mit berücksichtigt wurde.
-
Der
Aufbau und die Funktionsweise einer DLL-Schaltung
20 im
Allgemeinen, wie sie in dem SOC-System der
1 verwendet
wird, 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 eingangs erwähnte 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 diese Druckschrift
US 6,043,694 voll inhaltlich
in die vorliegende Patentanmeldung mit einbezogen.
-
Nachfolgend
sei das erfindungsgemäße Verfahren
bzw. die erfindungsgemäße Anordnung
zum Synchronisieren der DLL-Schaltung 20 beim
Auslesen von Lesedaten aus dem DDR-Speicher 3 anhand des
Blockschaltbildes in 1 und der Signal-Zeit-Diagramme in 2 näher erläutert:
Der
Speicherbaustein 3 sendet gültige Lesedaten D2 zusammen
mit einem Wechsel des DQS-Signals DQS zu der Speicherschnittstelle 2.
Zusätzlich
erhält die
Speicherschnittstelle 2 ein RDT-Signal RDT, welches synchron
zu den an der Speicherschnittstelle 2 anliegenden Lesedaten
D2 und dem DQS-Signal DQS ist und welches- wie vorstehend beschrieben – der Speicherschnittstelle 2 entweder
von dem Speicherbaustein 3 (über die Taktleitungen 28)
direkt, von dem Speicherbaustein 3 aus dem internen Takt
CLK1, CLK1' (über die
Taktleitungen 28, 28' und ggfs. eine PLL-Schaltung 34)
oder über
eine Feedback-Schleife 30 zugeführt wird.
Die von dem Speicherbaustein 3 übertragenen Lesedaten D2 sind während eines
definierten Zeitraumes nach einem Wechsel des DQS-Signals auf dem
Datenbus 4 bzw. der Speicherschnittstelle 2 gültig (siehe 2A).
-
Die
DLL-Schaltung 20 wird zur Bestimmung des optimalen Abtastzeitpunktes
zum Takten und damit zum Auslesen der Lesedaten D2 verwendet. Die DLL-Schaltung 20 generiert
aus dem über
die Speicherschnittstelle 2 eingekoppelten Takt des RDT-Signals RDT sowie
dem internen Taktsignal CLK einen Abtastzeitpunkt zum Abtasten der
an der Speicherschnittstelle 2 gleichzeitig anliegenden
Lesedaten D2.
-
Der
Abtastzeitpunkt zum Abtasten der Lesedaten soll zum Einen synchron
zum Systemtakt CLK und zum Anderen innerhalb eines definierten zugelassenen
Zeitraums, in welchem die Lesedaten D2 stabil sind, liegen. Dieser
definierte Zeitraum muss so gewählt
sein, dass er definiert außerhalb
eines so genannten "verbotenen" Zeitraums VZ liegt,
in dem die Setup-Zeit SZ und die Hold-Zeit HZ liegt. Synchron bedeutet
in diesem Zusammen hang, dass der Abtastzeitpunkt unter Berücksichtigung
der Setup-Zeit ST vor der nächsten
Taktflanke des internen Taktsignals CLK liegt oder, falls dies nicht
möglich
ist, unter Berücksichtigung
der Hold-Zeit HZ nach der nächsten
Taktflanke des internen Taktsignals CLK liegt.
-
In
einer alternativen Variante wäre
es auch möglich,
das RDT-Signal RDT
in einem ersten Schritt zum Beispiel um eine ¼-Taktperiode zu verschieben und die Taktflanken
somit in die Mitte des Zeitfensters ZF für die Lesedaten D2 zu legen
(siehe 2B). Die Verschiebung um eine ¼-Taktperiode
kann in der DLL-Schaltung 20 durch Ausmessen der Taktperiode des
internen Taktsignals CLK oder des RDT-Taktsignals RDT und durch
entsprechende skalierbare Ketten aus Verzögerungselementen realisiert
werden.
-
In
einem weiteren Verfahrensschritt wird der so verschobene Takt des
RDT-Taktsignals RDT von der DLL-Schaltung 20 nochmals so
verschoben, dass er außerhalb
des verbotenen Zeitfensters VZ um die positive Taktflanke des Systemtaktes
CLK liegt. Im Ergebnis erhält
man auf diese Weise ein verschobenes Taktsignal CLK2, mit welchem
die Lesedaten D2 innerhalb ihres Gültigkeitsbereiches, das heißt außerhalb
des durch die Setup- und Hold-Zeit SZ, HZ vorgegebenen verbotenen
Zeitbereiches VZ, und zugleich synchron zum Systemtakt CLK abtaktet werden
können.
-
Verschieben
sich nun die Takte des RDT-Taktsignals RDT und des Systemtaktes
CLK relativ zueinander, beispielsweise aufgrund von sich ändernden
Temperaturverhältnissen,
die sich insbesondere durch veränderte
Laufzeiten des RDT-Taktsignals RDT äußern, so wird der zum Abtasten
der Lesedaten D2 verwendete Takt CLK2 entsprechend mit verschoben,
falls er mit dem verbotenen Zeitfenster VZ um den Systemtakt CLK
kollidiert (2C).
-
Diese
Vorgehensweise kann immer weiter fortgesetzt werden, allerdings
nur solange, bis der verzögerte
Takt CLK2 zum Abtasten der Lesedaten D2 aus dem Zeitfenster ZF für die gültigen Lesedaten D2
herausfällt.
In diesem Falle wird das verzögerte Taktsignal
CLK2 zum Abtasten der Lesedaten D2 von der modifizierten DLL-Schaltung 20 jeweils
auf die andere Seite des verbotenen Zeitfensters VZ gelegt (siehe 2D). Man verliert so zwar einen Takt für das Auslesen
der Lesedaten D2. Jedoch wird auf diese Weise verhindert, dass es
zu einem Datenverlust kommt. Gleichzeitig kommt es so zu keinerlei
Verletzungen von Setup- und Hold-Zeiten SZ, HZ. Dieser Mechanismus
zur Erzeugung und Anpassung des verzögerten Taktsignals CLK2, also
zunächst
das Verschieben dieses Taktsignals CLK2 und vor einem Verlassen
des Zeitfensters ZF für
die Lesedaten D2 das Springen auf die andere Seite des Zeitfensters ZF,
funktioniert selbstverständlich
in beide Richtungen.
-
Vorzugsweise
erfolgt das Verändern
beziehungsweise das Springen des verzögerten Taktsignals CLK2 Idealerweise
zwischen zwei Lesezugriffen. Dies stellt typischerweise kein Problem
dar, da im Vergleich zur Dauer eines Lesezugriffes die Verschiebung
von Systemtakt CLK und RDT-Takt RDT zueinander relativ langsam stattfinden.
Das Springen des verzögerten
Taktsignals CLK2 zwischen zwei Lesezugriffen kann zum Beispiel dadurch
realisiert werden, dass der Schnittstellencontroller 5 mittels
eines Steuersignals CTR der DLL-Schaltung 20 signalisiert,
dass ein Lesezugriff durchgeführt
werden soll und zu welchem Zeitpunkt dieser Lesezugriff durchgeführt wird.
Denkbar wären
hier natürlich
auch andere Implementierungen und Lösungen.
-
Da
die Daten D1, D2 zwischen dem SOC-System 1 und dem Speicherbaustein 3 bidirektional übertragen
werden können,
müssen
die Eingänge
der Speicherschnittstelle 2 für die Lesedaten D2 und die
DQS-Signale DQS auf einen festen Wert gelegt werden, solange sie
nicht über
den Speicherbaustein 3 betrieben werden. Die Datenabtastregister 12, 13 können zum
Beispiel über einen
(in 1 nicht dargestellten) Multiplexer rückgekoppelt
werden und vom Schnittstellencontroller 5 gesteuert werden,
um während
eines Lesezugriffs neue Lesedaten D2 aufzunehmen. Die Steuerung
dieses Multiplexers durch den Schnittstellencontroller 5 ist
möglich,
da dieser zwar asynchron zum RDT-Signal RDT betrieben wird, der
maximale Zeitversatz zu dem internen Takt CLK jedoch relativ genau
abschätzbar
ist. Die Lesedaten D2 und DQS-Signale DQS vom Speicherbaustein 3 können natürlich auch
direkt, beispielsweise über
den Schnittstellencontroller 5, maskiert werden, solange
keine Lesezugriffe durchgeführt werden.
-
Mittels
des verzögerten
Taktsignals CLK2 werden die Lesedaten D2 in den Datenabtastregistern 12, 13 abgetastet.
Zusätzlich
könnte
bei einem Lesezugriff hierfür
auch das DQS-Signal DQS verwendet werden, welches den Datenabtastregistern 12, 13 signalisiert,
wann gültige
Lesedaten D2 an der Speicherschnittstelle 2 anliegen und
wann diese bereit sind, in die Datenabtastregister 12, 13 eingelesen zu
werden.
-
Am
Ausgang der Datenabtastregister 12, 13 liegen
die Lesedaten D2' dann
synchron zum Systemtakt CLK vor und können daher auch in der Zeitdomäne des Systemtaktes
CLK weiter verarbeitet werden. Zu diesem Zwecke können diese
Lesedaten D2 (zusammen mit den DQS-Signalen DQS) beispielsweise
in der Einrichtung 15 zur Datenvorverarbeitung erneut mit
dem Systemtakt CLK abtaktet werden. Hierfür kann die Einrichtung 15 mit
einem weiteren Datenabtastregister 29 ausgestattet sein.
Alternativ können
die synchronen Lesedaten D2' nun auch
direkt weiterverarbeitet werden und erst danach mit dem Systemtakt
CLK abgetaktet werden.
-
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 Speicherschnittstelle 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 können, erweitern.
-
Es
versteht sich von selbst, 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 als 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 dazu ausgelegt ist, ein entsprechendes
Programm auszuführen,
oder eine programmierbare Schaltung, z.B. eine FPGA- oder PLD-Schaltung,
ersetzt werden.
-
Im
vorstehenden Ausführungsbeispiel
ist jeweils von DQS-Signalen
und RDT-Signalen die Rede. Es versteht sich, dass darunter insbesondere auch
ein Signalwechsel dieser Signale, also eine aufsteigende Flanke
und/oder eine abfallende Flanke des DQS-Signals bzw. RDT-Signals
verstanden werden kann. Auch können
statt einem einzigen DQS-Signal bzw. RDT-Signal auch mehrere DQS-Signale und/oder
mehrere RDT-Signale, zum Beispiel vier, vorgesehen sein.
-
- 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 Einrich
-
- tung
- 9
- Daten-/Steuerleitungen
- 10
- Datenleitungen
- 11
- Registereinrichtung
- 12,
13
- Datenabtastregister
- 14
- Datenleitungen
- 15
- Einrichtung
zur Daten-Vorverarbeitung, Speicher
-
- controller
- 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
- Verbindungsleitungen,
Taktleitungen
- 29
- Datenabtastregister
- 30
- Feedback-Schleife
- 31
- Steuerleitung
- 32
- Taktausgang
- 33
- Taktausgang
- 34
- PLL-Schaltung
im Speicher
- A1
- Adresssignale
- CLK
- Taktsignal,
Systemtakt
- CLK1,
CLK1'
- (aus
dem Systemtakt abgeleitete) differentielle
-
- Taktsignale
- CLK2
- verzögertes Taktsignal
- CTR
- Steuersignal
- D1
- Schreibdaten
- D2
- (an
der Speicherschnittstelle anliegende) Leseda
-
- ten
- D2'
- (auf
den optimalen Abtastzeitpunkt synchronisier
-
- te)
Lesedaten
- D2''
- (weiter
verarbeitete) Lesedaten
- DQS
- DQS-Signal
- HZ
- Hold-Zeit
- SZ
- Setup-Zeit
- VZ
- verbotenes
Zeitfenster
- ZF
- Zeitfenster