-
Die
Erfindung betrifft ein Multiprozessorsystem, welches mehrere Mikroprozessoren
und einen Speicher aufweist.
-
Ein
derartiges Multiprozessorsystem ist bereits aus dem Stand der Technik
bekannt. In der Druckschrift
DE 28 24 557 C2 ist ein Multiprozessorsystem
offenbart, welches jeweils mehrere Mikroprozessoren und einen Speicher
aufweist, wobei die Mikroprozessoren und der Speicher jeweils an
einen Systembus bzw. an einen Adress-, Daten- und Steuerbus angeschlossen
sind. Ein solches Multiprozessorsystem ist ebenfalls der Druckschrift
DE 128 76 56 zu entnehmen.
Ein ebensolches Multiprozessorsystem ist auch in der
EP 0 535 696 B1 beschrieben.
-
Weiterhin
werden derartige Systeme beispielsweise in der Mess- und Regelungstechnik,
in der Automobilelektronik und in der Automatisierungstechnik eingesetzt.
Die Mikroprozessoren führen
Programme autark aus. Dafür
benötigen
sie Daten aus dem Prozess, beispielsweise Messwerte von Sensoren,
Signalzustände
von Aktoren, Informationen für
die Produktionssteuerung aus mobilen Datenträgern, usw.. Diese Daten müssen ggf.
auch mit hoher Geschwindigkeit an die anderen Mikroprozessoren wechselweise
weitergeleitet werden, so dass diese jeweils unter Verwendung dieser
Daten eigene Prozessschritte durchführen können.
-
In
viele heutige Mikroprozessorchips ist ein FLASH-Speicher, ein EPROM
oder ein Festcodeprogrammspeicher integriert, so dass die sonst
erforderlichen externen Komponenten entfallen können. Derartige Mikroprozessorchips
können
ihre Programmabarbeitung autark durchführen.
-
Oftmals
ist es wünschenswert,
Programme bzw. Programmteile parallel von mehreren Mikrocomputern
abarbeiten zu lassen.
-
Dazu
ist es erforderlich, jeweils notwendige Programmcodes zwischen den
Mikrocomputern auszutauschen.
-
Werden
kleine, kompakte Systeme benötigt,
dann muss in vielen Fällen
auf niedrige Herstellungskosten geachtet werden. Somit besteht die
Forderung nach einer kostengünstigen,
bezüglich
ihrer Layoutfläche kleinen
Daten- und/oder Programmcodeaustauschanordnung.
-
Es
sind bereits Multiprozessorsysteme bekannt, bei denen eine serielle
Datenkommunikation bzw. ein serieller Datentransport erfolgt. Dies
erfolgt entweder über
relativ langsame Standardschnittstellen, die oftmals in die verwendeten
Mikroprozessoren integriert sind, oder über schnelle, teure Netzwerkbausteine.
Ein Nachteil bei derartigen seriellen Systemen besteht darin, dass
ein vorhandener Speicher nur einem der Mikroprozessoren direkt zugeordnet
ist. Alle anderen Mikroprozessoren haben keinen direkten Zugriff
auf diesen Speicher.
-
Weiterhin
sind bereits Multiprozessorsysteme bekannt, bei denen alle Mikroprozessoren
direkten Zugriff auf einen vorhandenen Speicher haben. Dabei sind
spezielle Chipsätze
notwendig, beispielsweise sogenannte DMA-Controller, welche die
Aufgabe einer direkten Speicherkopplung übernehmen. Dabei ist es aber unerlässlich,
dass die Mikroprozessoren spezielle, für den jeweiligen DMA-Controller
erforderliche Signale empfangen und ausgeben können. Dieser Ablauf muss bereits
in der Grundkonzeption des Mikroprozessors berücksichtigt werden.
-
Der
Erfindung liegt die Aufgabe zugrunde, ein Multiprozessorsystem,
welches mehrere Mikroprozessoren und einen Speicher aufweist, anzugeben,
welches mit einer geringen Zahl von zusätzlichen Bauteilen auskommt
und kostengünstig
realisiert werden kann.
-
Diese
Aufgabe wird durch ein Multiprozessorsystem mit den im Anspruch
1 angegebenen Merkmalen gelöst.
Vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung ergeben
sich aus den abhängigen
Ansprüchen.
-
Die
Vorteile der Erfindung bestehen insbesondere darin, dass ein Multiprozessorsystem
zur Verfügung gestellt
wird, welches einen kompakten Aufbau hat und welches kostengünstig realisiert
werden kann. Beim erfindungsgemäßen Multiprozessorsystem
haben alle Prozessoren direkten Zugriff auf den vorhandenen Speicher.
-
Bei
Verwendung eines gemultiplexten Adress- und Datenbusses, wie er
im Anspruch 2 angegeben ist, kann in vielen Anwendungsfällen ein
separater Adressbus eingespart werden.
-
Die
Verwendung eines weiteren Adressbusses zusätzlich zu einem gemultiplexten
Adress- und Datenbus, wie sie im Anspruch 3 angegeben ist, ermöglicht die
Verwendung eines Speichers mit einer vergrößerten Anzahl von zu adressierenden
Speicherplätzen.
Beispielsweise können
8 Bits der Speicheradresse über
den Adressbus und 8 weitere Bits der Speicheradresse über den
Adress- und Datenbus übertragen
werden.
-
Der
im Anspruch 4 angegebene Adressspeicher erleichtert ein zeitlich
koinzidentes Anlegen einer Speicheradresse, deren Bits teilweise über den
Adressbus und teilweise über
den Adress- und Datenbus übertragen
werden, an den Speicher.
-
Die
Verwendung der dem Adressspeicher bzw. dem Speicher vorgeschalteten
logischen UND- und ODER-Schaltungen ermöglicht auf einfache Weise ein
zeitrichtiges Aktivieren des jeweiligen Bausteins, wobei das jeweilige
Aktivierungssignal von jedem der Mikroprozessoren des Multiprozessorsystems
generiert werden kann.
-
Vorzugsweise
sind im Speicher sowohl Daten als auch Programmcodes abgespeichert,
die von jedem der Mikroprozessoren durch Aussendung eines Datenlesesteuersignals
bzw. eines Programmcodelesesteuersignals aus dem Speicher abgerufen
werden können.
-
Gemäß einer
vorteilhaften Ausführungsform
der Erfindung, wie sie im Anspruch 15 angegeben ist, weist der beanspruchte
Managementbus drei Signalleitungen auf, an denen Bits anliegen,
die den Belegungszustand des Adressbusses und/oder des Adress- und
Datenbusses beschreiben. Durch eine Abfrage der an diesen Signalleitungen
anliegenden Bits und eigenes Anlegen von Bits an diese Signalleitungen
kann jeder der Prozes soren eine ihn betreffende Übertragung von Daten oder Programmcodes
vorbereiten und durchführen.
-
Gemäß einer
anderen Ausführungsform
der Erfindung, wie sie Gegenstand der Ansprüche 16 bis 20 ist, kann ein
sequentielles Abfragesystem realisiert werden, bei welchem die Mikroprozessoren
nacheinander Zugriff auf den Datenbus haben.
-
Gemäß einer
weiteren Ausführungsform
der Erfindung, wie sie in den Ansprüchen 21–25 angegeben ist, weist der
Managementbus nur eine Datenleitung auf. Auch mittels dieser Ausführungsform
kann ein sequentielles Abfragesystem realisiert werden.
-
Weitere
vorteilhafte Eigenschaften der Erfindung ergeben sich aus der Erläuterung
von Ausführungsbeispielen
anhand der Figuren. Es zeigt
-
1 ein
Blockschaltbild eines ersten Ausführungsbeispiels für die Erfindung,
-
2 ein
Blockschaltbild eines zweiten Ausführungsbeispiels für die Erfindung,
-
3 ein
Blockschaltbild eines dritten Ausführungsbeispiels für die Erfindung,
-
4 ein
Flussdiagramm zur Erläuterung
der Arbeitsweise des in der 1 gezeigten
Ausführungsbeispiels,
-
5 ein
Flussdiagramm zur Erläuterung
der Arbeitsweise des in der 2 gezeigten
Ausführungsbeispiels,
-
6 ein
Flussdiagramm zur Erläuterung
der Arbeitsweise des in der 3 gezeigten
Ausführungsbeispiels.
-
Die 1 zeigt
ein Blockschaltbild eines ersten Ausführungsbeispiels für die Erfindung.
Das dargestellte Multiprozessorsystem weist drei Mikroprozessoren 1, 2 und 3 auf.
Jeder dieser Mikroprozessoren hat eine Verbindung zu einer ihm zugeordneten
Zielhardware 1a, 2a, 3a, in welcher Prozesse
ablaufen.
-
Die
Mikroprozessoren sind jeweils an einen Steuerbus 9, einen
Managementbus 10, einen gemultiplexten Adress- und Datenbus 11 und
einen weiteren Adressbus 12 angeschlossen.
-
Die
Mikroprozessoren 1, 2 und 3 sind über den
Steuerbus 9, den gemultiplexten Adress- und Datenbus 11 und
den Adressbus 12 mit einem Speicher 4 verbunden,
so dass jeder der Mikroprozessoren direkten Speicherzugriff hat.
Weiterhin sind die genannten Mikroprozessoren 1, 2 und 3 untereinander über den
Managementbus 10 verbunden. Der Speicher 4 ist
an den Managementbus 10 nicht angeschlossen.
-
Der
Steuerbus 9 dient zur Übertragung
von Steuerdaten. Zu diesen Steuerdaten gehören Daten ASP1, ASP2, ASP3,
die vom jeweiligen Mikroprozessor erzeugt und am jeweiligen Adresssteuerausgang
ASP des Mikroprozessors zur Verfügung
gestellt werden. Die Signale ASP1, ASP2 und ASP3 liegen an jeweils
einem Eingang einer ODER-Schaltung 6 an, deren Ausgang
mit einem Adressspeicher 5 verbunden ist. Dieser ist dann
zur Abspeicherung von Adressbits aktiviert, wenn eines der genannten
Signale High-Pegel aufweist.
-
Weiterhin
gehört
zu diesen Steuerdaten ein Datenschreibbefehl DS1, DS2, DS3, welcher
vom jeweiligen Mikroprozessor erzeugt und am jeweiligen Datenschreibsteuerausgang
DS des Mikroprozessors zur Verfügung
gestellt wird. Die Signale DS1, DS2 und DS3 werden über den
Steuerbus 9 übertragen
und liegen an jeweils an einem Eingang einer UND-Schaltung 8 an,
deren Ausgang mit einem Datenschreibsteuereingang DS des Speichers 4 verbunden
ist. Die Signale DS1, DS2 und DS3 haben im Ruhezustand HIGH-Pegel.
Weist eines dieser Signale LOW-Pegel auf, dann. ist der Datenschreibsteuereingang
DS des Speichers aktiviert, so dass Daten in den Speicher 4 eingeschrieben
werden können.
-
Ferner
gehören
zu den Steuerdaten Datenlesebefehle und Programmcodelesebefehle,
welche vom jeweiligen Mikroprozessor erzeugt und am jeweiligen Datenlesesteuerausgang
DL bzw. am jeweiligen Programmcodelesesteuerausgang PCL des Mikroprozessors
zur Verfügung
gestellt werden. Die Ausgangssignale DL und PCL der Mikroprozessoren
werden jeweils einer UND-Schaltung 1b, 2b, 3b zugeführt. Beim
Vorliegen eines LOW-Pegels eines dieser beiden Signale stellt die
jeweilige UND-Schaltung an ihrem Ausgang ein Lesesteuersignal L1,
L2, L3 mit LOW-Pegel zur Verfügung.
Dieses wird über
den Steuerbus 9 an die dem Speicher 4 vorgeschaltete
UND-Schaltung 7 weitergeleitet. Weist eines der Lesesteuersignale
L1, L2, L3 LOW-Pegel auf, dann liegt am Ausgang der UND-Schaltung 7 ein
Steuersignal vor, welches dem Lesesteuereingang DL des Speichers 4 zugeführt wird,
so dass ein Lesen von Daten aus einem mittels übertragener Adressdaten spezifizierten
Speicherplatz erfolgen kann.
-
Beim
gezeigten Ausführungsbeispiel
haben diese Adressdaten eine Breite von 16 Bits. 8 dieser Bits werden über den
Adressbus 12 übertragen
und an die Adresseingänge
8...15 des Speichers 4 angelegt. Die 8 weiteren Bits der
Speicheradresse werden im gemultiplexten Adress- und Datenbus 11 übertragen
und über den
Adressspeicher 4, in dem sie zwischengespeichert werden,
an die Adresseingänge
0...7 des Speichers 4 angelegt. Die genannten Adressdaten
werden vom jeweiligen Mikroprozessor 1, 2, 3 erzeugt.
Dieser stellt die jeweiligen Adressbits 0...7 an seinen Adressausgängen 0...7
und die jeweiligen Adressbits 8...15 an seinen Adressausgängen 8...15
zur Verfügung.
-
Die
Mikroprozessoren sind weiterhin mit einer Programmumschaltleitung
s versehen, mittels derer bei Bedarf von einem internen FLASH-Programmspeicher
auf den externen Speicher 4 programmabhängig umgeschaltet werden kann.
-
Im
Speicher 4 sind beliebige Daten und verschiedene Programmcodes
abgespeichert, die von den Mikroprozessoren zur Abarbeitung ihrer
Aufgaben benötigt
werden. Die genannten Daten können
dabei erst während
des laufenden Prozesses ermittelt und über den Datenteil des Adress-
und Datenbusses im Speicher 4 abgespeichert werden. Von
dort können
sie von den weiteren Mikroprozessoren des Multiprozessorsystems bei
Bedarf abgerufen werden.
-
Der
Zugriff auf den Steuerbus
9, den Adress- und Datenbus
11 und
den Adressbus
12, die alle zur einer Übertragung von Daten bzw. eines
Programmcodes benötigt
werden, und welche im folgenden allgemein als „Bus" bezeichnet werden, wird durch den Zustand
der Datenbits gesteuert, die auf dem Managementbus
10 vorliegen.
Die auf diesem Managementbus
10 auf drei Leitungen a, b
und c vorliegenden Bits können
von jedem der Mikroprozessoren des Multiprozessorsystems abgefragt
und generiert werden. Aus der nachfolgenden Zustandstabelle ergeben
sich die möglichen
Zustände,
die durch die Pegel der an den Leitungen a, b, c anliegenden Bits
vorgegeben sind:
-
Aus
dieser Zustandstabelle ist ersichtlich, dass ein Mikrocomputer,
welcher den Bus (d. h. den Steuerbus 9, den gemultiplexten
Adress- und Datenbus 11 und den Adressbus 12)
zwecks einer Datenübertragung vom
oder zum Speicher 4 benutzen möchte, zunächst den Zustand der auf dem
Managementbus 10 übertragenen
Bits abfragt, um zu erkennen, ob derzeit von ei nem anderen Mikroprozessor
eine Datenübertragung vorgenommen
wird oder ob bereits ein anderer Mikroprozessor den Bus angefordert
und/oder vorbelegt hat. Ist dies der Fall, dann beträgt der Zustand
des Bits c stets „1", d. h. HIGH. Ist
der Bus nicht belegt, dann kann der Mikrocomputer seinerseits den
Bus anfordern, vorbelegen und danach eine Datenübertragung vornehmen.
-
Nachfolgend
wird anhand des in der 4 gezeigten Flussdiagrammes
ein Beispiel für
ein zugehöriges
Koordinationsprogramm erläutert.
Zur Durchführung
eines derartigen Koordinationsprogrammes weist jeder der Mikroprozessoren
ein abgespeichertes Programm auf.
-
Mit
dem Schritt S1 wird das Programm gestartet. Im Schritt S2 erfolgt
eine Abfrage, ob entweder a = 0 oder b = 0 ist. Ist a = 0 oder b
= 0, dann geht das Programm solange in eine Warteschleife, bis a
= 1 und b = 1. Ist dies der Fall, dann wird im Schritt S3 das Bit
a = 0 gesetzt. Danach wird das Programm im Schritt S4 in einen Wartezustand
gebracht, wobei die jeweilige Wartezeit durch einen Zufallsgenerator
vorgegeben wird. Dies geschieht deshalb, damit jeder der Mikroprozessoren
eine unterschiedliche Wartezeit hat. Dadurch wird sichergestellt,
dass von verschiedenen Mikroprozessoren gleichzeitig ausgelöste Aktionen
nicht zu undefinierten Zuständen
führen.
-
Im
Schritt S5 erfolgt eine Abfrage, ob b = 0 ist. Dieser Zustand liegt
dann vor, wenn während
der Wartezeit ein anderer Mikroprozessor den Bus angefordert hat.
Wenn dies geschehen ist, wird im Schritt S6 das Bit a = 1 gesetzt
und danach zum Schritt S2 zurückgekehrt.
Wenn dies nicht geschehen ist, wird das Programm mit dem Schritt
S7 fortgesetzt, in welchem das Bit a = 1 gesetzt wird. Dies entspricht
einer Vorbereitung für eine
Busprüfung,
ob andere den Bus vorbelegt haben.
-
Im
Schritt S8 erfolgt eine Abfrage, ob aufgrund einer zwischenzeitlichen
fremden Busvorbelegung das Bit a = 0 gesetzt wurde. Ist dies geschehen,
dann wird im Schritt S9 das Bit b = 1 gesetzt und zum Schritt S2 zurückgekehrt.
Ist dies nicht geschehen, dann wird im Schritt S10 die eigene Busvorbelegung
vorbereitet, indem das Bit a = 0 gesetzt wird. Danach geht das Programm
im Schritt S11 erneut in einen Wartezustand, wobei die Wartezeit
wiederum von einem Zufallsgenerator vorgegeben wird. Im Schritt
S12 erfolgt eine Vorbereitung für
eine Busprüfung
dadurch, dass das Bit b = 1 gesetzt wird.
-
Im
Schritt S13 erfolgt eine Abfrage, ob eine fremde Busvorbelegung
erfolgt ist. Ist dies geschehen, dann ist b = 0 und es wird im Schritt
S14 das Bit a = 1 gesetzt und danach zum Schritt S2 zurückgekehrt.
Ist dies nicht geschehen, dann wird im Schritt S15 das Bit b = 0
gesetzt, um den anderen Prozessoren eine eigene Busanforderung und
Busvorbelegung zu signalisieren.
-
Danach
erfolgt im Schritt S16 durch Abfrage des Bits c eine Überprüfung, ob
der Bus frei ist oder nicht. Ist das nicht der Fall, dann geht das
Programm solange in eine Warteschleife, bis der Bus frei ist. Ist
der Bus frei, dann wird im Schritt S17 das Bit c = 0 gesetzt, um
die eigene Datenübertragung
vorzubereiten. Diese wird anschließend im Schritt S18 vorgenommen.
-
Nach
der Datenübertragung
werden im Schritt S19 die Bits a, b und c wieder auf den Wert 1
gesetzt, um den anderen Mikroprozessoren einen freien Bus zu signalisieren.
Schritt 20 ist das Programmende.
-
Eine
alternative Möglichkeit
festzustellen, ob der Bus frei ist oder nicht, besteht darin, über die
Leitung c bzw. das dort übertragenen
Bit eine Interruptsteuerung vorzunehmen, d. h. einen Übergang
von 0 nach 1 bzw. LOW nach HIGH zu identifizieren.
-
Ein
besonderes Merkmal der Mikroprozessoren des beschriebenen Multiprozessorsystems
besteht darin, dass deren Anschlüsse
a, b und c unter Verwendung von internen Pull-Up-Widerständen auf
dem jeweiligen Mikroprozessorchip sowohl als Eingang als auch als
Ausgang verwendet werden können,
wobei dies durch entsprechende Programmbefehle gesteuert wird.
-
Die 2 zeigt
ein Blockschaltbild eines zweiten Ausführungsbeispiels für die Erfindung.
Dieses Ausführungsbeispiel
stimmt bis auf die Ausgestaltung des Managementbusses 10,
der zugehörigen
Anschlüsse der
Mikroprozessoren und der verwendeten Software mit dem in der 1 gezeigten
ersten Ausführungsbeispiel überein.
-
Gemäß der 2 hat
der Managementbus 10 nur 2 Signalleitungen, von denen eine
mit einem Ausgang und die andere mit einem Eingang des jeweiligen
Mikroprozessors verbunden ist. Mittels der gezeigten Anordnung wird
ein sequentielles Aufrufsystem realisiert, bei welchem der Mikroprozessor 1 Masterfunktion ausübt. Der
Mikroprozessor 1 hat zunächst selbst Zugriff auf den
Bus, um eine Daten- oder Programmcodeübertraqung zum bzw. vom Speicher 4 durchzuführen. Danach
ruft er über
seinen Ausgang a den Mikroprozessor 2 auf, um diesem die
Busfreigabe zu erteilen. Hat der Mikroprozessor 2 seine
Datenübertragung
zum oder vom Speicher 4 beendet, gibt er seinerseits die
Busfreigabe weiter an den Mikroprozessor 3. Dieser wiederum gibt
nach Durchführung
seiner Datenübertragung
die Busfreigabe an den Mikroprozessor 1 zurück.
-
Um
zu vermeiden, dass in zu kurzer Folge die Busfreigabe von Mikroprozessor
zu Mikroprozessor weitergegeben wird, was beispielsweise unter Verwendung
von Interruptsignalen geschehen kann, wird zwischen zwei Abfragezyklen
ein adäquates
Zeitintervall definiert. Der Ablauf dieses Zeitintervalles wird
vom Mikroprozessor 1, der Masterfunktion ausübt, überwacht.
Dabei wird ein mikroprozessorinternes Register automatisch bis zu
einem vorgegebenen Schwellenwert gezählt. Erst beim Erreichen dieses
Schwellenwertes ist die vorgegebene Zykluszeit abgelaufen. Ein neuer
Zyklus wird von dem als Master fungierenden Mikroprozessor 1 erst
dann eingeleitet, wenn die genannte Zykluszeit abgelaufen ist. Dies
gilt in all den Fällen,
in denen die Zeit, innerhalb derer das Busfreigabesignal vom letzten
Mikroprozessor des Multiprozessorsystems an den Masterfunktion ausübenden ersten
Mikroprozessor zurückgegeben
wird, kleiner ist als die vorgegebene Zykluszeit. Derartige Fälle können dann
vorliegen, wenn mehrere oder alle der Mikroprozessoren den Bus zu
dem Zeitpunkt, an welchem dieser dem jeweiligen Mikroprozessor zugeteilt
wird, nicht benötigen
und das Freigabesignal schnell an den jeweils nächsten Mikroprozessor weitergeben.
-
Aus
der nachfolgenden Zustandstabelle ergeben sich die möglichen
Zustände,
die durch den Pegel bzw. durch zugehörige Flankenwechsel von 0 nach
1 der an den Anschlüssen
a, b und n der Prozessoren anliegenden Bits vorgegeben sind:
-
In
der vorstehenden Tabelle ist mit dem Buchstaben „X" ein Impuls mit der Signalfolge 0, 1
bezeichnet, der vom jeweiligen Mikroprozessor generiert wird, um
beim nachfolgenden Mikroprozessor zum Zwecke der Weitergabe des
Freigabesignals einen Interrupt auszulösen.
-
Nachfolgend
wird anhand des in der 5 gezeigten Flussdiagrammes
ein Beispiel für
ein zugehöriges
Koordinationsprogramm erläutert.
Zur Durchführung
eines derartigen Koordinationsprogrammes weist jeder der Mikroprozessoren
ein abgespeichertes Programm auf, welches bis auf die Zyklusüberwachung
für alle Mikroprozessoren übereinstimmt.
-
Das
gezeigte Programm geht davon aus, dass dem als Master dienenden
Mikroprozessor 1 nach dem Durchlauf mehrerer Zyklen die
Busfreigabe vorliegt, welche durch die Auslösung eines Interrupts an seinem Eingang
n erteilt wurde. Weiterhin geht das gezeigte Programm davon aus,
dass im Mikroprozessor 1 ein Transferbit den Wert 1 hat,
so dass zu übertragende
Daten vorliegen.
-
Mit
dem Schritt S1 wird das Programm gestartet. Im Schritt S2 erfolgt
der vorzunehmende Datentransfer zum Speicher 4. Im Schritt
S3 wird das Bit a = 0 gesetzt. Im Schritt S4 wird das Bit a = 1
gesetzt. Der Übergang
von Bit a = 0 zu Bit a = 1 entspricht dabei der Weitergabe der Busfreigabe
an den Mikroprozessor 2, wie sie in der zweiten Zeile der
obigen Zustandstabelle dargestellt ist. Im nächsten Schritt S5 wird die
Zykluszeit t = 0 gesetzt. Im Schritt S6 erfolgt ein Hochzählen des
Registers. Schritt S7 ist das Programmende.
-
Es
ist ersichtlich, dass bei der vorstehend beschriebenen Vorgehensweise
die Busfreigabe von einem Mikroprozessor zum jeweils nächsten Mikroprozessor
sehr schnell erfolgen kann, wenn keine Daten zur Übertragung
anstehen.
-
Die 3 zeigt
ein Blockschaltbild eines dritten Ausführungsbeispiels für die Erfindung.
Dieses Ausführungsbeispiel
stimmt bis auf die Ausgestaltung des Managementbusses 10 und
der zugehörigen
Anschlüsse
der Mikroprozessoren und der verwendeten Software mit dem in der 1 gezeigten
ersten Ausführungsbeispiel überein.
-
Gemäß 3 hat
der Managementbus 10 nur eine einzige Signalleitung b.
Diese ist mit einem interruptfähigen
Ein-/Ausgang des jeweiligen Mikroprozessors verbunden. Dieser Ein-/Ausgang
kann einerseits intern im Mikroprozessor so geschaltet werden, dass
er mit einem programmierbaren Zähler
verbunden ist. Andererseits kann er auch als Ausgang dienen, an
welchem Ausgangsimpulse des Mikroprozessors bereitgestellt werden.
Der Zähler
kann so konfiguriert werden, dass er beim Erreichen eines vorgegebenen
Zählerstandes Q
einen Interrupt auslöst.
-
Die
Zähler
der einzelnen Mikroprozessoren werden in der Initialisierungsphase
unterschiedlich eingestellt, beispielsweise wie folgt:
- – Mikroprozessor 1:
Z1 = Q – 1;
- – Mikroprozessor 2:
Z2 = Q – 2;
- – Mikroprozessor 3:
Z3 = Q – 3.
-
Alternativ
dazu kann eine Softwarelösung
verwendet werden, gemäß welcher
anstelle eines internen Speichers bzw. Registers eine Speicherzelle
des Speichers 4 als Zählerzelle
verwendet wird.
-
Wie
beim zweiten Ausführungsbeispiels
dient auch hier der Mikroprozessor 1 als Master, dessen
Aufgabe unter anderem darin besteht, eine vorgegebene Zykluszeit
zu überwachen.
-
Nachfolgend
wird anhand des in der 6 gezeigten Flussdiagrammes
ein Beispiel für
ein zugehöriges
Koordinationsprogramm erläutert.
Zur Durchführung
eines derartigen Koordinationsprogrammes weist jeder der Mikroprozessoren
ein abgespeichertes Programm auf, welches bis auf die Zyklusüberwachung
für alle Mikroprozessoren übereinstimmt.
-
Das
gezeigte Programm geht davon aus, dass dem als Master dienenden
Mikroprozessor 1 nach dem Durchlauf mehrerer Zyklen die
Busfreigabe vorliegt, welche durch die Auslösung eines Interrupts an seinem Eingang
b erteilt wurde. Weiterhin geht das gezeigte Programm davon aus,
dass im Mikroprozessor 1 ein Transferbit den Wert 1 hat,
so dass zu übertragende
Daten vorliegen.
-
Mit
dem Schritt S1 wird das Programm gestartet. Im Schritt S2 wird das
Bit b = 0 gesetzt, um den anderen Mikroprozessoren einen Datentransfer
zu signalisieren. Im Schritt S3 erfolgt der Datentransfer zum Speicher 4.
Im Schritt S4 befindet sich das System im Wartezustand. Im Schritt
S5 erfolgt ein Setzen des Zählers
Z1 = Q – 1.
Im Schritt S6 wird die Zykluszeit t = 0 gesetzt. Im Schritt S7 wird
das Bit b = 0 gesetzt. Im Schritt S8 wird das Bit b = 1 gesetzt.
Durch diese ansteigende Flanke wird zur Weitergabe der Busfreigabe
beim Mikroprozessor 2 ein Interrupt ausgelöst. Schritt
S9 ist das Programmende.
-
Bei
dieser Vorgehensweise löst
beim gezeigten Ausführungsbeispiel,
bei dem ein Multiprozessorsystem mit drei Mikroprozessoren vorliegt,
jede dritte ansteigende Flanke einen spezifischen Interrupt aus,
da nach der Initialisierung die Zähler in den Mikroprozessoren
um einen „Interrupt-Takt" versetzt geladen
werden.
-
Bei
den vorstehend beschriebenen Ausführungsbeispielen für die Erfindung
sind die einzelnen Komponenten in vorteilhafter Weise derart miteinander
verschaltet, dass neben den Mikroprozessoren und dem Speicher nur
wenige Zusatzkomponenten notwendig sind, um ein Multiprozessorsystem
zur Verfügung
zu stellen, bei welchem alle Mikroprozessoren direkten Speicherzugriff
haben. Dies wird unter anderem durch die Verwendung eines Managementbusses
erreicht, über
welchen die Busbelegung betreffende Signale übertragen werden. Die einzelnen
Mikroprozessoren sind untereinander über diesen Managementbus verbunden
und können
unter Verwendung eines jeweiligen Koordinationsprogrammes die auf
diesem Bus vorliegenden Signale (Bits) lesen und auch Signale (Bits)
auf diesen Bus ausgeben. Gemäß verschiedener
Ausführungsbeispiele
kann der Managementbus drei, zwei oder eine Signalleitung umfassen.
Die Mikroprozessoren können mit
oder ohne Interruptsteuerung arbeiten.