DE10149296B4 - Multiprozessorsystem - Google Patents

Multiprozessorsystem Download PDF

Info

Publication number
DE10149296B4
DE10149296B4 DE2001149296 DE10149296A DE10149296B4 DE 10149296 B4 DE10149296 B4 DE 10149296B4 DE 2001149296 DE2001149296 DE 2001149296 DE 10149296 A DE10149296 A DE 10149296A DE 10149296 B4 DE10149296 B4 DE 10149296B4
Authority
DE
Germany
Prior art keywords
bus
multiprocessor system
microprocessors
memory
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE2001149296
Other languages
English (en)
Other versions
DE10149296A1 (de
Inventor
Michael Cuylen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE2001149296 priority Critical patent/DE10149296B4/de
Publication of DE10149296A1 publication Critical patent/DE10149296A1/de
Application granted granted Critical
Publication of DE10149296B4 publication Critical patent/DE10149296B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

Multiprozessorsystem, welches mehrere Mikroprozessoren (1, 2, 3) und einen Speicher (4) aufweist, wobei die Mikroprozessoren und der Speicher jeweils an einen Adressbus (12), einen Datenbus (11) und einen Steuerbus (9) angeschlossen sind, wobei die Mikroprozessoren untereinander über einen gemeinsamen Managementbus (10) verbunden sind, welcher zur Übertragung von Bitsignalen, die die Belegung von Adressbus (12), Datenbus (11) und Steuerbus (9) betreffen, vorgesehen ist, und wobei die Mikroprozessoren dazu vorgesehen sind, die auf dem Managementbus (10) vorliegenden Bitsignale zu lesen und Bitsignale auf den Managementbus (10) auszugeben.

Description

  • 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:
    Figure 00080001
  • 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:
    Figure 00120001
  • 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.

Claims (25)

  1. Multiprozessorsystem, welches mehrere Mikroprozessoren (1, 2, 3) und einen Speicher (4) aufweist, wobei die Mikroprozessoren und der Speicher jeweils an einen Adressbus (12), einen Datenbus (11) und einen Steuerbus (9) angeschlossen sind, wobei die Mikroprozessoren untereinander über einen gemeinsamen Managementbus (10) verbunden sind, welcher zur Übertragung von Bitsignalen, die die Belegung von Adressbus (12), Datenbus (11) und Steuerbus (9) betreffen, vorgesehen ist, und wobei die Mikroprozessoren dazu vorgesehen sind, die auf dem Managementbus (10) vorliegenden Bitsignale zu lesen und Bitsignale auf den Managementbus (10) auszugeben.
  2. Multiprozessorsystem nach Anspruch 1, dadurch gekennzeichnet, dass der Adressbus und der Datenbus als gemultiplexter Daten- und Adressbus (11) realisiert ist.
  3. Multiprozessorsystem nach Anspruch 2, dadurch gekennzeichnet, dass zusätzlich zum gemultiplexten Daten- und Adressbus ein weiterer Adressbus (12) vorgesehen ist.
  4. Multiprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Speicher (4) mit dem Adress- und Datenbus (11) über einen Adressspeicher (5) verbunden ist.
  5. Multiprozessorsystem nach Anspruch 4, dadurch gekennzeichnet, dass der Adressspeicher (5) über den Steuerbus (9) aktivierbar ist.
  6. Multiprozessorsystem nach Anspruch 5, dadurch gekennzeichnet, dass der Adressspeicher (5) über eine ODER-Schaltung (6) mit dem Steuerbus (9) verbunden ist.
  7. Multiprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Speicher (4) über den Steuerbus (9) aktivierbar ist.
  8. Multiprozessorsystem nach Anspruch 7, dadurch gekennzeichnet, dass der Speicher (4) einen Lesesteuereingang aufweist und der Lesesteuereingang über eine UND-Schaltung (7) mit dem Steuerbus (9) verbunden ist.
  9. Multiprozessorsystem nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass der Speicher (4) einen Schreibsteuereingang aufweist und der Schreibsteuereingang über eine UND-Schaltung (8) mit dem Steuerbus (9) verbunden ist.
  10. Multiprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeder der Mikroprozessoren (1, 2, 3) einen mit dem Steuerbus (9) verbundenen Schreibsteuerausgang aufweist.
  11. Multiprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeder der Mikroprozessoren (1, 2, 3) einen mit dem Steuerbus (9) verbundenen Ausgang aufweist, an welchem den Adressspeicher (5) aktivierende Steuersignale ausgebbar sind.
  12. Multiprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass jeder der Mikroprozessoren (1, 2, 3) einen mit dem Steuerbus (9) verbundenen Lesesteuerausgang aufweist.
  13. Multiprozessorsystem nach Anspruch 12, dadurch gekennzeichnet, dass jeder der Mikroprozessoren (1, 2, 3) einen Datenlesesteuerausgang und einen Programmcodelesesteuerausgang aufweist.
  14. Multiprozessorsystem nach Anspruch 13, dadurch gekennzeichnet, dass der Datenlesesteuerausgang und der Programmcodelesesteuerausgang über eine UND-Schaltung (1b, 2b, 3b) mit dem Steuerbus (9) verbunden sind.
  15. Multiprozessorsystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Managementbus (10) drei Signalleitungen aufweist, die den Belegungszustand des Adressbusses und/oder des Adress- und Datenbusses beschreiben (1).
  16. Multiprozessorsystem nach einem der Ansprüche 1–14, dadurch gekennzeichnet, dass der Managementbus (10) zwei Signalleitungen aufweist und dass jeder der Mikroprozessoren einen an den Managementbus angeschlossenen Signaleingang und einen an den Managementbus angeschlossenen Signalausgang aufweist (2).
  17. Multiprozessorsystem nach Anspruch 16, dadurch gekennzeichnet, dass der Signalausgang zur Ausgabe eines Interruptsignals an einen weiteren der Mikroprozessoren und der Signaleingang zum Empfang eines Interruptsignals von einem der weiteren Mikroprozessoren vorgesehen ist.
  18. Multiprozessorsystem nach Anspruch 17, dadurch gekennzeichnet, dass die Mikroprozessoren derart programmiert sind, dass sie ein sequenzielles Aufrufsystem bilden.
  19. Multiprozessorsystem nach Anspruch 18, dadurch gekennzeichnet, dass einer der Mikroprozessoren Masterfunktion aufweist und die Überwachung einer Zykluszeit vornimmt.
  20. Multiprozessorsystem nach Anspruch 18, dadurch gekennzeichnet, dass die Überwachung der Zykluszeit unter Verwendung einer Zählvorrichtung erfolgt.
  21. Multiprozessorsystem nach einem der Ansprüche 1–14, dadurch gekennzeichnet, dass der Managementbus (10) eine Signalleitung aufweist, die mit einem interruptfähigen Ein-/Ausgang jedes der Mikroprozessoren verbunden ist (3).
  22. Multiprozessorsystem nach Anspruch 21, dadurch gekennzeichnet, dass der Ein-/Ausgang mit einem programmierbaren Zähler verbunden ist.
  23. Multiprozessorsystem nach Anspruch 22, dadurch gekennzeichnet, dass der Zähler beim Erreichen eines vorgegebenen Zählerstandes einen Interrupt auslöst.
  24. Multiprozessorsystem nach Anspruch 20, 22 oder 23, dadurch gekennzeichnet, dass eine Speicherzelle des Speichers (4) als Zählerzelle dient.
  25. Multiprozessorsystem nach einem der Ansprüche 21–24, dadurch gekennzeichnet, dass einer der Mikroprozessoren Masterfunktion ausübt und die Überwachung einer Zykluszeit vornimmt.
DE2001149296 2001-10-05 2001-10-05 Multiprozessorsystem Expired - Fee Related DE10149296B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2001149296 DE10149296B4 (de) 2001-10-05 2001-10-05 Multiprozessorsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001149296 DE10149296B4 (de) 2001-10-05 2001-10-05 Multiprozessorsystem

Publications (2)

Publication Number Publication Date
DE10149296A1 DE10149296A1 (de) 2003-04-24
DE10149296B4 true DE10149296B4 (de) 2007-01-04

Family

ID=7701600

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001149296 Expired - Fee Related DE10149296B4 (de) 2001-10-05 2001-10-05 Multiprozessorsystem

Country Status (1)

Country Link
DE (1) DE10149296B4 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1287656A (en) * 1969-07-22 1972-09-06 Burroughs Corp Modular multiprocessor system with an interprocessor priority arrangement
DE2824557C2 (de) * 1978-06-05 1983-01-20 Siemens AG, 1000 Berlin und 8000 München Anordnung in Mikroprozessoren für den Aufbau von Multiprozessor-Systemen
EP0535696B1 (de) * 1991-10-04 1999-03-10 Bull HN Information Systems Inc. Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1287656A (en) * 1969-07-22 1972-09-06 Burroughs Corp Modular multiprocessor system with an interprocessor priority arrangement
DE2824557C2 (de) * 1978-06-05 1983-01-20 Siemens AG, 1000 Berlin und 8000 München Anordnung in Mikroprozessoren für den Aufbau von Multiprozessor-Systemen
EP0535696B1 (de) * 1991-10-04 1999-03-10 Bull HN Information Systems Inc. Vorrichtung zur Vermeidung von Prozessorblockierungen in einem Multiprozessorsystem

Also Published As

Publication number Publication date
DE10149296A1 (de) 2003-04-24

Similar Documents

Publication Publication Date Title
DE3300262C2 (de)
DE69632634T2 (de) Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
DE3300261C2 (de)
DE3300260C2 (de)
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
EP0577919B1 (de) Zugriffssteuerung für gekoppelte maskenprogrammierte Mikrocontroller
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE3704056A1 (de) Peripherer dma-controller fuer datenerfassungssysteme
DE3909948A1 (de) Mikrocomputersystem mit mehrfachbus und buszuteilung
DE3106862C2 (de) Prioritätszuteilschaltungsanordnung
CH634671A5 (de) Kanalspeicher-adapter.
DE102013113262B4 (de) Auslöser-Leitwegeinheit
DE3049774C2 (de)
EP0006164A1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE19614238C1 (de) Kommunikationssystem mit einer Meisterstation und mindestens einer Sklavenstation
WO2003026201A2 (de) Verfahren und vorrichtung zur zeitbestimmung in einem bussystem und bussystem
WO2010108745A1 (de) Schaltungsanordnungen und verfahren zur steuerung eines datenaustauschs in einer schaltungsanordnung
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
DE10149296B4 (de) Multiprozessorsystem
DE10306285A1 (de) Mikrocomputersystem
DE3426902C2 (de) Schaltungsanordnung zum Konfigurieren von Peripherieeinheiten in einer Datenverarbeitungsanlage
DE69733011T2 (de) Schnittstellenbrücke zwischen einem Systembus und einem lokalen Bus zur Steuerung wenigstens eines Slave-Gerätes, wie ein ROM-Speicher
DE3325791C2 (de) Schaltungsanordnung für mit einer zentralen Steuereinrichtung zusammenarbeitende periphere Einheiten
DE602004011677T2 (de) Verfahren und vorrichtung für master-slave-direktspeicherzugriff-hardware- und -softwaresteuerung
DE3035850C2 (de) Verfahren für eine zentralgesteuerte Fernmeldeanlage, insbesondere Fernsprechnebenstellenanlage, mit externen Ein- und Ausgabegeräten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee