PatentDe  


Dokumentenidentifikation DE10360679B4 19.04.2007
Titel Programmgesteuerte Einheit
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Barrenscheen, Jens, Dr., 81669 München, DE
Vertreter Jannig & Repkow Patentanwälte, 86199 Augsburg
DE-Anmeldedatum 19.12.2003
DE-Aktenzeichen 10360679
Offenlegungstag 21.07.2005
Veröffentlichungstag der Patenterteilung 19.04.2007
Veröffentlichungstag im Patentblatt 19.04.2007
IPC-Hauptklasse G06F 13/36(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]

Die vorliegende Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1, d.h. eine programmgesteuerte Einheit mit

  • – einem ersten Bus,
  • – über den ersten Bus miteinander verbundenen Einrichtungen,
  • – einem zweiten Bus,
  • – über den zweiten Bus miteinander verbundenen Einrichtungen, und
  • – einer sowohl mit dem ersten Bus als auch mit dem zweiten Bus verbundenen Bus Bridge zur Übertragung von Daten zwischen einer an einem der Busse angeschlossenen ersten Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung, wobei die von der ersten Einrichtung zur zweiten Einrichtung zu übertragenden Daten über den einen Bus, die Bus Bridge, und den anderen Bus zur zweiten Einrichtung übertragen werden, und wobei die Bus Bridge einen Pufferspeicher zum Zwischenspeichern der über die Bus Bridge zu transferierenden Daten enthält.

Bei der programmgesteuerten Einheit handelt es sich um eine ein Programm ausführende Vorrichtung wie beispielsweise einen Mikroprozessor, einen Mikrocontroller, einen Signalprozessor oder dergleichen.

Der prinzipielle Aufbau einer programmgesteuerten Einheit ist in 3 veranschaulicht. Die 3 zeigt einen Mikrocontroller. Der Vollständigkeit halber sei bereits an dieser Stelle angemerkt, daß hier nur die vorliegend besonders interessierenden Komponenten des Mikrocontrollers gezeigt und beschrieben sind.

Der in der 3 gezeigte Mikrocontroller enthält einen ersten Bus 301, über den ersten Bus 301 miteinander verbundene Einrichtungen 302-1 bis 302-3, einen zweiten Bus 303, über den zweiten Bus 303 miteinander verbundene Einrichtungen 304-1 bis 304-3, und einer sowohl mit dem ersten Bus 301 als auch mit dem zweiten Bus 303 verbundenen Bus Bridge 305.

Im betrachteten Beispiel sei die Einrichtung 302-1 ein erster Speicher, die Einrichtung 302-2 eine erste CPU, die Einrichtung 302-3 ein erster I/O-Controller, die Einrichtung 304-1 ein zweiter Speicher, die Einrichtung 304-2 eine zweite CPU, und die Einrichtung 304-3 ein zweiter I/O-Controller. Der Vollständigkeit halber sei angemerkt, daß an die Busse 301 und 303 unabhängig voneinander auch beliebige andere und/oder weitere Einrichtungen angeschlossen sein können.

Die Busse 301 und 303 können unabhängig voneinander mit beliebig hohen Taktfrequenzen arbeiten. Im betrachteten Beispiel sei angenommen, daß der erste Bus 301 mit einer höheren Taktfrequenz als der zweite Bus 303 betrieben wird. Unabhängig hiervon können die Busse 301 und 303 auch eine unterschiedliche Busbreite aufweise, insbesondere unterschiedlich viele Leitungen umfassende Datenbusse aufweisen. Im betrachteten Beispiel sei angenommen, daß der erste Bus 301 einen 32-Bit-Datenbus umfaßt, und daß der zweite Bus 303 einen 16-Bit-Datenbus umfaßt.

Die Bus Bridge 305 ermöglicht es, daß zwischen dem ersten Bus 301 und dem zweiten Bus 303 Daten übertragen werden. Genauer gesagt dient sie zur Übertragung von Daten zwischen einer an einem der Busse angeschlossenen ersten Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung.

Über die Bus Bridge 305 können beispielsweise von der ersten CPU 302-2 durch den zweiten I/O-Controller 304-3 aus dem Mikrocontroller auszugebende Daten an den zweiten I/O-Controller 304-3 übertragen werden. In diesem Fall werden die von der ersten CPU 302-2 ausgegebenen und für den zweiten I/O-Controller 304-3 bestimmten Daten zunächst über den ersten Bus 301 zur Bus Bridge 305 übertragen. Die Bus Bridge 305 speichert die erhaltenen Daten, gibt dann an eine den zweiten Bus 303 steuernde Arbitrierungslogik ein Bus-Request-Signal aus, wartet bis sie Bus-Master am zweiten Bus 303 wird, und überträgt schließlich die Daten über den zweiten Bus 303 zu dem daran angeschlossenen zweiten I/O-Controller 304-3. Entsprechend wird vorgegangen, wenn eine der am zweiten Bus 303 angeschlossenen Einrichtungen an eine der am ersten Bus 301 angeschlossenen Einrichtungen Daten zu übertragen hat, beispielsweise wenn die zweite CPU 304-2 dem ersten I/O-Controller 302-3 Daten zuführen möchte.

Derartige Datenübertragungen erfordern einen hohen technischen und zeitlichen Aufwand. Die Busse 301 und 303 müssen Multi-Master-Busse sein, und darüber hinaus nimmt die Datenübertragung sehr viel Zeit in Anspruch.

Noch aufwendiger ist das Lesen von Daten, also wenn beispielsweise die erste CPU 302-2 vom zweiten I/O-Controller 302-3 Daten abholen möchte, die der I/O-Controller 302-3 von einer außerhalb des Mikrocontrollers vorgesehenen Einrichtung empfangen hat, und die nun im I/O-Controller 302-3 zur Abholung bereitstehen. In diesem Fall sind beide Busse bis zum Abschluß des Lesevorganges durch den Lesevorgang belegt.

Weitere programmgesteuerte Einheiten mit Bus Bridges sind beispielsweise aus der der US 6,219,737 B1 und der EP 0851 362 B1 bekannt. Die in den genanntaen Druckschriften beschriebenen Systeme bieten jedoch keine zufriedenstellende Lösung der vorstehend genannten Probleme.

Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die programmgesteuerte Einheit gemäß dem Oberbegriff des Patentanspruchs 1 derart weiterzubilden, daß sich Datentransfers zwischen zwei Bussen schneller und einfacher durchführen lassen als es bisher der Fall ist.

Diese Aufgabe wird erfindungsgemäß durch die in Patentanspruch 1 beanspruchte programmgesteuerte Einheit gelöst.

Die erfindungsgemäße programmgesteuerte Einheit zeichnet sich dadurch aus, daß die Bus Bridge eine Steuereinrichtung enthält, welche überwacht, ob im Pufferspeicher für die zweite Einrichtung bestimmte Daten oder eine bestimmte Mindestmenge von für die zweite Einrichtung bestimmten Daten zwischengespeichert sind, und dann, wenn dies der Fall ist, einer der am anderen Bus angeschlossenen Einrichtungen signalisiert, daß in der Bus Bridge Daten zur Abholung bereitstehen.

Bei einer solchen programmgesteuerten Einheit entfällt die Notwendigkeit, daß die Bus Bridge die vom einen Bus auf den anderen Bus zu transferierenden Daten auf eigene Veranlassung hin an die Einrichtung weiterleitet, für welche sie bestimmt sind. Die von der Bus Bridge auf den Empfang von weiterzuleitenden Daten hin auszuführenden Aktionen können sich darauf beschränken, daß die Bus Bridge durch ein Interrupt-Request-Signal, ein DMA-Request-Signal, oder ein sonstiges Signal signalisiert, daß in ihr Daten zur Abholung bereitstehen. Der Signalisierungsempfänger kann diese Daten sodann zu einem geeigneten Zeitpunkt durch einen entsprechenden Lesezugriff auf die Bus Bridge abholen. Bei einer solchen programmgesteuerten Einheit ist es nicht erforderlich, daß die Bus Bridge an den über sie verbundenen Bussen Bus-Master werden kann. Sie kann sowohl am ersten Bus als auch am zweiten Bus eine Slave-Einheit sein, wodurch sowohl der erste Bus als auch der zweite Bus Single-Master-Busse sein können. Single Master-Busse benötigen keine Arbitrierungslogik und können somit sehr viel einfacher aufgebaut sein und betrieben werden als Multi-Master-Busse.

Die vom einen Bus auf den anderen Bus übertragenen Daten können auch in einer einen Lesezugriff einleitenden Datenanforderung bestehen, durch welche die den Lesezugriff ausführende Einrichtung Daten von einer am anderen Bus angeschlossenen, und im folgenden Lesezugriffs-Empfänger bezeichneten Einrichtung anfordert. In diesem Fall muß die den Lesezugriff ausführende Einrichtung nicht warten, bis die Bus Bridge eine Verbindung zum Lesezugriffs-Empfänger hergestellt und die angeforderten Daten erhalten und weitergeleitet hat. Vielmehr kann die den Lesezugriff ausführende Einrichtung nach der Übermittlung der Datenanforderung an die Bus Bridge den Bus wieder freigeben und sich gegebenenfalls sogar anderen Aufgaben widmen. Die Bus Bridge signalisiert dem Lesezugriffs-Empfänger, daß in ihr Daten zur Abholung bereitstehen, und gibt diese Daten auf einen entsprechenden Lesezugriff seitens des Lesezugriffs-Empfängers aus. Der Lesezugriffs-Empfänger erkennt an den ihm zugeführten Daten, daß diese einen Lesezugriff auf ihn repräsentieren, gibt sodann die durch die Datenanforderung angeforderten Daten an die Bus Bridge aus, und gibt unmittelbar danach den Bus wieder frei. Die Bus Bridge signalisiert der Einrichtung, die den Lesezugriff eingeleitet hat, daß Daten zur Abholung bereitstehen. Die Einrichtung, die den Lesezugriff eingeleitet hat, führt daraufhin einen Lesezugriff auf die Bus Bridge aus, und bekommt dadurch die ursprünglich angeforderten Daten übermittelt. Bei einer solchen Vorgehensweise sind die Busse durch einen busübergreifenden Lesezugriff erheblich kürzere Zeit belegt als es bei entsprechenden Lesezugriffen in herkömmlichen programmgesteuerten Einheiten der Fall ist.

Darüber hinaus kann die Bus Bridge als vollständiger oder teilweiser Ersatz für die Sendepuffer und/oder Empfangspuffer der weiteren Einrichtungen verwendet werden, die außer der Bus Bridge an den Bussen angeschlossen sind, so daß die weiteren Einrichtungen ohne oder mit kleineren internen Sendepuffern und/oder Empfangspuffern auskommen als es ohne die Bus Bridge der Fall wäre.

Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen, der folgenden Beschreibung, und den Figuren entnehmbar.

Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Figuren näher erläutert. Es zeigen

1 den Aufbau eines im folgenden beschriebenen ersten Ausführungsbeispiels der hier vorgestellten programmgesteuerten Einheit,

2 den Aufbau eines im folgenden beschriebenen zweiten Ausführungsbeispiels der hier vorgestellten programmgesteuerten Einheit, und

3 den Aufbau einer herkömmlichen programmgesteuerten Einheit,

Bei den im folgenden beschriebenen programmgesteuerten Einheiten handelt es sich um Mikrocontroller. Es könnte sich jedoch auch um beliebige andere programmgesteuerte Einheiten wie beispielsweise Mikroprozessoren oder Signalprozessoren handeln.

Die im folgenden beschriebenen Mikrocontroller entsprechen weitgehend dem in der 3 gezeigten und unter Bezugnahme darauf beschriebenen herkömmlichen Mikrocontroller. Insbesondere weisen auch die im folgenden beschriebenen Mikrocontroller zwei Busse auf, die über eine Bus Bridge miteinander verbunden sind. Darüber hinaus können die Busse unabhängig voneinander mit beliebig hohen Taktfrequenzen arbeiten, und auch eine unterschiedliche Datenbusbreite aufweisen (unterschiedlich viele Leitungen umfassende Datenbusse umfassen). Allerdings unterscheiden sich der Aufbau und das Verhalten der Bus Bridges der im folgenden beschriebenen Mikrocontroller vom Aufbau und vom Verhalten der Bus Bridge des Mikrocontrollers gemäß 3. Unterschiedlich ist im betrachteten Beispiel ferner, daß beide Busse Single-Master-Busse sind, oder zumindest Single-Master-Busse sein können. Bus-Master ist jeweils eine Einrichtung, die in der Lage ist, für den anderen Bus bestimmte Daten auf den eigenen Bus auszugeben und deren Weiterleitung an den anderen Bus zu initiieren und/oder die in der Lage ist, die Ausgabe von in der Bus Bridge gespeicherten Daten auf den eigenen Bus zu veranlassen und dafür zu sorgen, daß die Daten der Einrichtung zugeführt werden für welche sie bestimmt sind. In den betrachteten Beispielen sind jeweils eine CPU, oder ein DMA-Controller, oder eine CPU/DMA-Kombination Bus-Master. Es könnte jedoch auch jede beliebige andere Einrichtung, die in der Lage ist, die vorstehend genannten Operationen auszuführen, Bus-Master sein.

Es sei bereits an dieser Stelle erwähnt, daß von den im folgenden vorgestellten Mikrocontrollern nur die vorliegend besonders interessierenden Komponenten gezeigt und beschrieben sind.

Der in der 1 gezeigte Mikrocontroller enthält einen ersten Bus 101, über den ersten Bus 101 miteinander verbundene Einrichtungen 102-1 bis 102-3, einen zweiten Bus 103, über den zweiten Bus 103 miteinander verbundene Einrichtungen 104-1 bis 104-3, und einer sowohl mit dem ersten Bus 101 als auch mit dem zweiten Bus 103 verbundenen Bus Bridge 105.

Im betrachteten Beispiel ist die Einrichtung 102-1 ein erster Speicher, die Einrichtung 102-2 eine erste CPU, die Einrichtung 101-3 ein erster I/O-Controller, die Einrichtung 104-1 ein zweiter Speicher, die Einrichtung 104-2 eine zweite CPU mit integriertem DMA-Controller, und die Einrichtung 104-3 ein zweiter I/O-Controller. Der Vollständigkeit halber sei angemerkt, daß an die Busse 101 und 103 unabhängig voneinander auch beliebige andere und/oder weitere Einrichtungen angeschlossen sein können.

Die Busse sind im betrachteten Beispiel Single-Master-Busse, wobei die CPU 102-2 der Master des ersten Busses 101 ist, und die CPU/DMA-Kombination 104-2 der Master des zweiten Busses 103 ist.

Die Bus Bridge 105 ermöglicht es, daß zwischen dem ersten Bus 101 und dem zweiten Bus 103 Daten übertragen werden. Genauer gesagt dient die Bus Bridge zur Übertragung von Daten zwischen einer an einem der Busse angeschlossenen ersten Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung und entspricht insoweit der Bus Bridge 305 des Mikrocontrollers gemäß 3.

Die Bus Bridge 105 enthält eine Eingangsstufe 106 und eine Speicheranordnung 107, wobei die Speicheranordnung 107 aus einem am Eingang derselben vorgesehenen Eingangsregister 108, einem am Ausgang derselben vorgesehenen Ausgangsregister 110, und einem zwischen dem Eingangsregister 108 und dem Ausgangsregister 110 vorgesehenen Pufferspeicher 109 besteht.

Die Eingangsstufe 106 ist eingangsseitig mit dem ersten Bus 101 verbunden, und ist ausgangsseitig über Leitungen oder Busse 111 und 112 mit der Speicheranordnung 107 verbunden. Die Speicheranordnung 107 ist ausgangsseitig mit dem zweiten Bus 103 und über eine Leitung oder einen Bus 113 sowie über eine weitere Leitung 114 mit der CPU/DMA-Kombination 104-2 verbunden.

Es sei nun angenommen, daß die erste CPU 102-2 durch den zweiten I/O-Controller 104-3 aus dem Mikrocontroller auszugebende Daten an den zweiten I/O-Controller 104-3 übertragen möchte. In diesem Fall gibt die erste CPU 102-2 die für den I/O-Controller 104-3 bestimmten Daten zusammen mit einer bestimmten Adresse auf den ersten Bus 101 aus, wobei die bestimmte Adresse eine Adresse ist, anhand welcher die Bus Bridge 105 erkennen kann, daß die zusammen mit der Adresse übertragenen Daten für eine der an den zweiten Bus 103 angeschlossenen Einrichtungen bestimmt sind. Die Bus Bridge 105, genauer gesagt die mit dem ersten Bus 101 verbundene Eingangsstufe 106 derselben verfolgt die über den ersten Bus 101 übertragenen Adressen und entscheidet abhängig hiervon, ob die zusammen mit den Adressen übertragenen Daten für eine der an den zweiten Bus 103 angeschlossenen Einrichtungen bestimmt sind. Da dies im betrachteten Beispiel der Fall ist, nimmt die Eingangsstufe 106 die von der ersten CPU 102-2 ausgegebenen Daten in sich auf und leitet sie über die Leitung oder den Bus 111 an die Speicheranordnung 107 weiter. Darüber hinaus setzt die Eingangsstufe 106 die über den ersten Bus übertragene Adresse in eine Zieladresse um, die zusammen mit über den zweiten Bus übertragenen Daten auf den zweiten Bus 103 ausgegeben werden muß, damit der I/O-Controller 104-3 erkennt, daß die zusammen mit der Adresse übertragenen Daten für ihn bestimmt sind. Die Umsetzung der über den ersten Bus 101 übertragenen Adresse in die Zieladresse erfolgt unter Verwendung einer in der Eingangsstufe 106 gespeicherten Mapping-Vorschrift. Diese Mapping-Vorschrift kann der Eingangsstufe 106 durch die erste CPU 102-2, die CPU/DMA-Kombination 104-2, oder eine sonstige Komponente des Mikrocontrollers zugeführt werden und beispielsweise durch das vom Mikrocontroller ausgeführte Programm vorgegeben werden. Die von der Eingangsstufe 106 gebildete Zieladresse wird von der Eingangsstufe über die Leitung oder den Bus 112 an die Speicheranordnung 107 weitergeleitet. Die über die Leitung oder den Bus 111 übertragenen Daten und die über die Leitung oder den Bus 112 übertragene Zieladresse werden in der Speicheranordnung 107 gespeichert. Sie gelangen dabei zunächst in das Eingangsregister 108, von dort in den Pufferspeicher 109, und schließlich in das Ausgangsregister 110, aus welchem sie, wie später noch genauer beschrieben wird, von der CPU/DMA-Kombination 104-2 ausgelesen werden. Die der Speicheranordnung 107 zugeführten Daten und Zieladressen gelangen in der Reihenfolge in das Ausgangsregister 110, in welcher sie der Speicheranordnung über das Eingangsregister 108 derselben zugeführt wurden (first in first out). Der Pufferspeicher 107 ist folglich ein FIFO-Speicher oder ein sich wie ein FIFO-Speicher verhaltender Speicher.

Die Speicheranordnung 107 enthält darüber hinaus eine Füllstandslogik, durch welche ermittelbar ist, ob sich in der Speicheranordnung 107 noch nicht ausgegebene Daten oder eine bestimmte Mindestmenge von noch nicht ausgegebenen Daten befinden.

Wenn die Füllstandslogik erkennt, daß sich in der Speicheranordnung 107 noch nicht ausgegebene Daten oder eine bestimmte Mindestmenge von noch nicht ausgegebenen Daten befinden, signalisiert sie diesen Umstand der CPU/DMA-Kombination 104-2. Gleichzeitig wird aus dem Ausgangsregister 110 über die Leitung oder den Bus 113 die Zieladresse der als nächste auszugebenden Daten an die CPU/DMA-Kombination 104-2 ausgegeben. Die Signalisierung kann beispielsweise durch die Ausgabe eines Interrupt-Request-Signals, oder eines DMA-Request-Signals, oder eines beliebigen anderen Signals erfolgen; die Signalisierung erfolgt über eine nicht zum zweiten Bus 103 gehörende Leitung.

Sobald die CPU/DMA-Kombination 104-2 in der Lage ist, die in der Bus Bridge 105 zur Abholung bereitstehenden Daten abzuholen, gibt sie die ihr von der Bus Bridge 105 zugeführte Zieladresse auf den zweiten Bus 103 aus und veranlaßt über die Leitung 114, daß die im Ausgangsregister 110 gespeicherten Daten auf den zweiten Bus 103 ausgegeben werden. Der zweite I/O-Controller 104-3 erkennt anhand der über den zweiten Bus 103 übertragenen Zieladresse, daß die zusammen mit dieser Adresse übertragenen Daten für ihn bestimmt sind. Er liest diese Daten ein und verarbeitet sie weiter oder gibt sie aus dem Mikrocontroller aus. Es könnte auch vorgesehen werden, daß die CPU/DMA-Kombination 104-2 die in der Bus Bridge 105 zur Abholung bereitstehenden Daten erste dann abholt, wenn ihr der I/O-Controller signalisiert hat, daß er zur Aufnahme von Daten bereit ist.

Der letztgenannte Vorgang muß wiederholt werden, wenn die von der ersten CPU 102-2 auf den ersten Bus 101 ausgegebenen Daten mehr Bits umfassen als über den zweiten Bus 103 auf einmal übertragen werden können. D.h., wenn beispielsweise über den ersten Bus 101 32-Bit-Daten übertragen werden, und über den zweiten Bus 103 nur 16-Bit-Daten übertragen werden können, muß der letztgenannte Vorgang pro von der ersten CPU 102-2 ausgegebenem Datenwort zwei mal durchgeführt werden.

Im betrachteten Beispiel wurde der Transfer der in der Bus Bridge gespeicherten Daten zu ihrem Bestimmungsort durch eine CPU/DMA-Kombination, genauer gesagt durch die CPU/DMA-Kombination 104-2 veranlaßt. Dies könnte aber auch durch eine CPU, einen DMA-Controller oder eine beliebige andere Einrichtung erfolgen, die in der Lage ist, die hierfür durchzuführenden Operationen durchzuführen. In diesem Fall müßten die Leitung oder der Bus 113 und die Leitung 114 mit der CPU, dem DMA-Controller oder der anderen Vorrichtung verbunden sein.

Im betrachteten Beispiel ist die Bus Bridge 105 "nur" in der Lage, Daten von einer der am ersten Bus 101 angeschlossenen Einrichtungen zu einer der am zweiten Bus 103 angeschlossenen Einrichtungen zu übertragen. Durch eine entsprechende Modifikation der Verschaltung der Bus Bridge 105 wäre es jedoch auch möglich, über die Bus Bridge 105 Daten von einer der am zweiten Bus 103 angeschlossenen Einrichtungen zu einer der am ersten Bus 101 angeschlossenen Einrichtungen zu übertragen. Hierzu müßte lediglich vorgesehen werden, daß die Eingangsstufe 106 eingangsseitig mit dem zweiten Bus 103 verbunden ist, daß die Leitung oder der Bus 113 sowie die Leitung 114 mit der ersten CPU 102-2 verbunden sind, und daß das Ausgangsregister 110 mit dem zweiten Bus 103 verbunden ist.

Durch eine entsprechende Verschaltung der Bus Bridge 105 wäre es auch möglich, daß über sie sowohl Daten von einer der am ersten Bus 101 angeschlossenen Einrichtungen zu einer der am zweiten Bus 103 angeschlossenen Einrichtungen, als auch Daten von einer der am zweiten Bus 103 angeschlossenen Einrichtungen zu einer der am ersten Bus 101 angeschlossenen Einrichtungen übertragen werden können.

Wenn durch die Bus Bridge nur Daten von einer der am ersten Bus 101 angeschlossenen Einrichtungen zu einer ganz bestimmten der am zweiten Bus 103 angeschlossenen Einrichtungen übertragen werden sollen, und/oder wenn durch die Bus Bridge nur Daten von einer der am zweiten Bus 103 angeschlossenen Einrichtungen zu einer ganz bestimmten der am ersten Bus 101 angeschlossenen Einrichtungen übertragen werden sollen, kann der in der 1 gezeigte Mikrocontroller, genauer gesagt die Bus Bridge 105 desselben noch weiter vereinfacht werden.

Ein solcher Mikrocontroller ist in 2 veranschaulicht. Der in der 2 gezeigte Mikrocontroller enthält einen ersten Bus 201, über den ersten Bus 201 miteinander verbundene Einrichtungen 202-1 bis 202-3, einen zweiten Bus 203, über den zweiten Bus 203 miteinander verbundene Einrichtungen 204-1 bis 204-3, und einer sowohl mit dem ersten Bus 201 als auch mit dem zweiten Bus 203 verbundenen Bus Bridge 205.

Im betrachteten Beispiel ist die Einrichtung 202-1 ein erster Speicher, die Einrichtung 202-2 eine erste CPU, die Einrichtung 201-3 ein erster I/O-Controller, die Einrichtung 204-1 ein zweiter Speicher, die Einrichtung 204-2 eine zweite CPU mit integriertem DMA-Controller, und die Einrichtung 204-3 ein zweiter I/O-Controller. Der Vollständigkeit halber sei angemerkt, daß an die Busse 201 und 203 unabhängig voneinander auch beliebige andere und/oder weitere Einrichtungen angeschlossen sein können.

Die Busse sind im betrachteten Beispiel Single-Master-Busse, wobei die CPU 202-2 der Master des ersten Busses 201 ist, und die CPU/DMA-Kombination 204-2 der Master des zweiten Busses 203 ist.

Die Bus Bridge 205 ermöglicht es, daß zwischen dem ersten Bus 201 und dem zweiten Bus 203 Daten übertragen werden. Genauer gesagt dient die Bus Bridge zur Übertragung von Daten zwischen einer an einem der Busse angeschlossenen ersten Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung.

Wie unschwer zu erkennen ist, entspricht der in der 2 gezeigte Mikrocontroller weitestgehend dem in der 1 gezeigten und unter Bezugnahme darauf beschriebenen Mikrocontroller. Der erste Bus 201 und der zweite Bus 203 entsprechen dem ersten Bus 101 und 103, die am ersten Bus 201 angeschlossenen Einrichtungen 202-1 bis 202-3 entsprechen den am ersten Bus 101 angeschlossenen Einrichtungen 102-1 bis 102-3, und die am zweiten Bus 203 angeschlossenen Einrichtungen 204-1 bis 204-3 entsprechen den am zweiten Bus 103 angeschlossenen Einrichtungen 104-1 bis 104-3. Nur die restlichen gezeigten Mikrocontroller-Komponenten, genauer gesagt nur die Bus Bridge 205 stimmt nicht mit den entsprechenden Komponenten des in der 1 gezeigten Mikrocontrollers überein.

Die Bus Bridge 205 enthält einen ersten Multiplexer 215, eine Speicheranordnung 207, und einen zweiten Multiplexer 216, wobei die Speicheranordnung 207 aus einem am Eingang derselben vorgesehenen Eingangsregister 208, einem am Ausgang derselben vorgesehenen Ausgangsregister 210, und einem zwischen dem Eingangsregister 208 und dem Ausgangsregister 210 vorgesehenen Pufferspeicher 209 besteht.

Der erste Multiplexer 215 ist eingangsseitig mit dem ersten Bus 201 und mit dem zweiten Bus 203 verbunden, und ist ausgangsseitig mit der Speicheranordnung 207, genauer gesagt mit dem Eingangsregister 208 derselben verbunden; der zweite Multiplexer 216 ist eingangsseitig mit der Speicheranordnung 207, genauer gesagt mit dem Ausgangsregister 210 derselben verbunden, und ist ausgangsseitig mit dem ersten Bus 201 und mit dem zweiten Bus 203 verbunden. Die Multiplexer 215 und 216 werden so angesteuert, daß die Speicheranordnung 207 entweder über den ersten Multiplexer 215 mit dem ersten Bus 201 und über den zweiten Multiplexer 216 mit dem zweiten Bus 203 verbunden ist, oder über den ersten Multiplexer 215 mit dem zweiten Bus 203 und über den zweiten Multiplexer 216 mit dem ersten Bus 201 verbunden ist. Die Multiplexer 215 und 216 werden durch die erste CPU 202-2, die zweite CPU 204-2, oder eine sonstige Komponente des Mikrocontrollers gesteuert. Wie die Multiplexer 215 und 216 jeweils anzusteuern sind, kann der programmgesteuerten Einheit beispielsweise durch das von dieser ausgeführte Programm vorgegeben werden. Die Ansteuerung ist vorzugsweise während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar.

Es sei nun angenommen, daß die erste CPU 202-2 durch den zweiten I/O-Controller 204-3 aus dem Mikrocontroller auszugebende Daten an den zweiten I/O-Controller 204-3 übertragen möchte. In diesem Fall werden die Multiplexer 215 und 216 so angesteuert, daß die Speicheranordnung 207 über den ersten Multiplexer 215 mit dem ersten Bus 201 und über den zweiten Multiplexer 216 mit dem zweiten Bus 203 verbunden ist. Dann gibt die erste CPU 202-2 die für den I/O-Controller 204-3 bestimmten Daten zusammen mit einer der Bus Bridge 205 zugewiesenen Adresse aus. Anders als bei dem in der 1 gezeigten Mikrocontroller muß die von der CPU 202-2 ausgegebene Adresse keine Information darüber enthalten, für welche der am zweiten Bus 203 angeschlossenen Einrichtungen die Daten bestimmt sind, denn wie vorstehend bereits erwähnt wurde, ist die Bus Bridge 205 ja dazu ausgelegt, die ihr über den ersten Bus 201 zugeführten Daten an eine festgelegte Einrichtung der am zweiten Bus angeschlossenen Einrichtungen zu übertragen. Die Bus Bridge 205 verfolgt die über den ersten Bus 201 übertragenen Adressen und überprüft, ob diese mit einer der der Bus Bridge zugewiesenen Adressen übereinstimmt oder innerhalb eines der Bus Bridge zugewiesenen Adreßbereiches liegt. Der Vollständigkeit halber sei angemerkt, daß die Bus Bridge 205 eine in der 2 nicht gezeigte Überprüfungseinrichtung zur Durchführung dieses Adreßvergleiches aufweist. Da die durch die Überprüfungseinrichtung zu vergleichenden Adressen im betrachteten Beispiel übereinstimmen, nimmt die Bus Bridge 205 die von der ersten CPU 202-2 ausgegebenen Daten in sich auf und speichert sie in der Speicheranordnung 207 zwischen. Die in der Bus Bridge 205 zu speichernden Daten gelangen über den Multiplexer 215 in das Eingangsregister 208, von dort in den Pufferspeicher 209, und schließlich in das Ausgangsregister 210, aus welchem sie, wie später noch genauer beschrieben wird, von der CPU/DMA-Kombination 204-2 ausgelesen werden. Die der Speicheranordnung 207 zugeführten Daten gelangen in der Reihenfolge in das Ausgangsregister 210, in welcher sie der Speicheranordnung 207 über das Eingangsregister 208 derselben zugeführt wurden (first in first out). Der Pufferspeicher 207 ist folglich ein FIFO-Speicher oder sich wie ein FIFO-Speicher verhaltender Speicher. Die zusammen mit den Daten über den ersten Bus 201 übertragene der Adresse muß nicht gespeichert und weitergeleitet werden.

Die Speicheranordnung 207 enthält neben den vorstehend bereits erwähnten Komponenten eine in der 2 nicht gezeigte Füllstandslogik, durch welche ermittelbar ist, ob sich in der Speicheranordnung 207 noch nicht ausgegebene Daten oder eine bestimmte Mindestmenge von noch nicht ausgegebenen Daten befinden.

Wenn die Füllstandslogik erkennt, daß sich in der Speicheranordnung 207 noch nicht ausgegebene Daten oder eine bestimmte Mindestmenge von noch nicht ausgegebenen Daten befinden, signalisiert sie diesen Umstand der CPU/DMA-Kombination 204-2. Die Signalisierung kann beispielsweise durch die Ausgabe eines Interrupt-Request-Signals, oder eines DMA-Request-Signals, oder eines beliebigen Signals erfolgen; die Signalisierung erfolgt über eine nicht zum zweiten Bus 203 gehörende Leitung.

Sobald die CPU/DMA-Kombination 204-2 in der Lage ist, die in der Bus Bridge 205 zur Abholung bereitstehenden Daten abzuholen, veranlaßt sie über eine Leitung 214, daß die im Ausgangsregister 210 gespeicherten Daten auf den zweiten Bus 203 ausgegeben werden. Im wesentlichen gleichzeitig gibt die CPU/DMA-Kombination 204-2 die Adresse der Einrichtung auf den zweiten Bus 203 aus, für welche die Daten bestimmt sind. Die aus den zweiten Bus 203 auszugebende Adresse ist der CPU/DMA-Kombination 204-2 bekannt. Sie kann beispielsweise durch das von der programmgesteuerten Einheit ausgeführte Programm eingestellt werden. Der zweite I/O-Controller 204-3 erkennt anhand der über den zweiten Bus 203 übertragenen Adresse, daß die zusammen mit dieser Adresse übertragenen Daten für ihn bestimmt sind. Er liest diese Daten ein und verarbeitet sie weiter oder gibt sie aus dem Mikrocontroller aus.

Der letztgenannte Vorgang muß wiederholt werden, wenn die von der ersten CPU 202-2 auf den ersten Bus 201 ausgegebenen Daten mehr Bits umfassen als über den zweiten Bus 203 auf einmal übertragen werden können. D.h., wenn beispielsweise über den ersten Bus 201 32-Bit-Daten übertragen werden können, und über den zweiten Bus 203 nur 16-Bit-Daten übertragen werden können, muß der letztgenannte Vorgang pro von der ersten CPU 202-2 ausgegebenem Datenwort zwei mal durchgeführt werden.

Im betrachteten Beispiel wurde der Transfer der in der Bus Bridge 205 gespeicherten Daten zu ihrem Bestimmungsort durch eine CPU/DMA-Kombination, genauer gesagt durch die CPU/DMA-Kombination 204-2 veranlaßt. Dies könnte aber auch durch eine CPU, einen DMA-Controller oder eine beliebige andere Einrichtung erfolgen, die in der Lage ist, die hierfür durchzuführenden Operationen durchzuführen.

Darüber hinaus besteht auch keine Einschränkung darauf, daß die zu übertragenden Daten zum zweiten I/O-Controller 204-3 übertragen werden. Datenziel kann auch jede beliebige andere Einrichtung sein, die am zweiten Bus 203 angeschlossen ist. Hierzu muß lediglich die Adresse verändert werden, die die CPU/DMA-Kombination 204-2 auf den zweiten Bus 203 ausgibt, während sie Daten aus der Bus Bridge 205 ausliest. Diese Adresse kann, wie vorstehend bereits erwähnt wurde, beispielsweise durch das von der programmgesteuerten Einheit ausgeführte Programm festgelegt und während des Betriebes der programmgesteuerten Einheit dynamisch verändert werden.

Wenn Daten von einer der am zweiten Bus 203 angeschlossenen Einrichtungen zu einer der am ersten Bus 201 angeschlossenen Einrichtungen übertragen werden müssen, beispielsweise wenn die zweite CPU 204-2 durch den ersten I/O-Controller 202-3 aus dem Mikrocontroller auszugebende Daten an den ersten I/O-Controller 202-3 übertragen möchte, werden die Multiplexer 215 und 216 so angesteuert, daß die Speicheranordnung 207 eingangsseitig über den ersten Multiplexer 215 mit dem zweiten Bus 203 und ausgangsseitig über den zweiten Multiplexer 216 mit dem ersten Bus 201 verbunden ist. Die Ansteuerung der Multiplexer 215 und 216 ist, wie vorstehend bereits erwähnt wurde, während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar. Die Übertragung von Daten durch eine der am zweiten Bus 203 angeschlossenen Einrichtungen zu einer der am ersten Bus 201 angeschlossenen Einrichtungen erfolgt im übrigen entsprechend der vorstehend beschriebenen Übertragung von Daten durch eine der am ersten Bus 201 angeschlossenen Einrichtungen zu einer der am zweiten Bus 203 angeschlossenen Einrichtungen.

Wie aus den vorstehenden Erläuterungen ersichtlich ist, entfällt bei den hier vorgestellten programmgesteuerten Einheiten die Notwendigkeit, daß die Bus Bridge die vom einen Bus auf den anderen Bus zu transferierenden Daten auf eigene Veranlassung hin an die Einrichtung weiterleitet, für welche sie bestimmt sind. Die von der Bus Bridge auf den Empfang von weiterzuleitenden Daten hin auszuführenden Aktionen können sich darauf beschränken, daß die Bus Bridge durch ein Interrupt-Request-Signal, ein DMA-Request-Signal, oder ein sonstiges Signal signalisiert, daß in ihr Daten zur Abholung bereitstehen. Der Signalisierungsempfänger kann diese Daten sodann zu einem geeigneten Zeitpunkt durch einen entsprechenden Lesezugriff auf die Bus Bridge abholen. Bei einer solchen programmgesteuerten Einheit ist es nicht erforderlich, daß die Bus Bridge an den über sie verbundenen Bussen Bus-Master werden kann. Sie kann sowohl am ersten Bus als auch am zweiten Bus eine Slave-Einheit sein, wodurch sowohl der erste Bus als auch der zweite Bus Single-Master-Busse sein können. Single Master-Busse benötigen keine Arbitrierungslogik und können somit sehr viel einfacher aufgebaut sein und betrieben werden als Multi-Master-Busse.

Die vom einen Bus auf den anderen Bus übertragenen Daten können auch in einer einen Lesezugriff einleitenden Datenanforderung bestehen, durch welche die den Lesezugriff ausführende Einrichtung Daten von einer am anderen Bus angeschlossenen Einrichtung anfordert. In diesem Fall muß die den Lesezugriff ausführende Einrichtung nicht warten, bis die Bus Bridge eine Verbindung zum Lesezugriffs-Empfänger hergestellt und die angeforderten Daten erhalten und weitergeleitet hat. Vielmehr kann die den Lesezugriff ausführende Einrichtung nach der Übermittlung der Datenanforderung an die Bus Bridge den Bus wieder freigeben und sich gegebenenfalls sogar anderen Aufgaben widmen. Die Bus Bridge signalisiert dem Lesezugriffs-Empfänger, daß in ihr Daten zur Abholung bereitstehen, und gibt diese Daten auf einen entsprechenden Lesezugriff seitens des Lesezugriffs-Empfängers aus. Der Lesezugriffs-Empfänger erkennt an den ihm zugeführten Daten, daß diese einen Lesezugriff auf ihn repräsentieren, gibt sodann die durch die Datenanforderung angeforderten Daten an die Bus Bridge aus, und gibt unmittelbar danach den Bus wieder frei. Die Bus Bridge signalisiert der Einrichtung, die den Lesezugriff eingeleitet hat, daß Daten zur Abholung bereitstehen. Die Einrichtung, die den Lesezugriff eingeleitet hat, führt daraufhin einen Lesezugriff auf die Bus Bridge aus, und bekommt dadurch die ursprünglich angeforderten Daten übermittelt. Bei einer solchen Vorgehensweise sind die Busse durch einen busübergreifenden Lesezugriff erheblich kürzere Zeit belegt als es bei entsprechenden Lesezugriffen in herkömmlichen programmgesteuerten Einheiten der Fall ist.

Darüber hinaus kann die Bus Bridge als vollständiger oder teilweiser Ersatz für die Sendepuffer und/oder Empfangspuffer der weiteren Einrichtungen verwendet werden, die außer der Bus Bridge an den Bussen angeschlossen sind, so daß die weiteren Einrichtungen ohne oder mit kleineren internen Sendepuffern und/oder Empfangspuffern auskommen als es ohne die Bus Bridge der Fall wäre. Dies wird nachfolgend anhand der in der 2 gezeigten programmgesteuerten Einheit erläutert. Der Vollständigkeit halber sei angemerkt, daß von dieser Möglichkeit prinzipiell auch bei der in der 1 gezeigten programmgesteuerten Einheit Gebrauch gemacht werden kann.

Wenn die Bus Bridge als vollständiger oder teilweiser Ersatz für die Sendepuffer und/oder Empfangspuffer der anderen Einrichtungen verwendet werden, die an den Bussen angeschlossen sind, erweist es sich als vorteilhaft, wenn die Multiplexer 215 und 216 auch so angesteuert werden können, daß die Speicheranordnung 207 über die ersten Multiplexer 215 und 216 eingangsseitig und ausgangsseitig mit dem selben Bus verbunden werden kann. Dies erweist sich als vorteilhaft, weil die Bus Bridge 205 dadurch als vollständiger oder teilweiser Ersatz für die Sende- und/oder Empfangspuffer verwendet werden kann, die in vielen der an den Bussen 201 und 203 angeschlossenen Einrichtungen zur Zwischenspeicherung von Daten vorgesehen sind. Eine Einrichtung, die einen Sendepuffer und einen Empfangspuffer enthält, ist beispielsweise der I/O-Controller 204-3. In diesem Fall dient der Sendepuffer insbesondere zur Zwischenspeicherung von Daten, die der I/O-Controller von einer außerhalb des Mikrocontrollers vorgesehenen Einrichtung empfangen hat, die aber noch nicht aus dem I/O-Controller 204-3 abgeholt wurden. Der Empfangspuffer dient insbesondere zur Zwischenspeicherung von Daten, die dem I/O-Controller von einer anderen Mikrocontroller-Komponente über den Bus 201 zugeführt wurden, die aber noch nicht weiterverarbeitet oder an die außerhalb des Mikrocontrollers vorgesehenen Einrichtung weitergeleitet wurden. Nachteilig an solchen Sende- und Empfangspuffern ist, daß sie, wenn Datenverluste zuverlässig ausgeschlossen werden sollen, eine sehr hohe Speicherkapazität aufweisen müssen. Andererseits ist es aber so, daß die Sende- und/oder Empfangspuffer häufig überhaupt nicht oder nur zu einem geringen Teil benötigt werden, so daß der Mikrocontroller für viele Anwendungen unnötig groß und teuer ist. Die Sende- und/oder Empfangspuffer des I/O-Controllers und/oder anderer der am Bus angeschlossenen Einrichtungen können entfallen oder zumindest erheblich verkleinert werden, wenn man die Bus Bridge 205 oder eine ähnlich aufgebaute und arbeitende Bus Bridge als Ersatz für die Sende- und/oder Empfangspuffer verwendet. Dies wird nachfolgend anhand eines Beispiels näher beschrieben.

Es sei angenommen, daß der zweite I/O-Controller 204-3 Daten an die CPU der CPU/DMA-Kombination 204-2 zu übertragen hat, und daß die Bus Bridge 205 als vollständiger oder teilweiser Ersatz für die in herkömmlichen I/O-Controllern vorzusehenden Sende- und/oder Empfangspuffer verwendet werden soll. In diesem Fall werden die Multiplexer 215 und 216 so angesteuert, daß die Speicheranordnung 207 sowohl eingangsseitig als auch ausgangsseitig mit dem zweiten Bus 203 verbunden ist, und wird die Bus Bridge 205 so eingestellt, daß sie der CPU oder dem DMA-Controller der CPU/DMA-Kombination 204-2 signalisiert, wenn in ihr Daten zur Abholung bereitstehen. Wenn der I/O-Controller 204-3 für die CPU der CPU/DMA-Kombination 204-2 bestimmte Daten empfängt, veranlaßt er unmittelbar in Anschluß an den Empfang dieser Daten, daß diese an die Bus Bridge 205 weitergeleitet werden. Dies kann beispielsweise durch ein DMA-Request-Signal geschehen, durch welche der DMA-Controller der CPU/DMA-Kombination 204-2 veranlaßt wird, die betreffenden Daten vom I/O-Controller abzuholen und über den Bus 203 an die Bus Bridge 205 zu übertragen. Die Bus Bridge 205 speichert diese Daten zwischen. Wenn in der Speicheranordnung 207 des DMA-Controllers der Bus Bridge weiterzuleitende Daten oder eine bestimmte Mindestmenge an weiterzuleitenden Daten gespeichert ist, signalisiert die Bus Bridge 205 dies dem DMA-Controller der CPU/DMA-Kombination 204-2, welcher diese Daten dann abholt und an die CPU der CPU/DMA-Kombination 204-2 weiterleitet.

Durch die beschriebene Vorgehensweise ist es möglich, daß der I/O-Controller 204-2 überhaupt keinen oder einen nur sehr kleinen Sendepuffer enthalten muß; der Sendepuffer wird durch die Bus Bridge, genauer gesagt durch die darin enthaltene Speicheranordnung 207 ersetzt.

Die Speicheranordnung 207 kann auch als Ersatz für die Sendepuffer von anderen der am ersten Bus angeschlossenen Einrichtungen verwendet werden.

Die Speicheranordnung 207 kann auch abwechselnd die Sendepuffer von verschiedenen Einrichtungen ersetzen.

Wenn die Bus Bridge 205 eine Information darüber erhält, anhand welcher sie erkennen kann, von welcher Einrichtung die zur Bus Bridge 205 übertragenen Daten stammen, kann die Speicheranordnung 207 sogar gleichzeitig die Sendepuffer von mehreren Einrichtungen ersetzen. Die erwähnte Information kann beispielsweise darin bestehen, daß die zur Bus Bridge übertragenen Daten einen Identifier enthalten, der angibt, von welcher Einrichtung die Daten stammen, oder daß die Adresse, unter Verwendung welcher auf die Bus Bridge 205 zugegriffen wird, von der Einrichtung abhängt, von welcher die Daten stammen.

Die Speicheranordnung 207 kann gleichzeitig als Ersatz für den Empfangspuffer der Einrichtung verwendet werden, für welche die in der Speicheranordnung gespeicherten Daten bestimmt sind. Hierzu muß lediglich vorgesehen werden, daß die in der Speicheranordnung 207 gespeicherten Daten erst dann aus der Speicheranordnung abgeholt werden, wenn die Einrichtung, für welche diese Daten bestimmt sind, signalisiert hat, daß sie zur Aufnahme von Daten bereit ist.

Auf entsprechende Art und Weise können auch von einer der am ersten Bus 201 angeschlossenen Einrichtungen an eine andere der am ersten Bus 201 angeschlossenen Einrichtungen Daten übertragen werden, so daß die Bus Bridge 205 auch als Ersatz für die Sende- und/oder Empfangspuffer der am ersten Bus 201 angeschlossenen Einrichtungen verwendet werden kann.

Die Bus Bridge 205 kann auch dann als Ersatz für die Sende- und/oder Empfangspuffer der am ersten Bus 201 und/oder am zweiten Bus 203 angeschlossenen Einrichtungen verwendet werden, wenn Daten von einer am ersten Bus angeschlossenen Einrichtung zu einer am zweiten Bus 203 angeschlossenen Einrichtung, oder umgekehrt, übertragen werden.

Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß auch die in der 1 gezeigte Bus Bridge 105 und alle anderen Bus Bridges, die nach dem hier vorgestellten Bus-Bridge-Prinzip arbeiten, als Ersatz für die Sende- und/oder Empfangspuffer der an den Bussen angeschlossenen Einrichtungen verwendet werden können, so daß die in diesen Einrichtungen bisher vorzusehenden Sende- und/oder Empfangspuffer entfallen oder zumindest erheblich kleiner ausgebildet werden können als es bisher der Fall ist.

Die hier vorgestellten Bus Bridges erweisen sich nach alledem unabhängig von den Einzelheiten der praktischen Realisierung gleich in mehrfacher Hinsicht als äußerst vorteilhaft.

101
erster Bus
102-x
über 101 verbundene Einrichtungen
102-1
erster Speicher
102-2
erste CPU
102-3
erster I/O-Controller
103
zweiter Bus
104-x
über 103 verbundene Einrichtungen
104-1
zweiter Speicher
104-2
zweite CPU (mit DMA-Controller)
104-3
zweiter I/O-Controller
105
Bus Bridge
106
Eingangsstufe
107
Speicheranordnung
108
Eingangsregister
109
Pufferspeicher
110
Ausgangsregister
111
Leitung oder Bus
112
Leitung oder Bus
113
Leitung oder Bus
114
Leitung
201
erster Bus
202-x
über 201 verbundene Einrichtungen
202-1
erster Speicher
202-2
erste CPU
202-3
erster I/O-Controller
203
zweiter Bus
204-x
über 203 verbundene Einrichtungen
204-1
zweiter Speicher
204-2
zweite CPU (mit DMA-Controller)
204-3
zweiter I/O-Controller
205
Bus Bridge
207
Speicheranordnung
208
Eingangsregister
209
Pufferspeicher
210
Ausgangsregister
214
Leitung
215
erster Multiplexer
216
zweiter Multiplexer
301
erster Bus
302-x
über 301 verbundene Einrichtungen
302-1
erster Speicher
302-2
erste CPU
302-3
erster I/O-Controller
303
zweiter Bus
304-x
über 303 verbundene Einrichtungen
304-1
zweiter Speicher
304-2
zweite CPU
304-3
zweiter I/O-Controller
305
Bus Bridge


Anspruch[de]
Programmgesteuerte Einheit mit

– einem ersten Bus (101; 201),

– über den ersten Bus miteinander verbundenen Einrichtungen (102-1 bis 102-3; 202-1 bis 202-3),

– einem zweiten Bus (103; 203),

– über den zweiten Bus miteinander verbundenen Einrichtungen (104-1 bis 104-3; 204-1 bis 204-3), und

– einer sowohl mit dem ersten Bus als auch mit dem zweiten Bus verbundenen Bus Bridge (105; 205) zur Übertragung von Daten zwischen einer an einem der Busse angeschlossenen ersten Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung, wobei die von der ersten Einrichtung zur zweiten Einrichtung zu übertragenden Daten über den einen Bus, die Bus Bridge, und den anderen Bus zur zweiten Einrichtung übertragen werden, und wobei die Bus Bridge einen Pufferspeicher (109; 209) zum Zwischenspeichern der über die Bus Bridge zu transferierenden Daten enthält,

dadurch gekennzeichnet,

daß die Bus Bridge eine Steuereinrichtung enthält, welche überwacht, ob im Pufferspeicher für die zweite Einrichtung bestimmte Daten oder eine bestimmte Mindestmenge von für die zweite Einrichtung bestimmten Daten zwischengespeichert sind, und dann, wenn dies der Fall ist, einer der am anderen Bus angeschlossenen Einrichtungen signalisiert, daß in der Bus Bridge Daten zur Abholung bereitstehen.
Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß der Pufferspeicher (109; 209) durch einen FIFO-Speicher oder einen sich wie ein FIFO-Speicher verhaltenden Speicher gebildet wird. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Steuereinrichtung durch eine Füllstandslogik gebildet wird, durch welche ermittelbar ist, ob im Pufferspeicher (109; 209) Daten oder eine bestimmte Mindestmenge von Daten gespeichert ist. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung, der durch die Bus Bridge (105; 205) signalisiert wurde, daß in der Bus Bridge Daten zur Abholung bereitstehen, die zur Abholung bereitstehenden Daten aus der Bus Bridge ausliest. Programmgesteuerte Einheit nach Anspruch 4, dadurch gekennzeichnet, daß die in der Bus Bridge (105; 205) zur Abholung bereitstehenden Daten erst dann ausgelesen werden, wenn die zweite Einrichtung weitere Daten entgegennehmen kann. Programmgesteuerte Einheit nach Anspruch 5, dadurch gekennzeichnet, daß die zweite Einrichtung der Einrichtung, der durch die Bus Bridge (105; 205) signalisiert wurde, daß in der Bus Bridge Daten zur Abholung bereitstehen, signalisiert, wenn sie weitere Daten entgegennehmen kann. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, eine Einrichtung ist, die Bus-Master ist oder Bus-Master werden kann. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, die zweite Einrichtung ist. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, nicht die zweite Einrichtung ist, und daß die Einrichtung, welcher durch die Bus Bridge signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, die in der Bus Bridge zur Abholung bereitstehenden Daten aus der Bus Bridge ausliest und an die zweite Einrichtung weiterleitet. Programmgesteuerte Einheit nach Anspruch 9, dadurch gekennzeichnet, daß die Einrichtung, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, eine CPU der programmgesteuerten Einheit ist. Programmgesteuerte Einheit nach Anspruch 9, dadurch gekennzeichnet, daß die Einrichtung, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, ein DMA-Controller der programmgesteuerten Einheit ist. Programmgesteuerte Einheit nach Anspruch 9, dadurch gekennzeichnet, daß die Bus Bridge (105; 205) der Einrichtung, welcher sie signalisiert, daß in der Bus Bridge Daten zur Abholung bereitstehen, die Adresse zuführt, die bei der Weiterleitung der zur Abholung bereitstehenden Daten an die zweite Einrichtung zusammen mit diesen Daten auf den anderen Bus auszugeben ist. Programmgesteuerte Einheit nach Anspruch 12, dadurch gekennzeichnet, daß die von der Bus Bridge (105; 205) ausgegebene Adresse in Abhängigkeit von der Adresse generiert wird, unter Verwendung welcher auf die Bus Bridge zugegriffen wurde, als ihr die zur Abholung bereitstehenden Daten zugeführt wurden. Programmgesteuerte Einheit nach Anspruch 13, dadurch gekennzeichnet, daß die von der Bus Bridge ausgegebene Adresse unter Verwendung einer in der Bus Bridge (105; 205) gespeicherten Mapping-Vorschrift gebildet wird, wobei die Mapping-Vorschrift durch den Benutzer der programmgesteuerten Einheit vorgebbar ist. Programmgesteuerte Einheit nach Anspruch 14, dadurch gekennzeichnet, daß die Mapping-Vorschrift durch das von der programmgesteuerten Einheit ausgeführte Programm vorgebbar ist. Programmgesteuerte Einheit nach Anspruch 14, dadurch gekennzeichnet, daß die Mapping-Vorschrift während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar ist. Programmgesteuerte Einheit nach Anspruch 9, dadurch gekennzeichnet, daß die Adresse, die bei der Weiterleitung der in der Bus Bridge zur Abholung bereitstehenden Daten an die zweite Einrichtung zusammen mit diesen Daten auf den anderen Bus auszugeben ist, eine vorbestimmte Adresse ist, die in der Einrichtung gespeichert ist, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen. Programmgesteuerte Einheit nach Anspruch 17, dadurch gekennzeichnet, daß die Adresse, die in der Einrichtung gespeichert ist, welcher durch die Bus Bridge (105; 205) signalisiert wird, daß in der Bus Bridge Daten zur Abholung bereitstehen, durch den Benutzer der programmgesteuerten Einheit vorgebbar ist. Programmgesteuerte Einheit nach Anspruch 17, dadurch gekennzeichnet, daß die Adresse durch das von der programmgesteuerten Einheit ausgeführte Programm vorgebbar ist. Programmgesteuerte Einheit nach Anspruch 17, dadurch gekennzeichnet, daß die Adresse während des Betriebes der programmgesteuerten Einheit dynamisch veränderbar ist. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Bus Bridge (105; 205) als vollständiger oder teilweiser Ersatz für die Sendepuffer und/oder Empfangspuffer der weiteren Einrichtungen verwendet werden, die außer der Bus Bridge an den Bussen angeschlossen sind, so daß die weiteren Einrichtungen ohne oder mit kleineren internen Sendepuffern und/oder Empfangspuffern auskommen als es ohne die Bus Bridge der Fall wäre. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß über die Bus Bridge (105; 205) auch Daten von einer Einrichtung zu einer anderen Einrichtung übertragen werden können, die am selben Bus angeschlossen ist wie eine Einrichtung. Programmgesteuerte Einheit nach Anspruch 1, dadurch gekennzeichnet, daß die Bus Bridge (105; 205) sowohl am ersten Bus (101; 201) als auch am zweiten Bus (103; 203) Bus-Slave 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