DE2607685B2 - Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem - Google Patents

Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem

Info

Publication number
DE2607685B2
DE2607685B2 DE19762607685 DE2607685A DE2607685B2 DE 2607685 B2 DE2607685 B2 DE 2607685B2 DE 19762607685 DE19762607685 DE 19762607685 DE 2607685 A DE2607685 A DE 2607685A DE 2607685 B2 DE2607685 B2 DE 2607685B2
Authority
DE
Germany
Prior art keywords
processor
processors
cpu2
command
cpu1
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.)
Granted
Application number
DE19762607685
Other languages
English (en)
Other versions
DE2607685C3 (de
DE2607685A1 (de
Inventor
Helmut Dipl.-Ing. 8000 Muenchen Sebbel
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 DE19762607685 priority Critical patent/DE2607685C3/de
Priority to CH40477A priority patent/CH610122A5/xx
Priority to FR7701981A priority patent/FR2342530A1/fr
Priority to AT50677A priority patent/AT353363B/de
Priority to NL7701537A priority patent/NL7701537A/xx
Priority to GB665177A priority patent/GB1576276A/en
Priority to IT2055377A priority patent/IT1078233B/it
Priority to BE175270A priority patent/BE851840A/xx
Publication of DE2607685A1 publication Critical patent/DE2607685A1/de
Publication of DE2607685B2 publication Critical patent/DE2607685B2/de
Application granted granted Critical
Publication of DE2607685C3 publication Critical patent/DE2607685C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Description

Die Erfindung bezieht sich auf ein Verfahren gemäß dem Oberbegriff des Patentanspruchs.
Aus »Automatic Control«, Dezember 1959, Seiten 46 bis 52, ist ein Multiprozessorsystem mit zwei gleichen Prozessoren bekannt, die die parallele Ausführung der gleichen Aufgabe oder die gleichzeitige Ausführung verschiedener Aufgaben erledigen können. Stellt der eine Prozessor einen Fehler des anderen Prozessors fest, dann übernimmt er dessen Aufgabe allein bzw. zusätzlich. Zu diesem Zweck sind die Prozessoren in der Lage, gegenseitig Daten auszutauschen. Weiterhin kann ein Prozessor durch eine entsprechende Ausbildung des Betriebssystems (allgemeines Betriebsprogramm) als Masterprozessor bestimmt werden, der dem anderen Prozessor (Slave-
prozessor) ausgewählte Unteraufträge erteilt.
Multiprozessorsysteme könne-n auch aus Prozessoren gebildet sein, die sich trotz weitgehender Übereinstimmung, durch das Vorhandensein bzw. Fehlen einzelner spezieller Funktionseinheiten unterscheiden. Maschinenbefehle, die solche speziellen Funktionseinheiten benützen müssen, durften bisher nur dem Prozessor zugeleitet werden, der mit den speziellen Funktionseinheiten ausgerüstet .ist. Dafür mußte
ίο durch eine entsprechende Ausbildung des Betriebssystems gesorgt werden. Das führte dazu, daß die Verschiedenheit der Prozessoren auf der Ebene der Maschinensprache erkennbar war.
Ein häufig vorkommendes Beispiel für Prozessoren mit unterschiedlichen Funktionseinheiten sind solche mit integrierten Eingabe-Ausgabe-Steuerungen. Während selbständige Eingabe-Ausgabessteuerungen im allgemeinen von jedem Prozessor direkt erreichbar sind, kann eine integrierte Eingabe-Ausgabe-Steuerung nur über den Prozessor angesprochen werden, dem sie zugeordnet ist.
Durch die DE-AS 2048473 ist ein Multiprozessorsystem mit einem Hauptprozessor und einem dagegen wesentlich vereinfachten Fehlerdatenprozessor bekannt. Der Fehlerdatenprozessor überwacht den Hauptprozessor und übernimmt die Ausführung eines Befehls, wenn der Hauptprozessor infolge einer Störung uazu nicht in der Lage ist. Anschließend überträgt der Fehlerdatenprozessor das Ergebnis der Befehlsausführungzu dem in Wartestellung befindlichen Hauptprozessor, der hierauf seine eigene Arbeit, wenn möglich, fortsetzt.
Davon ausgehend liegt der Erfindung die Aufgabe zugrunde, Maßnahmen anzugeben, die trotz tatsäch-Hch bestehender Unterschiede eine bezüglich des in Maschinensprache vorliegenden Betriebssystems wirksame Gleichheit der Prozessoren bewirken, ohne daß dadurch die Gefahr der gegenseitigen Blockierung entsteht. Die Lösung dieser Aufgabe ist dem kennzeichnenden Teil des Patentanspruchs zu entnehmen.
Der besondere Vorteil der Erfindung besteht darin, daß das Betriebssystem nur an das Gesamtsystem angepaßt werden muß, aber nicht mehr auf die speziellen Eigenschaften der einzelnen Prozessoren Rücksicht zu nehmen braucht. Damit entfällt auch eine Anpassung des Betriebsystems beim Ersatz eines Prozessors durch einen Prozessor mit anderen Funktionseinheiten.
Im folgenden wird die Erfindung anhand eines Ausführungsbeispiels, das sich auf den schon erwähnten Fall von Prozessoren mit integrierten Eingabe-Ausgabe-Steuerungen bezieht, näher erläutert. In der Zeichnung, welche das Verständnis der folgenden Ausführungen erleichtern soll, zeigt
Fig. 1 ein vereinfachtes Blockschaltbild eines MuI-tiprozessorsystems,
Fig. 2, 3a und 3 b Zeitdiagramme von Befehlsabläufen.
bo Den beiden Prozessoren CPUl und CPU2 nach Fig. 1 sind die Eingabe-Ausgabe-Steuerungen /OCl und IOC2 jeweils fest zugeordnet. Es sei vorausgesetzt, daß die jeweilige Eingabe-Ausgabe-Steuerung /OCl bzw. IOC2 in dem Prozessor, dem sie zugeordnet ist, integriert ist. Eine eindeutige Abgrenzung läßt sich demnach nicht angeben. Das ist in Fig. 1 durch die gestrichelte Begrenzungslinie zwischen dem Prozessor und der zugeordneten Eingabe-Ausgabe-
Steuerung angedeutet. Jede Eingabe-Ausgabe-Steuerung möge in der l^age sein, vier Eingabe-Ausgabekanäle lOi bis /04 bzw. /OS bis IOS zu versorgen. Beide Prozessoren CPUl und CPLJ2 können gemeinsam zu dem Arbeitsspeicher MM zugreifen und über die Mehrfachverbindung IF gegenseitig Informationen austauschen.
Taucht nun in der Befehlsfolge, die durch den Prozessor CPIIl abgearbeitet wird, ein Befehl auf, von dem der Prozessor CPUl nach seiner Interpretierung erkennt, daß er nur über den Eingabe-Ausgabe-Kanal IO 8 abwickelbar ist, dann bietet der Prozessor CPUl dem Prozessor CPUl alle Befehlsparameter an, die dieser zur Ausführung des Befehls benötigt. Der Prozessor CPUI nimmt im allgemeinen den Auftrag beim nächstfolgenden unterbrechbaren Punkt seiner eigei.en Befehlsfolge an, führt den Befehl mit den ihm übergebenen Parametern so weit aus, bis die gewünschten Ergebnisse vorliegen und meldet diese Ergebnisse an den Prozessor CPUl zurück. Darüber hinaus verwertet er die Ergebnisse nicht selbst, insbesondere speichert er sie nicht ab. Der Prozessor CPUl, der von der Absendung des Auftrags bis zur Rückmeldung der Ergebnisse im Wartezustand war, verwertet hingegen die an ihn zurückgemeldeten Er- 2ϊ gebnisse so, als ob es seine eigenen Ergebnis se seien, speichert sie z. B. ab und vollendet die Ausführung des Befehls.
Die beschriebenen Abläufe sind in Fig. 2 schematisch dargestellt. Die senlcrechten Striche unter CPUl m und CPUl stellen Befehle oder Programmteile in Maschinensprache dar, die von den Prozessoren ausgeführt werden. Die unterbrechbaren Punkte im Befehlsablauf sind durch kurze Querstriche markiert. Es ist angenommen, daß der Prozessor CPUl nach einer 1^ Zeit Π erkennt, daß der Befehl Bin zu seiner vollständigen Ausführung eine spezielle Funktionseinheit benötigt, die in dem Prozessor CPUl integriert ist. Der Prozessor CPUl sendet daher einen Auftrag an den anderen Prozessor CPUl, der nach dem nächst- w folgenden unterbrechbaren Punkt in dessen Befehlsfolge von diesem angenommen und ausführt wird. Die Ergebnisse der Befehlsausführung liefert der Prozessor CPUl an den Prozessor CPUl zurück, der die Befehlsausführung abschließt. Beide Prozessoren können in der Bearbeitung ihrer eigenen Befehlfolgen fortfahren.
Wenn, wie in dem zugrundegelegten Ausführungsbeispiel, zwei Prozessoren jeweils eine spezielle Funktionseinheit besitzen, kann der Fall eintreten, daß sich beide Prozessoren innerhalb der für die Ausführung entsprechender Befehle benötigten ZeiUpanne mit einem Auftrag an den jeweils anderen Prozessor wenden. Ohne besondere Vorkehrungen wurden in diesem Fall beide Prozessoren auf die Bearbeitung ihres Auftrags durch den anderen Prozessor warten. Das würde dann zu einer gegenseitigen Verriegelung der beiden Prozessoren führen.
Zwei derartige Konfliktsituationen sind in den Fig. 3a und 3b dargestellt. Gemäß Fig. 3a erkennt b0 der Prozessor CPUl nach einer Zeit Tl, die er für die Interpretierung des Befehls braucht, daß der Befehl zu seiner Ausführung eine spezielle Funktionseinheit des Prozessors CPUl benutzen muß. Der betreffende Auftrag an den Prozessor CPUl trifft dort b5 jedoch erst dann ein, wenn in diesem Prozessor bereits ein analoger Befehl abläuft, der sich seinerseits an eine spezielle Funktionseinheit des Prozessors CPUl wendet. Der Prozessor CPUl richtet daher nach der ihm eigenen Interpretierungszeit Tl einen Aul trag an den Prozessor CPUl.
Eine gegenseitige Blockierung zweier Prozessoren kann jedoch durch folgende Maßnahmen verhindert werden.
a) Es wird (z. B. durch entsprechende Mikroprogrammierung) dafür gesorgt, daß wiihrend der Zeitspanne Tl bzw. Tl, welche der Prozessor für die Interpretierung des Befehls benötigt, keine irreversiblen Änderungen von Daten auftreten, d. h. daß Daten weder im Speicher MM noch in Registern verändert werden.
b) Einer der beiden Prozessoren, nach willkürlicher Festlegung beispielsweise der Prozessor CPUl, wartet nach Absendung eines Auftrags noch mindestens die Zeitspanne T2 ab, die der andere Prozessor (CPUl) zur Interpretierung eines Befehls benötigt. Enthält der erste Prozessor während dieser Zeit keinen Auftrag des anderen Prozessors oder werden ihm bereits die Ergebnisse seines eigenen Auftrags zurückgemeldet, dann weiß der erste Prozessor, daß ein Auftrag des anderen Prozessors nicht vorgelegen hat. Trifft jedoch während der zusätzlichen Wartezeit Tl des ersten Prozessors CPUl ein Auftrag des anderen Prozessors CPUl ein, dann zählt der erste Prozessor CPUl seinen Befehlszähler um eine Befehlslänge zurück. Er kommt damit zu einem unterbrechbaren Punkt der Befehlsfolge und kann somit den Auftrag des anderen Prozessors bearbeiten. Nach der Ausführung des fremden Auftrags richtet er nunmehr nochmals einen eigenen Auftrag an den anderen Prozessor. In aller Regel ist dieser Prozessor nach Erreichen eines unterbrechbaren Punktes seiner Befehlsfolge nunmehr in der Lage, dierscn Auftrag durchzuführen. Anderenfalls muß der beschriebene Vorgang wiederholt werden.
Ein weiteres Beispiel für das Auftreten einer Konfliktsituation zeigt die Fig. 3b. Hier erkennt der Prozessor CPUl kurz nach dem Verlassen eines unterbrechbaren Punktes in der Befehlsfolge des Prozessors CPUl einen Befehl, der einen Auftrag an den Prozessor CPUl auslöst. Dieser erkennt den fremden Auftrag unmittelbar nach dem Absenden seines eigenen Auftrags. Er kann daher auch sofort seinen Befehlszähler zurückstellen und kehrt damit ohne zusätzliche Wartezeit auf den vorausgehenden unterbrechbaren Punkt in seiner Befehlsfolge zurück.
Es sei ausdrücklich darauf hingewiesen, daß das Zurücksetzen des Befehlszählers in einer Konfliktsituation nur in einem Prozessor vorgenommen werden darf.
Die Auflösung einer Konfliktsituation gelingt auch in einem Multiprozessorsystem mit mehr als zwei Prozessoren. Beispielsweise wird in einem Multiprozessorsystem mit drei Prozessoren eine Konfliktsituation zunächst zwischen dem ersten und zweiten Prozessor und sodann zwischen dem zweiten und dritten Prozessoi bereinigt. Es ist zu bemerken, daß die Wahrscheinlichkeit für das Auftreten einer Konfliktsituation, an der alle drei Prozessoren beteiligt sind, außerordentlich gering ist.
Hierzu 1 Blatt Zeichnungen

Claims (1)

  1. Patentanspruch:
    Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem, die sich in einzelnen speziellen Funktionseinheiten unterscheiden, wobei ein erster Prozessor die Aufgabe eines zweiten Prozessors übernimmt, wenn der zweite Prozessor zur Ausführung dieser Aufgabe nicht selbst in der Lage ist, und wobei der zweite Prozessor die Rückmeldung der aus der Ausführung dieser Aufgabe durch den ersten Prozessor resultierenden Ergebnisse abwartet und sodann seine eigene Tätigkeit fortsetzt, dadurch gekennzeichnet, daß
    a) jeweils zwei Prozessoren (z. B. CPUl und CPU2) sich gegenseitig Aufgaben direkt übertragen können,
    b) jeder der Prozessoren (z. B. CPUl) nach Interpretierung eines vorliegenden, aber infolge einer nicht vorhandenen Funktionseinheit nicht ausführbaren Befehls an den jeweiligen anderen Prozessor von sich aus ein Anforderungssignal zur Befehlsübernahme abgibt,
    c) irreversible Änderungen von Daten während der Zeiten (z. B. Tl bzw. Tl), die beide Prozessoren (CPUl bzw. CPU2) für die Interpretierung ihrer Befehle benötigen, verhindert werden,
    d) einer der beiden Prozessoren (z. B. CPUl) nach Abgabe einer Übernahmeanforderung an den anderen Prozessor (CPU2) mindestens für die Zeit (T2), die der andere Prozessor (CPU2) für die Interpretierung eines Befehls benötigt, in die Wartestellung übergeht,
    e) beim Zusammentreffen der Wartestellung mit einer vom anderen Prozessor (CPU2) kommenden Anforderung bei dem in Wartestellung befindlichen Prozessor (CPUl) der Befehlszähler auf den vorhergehenden Stand zurückgesetzt, der vom anderen Prozessor (CPU2) übertragene Befehl ausgeführt und anschließend die eigene Anforderung an den anderen Prozessor (CPU2) gesteuert durch den zurückgesetzten Befehlszähler wiederholt wird.
DE19762607685 1976-02-25 1976-02-25 Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem Expired DE2607685C3 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE19762607685 DE2607685C3 (de) 1976-02-25 1976-02-25 Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem
CH40477A CH610122A5 (en) 1976-02-25 1977-01-13 Method for operating a multi-processor system having different processors
FR7701981A FR2342530A1 (fr) 1976-02-25 1977-01-25 Procede pour realiser la symetrie fonctionnelle de processeurs d'un systeme multiprocesseur
AT50677A AT353363B (de) 1976-02-25 1977-01-27 Multiprozessorsystem mit zwei oder mehreren auf der systemebene einer maschinensprache arbeitenden prozessoren
NL7701537A NL7701537A (nl) 1976-02-25 1977-02-14 Werkwijze voor het tot stand brengen van de functionele symmetrie van processoren van een multi-processorsysteem.
GB665177A GB1576276A (en) 1976-02-25 1977-02-17 Data processing system comprising a plurality of processor
IT2055377A IT1078233B (it) 1976-02-25 1977-02-22 Impianto a piu'elaboratori con simmetria funzionale degli elaboratori stessi
BE175270A BE851840A (fr) 1976-02-25 1977-02-25 Procede pour realiser la symetrie fonctionnelle de processeurs d'un systeme multiprocesseur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19762607685 DE2607685C3 (de) 1976-02-25 1976-02-25 Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem

Publications (3)

Publication Number Publication Date
DE2607685A1 DE2607685A1 (de) 1977-09-01
DE2607685B2 true DE2607685B2 (de) 1980-04-30
DE2607685C3 DE2607685C3 (de) 1981-01-15

Family

ID=5970849

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19762607685 Expired DE2607685C3 (de) 1976-02-25 1976-02-25 Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem

Country Status (8)

Country Link
AT (1) AT353363B (de)
BE (1) BE851840A (de)
CH (1) CH610122A5 (de)
DE (1) DE2607685C3 (de)
FR (1) FR2342530A1 (de)
GB (1) GB1576276A (de)
IT (1) IT1078233B (de)
NL (1) NL7701537A (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3486465D1 (de) * 1983-04-18 1998-04-02 Motorola Inc Verfahren und Vorrichtung zum Koordinieren einer Instruktionsausführung durch eine Zusatzdatenverarbeitungseinheit
EP0442041A3 (en) * 1990-01-18 1991-09-04 National Semiconductor Corporation Integrated digital signal processor/general purpose cpu with shared internal memory
GB2343269A (en) 1998-10-30 2000-05-03 Ericsson Telefon Ab L M Processing arrangements
JP2003330900A (ja) * 2002-05-09 2003-11-21 Nec Corp アプリケーション並列処理システム及びアプリケーション並列処理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL286251A (de) * 1961-12-04
US3631405A (en) * 1969-11-12 1971-12-28 Honeywell Inc Sharing of microprograms between processors

Also Published As

Publication number Publication date
DE2607685C3 (de) 1981-01-15
NL7701537A (nl) 1977-08-29
FR2342530B1 (de) 1983-09-30
DE2607685A1 (de) 1977-09-01
AT353363B (de) 1979-11-12
BE851840A (fr) 1977-08-25
FR2342530A1 (fr) 1977-09-23
CH610122A5 (en) 1979-03-30
IT1078233B (it) 1985-05-08
ATA50677A (de) 1979-04-15
GB1576276A (en) 1980-10-08

Similar Documents

Publication Publication Date Title
DE2015971C3 (de) Datenverarbeitungsanlage mit einer Anzahl von zeitmultiplex von einem zentralen Rechenwerk bedienten virtuellen Prozessoren
DE4135749A1 (de) Prozessormodul fuer eine programmierbare steuerung mit einer intelligenten funktionsmodulschnittstelle
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE3223827A1 (de) Programmierbare logische steuereinrichtung
DE3750045T2 (de) Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten.
DE4223454A1 (de) Datenuebertragungssystem fuer eine digitale signalverarbeitungsvorrichtung
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
DE3538214C2 (de) Multiprozessorsystem
DE1524181B2 (de) Auswahlvorrichtung fuer ein und ausgabegeraete einer daten verarbeitungsanlage
DE2607685C3 (de) Verfahren zum Betrieb von Prozessoren in einem Multiprozessorsystem
DE2230727B2 (de) Schaltungsanordnung zur dynamischen zuteilung von speicherzyklen mit vorrangssteuerung
DE69028811T2 (de) Extern erweiterbare speicherprogrammierbare steuerung
EP1283471A2 (de) Programmgesteuerte Einheit
DE2037506C3 (de) Programmierbare Datenverarbeitungsanlage mit einer steuerbaren Hauptsteuerung
WO2018130331A1 (de) Steuerung eines technischen prozesses auf einer mehr-rechenkern-anlage
DE3223678C2 (de)
DE102021126271A1 (de) Verfahren und System zur Verknüpfung von Fehlermeldungen
DE2457274C3 (de) Anordnung für die automatische Steuerung des Informationsaustauschs zwischen einer Zentraleinheit und mehreren externen Einheiten
DE2247735C3 (de) Schaltungsanordnung zur dynamischen Zuteilung von Rechenzeit
DE2325687C3 (de) Verfahren und Vorrichtung zur Festlegung der Reihenfolge, in der mehrere von mehreren Einheiten einer Datenverarbeitungsanlage an eine Einheit der Datenverarbeitungsanlage gestellte Anforderungen verschiedenen Typs durch eine Warteschlangensteuerung abgearbeitet werden
CH654157A5 (de) Schaltungsanordnung zur erweiterung des adressbereichs einer rechnergesteuerten vermittlungsanlage.
DE2250080A1 (de) Vorrichtung zur elektronischen datenverarbeitung
DE2430693A1 (de) Schnittstellenschaltung fuer den anschluss einer satelliten-datenverarbeitungsanlage an einen datenuebertragungskanal
DE2645593B2 (de) Verfahren zur prioritätsgesteuerten Unterbrechung einer Datenverarbeitungsanlage
DE4497671B4 (de) Verfahren und System zur Übertragung von Daten zwischen Prozessoren

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee