PatentDe  


Dokumentenidentifikation DE10148134B4 19.04.2007
Titel Verfahren zur Busansteuerung
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Kaibel, Martin, 81371 München, DE;
Weisgerber, Andreas, 82110 Germering, DE;
El Baradie, Sammy, 81479 München, DE
Vertreter Jannig & Repkow Patentanwälte, 86199 Augsburg
DE-Anmeldedatum 28.09.2001
DE-Aktenzeichen 10148134
Offenlegungstag 24.04.2003
Veröffentlichungstag der Patenterteilung 19.04.2007
Veröffentlichungstag im Patentblatt 19.04.2007
IPC-Hauptklasse G06F 13/14(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]

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 programmgesteuerten 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.


Anspruch[de]
Verfahren zur Busansteuerung in einer Vorrichtung mit einer Daten auf ein Bussystem (BUS1, BUS2) ausgebenden ersten Schaltungskomponente (C) und an das Bussystem (BUS1, BUS2) angeschlossenen anderen Schaltungskomponenten (P1-Pn, S1-Sn), wobei die auf das Bussystem ausgegebenen Daten mit unterschiedlichen Transferraten, abhängig von den Geschwindigkeiten der jeweils anderen Schaltungskomponenten (P1-Pn, S1-Sn), über das Bussystem übertragen werden, dadurch gekennzeichnet, daß der ersten Schaltungskomponente (C) ein Quittierungssignal (gx) zugeführt wird, welches die Beendigung eines über das Bussystem erfolgenden Datentransfers einleitet, wobei das Quittierungssignal (qx) durch eine logische Verknüpfung eines Freigabesignals (clk_en_div_x) und eines Auswahlsignals (csx) gebildet wird, wobei das Freigabesignal ein die Bustransferrate vorgebendes Signal ist, und das Bussystem nach dem dem Quittierungssignal (gx) folgenden Taktsignal (clk_div_x) für weitere Datentransfers freigegeben wird. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Schaltungskomponenten (C, P1 – Pn, S1 – Sn) taktgesteuerte Komponenten sind. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Schaltungskomponenten (C, P1 – Pn, S1 – Sn) zumindest teilweise mit verschiedenen Taktsignalen (clk_div_x) betrieben werden. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß das Taktsignal (clk_div_x), mit welchem die anderen Schaltungskomponenten (P1 – Pn, S1 – Sn) betrieben werden, die selbe oder eine niedrigere Frequenz aufweist als das Taktsignal (clk_div_1), mit welchem die erste Schaltungskomponente (C) betrieben wird. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, daß das Quittierungssignal (qx) während der Periode des von der ersten Schaltungskomponente (C) verwendeten Taktsignals (clk_div_1) erzeugt wird, innerhalb welcher oder im Anschluß an welche über das Bussystem übertragene Daten von einer der anderen Schaltungskomponenten (P1 – Pn, S1 – Sn) übernommen werden. Verfahren nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, daß das Quittierungssignal (qx) während der Periode des von der ersten Schaltungskomponente (C) verwendeten Taktsignals (clk_div_1) erzeugt wird, innerhalb welcher oder im Anschluß an welche die Flanke des von einer der anderen Schaltungskomponenten (P1 – Pn, S1 – Sn) verwendeten Taktsignals (clk_div_x) auftritt, bei deren Auftreten über das Bussystem übertragene Daten von einer der anderen Schaltungskomponenten (P1 – Pn, S1 – Sn) übernommen werden. Verfahren nach einem der Ansprüche 2 bis 6, dadurch gekennzeichnet, daß das Freigabesignal (clk_en_div_x) ein Signal ist, unter Berücksichtigung von welchem das Taktsignal (clk_div_x) erzeugt wird, welches von wenigstens einer der anderen Schaltungskomponenten (P1 – Pn, S1 – Sn) verwendet wird. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die erste Schaltungskomponente (C) das Quittierungssignal (qx) als Bestätigung der Übernahme von über das Bussystem übertragenen Daten durch eine der anderen Schaltungskomponenten (P1 – Pn, S1 – Sn) verwendet. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Quittierungssignal (qx) von einer Schaltungskomponente (QSG) gebildet wird, die nicht identisch mit der ersten und den anderen Schaltungskomponenten (C, P1 – Pn, S1 – Sn) ist. Verfahren nach einem der vorhergehenden Ansprüche,

dadurch gekennzeichnet,

daß die Taktsignale (clk_div_x) für die Schaltungskomponenten unter Verwendung eines Taktgenerators (MCG, CGC, CEG) erzeugt werden, wobei dieser Taktgenerator einen Master-Taktgenerator (MCG), eine Taktsteuereinrichtung (CEG) und mehrere Taktsignalerzeugungseinrichtungen (CGC) enthält, und wobei

– der Master-Taktgenerator (MCG) ein Master-Taktsignal (m_clk) erzeugt und dieses allen Taktsignalerzeugungseinrichtungen (CGC) zuführt,

– die Taktsteuereinrichtung (CEG) mehrere Freigabesignale (clk_en_div_x) erzeugt, und jeder Taktsignalerzeugungseinrichtung (CGC) ein Freigabesignal (clk_en_div-x) zuführt, und

– jede der Taktsignalerzeugungseinrichtungen (CGC) einen durch das Freigabesignal (clk_en_div_x) bestimmten Teil des Master-Taktsignals (m_clk) passieren läßt und dieses Signal als Taktsignal (clk_div_x) an eine oder mehrere Schaltungskomponenten weiterleitet.
Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß das Master-Taktsignal (m_clk) den Taktsignalerzeugungseinrichtungen (CGC) so zugeführt wird, daß es alle Taktsignalerzeugungseinrichtungen mit der selben Phasenlage erreicht. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeichnet, daß das von der Taktsteuereinrichtung (CEG) erzeugte Freigabesignal (clk_en_div_x) vor dem Zeitpunkt, zu welchem das unter Berücksichtigung dieses Freigabesignals zu erzeugende Taktsignal (clk_div_x) eine bestimmte Flanke aufweisen soll, eine gewisse Zeit einen anderen Pegel aufweist als es sonst der Fall ist. Verfahren nach einem der Ansprüche 10 bis 12,

dadurch gekennzeichnet,

daß die Taktsignalerzeugungseinrichtungen (CGC) jeweils ein Latch-Glied (L) und ein UND-Glied (AND) enthalten,

– wobei das Latch-Glied (L) den momentanen Pegel des Freigabesignals (clk_en_div_x) mit der steigenden Flanke des Master-Taktsignals (m_clk) übernimmt,

– wobei das UND-Glied (AND) eine UND-Verknüpfung des Ausgangssignals des Latch-Gliedes (L) und des Master-Taktsignals (m_clk) durchführt, und

– wobei das Ausgangssignal des UND-Gliedes (AND) als das von der Taktsignalerzeugungseinrichtung (CGC) zu erzeugende Taktsignal (clk_div_x) verwendet wird.
Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vorrichtung eine integrierte Schaltung ist. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vorrichtung eine programmgesteuerte Einheit ist. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß die erste Schaltungskomponente (C) der Core der programmgesteuerten Einheit ist.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com