-
Die
vorliegende Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff
des Patentanspruchs 1, d. h. eine Anordnung mit
- – einer
Speichereinrichtung zum Speichern von Daten, und
- – einer
programmgesteuerten Einheit mit einem Memory Interface zum Auslesen
von Daten aus der Speichereinrichtung,
- – wobei
der Speichereinrichtung ein erstes Taktsignal zugeführt wird,
und
- – wobei
die Speichereinrichtung dann, wenn das Memory Interface einen Lesezugriff
auf die Speichereinrichtung durchführt, die aus der Speichereinrichtung
angeforderten Daten im Takt eines auf dem ersten Taktsignal basierenden
zweiten Taktsignals, und das zweite Taktsignal zum Memory Interface überträgt.
-
Eine
solche Anordnung ist in 3 veranschaulicht. Dabei wird
die Speichereinrichtung durch ein DDR SDRAM gebildet, und ist mit
dem Bezugszeichen 280 bezeichnet, und wird die programmgesteuerte
Einheit durch einen Mikrocontroller gebildet, und ist mit dem Bezugszeichen 200 bezeichnet.
-
Der
Mikrocontroller 200 enthält eine Taktsignalerzeugungseinrichtung 210,
ein Memory Interface 220, und eine Vielzahl von weiteren
Komponenten, wie beispielsweise eine CPU, interne Speichereinrichtungen,
einen DMA-Controller, einen Analog/Digital-Wandler etc., die in
der 3 jedoch nicht gezeigt sind und hier auch nicht
näher beschrieben
werden.
-
Durch
die Taktsignalerzeugungseinrichtung 210 wird, wie die Bezeichnung
schon andeutet, ein (erstes) Taktsignal erzeugt.
-
Das
Memory Interface 220 dient zur Ausführung von Lese- und Schreibzugriffen
auf die Speichereinrichtung 280, wobei vor liegend jedoch
nur die Lesezugriffe interessieren, und hiervon auch nur wieder die
Entgegennahme und Weiterverarbeitung oder Weiterleitung der Daten,
die bei einem Lesezugriff auf die Speichereinrichtung 280 von
der Speichereinrichtung zum Mikrocontroller 200 übertragen
werden.
-
Der
Mikrocontroller 200 und die Speichereinrichtung 280 sind über eine
Vielzahl von Adreß-,
Daten-, und Steuerleitungen miteinander verbunden, von welchen in
der 3 jedoch nur eine erste Taktsignalleitung 291,
eine zweite Taktsignalleitung 292, und ein Datenbus 293 gezeigt
sind.
-
Über die
erste Taktsignalleitung 291 wird das von der Taktsignalerzeugungseinrichtung 210 erzeugte
erste Taktsignal an die Speichereinrichtung 280 übertragen. Über den
Datenbus 293 werden Daten, die das Memory Interface 220 durch
einen Lesezugriff auf die Speichereinrichtung 280 angefordert hat,
von der Speichereinrichtung 280 zum Memory Interface 220 übertragen. Über die
zweite Taktsignalleitung 292 wird von der Speichereinrichtung 280 ein sogenanntes
DQS-Signal zum Memory Interface 220 übertragen.
-
Das
DQS-Signal ist ein Taktsignal, das nur während der Übertragung von Daten an den
Mikrocontroller 200 gesendet wird, und dem Mikrocontroller
die Zeitpunkte signalisiert, zu welchen die Speichereinrichtung 280 neue
Daten auf den Datenbus 293 ausgibt. Dabei ist es so, daß bei jeder
steigenden Flanke und bei jeder fallenden Flanke des DQS-Signals
neue Daten auf den Datenbus ausgegeben werden. Der Mikrocontroller 200 verwendet
das DQS-Signal, um die Zeitpunkte festzulegen, zu welchen er die
ihm über
den Datenbus 293 zugeführten
Daten in hierfür
vorgesehene Zwischenspeichereinrichtungen übernimmt bzw. abtastet.
-
Das
DQS-Signal ist ein synchron zum ersten Taktsignal verlaufendes Taktsignal.
Es weist die selbe Frequenz auf, ist jedoch aufgrund der Laufzeit
des ersten Taktsignals von der Taktsignalerzeugungseinrichtung 210 zur
Speichereinrichtung 280 gegenüber dem ersten Taktsignal phasenverschoben
und wird daher im folgenden als zweites Taktsignal bezeichnet.
-
Der
Vollständigkeit
halber sei angemerkt, daß anstelle
der einen zweiten Taktsignalleitung 292 auch mehrere zweite
Taktsignalleitungen 292 vorgesehen sein können, über welche
mehrere DQS-Signale übertragen
werden. Dies wird gemacht, weil die Leitungen des Datenbusses 293 einen
unterschiedlichen Verlauf und eine unterschiedliche Länge aufweisen
können,
und weil die über
den Datenbus 293 übertragenen
Daten aus diesem Grund unterschiedlich lange Signallaufzeiten aufweisen
können
und daher durch den Mikrocontroller 200 zu unterschiedlichen
Zeitpunkten abgetastet werden müssen.
Durch das Vorsehen von mehreren zweiten Taktsignalleitungen 292 ist
es möglich,
daß unterschiedliche
Verläufe
und/oder Längen
aufweisende Leitungen des Datenbusses 293 jeweils eine
eigene, parallel zu den jeweiligen Datenbus-Leitungen verlaufende
zweite Taktsignalleitung 292 zugeordnet wird, so daß sämtliche
Daten unabhängig
von ihrer Laufzeit zum optimalen Zeitpunkt abgetastet werden können.
-
Durch
die in der 3 gezeigte und vorstehend beschriebene
Anordnung lassen sich pro Zeiteinheit sehr große Datenmengen übertragen.
-
Allerdings
erfordert dies einen kompliziert aufgebauten Mikrocontroller 200.
Insbesondere kann weder das von der Taktsignalerzeugungseinrichtung 220 erzeugte
erste Taktsignal noch das von der Speichereinrichtung 280 zum
Memory Interface 220 übertragene
zweite Taktsignal auch als Taktsignal für die Komponenten des Memory
Interface 220 verwendet werden, die die Übertragung
von Daten von der Speichereinrichtung 280 zum Mikrocontroller 200 überwachen
und/oder die die Weiterleitung der von der Speichereinrichtung 280 erhaltenen
und zunächst
in Zwischenspeichereinrichtungen zwischengespeicherten Daten steuern.
Zumindest würde
es einen erheblichen Aufwand erfordern, wenn das erste Taktsignal
oder das zweite Taktsignal hierfür
verwendet werden würde.
-
Das
zweite Taktsignal kann hierfür
nicht verwendet werden, weil es nur übertragen wird, während die
Speichereinrichtung 280 Daten zum Memory Interface 220 überträgt.
-
Das
erste Taktsignal kann hierfür
nicht oder nur unter Inkaufnahme von Nachteilen verwendet werden,
weil es eine unbestimmte und zudem zeitlich variierende Phasenverschiebung
gegenüber
dem Takt aufweist, mit welchem die Übertragung von Daten zum Mikrocotroller
erfolgt, und mit welchem diese Daten in die Zwischenspeichereinrichtungen
des Memory Interface 220 übernommen werden. Verantwortlich
für diese
Phasenverschiebung sind insbesondere die Laufzeit des von der Taktsignalerzeugungseinrichtung 210 über die
erste Taktsignalleitung 291 zur Speichereinrichtung 280 übertragenen ersten
Taktsignals und die Laufzeit der von der Speichereinrichtung 280 über die
zweite Taktsignalleitung 292 und den Datenbus 293 zum
Memory Interface 220 übertragenen
Signale und Daten, sowie die Abhängigkeit
dieser Laufzeiten vom Systemaufbau und sich zeitlich verändernden
Parametern wie insbesondere der Temperatur. Die durch die genannten
oder sonstige Einflüsse
verursachten Phasenverschiebungen und insbesondere die zeitliche
Veränderung dieser
Phasenverschiebungen hätten
ein nicht deterministisches Verhalten des Memory Interface zur Folge.
-
Eine
weitere Anordnung mit einer Speichereinrichtung und einer programmgesteuerten
Einheit ist aus der
US
5 805 873 A bekannt. Dieser Anordnung sind jedoch keine
Anregungen entnehmbar, wie die vorstehend angesprochenen Probleme
beseitigt werden können.
-
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die Anordnung
gemäß dem Oberbegriff
des Patentanspruchs 1 derart weiterzubilden, daß diese ein einfach aufgebautes
und sich deterministisch verhaltendes Memory Interface aufweist.
-
Diese
Aufgabe wird erfindungsgemäß durch die
in Patentanspruch 1 beanspruchte Anordnung gelöst.
-
Das
Memory Interface einer solchen Anordnung kann einfach aufgebaut
sein und zeigt dennoch unter allen Umständen ein deterministisches
Verhalten. Insbesondere haben variierende Laufzeiten des ersten
und des zweiten Taktsignals keinen negativen Einfluß auf die
Funktion und das Verhalten des Memory Interface.
-
Vorteilhafte
Weiterbildungen der Erfindung sind den Unteransprüchen, der
folgenden Beschreibung, und den Figuren entnehmbar.
-
Die
Erfindung wird nachfolgend anhand eines Ausführungsbeispiels unter Bezugnahme
auf die Figuren näher
erläutert.
Es zeigen
-
1 den
prinzipiellen Aufbau der im folgenden näher beschriebenen Anordnung,
-
2 den
Aufbau eines Memory Interface einer in der Anordnung gemäß 1 enthaltenen programmgesteuerten
Einheit, und
-
3 den
Aufbau einer herkömmlichen
Anordnung mit einer Speichereinrichtung und einer programmgesteuerten
Einheit.
-
Bei
der im folgenden beschriebenen Anordnung wird die programmgesteuerte
Einheit durch einen Mikrocontroller gebildet, und die Speichereinrichtung
durch ein DDR SDRAM.
-
Die
programmgesteuerte Einheit könnte auch
durch eine andere Einrichtung gebildet werden, die Softwareprogramme
ausführt,
beispielsweise durch einen Mikroprozessor oder durch einen Signalprozessor.
-
Darüber hinaus
besteht auch keine Einschränkung
darauf, daß die
Speichereinrichtung durch ein DDR SDRAM (double data rate SDRAM) gebildet
wird. Die Speichereinrichtung könnte
auch durch eine beliebige andere Speichereinrichtung gebildet werden,
die sich wie ein DDR SDRAM oder ähnlich
verhält,
beispielsweise durch SDR SDRAM (single data rate SDRAM).
-
Der
prinzipielle Aufbau der hier vorgestellten Anordnung ist in 1 gezeigt.
Die in der 1 gezeigte Anordnung besteht
aus einem Mikrocontroller 100, einer Speichereinrichtung 180,
und diese Einrichtungen miteinander verbindenden Verbindungsleitungen
und Bussen.
-
Die
Speichereinrichtung 180 entspricht der Speichereinrichtung 280 der
in der 3 gezeigten Anordnung. Sie ist wie die Speichereinrichtung 280 aufgebaut
und arbeitet auch wie diese.
-
Der
Mikrocontroller 100 enthält eine Taktsignalerzeugungseinrichtung 110,
ein Memory Interface 120, und eine Vielzahl von weiteren
Komponenten wie beispielsweise eine CPU, interne Speichereinrichtungen,
einen DMA-Controller, einen Analog/-Digital-Wandler etc., die in der 1 jedoch
nicht gezeigt sind und auch nicht näher beschrieben werden.
-
Die
Taktsignalerzeugungseinrichtung 110 entspricht der Taktsignalerzeugungseinrichtung 210 der
in der 3 gezeigten Anordnung und erzeugt ebenso wie die
Taktsignalerzeugungseinrichtung 210 ein erstes Taktsignal.
Es sei bereits an dieser Stelle darauf hingewiesen, daß die das
erste Taktsignal erzeugende Taktsignalerzeugungseinrichtung nicht
Bestandteil des Mikrocontrollers sein muß; das erste Taktsignal könnte auch
von einer außerhalb
des Mikrocontrollers vorgesehenen Taktsignalerzeugungseinrichtung
erzeugt werden.
-
Das
Memory Interface 120 dient zur Ausführung von Lese- und Schreibzugriffen
auf die Speichereinrichtung 180, wobei vorliegend jedoch
nur die Lesezugriffe interessieren, und hiervon auch nur wieder die
Entgegennahme und Weiterverarbeitung oder Weiterleitung der Daten,
die bei einem Lesezugriff auf die Speichereinrichtung 180 von
der Speichereinrichtung zum Mikrocontroller 100 übertragen
werden.
-
Von
Memory Interface 120 durchgeführte Lesezugriffe werden nicht
auf eigene Veranlassung des Memory Interface durchgeführt. Das
Memory Interface 120 besorgt durch einen Lesezugriff auf
die Speichereinrichtung 180 nur die Daten, die von einer anderen
Mikrocontroller-Komponente, beispielsweise von der CPU des Mikrocontrollers
angefordert wurden.
-
Wenn
beispielsweise die CPU in der Speichereinrichtung 180 gespeicherte
Daten benötigt, fordert
sie zunächst
die Kontrolle über
einen die CPU und das Memory Interface 120 miteinander
verbindenden Bus an, überträgt anschließend über den
Bus eine die benötigten
Daten spezifizierende Leseanforderung zum Memory Interface 120,
und wartet sodann, bis sie die durch die Leseanforderung angeforderten
Daten zugeführt
bekommt. Das Memory Interface 120 führt auf den Empfang der Leseanforderung eine
Lesezugriff auf die Speichereinrichtung 180 durch, und
leitet die daraufhin von der Speichereinrichtung ausgegebenen Daten über den
immer noch von der CPU kon trollierten Bus an die CPU weiter. Entsprechend
wird vorgegangen, wenn nicht die CPU, sondern eine andere Mikrocontroller-Komponente
Daten aus der Speichereinrichtung 180 benötigt.
-
Der
Mikrocontroller 100 und die Speichereinrichtung 180 sind über eine
Vielzahl von Adreß-,
Daten-, und Steuerleitungen miteinander verbunden, von welchen in
der 1 jedoch nur eine erste Taktsignalleitung 191,
eine zweite Taktsignalleitung 192, und ein Datenbus 193 gezeigt
sind.
-
Über die
erste Taktsignalleitung 191 wird das von der Taktsignalerzeugungseinrichtung 110 erzeugte
erste Taktsignal an die Speichereinrichtung 180 übertragen.
Die erste Taktsignalleitung 191 und die über diese übertragenen
Signale entsprechen insoweit der ersten Taktsignalleitung 291 der
in der 3 gezeigten Anordnung und den über diese Leitung übertragenen
Signalen. Die erste Taktsignalleitung 191 der in der 1 gezeigten
Anordnung ist jedoch zusätzlich
auch noch mit dem Memory Interface 120 verbunden, so daß das über die
erste Taktsignalleitung 191 übertragene erste Taktsignal
zusätzlich auch
dem Memory Interface 120 zugeführt wird.
-
Über den
Datenbus 193 werden Daten, die das Memory Interface 120 durch
einen Lesezugriff auf die Speichereinrichtung 180 angefordert
hat, von der Speichereinrichtung 180 zum Memory Interface 120 übertragen.
Der Datenbus 193 umfaßt
im betrachteten Beispiel 32 Leitungen, so daß über den Datenbus 32-Bit-Worte übertragen
werden können. Es
dürfte
einleuchten und bedarf keiner näheren
Erläuterung,
daß der
Datenbus auch mehr oder weniger als 32 Leitungen umfassen kann.
-
Über die
zweite Taktsignalleitung 192 wird von der Speichereinrichtung 180 ein
sogenanntes DQS-Signal zum Memory Interface 120 übertragen. Hierbei
handelt es sich exakt um das Signal, das auch über die Leitung 292 der
in der 3 gezeigten Anordnung übertragen wird. Zur Vermeidung
von Wiederholungen wird bezüglich
weiterer Einzelheiten hierzu auf die entsprechenden Ausführungen
zur 3 verwiesen. Das DQS-Signal wird im folgenden teilweise
auch als zweites Taktsignal bezeichnet.
-
Anders
als bei der in der 3 gezeigten Anordnung wird das
DQS-Signal jedoch nicht direkt dazu verwendet, um die Zeitpunkte
festzulegen, zu welchen das Memory Interface 120 die ihm über den Datenbus 193 zugeführten Daten übernimmt
bzw. abtastet. Die Festlegung der Abtastzeitpunkte erfolgt durch
ein drittes Taktsignal, welches das Memory Interface 120 aus
dem ihr zugeführten
ersten Taktsignal erzeugt. Die Bildung des dritten Taktsignals erfolgt
durch eine Phasenverschiebung des ersten Taktsignals, und zwar derart,
daß das
dritte Taktsignal gegenüber
dem DQS-Signal so weit phasenverschoben ist, daß die steigenden und/oder die
fallenden Flanken des dritten Taktsignals zu Zeitpunkten auftreten,
zu welchen die von der Speichereinrichtung 180 zum Memory
Interface 120 übertragenen Daten
stabil und gültig
sind. Das dritte Taktsignal kann also beispielsweise um eine viertel
Taktperiode des DQS-Signals gegenüber diesem phasenverschoben
sein. Die Abtastung der dem Memory Interface 120 über den
Bus 193 zugeführten
Daten erfolgt jeweils mit den steigenden und/oder den fallenden Flanken
des dritten Taktsignals. Das DQS-Signal, welches bisher zur Festlegung
der Abtastzeitpunkte verwendet wurde, wird bei der hier vorgestellten
Anordnung nur noch zur Erzeugung von später noch genauer beschriebenen
Enable-Signalen verwendet, durch welche festgelegt wird, ob und
gegebenenfalls wo über
den Datenbus 193 erhaltene Daten im Memory Interface zwischenzuspeichern
sind. Dies wird im folgenden unter Bezugnahme auf die 2 näher erläutert.
-
Die 2 zeigt
den Aufbau eines die Taktsignalerzeugungseinrichtung und das Memory
Interface enthaltenden Teils des in der 1 gezeigten Mikrocontrollers.
-
Die
Taktsignalerzeugungseinrichtung ist wie in der 1 mit
dem Bezugszeichen 110 bezeichnet. Die Taktsignalerzeugungseinrichtung 110 erzeugt das
vorstehend bereits erwähnte
erste Taktsignal und gibt dieses über einen Ausgangs-Pad 111 aus dem
Mikrocontroller 100, genauer gesagt auf die Leitung 191 aus.
Die Grenze zwischen den innerhalb des Mikrocontrollers 100 vorgesehenen
Schaltungskomponenten und den außerhalb des Mikrocontrollers 100 vorgesehenen
Schaltungskomponenten ist in der 2 durch
eine mit dem Bezugszeichen 101 bezeichnete gestrichelte
Linie gekennzeichnet. Das auf die Leitung 191 ausgegebene
erste Taktsignal wird über
diese Leitung zu der in der 2 nicht
gezeigten Speichereinrichtung 180 sowie an das Memory Interface 120 übertragen.
Der Abschnitt der Leitung 191, über welchen das erste Taktsignal
zum Memory Interface 120 übertragen wird, verläuft außerhalb
des Mikrocontrollers 100 zu einem Eingangsanschluß des Mikrocontrollers,
wodurch das erste Taktsignal über
diesen Eingangsanschluß und
einen diesem nachgeschalteten Eingangs-Pad 121 in das Memory
Interface 120 gelangt. Das erste Taktsignal wird vom Eingangs-Pad 121 an
eine durch eine programmierbare DLL (delay locked loop) 122 gebildete
Verzögerungseinrichtung
weitergeleitet, welche aus dem ersten Taktsignal ein gegenüber diesem
phasenverschobenes drittes Taktsignal generiert. Die von der DLL
vorgenommene Phasenverschiebung ist so groß, daß die steigenden und/oder die
fallenden Flanken des dritten Taktsignals zu Zeitpunkten auftreten,
zu welchem die dem Memory Interface 120 von der Speichereinrichtung 180 zugeführten Daten stabil
und gültig
sind. D. h., die durch die DLL bewirkte Phasenverschiebung ist beispielsweise
so groß, daß das dritte
Taktsignal ungefähr
um eine viertel Taktperiode des DQS-Signals gegenüber dem DQS-Signal
verschoben ist. Der Vollständigkeit
halber sei angemerkt, daß die
Phasenverschiebung um eine viertel Taktperiode nur als beispielhaft
anzusehen ist. Die Phasenverschiebung kann auch größer oder
kleiner sein, muß aber
mindestens ein wenig größer als
0 sein, und darf höchstens
ein wenig kleiner als eine halbe Taktperiode des DQS-Signals sein. Die
DLL 122 sorgt dafür,
daß das
dritte Taktsignal unter allen Umständen um einen vorgegebenen
Umfang gegenüber
dem DQS-Signal phasenverschoben ist. Dies gilt auch dann, wenn sich
aufgrund von Temperaturschwankungen oder sonstigen Veränderungen
der Umgebungsbedingungen die Phasenlage des DQS-Signals verändert. In
diesem Zusammenhang sei angemerkt, daß die Phasen des ersten Taktsignals
und des DQS-Signals
bei sich ändernden Umgebungsbedingungen
nicht oder nur sehr wenig auseinanderdriften, da dem Memory Interface 120 sowohl
das erste Taktsignal als auch das DQS-Signal über außerhalb des Mikrocontrollers
verlaufende Leitungen zugeführt
werden, und somit beide Signale im wesentlichen den selben Einflüssen ausgesetzt
sind.
-
Der
DLL 122 wird neben dem ersten Taktsignal auch das DQS-Signal zugeführt. Das
DQS-Signal gelangt über
die zweite Taktsignalleitung 192 und einen Eingangs-Pad 123 des
Mikrocontrollers zur DLL 122 und wird zusätzlich einer
später
noch genauer beschriebenen ersten Steuereinrichtung 151 zugeführt.
-
Das
von der DLL 122 erzeugte dritte Taktsignal wird über n Verstärkerstufen 132-1 bis 132-n an
n Zwischenspeichereinrichtungen 131-1 bis 131-n weitergeleitet.
-
Die
Zwischenspeichereinrichtungen 131-1 bis 131-n dienen
zur Zwischenspeicherung der dem Memory Interface 120 über den
Datenbus 193 von der Speichereinrichtung 180 zugeführten Daten,
und können
beispielsweise durch Flip-Flops, Register, Latches, ein RAM oder
dergleichen gebildet werden. ”n” ist die
maximale Anzahl der Datenworte, die auf einen einzigen Lesezugriff
auf die Speichereinrichtung 180 hin nacheinander aus dieser
zum Memory Interface 120 übertragen werden. Im betrachteten Beispiel
ist n gleich 8; n kann aber auch beliebig viel größer oder
kleiner sein.
-
In
jeder der Zwischenspeichereinrichtungen 131-1 bis 131-n kann
ein komplettes Datenwort gespeichert werden, das über den
Datenbus 193 von der Speichereinrichtung 180 zum
Memory Interface übertragen
wird.
-
Im
betrachteten Beispiel ist es also so, daß das Memory Interface 120 durch
einen Burst-Zugriff bis zu 8 Datenworte aus der Speichereinrichtung 180 anfordern
kann, und daß die
Speichereinrichtung auf einen solchen Lesezugriff hin nacheinander
8 32-Bit-Datenworte zum Memory Interface 120 überträgt, und
daß das
Meomory Interface 120 so viele Zwischenspeichereinrichtungen
bzw. eine so große Zwischenspeichereinrichtung
aufweist, daß darin
alle 8 Datenworte zwischengespeichert werden können.
-
Von
den Zwischenspeichereinrichtungen 131-1 bis 131-n enthält jede
Zwischenspeichereinrichtung einen Daten-Anschluß, einen Taktsignal-Anschluß, einen
Enable-Anschluß,
und einen Ausgangsanschluß.
-
Den
Taktsignal-Anschlüssen
wird das dritte Taktsignal oder das invertierte dritte Taktsignal
zugeführt,
den Enable-Anschlüssen später noch
genauer beschriebene Enable-Signale SEL1 bis SELn, und den Daten-Anschlüssen die über den
Bus 193 von der Speichereinrichtung 180 zum Memory
Interface 120 übertragenen
Daten.
-
Die über den
Bus 193 zum Memory Interface 120 übertragenen
Daten gelangen über
Eingangs-Pads 130 des Mikrocontrollers in das Memory Interface
und werden von diesen Eingangs-Pads an die Daten-Anschlüsse aller
Zwischenspeichereinrichtungen 131-1 bis 131-n weitergeleitet.
-
An
dieser Stelle sei angemerkt, daß zwischen
den Eingangs-Pads 130 und
den Zwischenspeichereinrichtungen 131-1 bis 131-n weitere
Zwischenspeichereinrichtungen vorgesehen werden könnten, so
daß die über den
Bus 193 übertragenen Daten
den Zwischenspeichereinrichtungen 131-1 bis 131-n über die
wieteren Zwischenspeichereinrichtungen zugeführt werden. Die weiteren Zwischenspeichereinrichtungen
müßten nur
in einer geringen Anzahl vorgesehen werden. Beispielsweise würde es ausreichen,
wenn nur zwei zusätzliche
Zwischenspeichereinrichtungen vorgesehen werden, die abwechselnd
beschrieben und ausgelesen werden. Dies hätte den positiven Effekt, daß die über den
Bus 193 übertragenen
Daten eine geringere Last zu treiben haben.
-
Jedes
Datenwort, das über
den Bus 193 zum Memory Interface übertragen wird, wird in einer
bestimmten einzigen Zwischenspeichereinrichtung zwischengespeichert.
Welche Zwischenspeichereinrichtung dies jeweils ist, wird durch
vorstehend bereits erwähnten
Enable-Signale bestimmt. Durch die Enable-Signale werden die Zwischenspeichereinrichtungen 131-1 bis 131-n in
einen ersten oder in einen zweiten Zustand versetzt, wobei der erste
Zustand ein Bereitschaftszustand ist, während dessen Dauer Daten in
die betreffende Zwischenspeichereinrichtung übernommen werden können, und
wobei der zweite Zustand ein Sperrzustand ist, während dessen Dauer keine Daten
in die betreffende Zwischenspeichereinrichtung übernommen werden können. Die
Enable-Signale werden so erzeugt, daß nur maximal ein Enable-Signal
einen Pegel aufweist, durch welchen die Zwischenspeichereinrichtungen
in den Bereitschaftszustand versetzt werden können. Alle anderen Enable-Signale
weisen einen Pegel auf, durch welchen die Zwischenspeichereinrichtungen
in den Sperrzustand versetzt werden. Das Versetzen einer Zwischenspeichereinrichtungen
in den Bereitschaftszustand hat nicht zur Folge, daß Daten
in die betreffende Zwischenspeichereinrichtung übernommen werden. Dies ist
lediglich eine Voraussetzung dafür,
daß Daten
in die Zwischenspeichereinrichtung übernommen werden können.
-
Eine Übernahme
von Daten in eine Zwischenspeichereinrichtung erfolgt nur dann,
wenn die betreffende Zwischenspeichereinrichtung durch das ihr zugeführte Enable-Signal
in den Bereitschaftszustand versetzt ist, und während der Dauer des Bereitschaftszustandes
eine steigende Flanke in dem dem Takt signal-Anschluß der betreffenden
Zwischenspeichereinrichtung zugefügrten Taktsignal auftritt.
Genauer gesagt ist es so, daß eine
im Bereitschaftszustand befindliche Zwischenspeichereinrichtung
die ihr zugeführten
Daten mit der steigenden Flanke des ihr zugeführten Taktsignals übernimmt.
Die Datenübernahme
könnte
alternativ auch mit der fallenden Flanke des Taktsignals erfolgen.
-
Den
Taktsignal-Anschlüssen
der Zwischenspeichereinrichtungen 131-1 bis 131-n werden
unterschiedliche Taktsignale zugeführt. Genauer gesagt ist es
so, daß den
Zwischenspeichereinrichtungen mit ungeradzahligem Index, also den
Zwischenspeichereinrichtungen 131-1, 131-3, 131-5,
... das dritte Taktsignal zugeführt
wird, und daß den
restlichen Zwischenspeichereinrichtungen das invertierte dritte Taktsignal
zugeführt
wird. Welches Taktsignal den jeweiligen Zwischenspeichereinrichtungen
zugeführt wird,
wird durch die den Zwischenspeichereinrichtungen vorgeschalteten
Verstärkerstufen 132-1 bis 132-n bestimmt.
Jeder Zwischenspeichereinrichtung ist eine der Verstärkerstufen 132-1 bis 132-n vorgeschaltet,
wobei diese Verstärkerstufen
teilweise invertierende Verstärkerstufen,
und teilweise nicht invertierende Verstärkerstufen sind. Denjenigen
Zwischenspeichereinrichtungen, welchen das dritte Taktsignal zugeführt wird,
sind nicht invertierende Verstärkerstufen
vorgeschaltet, und denjenigen Zwischenspeichereinrichtungen, welchen
das invertierte dritte Taktsignal zugeführt wird, sind invertierende Verstärkerstufen
vorgeschaltet. Dadurch wird im Ergebnis erreicht, daß die dem
Memory Interface aufeinanderfolgend zugeführten Datenworte abwechselnd mit
der steigenden und der fallenden Flanke des dritten Taktsignals
in die Zwischenspeichereinrichtungen 131-1 bis 131-n übernommen
werden.
-
Daß die dem
Memory Interface aufeinanderfolgend zugeführten Datenworte abwechselnd
mit der steigenden und der fallenden Flanke des dritten Taktsignals
in die Zwischenspeichereinrichtungen 131-1 bis 131-n übernommen
werden, ist jedoch nur bei bestimmten Speichereinrichtungen wie
beispielsweise bei dem hier betrachteten DDR SDRAM erforderlich.
Bei anderen Speichereinrichtungen, beispielsweise bei SDR SDRAMs
müßte das
Memory Interface 120 dahingehend modifiziert werden, daß die dem
Memory Interface aufeinanderfolgend zugeführten Datenworte nur immer
mit der steigenden Flanke des dritten Taktsignals oder nur immer
mit der fallenden Flanke des dritten Taktsignals in die Zwischenspeichereinrichtungen 131-1 bis 131-n übernommen
werden.
-
Das
dritte Taktsignal wird nicht nur zur Festlegung der Zeitpunkte der Übernahme
von Daten in die Zwischenspeichereinrichtungen 131-1 bis 131-n verwendet
Es wird darüber
hinaus auch als Taktsignal für
weitere Komponenten des Memory Interface 120 verwendet.
Insbesondere wird es auch als Taktsignal für die vorstehend bereits erwähnte erste
Steuereinrichtung 151 verwendet. Es sei bereits an dieser Stelle
darauf hingewiesen, daß das
Memory Interface auch noch beliebige weitere Komponenten enthalten
kann, die das dritte Taktsignal als Taktsignal verwenden, beispielsweise
eine Einrichtung, welche die empfangenen Daten einer Vorverarbeitung
unterzieht, bevor diese an eine andere Mikrocontroller-Komponente
weitergeleitet werden.
-
Der
ersten Steuereinrichtung 151 wird, wie vorstehend bereits
erwähnt
wurde, das DQS-Signal zugeführt.
Darüber
hinaus werden der ersten Steuereinrichtung 151 das dritte
Taktsignal und ein oder mehrere Signale CTRL_SIGIN zugeführt, über welche
der ersten Steuereinrichtung Informationen über den jeweils gerade ausgeführten Lesezugriff
auf die Speichereinrichtung 180 zugeführt werden, beispielsweise
wie viele Datenworte durch den gerade ausgeführten Lesezugriff auf die Speichereinrichtung ausgelesen
werden.
-
Die
erste Steuereinrichtung 151 erzeugt im betrachteten Beispiel
die vorstehend bereits erwähnte
Enable-Signale SEL1 bis SELn, ein Ready-Signal READY, und ein Fehlersignal
ERROR.
-
Es
sei bereits an dieser Stelle darauf hingewiesen, daß der ersten
Steuereinrichtung 151 zumindest teilweise auch andere oder
weitere Signale zugeführt
werden können,
und daß die
erste Steuereinrichtung 151 zumindest teilweise auch andere
oder weitere Signale erzeugen könnte.
-
Die
Enable-Signale SEL1 bis SELn werden so erzeugt, daß stets
maximal ein Enable-Signal einen Pegel aufweist, durch welchen eine
Zwischenspeichereinrichtung in den Bereitschaftszustand versetzt
wird. Genauer gesagt ist es so,
- – daß während der Übertragung
eines ersten Datenwortes von mehreren nacheinander zum Mikrocontroller übertragenen
Datenworten das einer ersten Zwischenspeichereinrichtung zugeführte Enable-Signal
auf einen Pegel gesetzt wird, durch welche die betreffende Zwischenspeichereinrichtung
in den Bereitschaftszustand versetzt wird, und alle anderen Enable-Signale
auf einen Pegel gesetzt werden, durch welche die damit beaufschlagten
Zwischenspeichereinrichtungen in den Sperrzustand versetzt werden,
- – daß während der Übertragung
eines zweiten Datenwortes von mehreren nacheinander zum Mikrocontroller übertragenen
Datenworten das einer zweiten Zwischenspeichereinrichtung zugeführte Enable-Signal
auf einen Pegel gesetzt wird, durch welche die betreffende Zwischenspeichereinrichtung
in den Bereitschaftszustand versetzt wird, und alle anderen Enable-Signale
auf einen Pegel gesetzt werden, durch welche die damit beaufschlagten
Zwischenspeichereinrichtungen in den Sperrzustand versetzt werden,
- – daß während der Übertragung
eines dritten Datenwortes von mehreren nacheinander zum Mikrocontroller übertragenen
Datenworten das einer dritten Zwischenspeichereinrichtung zugeführte Enable-Signal
auf einen Pegel gesetzt wird, durch welche die betreffende Zwischenspeichereinrichtung
in den Bereitschaftszustand versetzt wird, und alle anderen Enable-Signale
auf einen Pegel gesetzt werden, durch welche die damit beaufschlagten
Zwischenspeichereinrichtungen in den Sperrzustand versetzt werden,
usw.
-
Das
Umschalten der Enable-Signale erfolgt jeweils mit den steigenden
und den fallenden Flanken des DQS-Signals.
-
Wenn
und so lange keine Daten von der Speichereinrichtung 180 zum
Mikrocontroller 100 übertragen
werden, sorgt die erste Steuereinrichtung 151 dafür, das die
Enable-Signale einen Pegel aufweisen, durch welchen alle Zwischenspeichereinrichtungen
in den Sperrzustand versetzt werden.
-
Welcher
Zwischenspeichereinrichtung welches Enable-Signal zuzuführen ist,
kann die erste Steuereinrichtung durch eine Überprüfung, ob gerade ein DQS-Signal
empfangen wird, und durch ein Zählen
der im DQS-Signal auftretenden steigenden und fallenden Flanken
ermitteln.
-
Durch
das von der ersten Steuereinrichtung 151 erzeugte Ready-Signal
READY wird einer zweiten Steuereinrichtung 161 signalisiert,
daß in
den Zwischenspeichereinrichtungen 131-1 bis 131-n an eine
andere Mikrocontroller-Komponente weiterzuleitende Daten gespeichert
sind.
-
Es
existieren mehrere Möglichkeiten
zur Erzeugung des Ready-Signals.
-
Eine
erste Möglichkeit
besteht darin, daß das Ready-Signal
erst erzeugt wird, nachdem alle Datenworte von mehreren nacheinander
zum Mikrocontroller zu übertragenden
Datenworten in die Zwischenspeichereinrichtungen 131-1 bis 131-n übernommen wurden.
-
Eine
zweite Möglichkeit
besteht darin, daß das
Ready-Signal nach jeder Übernahme
von Daten in eine Zwischenspeichereinrichtung erzeugt wird.
-
Eine
dritte Möglichkeit
besteht darin, daß das Ready-Signal
jedesmal dann erzeugt wird, wenn wieder eine bestimmte Anzahl von
Zwischenspeichereinrichtungen mit den momentan zum Mikrocontroller übertragenen
Daten beschrieben ist.
-
Bei
allen genannten Möglichkeiten
kann vorgesehen werden, daß das
Ready-Signal bereits zu einem Zeitpunkt erzeugt wird, zu dem noch
nicht alle Daten, deren Weiterleitung an eine andere Mikrocontroller-Komponente
durch das Ready-Signal veranlaßt
wird, in die Zwischenspeichereinrichtungen übernommen wurden. In diesem
Fall müßte jedoch darauf
geachtet werden, daß nicht
der Fall eintreten kann, daß ein
Datenwort aus einer Zwischenspeichereinrichtung weitergeleitet wird,
die noch gar nicht mit den momentan zum Mikrocontroller übertragenen Daten
beschrieben ist.
-
Es
kann sich als vorteilhaft erweisen, wenn der Benutzer des Mikrocontrollers
einstellen kann, zu welchen Zeitpunkten oder beim Auftreten welcher
Ereignisse das Ready-Signal zu erzeugen ist.
-
Das
Ready-Signal READY kann durch die erste Steuereinrichtung 151 schnell
und einfach erzeugt werden. Aus den der ersten Steuereinrichtung 151 zugeführten Informationen
(DQS, drittes Taktsignal, CTRL_SIGIN) kann diese problemlos ermitteln, ob
und in welchen Zwischenspeichereinrichtungen an eine andere Mikrocontroller-Komponente
weiterzuleitende Daten vorhanden sind.
-
Durch
das vorstehend bereits erwähnte
Fehlersignal ERROR wird signalisiert, daß bei der Übertragung von Daten von der
Speichereinrichtung 180 zum Memory Interface 120 ein
Fehler aufgetreten ist. Insbesondere kann beispielsweise festgestellt
werden, ob durch die Speichereinrichtung mehr Daten oder weniger
Daten (mehr Datenworte oder weniger Datenworte) ausgegeben werden
als durch den jeweils gerade ausgeführten Lesezugriff auf die Speichereinrichtung
angefordert wurden. Auch dies läßt sich
von der ersten Steuereinrichtung 151 schnell und einfach
ermitteln. Die erste Steuereinrichtung muß hierfür lediglich die Anzahl der
von der Speichereinrichtung 180 bereits empfangenen Datenworte ermitteln
und diese Anzahl mit der Anzahl der Datenworte vergleichen, die
durch den gerade ausgeführten
Lesezugriff aus der Speichereinrichtung 180 angefordert
wurden. Die Anzahl der Datenworte, die durch den gerade ausgeführten Lesezugriff
aus der Speichereinrichtung 180 angefordert wurden, kann aus
den der ersten Steuereinrichtung 151 zugeführten Signalen
CTRL_SIGIN ermittelt werden.
-
Die
Ausgangsanschlüsse
der Zwischenspeichereinrichtungen 131-1 bis 131-n sind
mit Eingangsanschlüssen
eines Multiplexers 141 verbunden. Dieser Multiplexer 141 ist
im betrachteten Beispiel so ausgebildet, daß er gleichzeitig die Daten von
jeweils zwei Zwischenspeichereinrichtungen durchschaltet, im betrachteten
also 64-Bit-Datenworte ausgibt. Hierauf besteht jedoch keine Einschränkung. Es
könnte
ebenso vorgesehen werden, daß der
Multiplexer gleichzeitig die Daten von noch mehr Zwischenspeichereinrichtungen
durchschaltet, oder daß der
Multiplexer jeweils nur die Daten von einer einzigen Zwischenspeichereinrichtung
durchschaltet.
-
Die
Ansteuerung des Multiplexers 141 erfolgt durch die vorstehend
bereits erwähnte
zweite Steuereinrichtung 161. Dieser zweiten Steuereinrichtung 161 wird,
wie vorstehend bereits erläutert
wurde, das von der ersten Steuereinrichtung 151 erzeugte
Ready-Signal READY zugeführt.
Die zweite Steuereinrichtung 161 steuert den Multiplexer 141 nach
jedem Empfang eines Ready-Signals so an, daß die in den Zwischenspeichereinrichtungen
gespeicherten Daten, deren Weiterleitung durch das Ready-Signal
veranlaßt
wird, gleichzeitig oder nacheinander an die diese Daten erwartende
Mikrocontroller-Komponente weitergeleitet werden.
-
Die
zweite Steuereinrichtung 161 erzeugt darüber hinaus
ein oder mehrere Steuersignale CTRL_SIGOUT, durch welche anderen
Mikrocontroller-Komponenten bestimmte Zustände oder Ereignisse innerhalb
des Memory Interface signalisiert werden, beispielsweise daß das Memory
Interface 120 gerade unbenutzt ist, d. h. bereit für weitere
Lese- und/oder Schreibzugriffe auf die Speichereinrichtung 180 ist,
oder daß ein
Fehler aufgetreten ist.
-
Der
Vollständigkeit
halber sei angemerkt, daß der
zweiten Steuereinrichtung 161 zumindest teilweise auch
andere oder weitere Steuersignale zugeführt werden könnten, und
daß die
zweite Steuereinrichtung 161 zumindest teilweise auch andere oder
weitere Steuersignale erzeugen könnte.
-
Die
zweite Steuereinrichtung 161 verwendet als Taktsignal das
Taktsignal, mit dem auch die Mikrocontroller-Komponente arbeitet,
mit welcher der Ausgangsanschluß des
Multiplexers verbunden ist. Im betrachteten Beispiel arbeitet die
Mikrocontroller-Komponente, mit welcher der Ausgangsanschluß des Multiplexers
verbunden ist, mit dem von der Takterzeugungseinrichtung 110 erzeugten
ersten Taktsignal. Deshalb verwendet auch die zweite Steuereinrichtung
das erste Taktsignal als Taktsignal. Hierauf besteht jedoch keine
Einschränkung:
die Mikrocontroller-Komponente, mit welcher der Ausgangsanschluß des Multiplexers
verbunden ist, und die zweite Steuereinrichtung können auch
mit einem beliebigen anderen Taktsignal arbeiten.
-
Der
Ausgangsanschluß des
Multiplexers 141 ist im betrachteten Beispiel mit dem Systembus
des Mikrocontrollers verbunden, an welchem auch die CPU des Mikrocontrollers
und diverse weitere Mikrocontroller-Komponenten angeschlossen sind. Über diesen
Systembus werden die aus dem Multiplexer ausgegebenen Daten an die
Mikrocontroller-Komponente weitergeleitet, welche das Memory Interface zur
Ausführung
des gerade ausgeführten
Lesezugriffes auf die Speichereinrichtung 180 veranlaßt hat.
-
Durch
die hier vorgestellte Anordnung ist es unabhängig von den Einzelheiten der
praktischen Realisierung möglich,
die einer programmgesteuerten Einheit von einer externen Speichereinrichtung zugeführten Daten
mit geringem Aufwand schnell und fehlerfrei zu übernehmen und weiterzuleiten oder
weiterzuverarbeiten.
-
- 100
- Mikrocontroller
- 101
- Mikrocontroller
Boundary
- 110
- Taktsignalerzeugungseinrichtung
- 111
- Ausgangs-Pad
- 120
- Momory
Interface
- 121
- Eingangs-Pad
- 122
- DLL
- 123
- Eingangs-Pad
- 130
- Eingangs-Pads
- 131-x
- Zwischenspeichereinrichtung
- 132-x
- Vestärkerstufe
- 141
- Multiplexer
- 151
- erste
Steuereinrichtung
- 161
- zweite
Steuereinrichtung
- 180
- Speichereinrichtung
- 191
- erste
Taktsignalleitung
- 192
- zweite
Taktsignalleitung
- 193
- Datenbus
- 200
- Mikrocontroller
- 210
- Taktsignalerzeugungseinrichtung
- 220
- Momory
Interface
- 280
- Speichereinrichtung
- 291
- erste
Taktsignalleitung
- 292
- zweite
Taktsignalleitung
- 293
- Datenbus
- CTRL_SIGIN
- Signal
- CTRL_SIGOUT
- Signal
- ERROR
- Fehlersignal
- READY
- Ready-Signal
- SELx
- Enable-Signal