Multiprozessorspeicherzugriffsystem
Stand der Technik
Die Erfindung geht aus von einem Multiprozessorsystem nach der Gattung des Hauptanspruchs.
Aus der US-PS 4 164 787 ist bereits ein Multiprozessorsystem bekannt, bei dem zwei Prozessoren mit einem Multiplexer derart verbunden sind, daß der Multiplexer jeweils den gesamten Adress- und Data-Bus eines Prozessors auf einen gemeinsamen Speicher schaltet. Der Multiplexer wird dabei synchron zu einem Taktgeber regelmäßig umgeschaltet, so daß sich für den Zugriff ein Zeitmultiplex konstanter Schaltfrequenz ergibt.
Nachteilig an diesem Multiprozessorsystem ist gerade der feste Synchronismus, der es einem Prozessor nicht erlaubt, für längere Zeiten als eine halbe Taktperiode des Taktgebers ununterbrochen auf den Speicher zuzugreifen. Aufwendige Prozeduren in den Programmen der Prozessoren sind daher notwendig, etwa über Interrupt-Steuerungen, um eine korrekte Durcharbeitung eines längeren Programmes zu gewährleisten. Weiterhin sind Hardware-Schaltungen notwendig, um dem jeweiligen Prozessor mitzuteilen, daß dem
nächst der Multiplexer umschalten wird. Durch die feste Umschaltfreqjienz wird die Standzeit des idress- und Data-Bus des Speichers effektiv verringert, da nach dem Umschalten während der Einschwingzeiten der Signale auf den Busleitungen kein Zugriff möglich ist.
Vorteile der Erfindung
Das erfindungsgemäße Multiprozessorsystem mit den kennzeichnenden Merkmalen des Hauptanspruches hat demgegenüber den Vorteil, daß ein ungestörter Zugriff eines Prozessors auf den gemeinsamen Speicher möglich ist, der lediglich durch einen Zugriffswunsch eines Prozessors höherer Priorität unterbrochen wird. So können auch langwierige Prozeduren eines Prozessors ununterbrochen durchgeführt werden. Durch die asynchrone Kopplung der Prozessoren über den gemeinsamen Speicher ist ein s.chneller Datenaustausch zwischen den Prozessoren möglich, da der Multiplexer keine feste Taktfrequenz zugeführt bekommt. Er kann direkt nach Beendigung der Übertragung eines Datums zum Speicher umschalten, so daß der nächste Prozessor das eingespeicherte Datum lesen kann. Durch diese den Anforderungen der Prozessoren angepaßte Kopplung erhöht sich der Gesamtdurchsatz und die Leistungsfähigkeit des erfindungsgemäßen Multiprozessorsystems beträchtlich.
Durch die Unteransprüche sind besonders vorteilhafte Ausgestaltungen des erfindungsgemäßen Multiprozessorssystems angegeben. In besonders einfacher Weise wird die Prioritätzuweisung auf die einzelenen Prozessoren durchgeführt, wenn wenigstens die Speicherzugriffssignale (Read, Write, Chip Select) oder die Multiplexerauswahlsignale der Prozessoren für den gemeinsamen Speicher dem Prioritäts-Encoder zugeführt sind. Mit diesen Signalen ist eine ausreichende und besonders einfache Basis für die Auswahllogik des Prioritäts-Encoders gegeben. Eine Schreibver-
riegelung für die Prozessoren niederer Priorität bietet eine besondere Sicherheit, wenn zwei Prozessoren gleichzeitig auf den Speicher und den Multiplexer zugreifen wollen und die Signale - insbesondere auf den Adressleitungen des gemeinsamen Speichers - noch nicht eingeschwungen sind. Hiermit werden Undefinierte Schreibvorgänge im Speicher verhindert. Für den schaltungstechnischen Aufwand des erfindungsgemässen Multiprozessorsystems ist es besonders vorteilhaft, wenn die Verbindung zwischen den Prozessoren und dem Adress-Bus des gemeinsamen Speichers über einen vom Multiplexer freigebbaren Adressspeicher geführt sind und darüber hinaus, wenn die Verbindung zwischen den Prozessoren und dem Data-Bus des gemeinsamen Speichers über vom Multiplexer freigebbare Transceiver geführt sind. Dadurch wird die Anzahl der benötigten Leitungen erheblich reduziert und die Störanfälligkeit des Systems verringert. Der schaltungstechnische Aufwand für den Multiplexer wird ebenfalls reduziert, da zur Zuordnung eines Prozessors lediglich die Freigabeleitungen für Adressspeicher und Transceiver geschaltet werden müssen.
Zeichnung
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt die einzige Figur ein Multiprozessorsystem mit zwei Prozessoren, das als Steuergerät in einem Kraftfahrzeug zur Steuerung der Einspritzung Verwendung findet.
Beschreibung des Ausführungsbeispieles
In der Figur sind zwei Mikroprozessoren 1, 2 dargestellt, von denen der erste Mikroprozessor 1 den Masterprozessor darstellt, der zweite Mikroprozessor 2 den Slaveprozes
sor. Die Prozessoren 1, 2 sind jeweils mit einem Multiplexer 3 und einem gemeinsamen Speicher 4 verbunden. Dabei ist der Prozessor 1 über einen Adressspeicher 5 und der Prozessor 2 über einen Adressspeicher 6 mit dem Adress-Bus 4 1 des Speichers 4 verbunden. Mit dem Data-Bus 42 des Speichers 4 ist der Prozessor 1 über einen Transceiver 7 und der Prozessor 2 über einen Transceiver 8 verbunden. Ein Prioritäts-Encoder 9 verbindet den Prozessor 1 und den Prozessor 2 mit dem Multiplexer 3. Eine Schreibverriegelung 10 ist zwischen den Prozessor 2 und den Multiplexer 3 eingefügt.
Der Masterprozessor 1 ist mit einem Port P1 an einen Bus 51 angeschlossen, der zum Adressspeicher 4 und zum Transceiver 7 führt. Durch ein Signal an einem Ausgang ALE1 (Adress Latch Enable) wird der Adressspeicher 5 über eine Leitung 53 aktiviert. Hierzu völlig symmetrisch ist der Slaveprozessor 2 mit einem Port P2 an einen Bus 61 angeschlossen, der zum Adresspeicher 6 und zum Transceiver 8 führt. Durch ein Signal an einem Ausgang ALE2 wird der Adressspeicher 6 über eine Leitung 63 aktiviert. Die Ausgänge der Adressspeicher 5, 6 sind über einen Adressbus 41 mit dem Adresseneingang A des gemeinsamen Speichers 4 verbunden. Die zugehörigen Daten werden über einen Data-Bus 42 übertragen, der zwischen die Transceiver 7, 8 und den gemeinsamen Speicher 4 geschaltet ist. Das Schreibsignal WR1 und das Lesesignal RD1 des Masterprozessors 1 sind auf den Multiplexer 3 geführt. Das Lesesignal RD2 des Slaveprozessors
2 ist ebenfalls auf den Multiplexer 3 geführt, während das Schreibsignal WR2 auf die Schreibverriegelung 10 geführt ist, die dafür ein Schreibsignal WR2' auf den Multiplexer
3 führt. Die Multiplexerauswahlsignale MS1 des Masterprozessors 1 und MS2 des Slaveprozessors 2 sind auf den Prioritäts-Encoder 9 geführt, der über eine Leitung 91 den Multiplexer 3 aktiviert und über eine Leitung 92 die Schreibverriegelung 10 und einen Eingang BUSY des Slaveprozessors 2 an
spricht. Der Multiplexer 3 steuert über eine Leitung 71 bzw. 81 den Transceiver 7 bzw. 8 und über eine Leitung 52 bzw. 62 den Adressspeicher 5 bzw. 6. Weiterhin wird über eine Leitung 43 der Speicher 4 vom Multiplexer 3 angesteuert.
Dieses Zweiprozessorsystem ist in einem Steuergerät für ein Kraftfahrzeug eingesetzt, bei dem der Masterprozessor 1 Betriebsdaten 11 von der Br ennkraftmas chine erhält. Aus Drehzahl n, Last L und Temperatur T steuert der Masterprozessor 1 die Zündung der Brennkraftmaschine und berechnet Vorgabedaten für die Einspritzung. Der Slaveprozessor 2 dient zur Ansteuerung einer Einspritzvorrichtung 12, wobei er für jeden Zylinder der Brennkraftmaschine getrennt sequentiell die benötigten Einspritzmengen zu den richtigen Einspritzzeiten zumißt. Von der Brennkraftmaschine erhält er hierfür Betriebsdaten 13, z.B. den Förderdruck der Benzinpumpe.
Die Kopplung zwischen Masterprozessor 1 und Slaveprozessor 2 über den gemeinsamen Speicher 4 dient dabei zur Übermittlung der Steuervorgaben und gegensetigen Übermittlung von Betriebsdaten. Die Kopplung ist so gestaltet, daß der Masterprozessor 1 auf den gemeinsamen Speicher 4 so zugreifen kann, als wenn der Slaveprozessor 2 gar nicht vorhanden wäre. Der Slaveprozessor 2 wird dagegen bei einem Zugriff auf den gemeinsamen Speicher 4 unterbrochen oder der Zugriff wird erst gar nicht ermöglicht, wenn der Masterprozessor 1 zugreift.
Bei einer Übertragung eines Datums vom Masterprozessor 1 zum gemeinsamen Speicher 4 wird zuerst durch ein Signal MS1 der Multiplexer 3 über den Prioritäts-Encoder 9 aktiviert und die Adresse des Speicherplatzes an den Port P1 gelegt. Nach Freigabe des Adressspeichers 5 über die Leitung 52
durch Setzen des Signales ALE1 wird die Adresse in den Adressspeicher 5 geladen und durch Zurücknehmen des Signales ALE1 dort festgehalten. Darauf wird an den Port P1 das Datum angelegt und über die Leitung 71 der Transceiver 7 vom Multiplexer 3 aktiviert. Das Datum wird vom Port P1 auf den Transceiver 7 geführt, dessen Übertragungsr ichtung durch das Signal RD1 festgelegt wird. Durch ein Signal an der Leitung 43 wird nun der Speicher 4 zum Schreiben freigegeben. Wach Beendigung des Adressiervorgangs im Speicher 4 gibt der Multiplexer 3 den Transceiver 7 frei, so daß das am Port P1 anliegende Datum an die zugehörige Adresse in den Speicher 4 eingeschrieben werden kann. Der Lesevorgang durch den Masterprozessor 1 geschieht in zum Schreibvorgang äquivalenter Weise.
Wenn der Masterprozessor 1 durch das Signal MS1 Multiplexer 3 zum Zugriff auf den Speicher 4 aktiviert, wird zuerst der Prioritäts-Encoder 9 angesprochen. Dieser bildet ein Signal für die Schreibverriegelung 10, die einen Schreibzugriff des Slaveprozessors 2 auf den Multiplexer 3 sofort unterbricht oder einen zukünftigen Zugriffswunsch sperrt. Hierfür ist dieses Signal auf einen BUSY-Eingang des Slaveprozessors 2 geführt. Dieser Eingang wird vom Slaveprozessor 2 nach jedem Zugriff auf den gemeinsamen Speicher 4 abgefragt. Liegt dort ein Signal vom Prioritäts-Encoder 9 an, so wird der Zugriff wiederholt, sobald die Schreibverriegelung 10 wieder freigegeben ist.
Ist der Masterprozessor 1 nicht aktiv, so kann der Slaveprozessor 2 ungehindert auf den Speicher 4 zugreifen, wobei der Funktionsablauf im Adressspeicher 6 und im Transceiver 8 völlig identisch mit dem Funktionsablauf im Adressspeicher 5 und im Transceiver 7 bei einem Zugriff durch den Masterprozessor 1 ist. Wird bei einem laufenden Zugriff auf den Speicher 4 jedoch der Masterprozessor 1
aktiv, so wird durch das Signal MS1 sofort der PrioritätsEncoder 9 aktiviert und die Schreibverriegelung 10 eingeschaltet. Gleichzeitig nimmt der Multiplexer 3 die Freigaben für den Adressspeicher 6 und den Transceiver 8 zurück, so daß deren Ein- bzw. Ausgänge zu den Bussen 4 1 , 42 des gemeinsamen Speichers 4 hochohmig werden. Durch das Signal am BUSY-Eingang erfährt dies der Slaveprozessor 2 so rechtzeitig, daß hierdurch keine Informationen verloren gehen. Während des Zugriffes durch den Masterprozessor 1 wiederholt der Slaveprozessor 2 seinen unterbrochenen Zugriff solange, bis das BUSY-Signal zurückgenommen wird.
Die Erfindung ist selbstverständlich nicht auf das hier gewählte Ausfuhrungsbeispiel beschränkt. Auf die gleiche Weise können auch mehr als zwei Prozessoren über einen gemeinsamen Speicher gekoppelt werden. Dann ist jedem Prozessor ein Adressspeicher und ein Transceiver zugeordnet, die von einem gemeinsamen Multiplexer gesteuert werden. Ein PrioritätsEncoder sperrt dann den Prozessoren niederer Priorität den Zugriff auf den gemeinsamen Speicher, wenn ein Prozessor höherer Priorität darauf zugreift. Weiterhin hängt es ganz von der Art der eingesetzten Bausteine ab, welche Steuersignale anliegen, ob etwa getrennte Schreib- und Lesesignale der Prozessoren vorliegen, ob ein gemeinsamer Takt der Prozessoren vorliegt, so daß synchron arbeiten aber einen asynchronen Zugriff auf den gemeinsamen Speicher durchführen. Ebenso ist es möglich, Prozessoren verschiedener Bauart auf die erfindungsgemäße Weise über einen gemeinsamen Speicher zu verbinden. Multiplexer und Prioritäts-Encoder können in diskreter Logik aufgebaut sein, die hardwaremäßig jedem Prozessor zugeordnet, dort auch softwaremäßig realisierbar ist. Durch einen Austausch von Kontrollbytes ist eine wechselseitige Kontrolle der Prozessoren untereinander möglich. Durch Einsatz hierfür geeigneter Bausteine läßt sich das erfindungsgemäße Multiprozessorsystem noch vereinfachen, insbesondere können die Adressspeicher entfallen, wenn der gemeinsame Speicher bereits einen Adressspeicher besitzt.