-
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 Verzogerung 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 Zuverlassigkeit, kleinere Abmessungen, geringerer Energiebedarf, größere Verarbeitungsgeschwindigkeit und geringerer Preis von integrierten Schaltungen fuhren zu einer immer höheren Integration und zur Entwicklung von hoch und hochst 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 fur 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 Flexibilitatsgrü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 uber 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 konnen 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 hoheren Frequenz ubertragen werden, das heißt, ein DDR-SDRAM-Speicher operiert bei einem Bustakt von 100 MHz effektiv mit 200 MHz und die Ubertragungsrate 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 Datenubertragungsrate 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 Datenubertragung 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 Synchronitat 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 gultiges Datum anliegt. Mit Hilfe dieses DQS-Signals wird das auszulesende Datum uber die Busschnittstelle getaktet ausgelesen.
-
Aufgrund des asynchronen Charakters dieses auszulesenden Datums und der zugehorigen 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 moglichst 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 konnte. Im ersteren Falle würde die Bandbreite zum externen Speicherbaustein durch die dadurch erforderlichen zusatzlichen 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 Veranderungen 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 uber einen längeren Zeitraum allerdings keine Daten gesendet, dann wird auch kein DQS-Signal gesendet, welches aber fur die Synchronisation der DLL-Schaltung erforderlich ware. Dies kann dazu fuhren, dass die DLL-Schaltung beispielsweise bei geanderten Umgebungsparametern nicht mehr an diese angepasst ist, was insgesamt dazu fuhrt, dass der optimale Abtastzeitpunkt fur einen Lesezugriff relativ zum Systemtakt verschoben wird, mit der Folge, dass sich der Abtastzeitpunkt nunmehr in dem ”verbotenen Zeitbereich” befindet. Wenn dann nach langerer Zeit ein Lesezugriff auf den externen Speicher durchgefuhrt 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 fuhren. Dies gilt es aber möglichst zu vermeiden.
-
Besonders problematisch ist dies bei für Anwendungen im Kraftfahrzeugbereich (Automotive-Anwendungen) ausgelegte Speicheranordnungen. Wahrend 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.
-
Aus Xilinx Application Note XAPP750 (v1.0); QDR II SRAM Local Clocking Interface for Virtex-II Pro Devices, 24.05.2004, www.xilinx.com ist ein über eine Schnittstelle mit einem QDR SRAM Speicher gekoppelter FPGA bekannt, bei welchem bei einem Lesezugriff ein von dem Speicher übermitteltes Taktsignal mit Hilfe einer internen Verzögerungsschaltung verzögert wird. Dieses verzögerte Taktsignal dient anschließend als Taktsignal einer Registereinrichtung.
-
Aus der
US 6 487 648 B1 ist eine programmierbare logische Schaltung (PLD) bekannt, welche zur Steuerung eines Speichers (SDRAM) ausgebildet ist. Zur Beseitigung von Signallaufzeitunterschieden zwischen einem Systemtakt, einem Taktsignal des PLDs und einem Taktsignal des SDRAMs sind zwei DLL-Schaltungen vorgesehen.
-
Aus der
US 2003/0151433 A1 ist eine integrierte Halbleiterschaltung mit DLL-Schaltungen bekannt, welche unter anderem zwei Dummy-Puffer aufweist, die eine Verzögerungs- oder Laufzeit identisch der eines Ausgangs- bzw. Eingangspuffers der Schaltung aufweisen.
-
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 12 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, wobei über die Schnittstelle auch ein DQS-Taktsignal in die Registereinrichtung einkoppelbar ist, wobei das DQS-Taktsignal anzeigt, dass gültige Lesedaten an der Schnittstelle anliegen (Patentanspruch 1).
-
Die Erfindung betrifft ferner ein Verfahren zur Verarbeitung von Daten.
- – 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 Taktsignals erzeugt, welches zum Abtakten der Lesedaten verwendet wird,
– bei dem über die Schnittstelle auch ein DQS-Taktsignal eingekoppelt wird, wobei das DQS-Taktsignal (DQS) anzeigt, dass gültige Lesedaten (D2) an der Schnittstelle (2) anliegen (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 erfindungsgemaß 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 hierfur 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 fur an der Speicherschnittstelle anliegende, gültige Lesedaten. Dies trifft aber in den meisten Fallen zu.
-
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind Gegenstand der weiteren Unteranspruche 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 erfindungsgemaßen Speicheranordnung zur Verarbeitung von Daten mit einer Schnittstelle zu einem externen Speicherbaustein und einstellbaren DLL-Schaltung zur Bereitstellung eines verzogerten Taktsignals;
-
2 Signal-Zeit-Diagramme des Systemtaktes und des RDT-Taktsignals zur Veranschaulichung der Funktionsweise der erfindungsgemaß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 erfindungsgemaß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 uber einen Bus 4 mit der Speicherschnittstelle 2 gekoppelt. Im vorliegenden Ausfuhrungsbeispiel enthält der Bus 4 eine Vielzahl von Adress- und Datenleitungen, die vorzugsweise bidirektional betreibbar sind, sowie Taktleitungen zur bidirektionalen Ubertragung von Taktsignalen. Die Speicherschnittstelle 2 enthalt entsprechend eine Vielzahl von Eingangs-/Ausgangsanschlussen (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 konnen. Ü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.
-
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. Zusatzlich 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) zunachst einer Registereinrichtung 11 zum Abtasten dieser Daten D2 zugeführt. Im Falle einer DDR-Speicherarchitektur enthalt 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 zugefuhrt, 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. Gegenuber 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 uber Datenleitungen 16 der Recheneinrichtung 8 zugefuhrt, 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 fur 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 Ausfuhrungsbeispiel 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 zugefuhrt. 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 Prazision 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 Verzogerung des Taktsignals CLK erfolgt.
-
In der DLL-Schaltung 20 wird das eingangsseitig eingekoppelte Taktsignal CLK geeignet verzögert. Die DLL-Schaltung 20 wird hierfur ü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, CLK1' 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 uber die Speicherschnittstelle 2 permanent dem SOC-System 1 zur Verfugung 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, CLK1' gewonnen. Zu diesem Zweck wird das Taktsignal CLK1, 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 uber 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 Laufzeiten, 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 zugefuhrt wird. Abhangig 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 fur die Erzeugung des verzögerten Taktsignals CLK2 verwendet wird, mit berucksichtigt 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 naher eingegangen wird. Hinsichtlich des Aufbaus einer DLL-Schaltung zur Verwendung in DDR-SDRAM-Speicherbausteinen, bei denen fur 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 erfindungsgemaße Verfahren bzw. die erfindungsgemaß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. Zusatzlich erhalt 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 uber eine Feedback-Schleife 30 zugefuhrt wird. Die von dem Speicherbaustein 3 ubertragenen Lesedaten D2 sind wahrend 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 Zusammenhang, 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 Gultigkeitsbereiches, 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 konnen.
-
Verschieben sich nun die Takte des RDT-Taktsignals RDT und des Systemtaktes CLK relativ zueinander, beispielsweise aufgrund von sich andernden 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 fur 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 verzogerten 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 verzogerten 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 durchgefuhrt wird. Denkbar wären hier naturlich auch andere Implementierungen und Losungen.
-
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 konnen zum Beispiel über einen (in 1 nicht dargestellten) Multiplexer rückgekoppelt werden und vom Schnittstellencontroller 5 gesteuert werden, um wahrend 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 konnen natürlich auch direkt, beispielsweise über den Schnittstellencontroller 5, maskiert werden, solange keine Lesezugriffe durchgefuhrt werden.
-
Mittels des verzögerten Taktsignals CLK2 werden die Lesedaten D2 in den Datenabtastregistern 12, 13 abgetastet. Zusätzlich könnte bei einem Lesezugriff hierfur 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 Zeitdomane des Systemtaktes CLK weiter verarbeitet werden. Zu diesem Zwecke konnen 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 beschrankt, 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 konnen, 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 auszufuhren, 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 konnen statt einem einzigen DQS-Signal bzw. RDT-Signal auch mehrere DQS-Signale und/oder mehrere RDT-Signale, zum Beispiel vier, vorgesehen sein.
-
Bezugszeichenliste
-
- 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 Einrichtung
- 9
- Daten-/Steuerleitungen
- 10
- Datenleitungen
- 11
- Registereinrichtung
- 12, 13
- Datenabtastregister
- 14
- Datenleitungen
- 15
- Einrichtung zur Daten-Vorverarbeitung, Speichercontroller
- 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) Lesedaten
- D2'
- (auf den optimalen Abtastzeitpunkt synchronisierte) Lesedaten
- D2''
- (weiter verarbeitete) Lesedaten
- DQS
- DQS-Signal
- HZ
- Hold-Zeit
- SZ
- Setup-Zeit
- VZ
- verbotenes Zeitfenster
- ZF
- Zeitfenster