-
Die Erfindung betriftt ein Verfahren
gemäß dem Oberbegriff
des Anspruchs 1 zur Übertragung von
Daten zwischen mindestens zwei Prozessoren. Ferner betrifft die
Erfindung ein Multiprozessorsystem gemäß dem Oberbegriff des Anspruchs
4, bei dem mindestens zwei Prozessoren über einen gemeinsamen Speicherbereich
miteinander Daten austauschen. (Unter Prozessor ist in diesem Zusammenhang
allgemein jede beliebige, nach einem externen oder internen Programm
arbeitende Vorrichtung zu verstehen.) Multiprozessorsysteme der
oben beschriebenen Art, bei denen Prozessoren über einen gemeinsamen Speicherbereich,
wie einen Parallelregister, miteinander Daten austauschen, funktionieren so,
daß mindestens
einer der Prozessoren in den genannten Speicherbereich schreibt
und mindestens ein Prozessor aus dem genannten Speicherbereich liest.
Das Schreiben und das Lesen erfolgen normalerweise über verschiedene
Datenbusse, wobei die Belastung des Datenbusses jedes Prozessors
so gering wie möglich
ist.
-
Bekannt ist unter anderem aus der
Patentschrift
US 4,209,839 ein
Multiprozessorsystem mit mehreren Prozessoren mit individuell zugeordneten Speichern
und einem Adapter zur Steuerung des Zugriffs mindestens eines Prozessors
zu einem Speicher mindestens eines anderen Prozessors über Sammelleitungen,
wobei alle Prozessoren am gemeinsamen Adapter angeschlossen sind
und jedem Prozessor eine Speichersammelleitung zugeordnet ist, an
die auch alle Speicher fremder Prozessoren über Torschaltungen angeschlossen
sind und der Adapter Einrichtungen zur Speicherung einer wählbaren
Zugriffsbetriebsart sowie Steuereinrichtungen enthält.
-
Die Schrift
EP 0 368 655 offenbart des weiteren
ein Kommunikationssystem, bei dem ein gemeinsamer Speicher durch
eine Vielzahl von Einheiten verwendet wird, wobei der gemeinsame
Speicher eine Vielzahl von Bereichen aufweist, die den jeweiligen
Einheiten entsprechen und das Kommunikationssystem außerdem eine
Einschreibeeinrichtung zum Einschreiben von Daten, eine Unterbrechungssignal-Erzeugungseinrichtung
zum Erzeugen eines Unterbrechungssignals und eine Leseeinrichtung zum
Lesen der Daten aus einem Speicher enthält.
-
Aus der
DE 41 29 809 A1 ist weiterhin
ein Mehrrechnersystem bekannt, bei dem weingstens zwei Rechner gemeinsam
auf ein Speichermittel zugreifen, welches wenigstens in zwei Bereiche
unterteilt ist. Auf den einen Speicherbereich greift ein erster
Rechner nur lesend und ein zweiter Rechner nur schreibend zu, während der
Zugriff auf einen weiteren Bereich durch den zweiten Rechner lesend
und durch den ersten Rechner schreibend erfolgt. Dabei sind die
Rechner so synchronisiert, dass die Rechner zum gleichen Zeitpunkt
in der gleichen Weise auf das Speichermittel zugreifen.
-
Es ist oft begründet, für zumindest einen Teil der
Prozessoren verschiedene Taktsignale vorzusehen, die nicht miteinander
synchronisiert sind. Somit gleiten deren wesentlichen Momente zeitlich
relativ zueinander.
-
Sind die Zeitpunkte der Lese- und
Schreiboperationen in keiner Weise miteinander synchronisiert, so
wird früher
oder später
ein gleichzeitiges Lesen und Schreiben in einem Register oder einer
Speicherposition auftreten. Es hängt
dann von der Phase der Taktsignale ab, ob aus dem Register oder
der Speicherposition ein dort existierender Wert vor oder nach dem
Schreiben gelesen wird. Hier wird nicht unbedingt ein Fehler begangen.
Im Extremfall ist es aber möglich,
daß sich
einige der parallelen Bits des Registers oder der Speicherposition
geändert
haben vor der Leseoperation, während
einige noch dem alten Inhalt entsprechen. In diesem Fall gibt das
Lesen fehlerhafte Information über
den Inhalt des Registers. Obwohl ein derartiges Phänomen selten
ist und in Abhängigkeit
von Taktfrequenzen und der Häufigkeit der
Lese- und Schreiboperationen zum Beispiel einmal in hundert Jahren
auftreten kann, wird es auf jeden Fall früher oder später auftreten, wenn die Lese- und
Schreiboperationen nicht in irgendeiner Weise miteinaner synchronisiert
sind.
-
Die Wirkung einer fehlerhaften Leseoperation
ist wesentlich von dem jeweiligen Fall abhängig. Die Kommunikation zwischen
den Prozessoren kann so sichergestellt werden, daß eine fehlerhafte
Leseoperation nicht zu einem Funktionsfehler der Vorrichtung führt. Voraussetzung
hierfür
ist jedoch, daß das von
den Prozessoren verwendete Kommunikationsprotokoll komplizierter
ist, was wiederum die Operation der Vorrichtung (die digitale Vorrichtung,
bei der die Prozessoren verwendet werden) verlangsamt.
-
Die oben besprochene Fehlersituation
läßt sich
dadurch vermeiden, daß die
Operation der Prozessoren so synchronisiert wird, daß gleichzeitiges Lesen
und Schreiben verhindert ist. Hierfür gibt es mehrere Möglichkeiten.
In einigen Fällen
kann die Synchronisierung vorrichtungsmäßig erfolgen. Im allgemeinen
führt eine
derartige Lösung
zu einer komplizierteren Ausführung
und somit zu höheren
Kosten. Oft ist es auch so, daß verschiedene
Prozessoren die Steuersignale für
das Lesen und Schreiben automatisch abgeben, wobei deren Synchronisierung
vorrichtungsmäßig unmöglich oder
mit Risiken einer Funktionsstörung
verbunden sein kann.
-
Der vorliegenden Erfindung liegt
die Aufgabe zugrunde, die oben besprochenen Nachteile zu vermeiden
und eine Lösung
anzugeben, bei der die Übertragung
von fehlerhaften Information auf einfachste Weise verhindert werden
kann. Gelöst
wird diese Aufgabe durch ein erfindungsgemäßes Verfahren und System, wobei
das Verfahren durch die Merkmale des Anspruchs 1 gekennzeichnet
ist. Das erfindungsgemäße System
ist durch die Merkmale des Anspruch 4 gekennzeichnet.
-
Die Erfindung beruht auf dem Gedanken, daß zum gegenseitigen
Timing der Schreib- und Leseoperationen ein oder mehrere Unterbrechungssignale
verwendet werden, wobei (a) im Falle eines gemeinsamen Unterbrechungssignals
die von verschiedenen Prozessoren ausgeführten Lese- und Schreiboperationen
durch das Programm jedes Prozessors bezüglich des gemeinsamen. Unterbrechungszeitpunkts
so gesteuert werden, daß ein
gleichzeitiges Lesen und Schreiben nicht auftritt, oder (b) im Falle von
mehreren Unterbrechungssignalen die gegenseitige zeitliche Reihenfolge
dieser Signale kontinuierlich aufrechterhalten und auch der Zeitabstand zwischen
ihnen innerhalb vorgegebener Grenzen gehalten wird, wobei es möglich ist,
die Lese- und/oder Schreiboperationen von wenigstens einem, vorzugsweise
aber jedem. Prozessor unmittelbar nach dem den jeweiligen Prozessor
betreffenden Unterbrechungszeitpunkt auszuführen. Da eine von mehreren Prozessoren
gleichzeitig ausgeführte
Leseoperation, abhängig
von der jeweiligen Konfiguration, nicht unbedingt eine Funktionsstörung verursacht,
ist sie unter gewissen Voraussetzungen erlaubt.
-
Oft ist es möglich, das erfindungsgemäße System
ganz ohne zusätzliche
Vorrichtungen zu verwirklichen, so daß zusätzliche Bauteile zu dessen Anwendung
nicht benötigt
werden.
-
Die Erfindung und ihre bevorzugten
Ausführungsformen
und Vorteile werden nachstehend anhand eines in der Zeichnung dargestellten
Beispiels näher
erläutert.
-
Es zeigen:
-
1 ein
gemäß der ersten
Ausführungsform
der Erfindung arbeitendes Multiprozessorsystem,
-
2 das
Timing der Lese- und Schreiboperationen im System gemäß 1,
-
3 das
Multiprozessorsystem gemäß 1, das in diesem Fall gemäß der zweiten
Ausführungsform
der Erfindung arbeitet, und
-
4 das
Timing der Lese- und Schreiboperationen im System gemäß 3.
-
Die 1 und 2 zeigen beispielhaft die
Anwendung der erfindungsgemäßen Lösung bei
der Kommunikation zwischen einem Hauptcontroller (z.B. MC68302)
und einem digitalen Signalprozessor (z.B. DSP16), die zu einer Ausrüstungseinheit
der DYNACARD®-Produktfamilie
der Anmelderin gehören.
-
Ein Hauptcontroller 11 una
ein DSP-Schaltkreis 12 tauschen Daten miteinander aus über ein Parallelinterface 13 des
DSP-Schaltkreises. Das Parallelinterface des DSP-Schaltkreises weist
zwei interne Register auf. Die interne Verarbeitungseinheit des
DSP-Schaltkreises schreibt in einen dieser Register und liest den
Inhalt des anderen. Der Parallelbus PB des Hauptcontrollers 11 ist
mit dem Parallelinterface 13 des DSP-Schaltkreises verbunden. Der
Hauptcontroller schreibt in den Register, aus dem die interne Verarbeitungseinheit
des DSP-Schaltkreises
liest, während
der Hauptcontroller aus dem Register liest, in den die interne Verarbeitungseinheit
des DSP-Schaltkreises schreibt.
-
Sowohl der Hauptcontroller als auch
der DSP-Schaltkreis
arbeiten synchron mit ihren Taktsignalen (CLK1 bzw. CLK2). Die Taktsignale
sind nicht miteinan der synchronisiert. Dem Unterbrechungseingang
INT_IN beider Controller wird das gleiche Unterbrechungssignal INTR
(2), das (in diesem Beispiel)
in Zeitabständen
von 125 Mikrosekunden eine Unterbrechung bewirkt, zugeführt. Der
Hauptcontroller 11 ist so programmiert, daß er innerhalb
einer kurzen Zeit, z.B. weniger als 50 Mikrosekunden, nach der Unterbrechung,
d.h. gut vor dem Auftreten der nächsten
Unterbrechung, in die Parallelregister des DSP-Schaltkreises schreibt
und aus diesen liest. Der DSP-Schaltkreis ist wiederum so programmiert, daß er nach
dem Empfang einer Unterbrechung verschiedene Berechnungen und andere
Funktionen so lange ausführt,
bis die Zeit von 125 Mikrosekunden beinahe abgelaufen ist. In der
Praxis könnte
dies z.B. bedeuten, daß von
diesen 125 Mikrosekunden zumindest 100 Mikrosekunden vergangen sind.
Dann liest der DSP-Schaltkreis aus einen seiner Parallelregister
und schreibt in den anderen. In 2 ist
durch die mit RD/WR/11 bezeichnete Zeitachse das Timing der vom
Hauptcontroller 11 ausgeführten Lese- und Schreiboperationen
bezüglich
des gemeinsamen Unterbrechungssignals und durch die mit RD/WR/12 bezeichnete
Zeitachse das Timing der vom DSP-Schaltkreis 12 ausgeführten Lese- und Schreiboperationen
bezüglich
des Unterbrechungssignals veranschaulicht. Die eigentlichen Lese-
und Schreiboperationen sind mit RD/WR bezeichnet. In der Praxis
beträgt
die Dauer einer Lese- und Schreiboperation etwa 1 Mikrosekunde.
-
Durch die oben beschriebene Prozedur
ist gewährleistet,
daß kein
gleichzeitiges Schreiben und Lesen in der Datenübertragung zwischem dem Hauptcontroller
und dem DSP-Schaltkreis auftritt. Durch die Verwendung der oben
genannten beispielhaften Werte verbleibt zwischen den vom Hauptcontroller
und vom DSP-Schaltkreis ausgeführten
Lese- und Schreiboperationen ein Zeitabstand von mindestens 50 Mikrosekunden,
der beinahe die Hälfte
der Zeit zwischen zwei Unterbrechungen ausmacht.
-
Alternativ können getrennte Unterbrechungssignale
so verwendet werden, daß die
gegenseitige zeitliche Reihenfolge der durch sämtliche Unterbrechungssignale
bewirkten Unterbrechungen kontinuierlich aufrechterhalten und auch
der Zeitabstand zwischen ihnen innerhalb vorgegebener Grenzen gehalten
wird, die unter Berücksichtigung
der Betriebsgeschwindigkeiten der Prozessoren gewählt sind. 3 und 4 zeigen eine derartige Alternative für das Multiprozessorsystem
gemäß 1. Somit entspricht die
Ausführungsform
der 3 und 4 sonst derjenigen der 1 und 2, außer daß nun den beiden Prozessoren
ein getrenntes Unterbrechungssignal zugeführt wird: dem Hauptcontroller 11 ein
Unterbrechungssignal INTR1 und dem DSP-Schaltkreis 12 ein
Unterbrechungssignal INTR2. In diesem Fall bringt das Unterbrechungssignal
INTR1 der Hauptcontroller dazu, die Lese- und Schreiboperationen auszuführen, während das
Unterbrechungssignal INTR2 den DSP-Schaltkreis dazu bringt, seine
eigenen Lese- und Schreiboperationen auszuführen.
-
Die vorstehend beschriebene erste
Ausführungsform
ist in ihrer Verwirklichung komplizierter, weil dabei durch die
Software sicherzustellen ist, daß der DSP-Schaltkreis Berechnungen und andere Funktionen
für eine
ausreichend lange Zeit nach einer Unterbrechung ausführt, während im
Fall der zweiten Ausführungsform
ein getrenntes Unterbrechungssignal INTR2 sicherstellt, daß der DSP-Schaltkreis
das Lesen und Schreiben nicht zu früh ausführen kann (erlaubt erst nach
dem Unterbrechungszeitpunkt), wobei es möglich ist, die Lese- und Schreiboperationen
unmittelbar nach der Unterbrechung auszuführen (man braucht nicht mit
Hilfe eines Programms sicherzustellen, daß die gewünschte Zeit vergan gen ist).
Andererseits ist die vorstehend beschriebene erste Ausführungsform
günstiger,
weil das gegenseitige Timing von verschiedenen Unterbrechungssignalen
nicht berücksichtigt
zu werden braucht.
-
Es hängt von der jeweiligen Anwendung
ab, ob es sich lohnt, mit einem oder mehreren Unterbrechungssignalen
zu arbeiten. Falls das System mehr als zwei Prozessoren umfaßt, können die
oben beschriebenen Alternativen auch in einer solchen Kombination
verwendet, daß ein
Teil der Prozessoren ein gemeinsames Unterbrechungssignal hat, während die übrigen jeweils
ein eigenes Unterbrechungssignal haben, wobei diese in der oben
beschriebenen Weise miteinander und bezüglich des gemeinsamen Unterbrechungssignals
synchronisiert sind.
-
Obwohl die Erfindung vorstehend anhand der
in der Zeichnung dargestellt Beispiele beschrieben ist, ist es klar,
daß die
Erfindung nicht auf diese beschränkt
ist, sondern im Rahmen des oben und in den beigefügten Patentansprüchen erläuterten
Erfindungsgedankens variiert werden kann. Wird beispielsweise ein
gemeinsames Unterbrechungssignal verwendet, so ist es möglich, dieses
Signal über
unterschiedlich lange Verzögerungslinien
mit Unterbrechungseingängen
verschiedener Prozessoren zu verbinden, wobei die Situation im wesentlichen
derjenigen mit getrennten Unterbrechungssignalen entspricht.