-
Die
vorliegende Erfindung betrifft ein Verfahren gemäß dem Oberbegriff des Patentanspruchs
1.
-
Bei
elektrischen Schaltungen, in welchen solche Verfahren zum Einsatz
kommen, müssen
die miteinander kooperierenden Komponenten nicht die selbe Leistungsfähigkeit
aufweisen, insbesondere nicht gleich schnell arbeiten.
-
Eine
elektrische Schaltung, bei welcher dies häufig der Fall ist, ist beispielsweise,
aber bekanntlich bei weitem nicht ausschließlich eine programmgesteuerte
Einheit wie etwa ein Mikrocontroller.
-
Der
prinzipielle Aufbau eines Mikrocontrollers ist in 1 gezeigt.
Der gezeigte Mikrocontroller enthält einen Core C, über einen
ersten Bus BUS1 mit dem Core C verbundene Speichereinrichtungen S1
bis Sn, und über
einen zweiten Bus BUS2 mit dem Core C verbundene Peripherieeinheiten
P1 bis Pn.
-
Die
Speichereinrichtungen S1 bis Sn sind beispielsweise ein RAM, ein
ROM, ein Flash-Speicher etc.
-
Die
Peripherieeinheiten sind beispielsweise ein A/D-Wandler, ein DMA-Controller,
eine Codiereinrichtung, ein CAN-Controller etc.
-
Der
Core C
- – liest
in den Speichereinrichtungen S1 bis Sn oder in einer außerhalb
des Mikrocontrollers vorgesehenen externen Speichereinrichtung gespeicherte
Befehle und Operanden aus und führt
diese aus,
- – und
kooperiert dabei auf eine vorgegebene Art und Weise mit den Speichereinrichtungen
S1 bis Sn und den Peripherieeinheiten P1 bis Pn.
-
Mikrocontroller
sind taktgesteuerte Einrichtungen, wobei es unter anderem von der
Frequenz des verwendeten Taktsignals abhängt, wie schnell der Mikrocontroller
arbeitet (beispielsweise wie schnell er das von ihm auszuführende Programm ausführt).
-
Je
höher die
Taktsignalfrequenz ist, desto schneller arbeitet der Mikrocontroller.
-
Andererseits
ist es aber so, daß hohe
Taktsignalfrequenzen einen hohen Energieverbrauch und die damit
verbundenen Nachteile wie beispielsweise eine starke Erwärmung, aber
auch die Erzeugung von elektromagnetischer Strahlung etc. zur Folge
haben.
-
Um
diese Nachteile in Grenzen zu halten, ist man dazu übergegangen,
daß man
die verschiedenen Komponenten des Mikrocontrollers jeweils nur so
schnell laufen läßt, wie
es zur ordnungsgemäßen Funktion
des Mikrocontrollers erforderlich ist. Dies wird im allgemeinen
dadurch bewerkstelligt, daß im Mikrocontroller
mehrere Taktsignale mit unterschiedlichen Frequenzen erzeugt werden,
und diese verschiedenen Taktsignale den verschiedenen Komponenten
zugeführt
werden. Dadurch ist es beispielsweise möglich, daß der Core C mit einem sehr
hochfrequenten Taktsignal versorgt wird, und bestimmte Peripherieeinheiten,
beispielsweise ein D/A-Wandler mit einem Taktsignal mit einer niedrigeren
Taktfrequenz, beispielsweise mit einem Taktsignal mit der halben
Taktfrequenz versorgt wird.
-
Daß bestimmte
Komponenten des Mikrocontrollers mit einem Taktsignal mit niedrigerer
Frequenz versorgt werden, beeinflußt jedoch nicht nur die betreffenden
Komponenten selbst, sondern kann auch Komponenten beeinflussen,
die mit einem Taktsignal mit hoher Frequenz versorgt werden. Dies
ist beispielsweise der Fall, wenn eine mit hoher Taktfrequenz arbeitende
Komponente, also beispielsweise der Core C, an eine mit einer niedrigeren
Taktfrequenz arbeitende Komponente, beispielsweise an den D/A-Wandler,
Daten übermitteln
möchte.
In diesem Fall muß der
Core C die zu übermittelnden
Daten länger
an seinen Ausgängen
bereitstellen, als es der Fall wäre,
wenn der Empfänger
der Daten eine Komponente wäre,
die mit der selben Taktfrequenz arbeitet wie der Core C. Dies ist
deshalb so, weil die Taktflanken, mit welcher der D/A-Wandler Daten übernehmen
kann, vergleichsweise große
zeitliche Abstände
aufweisen, und weil der Core C die Bereitstellung der zu transferierenden
Daten darüber
hinaus noch so lange fortsetzen muß, bis der D/A-Wandler den
ordnungsgemäßen Empfang
der Daten quittiert hat, wobei wegen der erforderlichen Synchronisierung
des Core und des D/A-Wandlers mittels dazwischen angeordneter Flip-Flops
oder dergleichen auch die Quittierung eine gewisse Zeit in Anspruch nimmt.
Der Core C kann dadurch mehr oder weniger lange blockiert werden,
wodurch er im Ergebnis langsamer arbeitet als es aufgrund seiner
Taktfrequenz möglich
wäre.
-
Die
genannten Probleme ließen
sich zumindest teilweise beseitigen, wenn die Komponenten abwechselnd
mit verschiedene Frequenzen aufweisenden Taktsignalen arbeiten würden. Die
Erzeugung von Taktsignalen mit verschiedenen Frequenzen und die
Weiterleitung derselben an die diese verwendenden Komponenten ist
jedoch mit einem großen
Aufwand verbunden und mithin ebenfalls mit erheblichen Nachteilen
verbunden.
-
Ein
Verfahren gemäß dem Oberbegriff
des Patentanspruchs 1 ist auch aus der
DE 39 31 382 C1 bekannt.
Bei dem in der
DE 39
31 382 C1 beschriebenen Verfahren wird der Empfang von
Daten jedoch nicht quittiert, so daß dieses Verfahren keine zufriedenstellende
Möglichkeit
zur Lösung
der vorstehend genannten Probleme bietet.
-
In
der
GB 2 294 561 A ist
eine Möglichkeit
zur Synchronisation von mit unterschiedlichen Taktsignalen arbeitenden
Schaltungen beschrieben. Die beschriebene Synchronisation umfaßt die zeitgesteuerte
Generierung eines Quittierungssignals. Die Anwendung einer derartigen
Quittierungssignal-Generierung bei einem Verfahren gemäß dem Oberbegriff des
Patentanspruchs 1 führt
jedoch ebenfalls nicht zu einer zufriedenstellenden Lösung der
vorstehend genannten Probleme.
-
Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, eine Möglichkeit
zu finden, durch welche sich der Betrieb und/oder die Kooperation
der Komponenten einer elektrischen Schaltung auf einfache Art und
Weise effizienter gestalten lassen als es bisher der Fall ist.
-
Diese
Aufgabe wird erfindungsgemäß durch die
in Patentanspruch 1 beanspruchte Verfahren gelöst.
-
Durch
die Verwendung eines wie beansprucht gebildeten Quittierungssignals
kann die Ausführung
einer jeweiligen Aktion auf besonders einfache und zuverlässige Art
und Weise zu einem definierten Zeitpunkt vor der Ausführung der
betreffenden Aktion quittiert werden. Dadurch kann die Zeit, die
eine auf die Ausführung
der betreffenden Aktion wartende Komponente warten muß, auf ein
Minimum reduziert werden.
-
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 beschrieben. Es zeigen
-
1 den
prinzipiellen Aufbau einer bekannten elektrischen Schaltung mit
miteinander kooperierenden Komponenten,
-
2 den
Aufbau der im folgenden näher beschriebenen
elektrischen Schaltung,
-
3 den
Aufbau einer Taktsignalerzeugungseinrichtung der elektrischen Schaltung
gemäß 2,
-
4 den
zeitlichen Verlauf der Ausgangssignale eines Master-Taktgenerators,
einer Taktsteuereinrichtung, und der Taktsignalerzeugungseinrichtungen
der elektrischen Schaltung gemäß 2,
und
-
5 den
Aufbau eines Quittierungssignalgenerators der elektrischen Schaltung
gemäß 2.
-
Bei
der im folgenden beschriebenen elektrischen Schaltung handelt es
sich um eine taktgesteuerte elektrische Schaltung, genauer gesagt
um eine programmgesteuerte Einheit wie beispielsweise einen Mikrocontroller,
einen Mikroprozessor oder einen Signalprozessor.
-
Es
sei jedoch bereits an dieser Stelle darauf hingewiesen, daß sich die
nachfolgend beschriebenen Besonderheiten der programmgesteuerten
Einheit auch bei beliebigen anderen elektrischen Schaltungen mit
miteinander kooperierenden Komponenten einsetzen lassen.
-
Der
Aufbau der im folgenden beschriebenen programmgesteuerten Einheit
ist in 2 dargestellt.
-
Die
in der 2 gezeigte programmgesteuerte Einheit enthält
- – einen
Core C,
- – über einen
ersten Bus BUS1 mit dem Core C verbundene Speichereinrichtungen
S1 bis Sn,
- – über einen
zweiten Bus BUS2 mit dem Core C verbundene Peripherieeinheiten P1
bis Pn,
- – eine
Vielzahl von Taktsignalerzeugungseinrichtungen CGC,
- – einen
im folgenden als Master-Taktgenerator bezeichneten Taktgenerator
MCG,
- – eine
Taktsteuereinrichtung CEG, und
- – einen
Quittierungssignalgenerator QSG.
-
Die
in der 2 gezeigte programmgesteuerte Einheit arbeitet
im wesentlichen wie die in der 1 gezeigte
programmgesteuerte Einheit. D.h., der Core C
- – liest
in den Speichereinrichtungen S1 bis Sn oder in einer außerhalb
des Mikrocontrollers vorgesehenen externen Speichereinrichtung gespeicherte
Befehle und Operanden aus und führt
diese aus,
- – und
kooperiert dabei auf eine vorgegebene Art und Weise mit den Speichereinrichtungen
S1 bis Sn und den Peripherieeinheiten P1 bis Pn.
-
Unterschiedlich
sind hingegen die Art und Weise, auf welche die einzelnen Komponenten
der programmgesteuerten Einheit mit Taktsignalen versorgt werden,
und die Art und Weise, auf welche die einzelnen Komponenten der
programmgesteuerten Einheit miteinander kooperieren.
-
Im
betrachteten Beispiel arbeiten der Core C, die Speichereinrichtung
S1, die Speichereinrichtung Sn, die Peripherieeinheit P1, und die
Peripherieeinheit Pn mit Taktsignalen unterschiedlicher Frequenz, und
ist jeder der genannten Komponenten eine eigene Taktsignalerzeugungseinrichtung
CGC zugeordnet. Komponenten, die mit Taktsignalen der selben Frequenz
arbeiten, kann insbesondere dann, wenn die betreffenden Komponenten
nahe beieinander liegen, eine einzige gemeinsame Taktsignalerzeugungseinrichtung
CGC zugeordnet sein; Komponenten, die mit einem Taktsignal arbeiten,
welches die Frequenz des vom Master-Taktgenerator MCG erzeugten
Taktsignals aufweist, können
ohne eine Taktsignalerzeugungseinrichtung CGC auskommen und direkt
das vom Master-Taktgenerator MCG erzeugte Taktsignal verwenden.
-
Die
Versorgung der einzelnen Komponenten der programmgesteuerten Einheit
mit Taktsignalen erfolgt durch den Master-Taktgenerator MCG, die Taktsteuereinrichtung
CEG, und die Taktsignalerzeugungseinrichtungen CGC.
-
Der
Master-Taktgenerator MCG erzeugt ein Master-Taktsignal m_clk, welches
allen Taktsignalerzeugungseinrichtungen CGC und der Taktsteuereinrichtung
CEG zugeführt
wird. Dieses Master-Taktsignal m_clk ist ein eine vorgegebene konstante
Frequenz aufweisendes Rechtecksignal. Die Verteilung dieses Master-Taktsignals
m_clk erfolgt so, daß es vorzugsweise
in allen Komponenten, welchen es zugeführt wird, zumindest aber in
denjenigen Taktsignalerzeugungseinrichtungen CGC, die unter Berücksichtigung
von später
noch genauer beschriebenen Quittierungssignalen miteinander kooperierenden Komponenten
der programmgesteuerten Einheit zugeordnet sind, die selbe Phasenlage
aufweist.
-
Den
Taktsignalerzeugungseinrichtungen CGC wird ferner jeweils ein von
der Taktsteuereinrichtung CEG erzeugtes, im folgenden als Freigabesignal
bezeichnetes Signal zugeführt,
und zwar
- – der
dem Core C zugeordneten Taktsignalerzeugungseinrichtung CGC ein
Freigabesignal clk_en_div_1,
- – der
der Speichereinrichtung S1 zugeordneten Taktsignalerzeugungseinrichtung
CGC ein Freigabesignal clk_en_div-2,
- – der
der Speichereinrichtung Sn zugeordneten Taktsignalerzeugungseinrichtung
CGC ein Freigabesignal clk_en_div_4,
- – der
der Peripherieeinheit P1 zugeordneten Taktsignalerzeugungseinrichtung
CGC ein Freigabesignal clk_en_div_8, und
- – der
der Peripherieeinheit Pn zugeordneten Taktsignalerzeugungseinrichtung
CGC ein Freigabesignal clk_en_div_16.
-
Die
Taktsignalerzeugungseinrichtungen CGC erzeugen aus den ihnen zugeführten Signalen Taktsignale,
die den Komponenten, welchen die jeweiligen Taktsignalerzeugungseinrichtungen
CGC zugeordnet sind, zugeführt
und von diesen als Taktsignale verwendet werden.
-
Dabei
- – erzeugt
die dem Core C zugeordnete Taktsignalerzeugungsclk einrichtung CGC
aus den ihr zugeführten
Signalen m_clk und clk clk_en_div_1 ein dem Master-Taktsignal m_clk
entsprechendes Taktsignal clk_div_1,
- – erzeugt
die der Speichereinrichtung S1 zugeordnete Taktsignalerzeugungseinrichtung
CGC aus den ihr zugeführten
clk und clk_en_div_2 ein Taktsignal Signalen m_clk_div_2, dessen
Frequenz halb so groß wie
die Frequenz des Master-clk
Taktsignals m_clk ist,
- – erzeugt
die der Speichereinrichtung Sn zugeordnete Taktsignalerzeugungseinrichtung
CGC aus den ihr zugeführten
Signalen m_clk und clk_en_div_4 ein Taktsignal clk_div_4, dessen Frequenz
ein Viertel der Frequenz des Master-Taktsignals m_clk beträgt,
- – erzeugt
die der Peripherieeinheit P1 zugeordnete Taktsignalerzeugungseinrichtung
CGC aus den ihr zugeführten
Signalen m_clk und clk_en_div_8 ein Taktsignal clk_div_8, dessen
Frequenz ein Achtel der Frequenz des Master-Taktsignals m_clk beträgt, und
- – erzeugt
die der Peripherieeinheit Pn zugeordnete Taktsignalerzeugungseinrichtung
CGC aus den ihr zugeführten
Signalen m_clk und clk_en_div_16 ein Taktsignal clk_div_16, dessen Frequenz
ein Sechzehntel der Frequenz des Master-Taktsignals m_clk beträgt.
-
Der
Vollständigkeit
halber sei darauf hingewiesen, daß keine Notwendigkeit besteht,
dem Core C das Taktsignal clk_div_1, der Speichereinrichtung S1
das Taktsignal clk_div_2, der Speichereinrichtung Sn das Taktsignal
clk_div_4, der Peripherieeinheit P1 das Taktsignal clk_div_8, und
der Peripherieeinheit Pn das Taktsignal clk_div_16 zuzuführen; prinzipiell kann
jeder der Komponenten der programmgesteuerten Einheit ein beliebiges
Taktsignal der Taktsignale clk_div_1, clk_div_2, clk_div_4, clk_div_8,
und clk_div_16 zugeführt
werden, und zwar unabhängig davon,
welche Taktsignale den jeweils anderen Komponenten zugeführt werden.
-
Ferner
besteht auch keine Einschränkung darauf
daß die
Frequenzen der Taktsignale clk_div_1, clk_div_2, clk_div_4, clk_div_8,
und clk_div_16 jeweils um den Faktor 2 unterscheiden. Die Größenverhältnisse
der Frequenzen der Taktsignale clk_div_1, clk_div_2, clk_div_4,
clk_div_8, und clk_div_16 können
prinzipiell unabhängig
voneinander beliebige Werte annehmen. Vorzugsweise ist es jedoch
so, daß Komponenten
der programmgesteuerten Einheit, die miteinander in Verbindung treten können, mit
Taktsignalen versorgt werden, die so beschaffen sind, daß zu dem
Zeitpunkt, zu dem in einem Taktsignal eine Flanke auftritt, auch
in den Taktsignalen, welche die selbe oder eine höhere Frequenz
aufweisen, die entsprechende Flanke auftritt. Dadurch ist es besonders
einfach möglich,
die Kooperation der Komponenten der programmgesteuerten Einheit
unter Verwendung von später
noch näher beschriebenen
Quittierungssignalen erfolgen zu lassen.
-
Die
Taktsignalerzeugungseinrichtungen CGC und die Komponenten der programmgesteuerten
Einheit, welche die von diesen erzeugten Taktsignale verwenden,
sind so angeordnet, daß sich
bei der Übertragung
der von den Taktsignalerzeugungseinrichtungen erzeugten Taktsignale
zu den jeweils zugeordneten Komponenten keine oder allenfalls vernachlässigbar
geringe Laufzeitunterschiede ergeben.
-
Die
von der Taktsteuereinrichtung CEG ausgegebenen Freigabesignale
- – springen
jeweils eine Taktperiode des Master-Taktsignals clk m_vor dem Zeitpunkt,
zu welchem das durch die Taktsignalerzeugungseinrichtungen CGC erzeugte
Signal eine steigende Flanke aufweisen soll, vom Pegel 0 auf den
Pegel 1, und
- – behalten
diesen Zustand eine der Dauer einer Taktperiode clk des Signals
m_entsprechende Zeit bei, und springen dann wieder auf den Pegel 0
zurück.
-
3 zeigt
den Aufbau einer Taktsignalerzeugungseinrichtungen CGC. Es enthält ein Latch-Glied
L und ein UND-Glied AND. Das Latch-Glied L erhält als Eingangssignal das von
der Taktsteuereinrichtung CEG ausgegebene Freigabesignal clk_en_div_x,
und übernimmt
dieses mit der steigenden Flanke des Master-Taktsignals m_clk. Das
UND-Glied AND erhält
als Eingangssignale das Ausgangssignal des Latch-Gliedes L und das
Master-Taktsignal m_clk, unterzieht diese Signale einer UND-Operation,
und erzeugt dabei das Ausgangssignal clk_div_x der Taktsignalerzeugungseinrichtung CGC.
-
Die
zeitlichen Verläufe
der vorstehend genannten Signale sind in 4 dargestellt.
-
Wie
aus den vorstehenden Erläuterungen hervorgeht,
erfolgt die Erzeugung der verschiedenen Taktsignale clk_div_x durch
ein selektives Ausblenden bestimmter Abschnitte des Master-Taktsignals m_clk.
Deshalb, und weil die Zuführung
dieses Master-Taktsignals m_clk so erfolgt, daß es in allen Komponenten,
welchen es zugeführt
wird, d.h. in allen Taktsignalerzeugungseinrichtungen CGC die selbe Phasenlage
aufweist, und weil es bei der Übertragung
der Taktsignale clk_div_x zu den diese verwendenden Komponenten
keine oder jedenfalls keine wesentlichen Laufzeitunterschiede gibt,
arbeiten die mit den Taktsignalen clk_div_x versorgten Komponenten
der programmgesteuerten Einheit unter allen Umständen völlig synchron. Dies ist sogar
dann der Fall, wenn einzelne, mehrere oder alle der von der Taktsteuereinrichtung
CEG ausgegebenen Freigabesignale clk_en_div_x aufgrund von Problemen
bei der Erzeugung und/oder aufgrund von unterschiedlichen Laufzeiten
innerhalb der programmgesteuerten Einheit zeitlich nach hinten verschoben
sind. Wie aus dem in der 3 gezeigten und unter Bezugnahme darauf
beschriebenen Aufbau der Taktsignalerzeugungseinrichtungen CGC ersichtlich
ist, treten Veränderungen
der von den Taktsignalerzeugungseinrichtungen CGC erzeugten Taktsignale
clk_div_x erst dann auf, wenn die von der Taktsteuereinrichtung CEG
ausgegebenen Freigabesignale clk_en_div_x um eine einer Taktperiode
des Master-Taktsignals m_clk
entsprechende Zeit oder mehr nach hinten verschoben sind.
-
Unabhängig hiervon
lassen sich die Frequenzen der Taktsignale clk_div_x jederzeit,
auch während
des Betriebes der programm gesteuerten Einheit sehr einfach verändern. Hierzu
bedarf es lediglich einer entsprechenden Modifikation der die Frequenzen
dieser Signale bestimmenden Freigabesignale clk_en_div_x der Taktsteuereinrichtung
CEG.
-
Die
Erzeugung der Freigabesignale clk_en_div_x kann unter Verwendung
von Zählern erfolgen,
welche die Taktperioden des Master-Taktsignals m_clk zählen und
beim Erreichen bestimmter Zählstände Veränderungen
des Pegels der Freigabesignale clk_en_div_x veranlassen. Eine Veränderung der
Frequenzen der Taktsignale clk_div_x kann folglich einfach durch
eine entsprechende Umstellung der Zähler erfolgen, wobei auch hierbei
wiederum gilt, daß das
Timing der Freigabesignale clk_en_div_x innerhalb gewisser Grenzen
variieren darf.
-
Die
von der Taktsteuereinrichtung CEG ausgegebenen Freigabesignale clk_en_div_x
werden auch dem Quittierungssignalgenerator QSG zugeführt.
-
Dem
Quittierungssignalgenerator QSG werden ferner mit cs1 bis cs4 bezeichnete
Chip-Select-Signale zugeführt.
Die Chip-Select-Signale
sind Signale, die der Core C ausgibt und der Speichereinrichtung
S1 (Chip-Select-Signal cs1), bzw. der Speichereinrichtung Sn (Chip-Select-Signal
cs2), bzw. der Peripherieeinheit P1 (Chip-Select-Signal cs3), bzw.
der Peripherieeinheit Pn (Chip-Select-Signal cs4) über separate
(nicht zu den Bussen BUS1 und BUS2 gehörende) Leitungen zuführt, um
diesen zu signalisieren, daß der
Core C mit der jeweils betreffenden Einheit kommunizieren möchte.
-
Der
Quittierungssignalgenerator QSG bildet aus den ihm zugeführten Signalen
Quittierungssignale q1 bis q4, welche dem Core C zugeführt werden.
-
Der
Aufbau des Quittierungssignalgenerators ist in 5 gezeigt.
Er besteht aus UND-Gliedern AND1 bis AND4, wobei
- – das UND-Glied
AND1 das der Speichereinrichtung S1 zugeordnete Chip-Select-Signal
cs1 und das der Speichereinrichtung S1 zugeordnete Freigabesignal
clk_en_div_2 einer UND-Verknüpfung unterzieht
und das daraus resultierende Signal als Quittierungssignal q1 verwendet
und an den Core C ausgibt,
- – das
UND-Glied AND2 das der Speichereinrichtung Sn zugeordnete Chip-Select-Signal
cs2 und das der Speichereinrichtung Sn zugeordnete Freigabesignal
clk_en_div_4 einer UND-Verknüpfung unterzieht
und das daraus resultierende Signal als Quittierungssignal q2 verwendet
und an den Core C ausgibt,
- – das
UND-Glied AND3 das der Peripherieeinheit P1 zugeordnete Chip-Select-Signal
cs3 und das der Peripherieeinheit P1 zugeordnete Freigabesignal
clk_en_div_8 einer UND-Verknüpfung
unterzieht und das daraus resultierende Signal als Quittierungssignal
q3 verwendet und an den Core C ausgibt, und
- – das
UND-Glied AND4 das der Peripherieeinheit Pn zugeordnete Chip-Select-Signal
cs4 und das der Peripherieeinheit Pn zugeordnete Freigabesignal
clk_en_div_16 einer UND-Verknüpfung
unterzieht und das daraus resultierende Signal als Quittierungssignal
q4 verwendet und an den Core C ausgibt.
-
Folglich
wird dem Core C
- – durch das Quittierungssignal
q1 signalisiert, daß in
dem von der Speichereinrichtung S1 verwendeten Taktsignal das Auftreten
einer steigenden Flanke unmittelbar bevorsteht,
- – durch
das Quittierungssignal q2 signalisiert, daß in dem von der Speichereinrichtung
Sn verwendeten Taktsignal das Auftreten einer steigenden Flanke
unmittelbar bevorsteht,
- – durch
das Quittierungssignal q3 signalisiert, daß in dem von der Peripherieeinheit
P1 verwendeten Taktsignal das Auftreten einer steigenden Flanke unmittelbar
bevorsteht, und
- – durch
das Quittierungssignal q4 signalisiert, daß in dem von der Peripherieeinheit
Pn verwendeten Taktsignal das Auftreten einer steigenden Flanke unmittelbar
bevorsteht, Sofern der Core C gerade darauf wartet, daß die durch
eines der Chip-Select-Signale ausgewählte Komponente bei der nächsten steigenden
Flanke eine bestimmte Aktion ausführen wird, so kann der Core
C das Quittierungssignal als vorgezogene Bestätigung für die Ausführung dieser Aktion verwenden
und das Warten beenden.
-
Die
Vorteile dieser Vorgehensweise lassen sich anhand eines Beispiels
veranschaulichen:
Es sei angenommen, daß der Core C zur Peripherieeinheit
P1 Daten übertragen
möchte.
In diesem Fall signalisiert der Core C der Peripherieeinheit P1 über das
Chip-Select-Signal cs3, daß er
mit ihr über
den Bus BUS2 kommunizieren möchte,
und legt die zur Peripherieeinheit P1 zu übertragenden Daten auf den
Bus BUS2. Die Peripherieeinheit P1 kann diese Daten bei der nächste steigenden
Taktflanke des von ihr verwendeten Taktsignals clk_div_8 übernehmen. Es
sei angenommen, daß diese
steigende Flanke mit der steigenden Flanke des Taktes Nr. n des
vom Core verwendeten Taktsignals m_clk zusammenfällt. Dann erhält der Core
C bereits im Takt Nr. n-1 das Quittierungssignal q3. Durch das Quittierungssignal
q3 wird dem Core C signalisiert, daß die von ihm auf dem Bus ausgegebenen
Daten im nächsten
Takt, also im Takt Nr. n von der Peripherieeinheit übernommen werden.
Der Core C kann daher bereits zu Beginn des Taktes Nr. n die Ausgabe
der Daten beenden und mit der Programmausführung fortfahren.
-
Bei
einer herkömmlichen
programmgesteuerten Einheit, beispielsweise bei der in der 1 gezeigten
und eingangs unter Bezugnahme darauf beschriebenen programmgesteuerten
Einheit müßte die
Ausgabe der zur Peripherieeinheit P1 zu übertragenden Daten länger aufrechterhalten
werden, genauer gesagt so lange aufrechterhalten werden, bis die
Peripherieeinheit den Empfang der Daten bestätigt hat.
-
Es
dürfte
einleuchten und bedarf keiner näheren
Erläuterung,
daß die
vorstehend beschriebene Generierung und Verwendung von Quittierungssignalen
auch in anderen Situationen vorteilhaft ist, in welchen der Core
C auf die Ausführung
einer bestimmten Aktion durch eine der Speichereinrichtungen oder
Peripherieeinheiten wartet.
-
Der
Core C kann durch die Generierung und Verwendung der Quittierungssignale
schneller arbeiten, und darüber
hinaus entfällt
die Notwendigkeit daß die
miteinander kommunizierenden Komponenten der programmgesteuerten
Einheit ein Handshake-Verfahren durchführen.
-
Es
kann sich auch als vorteilhaft erweisen, wenn auch den Peripherieeinheiten
und/oder den Speichereinrichtungen entsprechende Quittierungssignale
zugeführt
werden, genauer gesagt das Freigabesignal clk_en_div_x für diejenige
Komponente zugeführt
wird, mit welcher die betreffende Peripherieeinheit oder Speichereinrichtung
gerade kommuniziert. Die Generierung und Verwendung von Quittierungssignalen
erweist sich immer als vorteilhaft, wenn die Komponente, welcher
sie zugeführt
werden, gleich schnell oder schneller getaktet wird als die Komponente,
mit welcher sie gerade kommuniziert.
-
Es
dürfte
einleuchten, daß die
Art und Weise der Generierung und Verwendung der Quittierungssignale
mannigfaltig modifizierbar ist.
-
Beispielsweise
könnte
vorgesehen werden, daß die
Anzahl der Quittierungssignale minimiert wird. Beim betrachteten
Beispiel könnte
hierzu beispielsweise vorgesehen werden, die Quittierungssignale
q1 und q2, sowie die Quittierungssignale q3 und q4 einer ODER-Verknüpfung zu
unterziehen und die Ergebnisse der ODER-Verknüpfungen als Quittierungssignale
zu verwenden. Dadurch gäbe
es nicht mehr vier, sondern nur noch zwei Quittierungssignale. Diese
Reduzierung der Anzahl der Quittierungssignale stellt im betrachteten
Beispiel keinen Nachteil dar, weil nie beide Peripherieeinheiten
gleichzeitig mit dem Core kommunizieren können, und weil auch nie beide
Speichereinrichtungen gleichzeitig mit dem Core kommunizieren können.
-
Es
könnte
auch vorgesehen werden, auf den Quittierungssignalgenerator QSG
zu verzichten, und dem Core, den Peripherieeinheiten und/oder den Speichereinrichtungen
direkt die Freigabesignale clk_en_div_x für die jeweils anderen Komponenten, mit
welchen sie kommunizieren können,
zuzuführen.