DE3146769C2 - - Google Patents
Info
- Publication number
- DE3146769C2 DE3146769C2 DE19813146769 DE3146769A DE3146769C2 DE 3146769 C2 DE3146769 C2 DE 3146769C2 DE 19813146769 DE19813146769 DE 19813146769 DE 3146769 A DE3146769 A DE 3146769A DE 3146769 C2 DE3146769 C2 DE 3146769C2
- Authority
- DE
- Germany
- Prior art keywords
- input
- output
- unit
- address
- processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
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)
Description
Die Erfindung betrifft ein Mehrrechnersystem nach dem
Oberbegriff des Patentanspruchs 1.
Die Erfindung kann zum Bauen von Multiprozessor- und
Multiprogrammrechnersystemen verwendet werden, bei denen
sich der Verkehr bzw. Datenaustausch zwischen den Prozessoren
mit hoher Intensität vollzieht. Sehr oft werden die Rechner
systeme in Anlagen zur Steuerung von technologischen Pro
zessen benutzt.
Bekannt ist ein Rechnersystem (US-PS 36 14 740), das eine
Speichereinheit zur Speicherung von Programmen, Unterpro
grammen, Unterbrechungsbehandlungsprogrammen und einen Pro
zessor umfaßt, der die Ausführung einer Befehlsfolge über
nimmt, die durch den Programmzähler festgelegt ist. Im Speicher
des Systems gibt es einen freien Bereich für die Speicherung
von Rücksprungadressen und ein Stapelanzeiger-Register.
Tritt im Programm eine Unterbrechung auf, so steuert das
Leitwerk des Prozessors die Speicherung des älteren In
haltes des Befehlszählers und des Prozessorzustandsregisters
im freien Speicherbereich und wählt einen neuen Inhalt
des Befehlszählers und des Prozessorzustandsregisters aus
zwei hintereinander angeordneten Speicherzellen unter Verwen
dung eines Unterbrechnungsvektors aus.
Es gibt Rechnersysteme, bei denen die obenerwähnte
Unterbrechungsorganisation angewendet wird. Der Übergang
zu den Unterprogrammen und Programmen zur Behandlung von
Unterbrechungen erleichtert die Programmierung und die
Zusammenwirkung mit peripheren Geräten und ermöglicht die
Organisation von internen Prozeduren zur Unterbrechungsver
arbeitung.
Es gibt auch ein Rechnersystem, das zur Lösung eines
Stromes von Aufgaben ("Multiprocessing adds muscle to MPS,
Elektronic Design, Nr. II, May 24, 1978, S. 238-244) bestimmt
ist. Dieses bekannte Rechnersystem enthält folgende, an eine
Datenadreß- und Steuersignalleitung angeschlossene Funk
tionseinheiten: Mindestens zwei Prozessoren zur Datenver
arbeitung, eine Speichereinheit zur Speicherung von Program
men und Daten, ein Ein-/Ausgabegerät.
Im gegebenen Fall stellt die Datenadreß- und Steuer
signalleitung eine für mindestens zwei Prozessoren gemein
same Schiene zur Übertragung von Datenadressen- und Steuer
signalen dar. Jeder Prozessor des Rechnersystems umfaßt eine
Arithmetik-Logik-Einheit, die arithmetische und logische
Operationen während der Datenverarbeitung ausführt, einen
Schnellspeicher zur Speicherung von während der Datenver
arbeitung erhaltenen Zwischenresultaten, ein Interface, das
über die Datenadreß- und Steuersignalleitung die Zusammen
wirkung des Prozessors mit der Speichereinheit, dem Ein-/
Ausgabegerät und den anderen Prozessoren sichert, ein Pro
zessorzustandsregister zur Speicherung des laufenden Pro
zessorzustandswortes und ein Leitwerk, das die Erzeugung
von Steuersignalen übernimmt, durch welche die genannten
Einheiten, der Prozessor und das Register für den während
der Datenverarbeitung herrschenden Zustandes des Prozessors
gesteuert werden, wobei diese Funktionseinheiten über den
internen Prozessor-Datenbus untereinander verbunden sind.
Der erste Steuereingang des Leitwerkes steht mit den Steuer
eingängen der Arithmetik-Logik-Einheit, des Schnellspeichers,
des Interfaces und des Prozessorzustandsregisters in Verbin
dung. Der Ein-/Ausgang der Arithmetik-Logik-Einheit ist mit
dem Ein-/Ausgang des Prozessorzustandsregisters verbunden.
Der Ausgang des Prozessorzustandsregisters ist an den ersten
Eingang des Leitwerkes geschaltet. Der Ein-/Ausgang des In
terfaces ist an die Datenadreß- und Steuersignalleitung an
geschlossen. Der Prozessor enthält auch einen internen Takt
impulsgeber, der mit den Eingängen des Interfaces und des
Leitwerkes in Verbindung steht. Außerdem ist ein Akkumulator
vorhanden, der an den internen Prozessor-Datenbus ange
schlossen ist.
Das Interface umfaßt ein Adressenregister, ein Zwei
weg-Pufferelement und eine Synchronisierungseinheit.
Der Verkehr bzw. Datenaustausch zwischen den Prozessoren erfolgt in die
sem System unter Verwendung von solchen Befehlen wie "test
and set", die ununterbrochen ausgeführt werden. Durch diese
Befehle wird der Zustand einer ausgewählten Speicherzelle
überprüft, die "Signal" oder "Postkasten" genannt wird. Zum
Zeitpunkt, wo sich im "Postkasten" eine Nachricht darüber
befindet, daß ein bestimmtes Programm abzuarbeiten ist, be
ginnt der Prozessor, der diese Nachricht empfangen hat, mit
der Ausführung des Programms und sendet eine weitere Nach
richt, daß er zur Ausführung des Programms überging. Um
mögliche Konfliktsituationen zu vermeiden, muß die Überprüfung und
die Einstellung eines neuen Wertes in den "Postkasten" un
unterbrochen vorgenommen werden. Die beschriebene Organisa
tion des Rechenvorganges nimmt für das Durchsuchen der aus
gewählten Speicherzellen viel Zeit in Anspruch, was die Lei
stungsfähigkeit des Systems vermindert. Darüber hinaus wird
die Software des Systems komplizierter, weil auf programmier
tem Wege Warteschlangen von zusammenwirkenden Programmen
zusätzlich gebildet werden müssen.
Ein Mehrrechnersystem, bei dem wenigstens zwischen
zwei Prozessoren die anstehende Datenverarbeitung auf
geteilt wird und bei der jeder der Prozessoren mindestens
eine Arithmetik-Logik-Einheit, einen Speicher, ein
Befehlswerk und ein Interface aufweist, ist durch
Electronics, February 14, 1980, S. 166-170, bekannt
geworden. Bei dieser Anlage hat auch jeder Prozessor zudem
eine Unterbrechungssteuerung ("interrupt control"), die
jedoch im Gegensatz zur vorliegenden Erfindung nach einem
zeitaufwendigen Prioritätsschema erst die Rangfolge
prüft und untersucht, welcher der Prozessoren auf
den Unterbrechungsanruf hin tätig werden soll.
Ein weiteres Beispiel einer solchen Unterbrechungs
steuerung ist durch die Firmendruckschrift der
Fa. Intel, The 8086 Family User's Manual, October 1979,
S. B-106 bis B-109, bekanntgeworden. Auch bei der
somit bekanntgewordenen Mehrrechner-Anordnung wird im
Gegensatz zur vorliegenden Erfindung nicht von einer
speziellen Adressenunterbrechungseinheit Gebrauch
gemacht, durch die im Unterbrechungsfall sofort die
erforderlichen Befehlsadressen bereitgestellt werden können.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde,
ein Mehrrechnersystem zu schaffen, bei dem durch eine
verbesserte Adressenunterbrechungseinheit, die den Verkehr
zwischen den Prozessoren steuert, die Verarbeitungsge
schwindigkeit gesteigert und die zum Datenaustausch
notwendige Software vereinfacht wird.
Gelöst wird diese Aufgabe durch die im kennzeichnenden
Teil des Patentanspruchs 1 angegebenen Merkmale.
Eine zweckmäßige Weiterbildung und Ausgestaltung der Erfindung
ist im Unteranspruch angegeben.
Erfindungsgemäß ermöglicht die in jedem Prozessor des
Mehrrechnersystems vorgesehene Adressenunterbrechungseinheit eine
Steigerung der Leistung des Systems dadurch, daß auf
unergiebiges Durchsuchen der Speicherzellen verzichtet wird.
Außerdem wird die Programmierung des Verkehrs zwischen den
Prozessoren im System vereinfacht. Zur Organisation
des Verkehrs zwischen den Prozessoren wird
ein einheitlicher Mechanismus der Datenübertragung mit Hil
fe von Übertragungsleitungen für Datenadressen- und Steuer
signale herangezogen, was mit verhältnismäßig kleinem gerätetech
nischem Aufwand verwirklicht werden kann.
Nachstehend wird die Erfindung an Hand eines konkre
ten Ausführungsbeispiels unter Bezugnahme auf die
Zeichnungen näher erläutert. Es zeigt
Fig. 1 - ein Gesamtschema
eines Mehrrechnersystems;
Fig. 2 - ein Strukturschema eines Prozessors, der bei der
Erfindung angewendet wird;
Fig. 3 - ein Funktionsschema einer Adressenunterbrechungs
einheit nach der Erfindung;
Fig. 4 - ein Funktionsschema eines Leitwerkes gemäß der
Erfindung;
Fig. 5 - ein Funktionsschema eines Baugliedes zur
Schreibimpulserzeugung gemäß der Erfindung.
Das Mehrrechnersystem zur Lösung einer Reihe bzw. eines Stromes von Aufga
ben enthält mindestens zwei Prozessoren 1 (Fig. 1), die zur
Datenverarbeitung bestimmt sind, eine Speichereinheit 2 zur
Speicherung von Programmen und Daten, ein Ein-/Ausgabegerät
3, welche untereinander über eine Datenadreß- und Steuer
signalleitung 4 verbunden sind. Im einfachsten Fall kann
als Leitung 4 eine Sammelleitung zur Übertragung von Daten
adressen- und Steuersignalen verwendet werden. Dabei umfaßt
jeder Prozessor 1 des Rechensystems eine Arithmetik-Logik
einheit 5 (Fig. 2), ein Leitwerk 6, einen Schnellspeicher 7,
dem ein Befehlszähler, Indexregister und Zwischenergebnis
register (nicht gezeigt) zugeordnet sind, ein Interface bzw. eine Schnittstelle 8
und ein Prozessorzustandsregister 9, welche untereinander
über einen internen Prozessor-Datenbus 10 verbunden sind.
Der erste Steuerausgang 11 des Leitwerkes 6 liegt an den
Steuereingängen der Arithmetik-Logik-Einheit 5, des Schnell
speichers 7, des Interfaces 8 und des Prozessorzustands
registers 9. Der Ein-/Ausgang 12 des Registers 9 ist mit
dem Ein-/Ausgang der Arithmetik-Logik-Einheit 5 verbunden,
während der Ausgang 13 des Registers 9 an den ersten Ein
gang des Leitwerkes 6 angeschlossen ist. Der Ein-/Ausgang
14 des Interfaces 8 ist mit der Datenadreß- und Steuersi
gnalleitung 4 verbunden.
Der Prozessor 1 ist zusätzlich mit einer Adressen
unterbrechungseinheit 15 versehen. Der Ein-/Ausgang 16 der
Einheit 15 ist an die Leitung 4 geschaltet. Der erste Aus
gang der Adressenunterbrechungseinheit 15 ist an einen in
ternen Prozessor-Datenbus 10 angeschlossen, ihr zweiter
Ausgang 17 steht mit dem zweiten Eingang des Leitwerkes 6
in Verbindung, dessen zweiter Steuerausgang am Eingang 18
der Adressenunterbrechungseinheit 15 liegt. Die Arithmetik-
Logik-Einheit 5 führt arithmetische und logische Operationen
während der Datenverarbeitung aus. Der Schnellspeicher 7
ist zur Speicherung von Zwischenergebnissen im Laufe der
Datenverarbeitung bestimmt. Im Prozessorzustandsregister 9
wird ein laufendes Zustandswort für den Prozessor 1 aufbe
wahrt. Das Leitwerk 6 bildet Steuersignale, durch die die
Arithmetik-Logik-Einheit 5, der Schnellspeicher 7, das Inter
face 8 und das Prozessorzustandsregister 9 im Laufe der Da
tenverarbeitung gesteuert werden. Das Interface 8 stellt
über die Datenadreß- und Steuersignalleitung 4 die Zusammen
wirkung des Prozessors 1 mit der Steuereinheit 2, dem Ein-/
Ausgabegerät 3 und den anderen Prozessoren sicher.
Die Adressenunterbrechungseinheit 15 (Fig. 3) umfaßt
eine Gruppe 19 von Unterbrechungsvektorregistern, wobei die
Eingänge jedes der Unterbrechungsvektorregister 20 an den
Ein-/Ausgang 16 der Adressenunterbrechungseinheit 15 ange
schlossen sind. Die Ausgänge 21 jedes der Register 20 stehen
mit dem ersten Ausgang 10 der Adressenunterbrechungseinheit 15
in Verbindung. Der erste und der zweite Steuereingang jedes
der Register 20 der Gruppe 19 sind jeweils an die Ausgänge
22, 23 jedes der UND-Glieder 24, 25 der ersten und der
zweiten Gruppe 26 bzw. 27 angeschlossen. Die Ausgänge 22,
23 jedes der UND-Glieder 24, 25 der ersten und der zweiten
Gruppe 26 bzw. 27 von UND-Gliedern sind an den ersten bzw.
den zweiten Eingang des Zustandsregisters 28 geschaltet,
das einen Paraphasensignalausgang besitzt. Der erste Ausgang
29 des Zustandsregisters 28 für die Einheit 15 ist an die
Eingänge einer ersten Vorrangschaltung 30, eines ODER-Glie
des 31 und eines UND-Gliedes 32 angeschlossen. Der zweite
Ausgang 33 des Zustandsregisters 28 für die Einheit 15 ist
mit dem Eingang einer zweiten Vorrangschaltung 34 verbun
den. Die Ausgänge 35, 36 der ersten und zweiten Vorrang
schaltungen 30 bzw. 34 sind mit den ersten Eingängen jedes
der UND-Glieder 24, 25 der ersten und der zweiten Gruppe
26 bzw. 27 verbunden. Die zweiten Eingänge jedes der UND-
Glieder 24 der ersten Gruppe 26 sind an den Eingang 18 der
Adressenunterbrechungseinheit 15 angeschlossen. Der Aus
gang des ODER-Gliedes 31 steht mit dem zweiten Ausgang 17
der Adressenunterbrechungseinheit 15 in Verbindung. Die
zweiten Eingänge jedes der UND-Glieder 25 der Gruppe 27
sind mit dem Ausgang 37 eines Baugliedes 38 zur Schreibim
pulserzeugung verbunden. Der erste Eingang 39 des Bauglie
des 38 ist an den Ausgang des UND-Gliedes 32 und der zweite
Eingang 40 an den Ausgang eines Adressendecoders 41 ange
schlossen, wobei dessen Eingang und der Ein-/Ausgang des Bauglie
des 38 mit dem Ein-/Ausgang 16 der Adressenunterbrechungs
einheit 15 in Verbindung stehen.
Das Leitwerk 6 (siehe Fig. 4) umfaßt einen Mikroprogrammspeicher 42,
der als programmierbare logische Matrix ausgeführt ist, und ein
Befehlsregister 43. Der Eingang des Registers 43 ist mit
dem internen Prozessor-Datenbus 10 verbunden, während der
Ausgang 44 dieses Registers an den ersten Eingang des
Mikroprogrammspeichers angeschlossen ist. Der erste Aus
gang des Mikroprogrammspeichers ist mit dem Eingang 45 des
Mikrobefehlsregisters 46 verbunden, dessen Ausgang 47 mit
dem ersten Steuerausgang 11 und dem zweiten Steuerausgang
des Leitwerkes 6 in Verbindung steht. Der zweite Ausgang
48 des Mikroprogrammspeichers 42 ist mit dem Eingang eines
Adressenregisters 49 für den darauffolgenden Mikrobefehl
verbunden, dessen Ausgang 50 am Eingang des Adressenregi
sters 51 für den laufenden Mikrobefehl liegt. Der Ausgang
des Adressenregisters 51 für den laufenden Mikrobefehl ist
mit dem zweiten Eingang 52 des Mikroprogrammspeichers 42
verbunden. Der dritte und der vierte Eingang 53 bzw. 54
des Mikroprogrammspeichers 42 sind jeweils an den ersten
und den zweiten Eingang des Leitwerkes 6 geschaltet.
Das Bauglied 38 (Fig. 5) zur Schreibimpulserzeugung
enthält einen monostabilen Multivibrator 55, der aus einer Verzögerungs
schaltung 56 und einem Inverter 57, deren Eingänge an den
Eingang 58 des monostabilen Multivibrators 55 und deren Ausgänge jeweils
an den ersten und den zweiten Eingang 59 bzw. 60 des NOR-
Gliedes 61 angeschlossen sind, besteht. Der Ausgang des
NOR-Gliedes 61 bildet einen Ausgang 62 für den monostabilen Multivibrator
55. Der Eingang 58 des monostabilen Multivibrators 55 steht mit dem
Ein-/Ausgang des Baugliedes 38 in Verbindung. Der Ausgang
62 des monostabilen Multivibrators 55 ist mit den ersten Eingängen des
ersten und des zweiten UND-Gliedes 63 bzw. 64 verbunden, deren
zweite Eingänge an den zweiten Eingang 40 des Baugliedes
38 angeschlossen sind. Der erste Eingang 39 des letzteren
ist mit dem dritten Eingang des zweiten UND-Gliedes 64 und
dem Eingang des Inverters 65 verbunden. Der Ausgang 66 des
Inverters 65 steht mit dem dritten Eingang des ersten UND-
Gliedes 63 in Verbindung. Der Ausgang 67 des zweiten UND-
Gliedes 64 ist mit dem Ein-/Ausgang des Baugliedes 38 zur
Schreibimpulserzeugung verbunden, wobei der Ausgang des
ersten UND-Gliedes 63 mit dem Ausgang 37 des Baugliedes 38
und dem ersten Eingang 68 des Flipflops 69 in Verbindung
steht. Der Ausgang 70 und der Eingang 71 des Flipflops 69
sind an den Ein-/Ausgang des Baugliedes 38 zur Schreibim
pulserzeugung angeschlossen.
Das erfindungsgemäße Mehrrechnersystem ist für den Multi
programmbetrieb geeignet. Die Prozessoren 1 (Fig. 2) des
Systems bearbeiten eine Reihe bzw. einen Strom von Aufgaben. Program
me und Daten für jede Aufgabe werden in die Speichereinheit
über das Ein-/Ausgabegerät 3 eingegeben und der Informations
austausch innerhalb des Systems vollzieht sich über die
Datenadreß- und Steuersignalleitung 4. Um dabei ein belie
biges Programm mittels eines beliebigen der Prozessoren 1
ausführen zu können, ist jedem Programm ein Kopfsatz zuge
ordnet, in dem alle nötigen Informationen zur Ausführung
des Programms angegeben sind. Insbesondere werden im Kopf
satz Informationen über den Anfangswert des Befehlszählers,
den Anfangswert des Prozessorzustandsregisters 9 (Fig. 2)
und den Anfangswert des Schnellspeichers gespeichert. Im
Kopfsatz des Programms wird ein gewisses Feld zur Organisa
tion von internen Prozeduren reserviert. Außer den Pro
grammen und ihren Kopfsätzen wird in der Speichereinheit 2
(Fig. 1) ein Block von Bezugnahmen auf die angegebenen Kopf
sätze gespeichert. Der Verkehr zwischen den Prozessoren 1
im vorliegenden Rechensystem erfolgt mittels vektorieller
Unterbrechungen. Diese werden durch Übertragung eines Unter
brechungsvektors über die Datenadreß- und Steuersignallei
tung 4 zur Adressenunterbrechungseinheit 15 (Fig. 2) reali
siert. Die Adressenunterbrechungseinheit 15 des Prozessors,
in die der Unterbrechungsvektor eingetragen ist, erzeugt
an ihrem Ausgang 17 ein Signal, das die Notwendigkeit einer
Unterbrechung angibt. Dieses Signal wird an den zweiten
Eingang des Leitwerkes 6 übermittelt, das eine gewünschte
Folge von Steuersignalen liefert, wenn zu diesem Zeitpunkt
der im Prozessorzustandsregister 9 gespeicherte Zustand des
Prozessors 1 eine Unterbrechung ermöglicht. Anderenfalls
wird die Unterbrechung so lange unterbunden, bis der Zustand
des Prozessors 1 verändert wird. Die Un
terbrechungsprozedur beinhaltet die Bildung eines laufenden
Kopfsatzes des auszuführenden Programms, wozu in den Bereich
des Kopfsatzes der laufende Zustand des Schnellspeichers des
Prozessors 1 und des Prozessorzustandsregisters 9 eingetra
gen wird. Dann wird durch das Leitwerk 6 ein Signal am Aus
gang 18 der Adressenunterbrechungseinheit 15 erzeugt, durch
das die Übermittlung des Unterbrechungsvektors an den inter
nen Prozessor-Datenbus 10 gesteuert wird. Der Unterbrechungs
vektor wird als Adresse der Bezugnahme auf den Kopfsatz ei
nes neuen Programms benutzt. Unter Verwendung der Bezug
nahme stellt dann der Prozessor 1 nach dem Kopfsatz des
Programms einen neuen Wert im Prozessorzustandsregister 9
ein, füllt den Schnellspeicher 7 mit einem neuen Inhalt und
trägt im Kopfsatz des neuen Programms in den reservierten
Speicherbereich eine Bezugnahme auf den Kopfsatz des unter
brochenen Programms ein. Nach der Ausführung des neuen Pro
gramms benutzt der Prozessor 1 diese Bezugnahme für den Rück
sprung zum unterbrochenen Programm. Auf solche Weise wird
die Organisation interner Prozeduren realisiert.
Die Steuerung des Informationsaustausches sowie
die Modifikation von Speicheradressen und die Ausführung
des Programms erfolgen durch die Zusammenarbeit der Arith
metik-Logik-Einheit 5, des Interfaces 8, des Schnellspei
chers 7 und des Prozessorzustandsregisters 9 unter Einwir
kung der vom Leitwerk 6 eintreffenden Signale.
Zur Erfüllung ihrer Funktionen weist die Adressen
unterbrechungseinheit 15 (Fig. 3) eine Gruppe von Unterbre
chungsvektorregistern auf, in die Unterbrechungsvektoren
eingetragen werden. Die Anzahl an Unterbrechungsvektorregi
stern 20 in der obengenannten Gruppe 19 richtet sich nach
der Intensität des Unterbrechungsstromes und muß gleich
mindestens eins sein. Bei der konkreten Ausführungsform der
Erfindung wird angenommen, daß die Anzahl an Unterbrechungs
vektorregistern 20 in der Gruppe 19 und die Anzahl von UND-Glie
dern 24, 25 in der ersten und der zweiten Gruppe 26, 27
gleich drei ist. Die Registerlänge des Zustandsregisters 28
für die Adressenunterbrechungseinheit ist ebenfalls gleich
drei.
Das Bauglied 38 zur Schreibimpulserzeugung erzeugt
unter Verwendung der über die Leitung 4 (Fig. 2) übertrage
nen Steuersignale einen Impuls an seinem Ausgang 37 (Fig. 3),
wenn am Ausgang des Adressendecoders ein Signal vorhanden
ist, das angibt, daß die zu übertragende Adresse eine solche
ist, die der Adressenunterbrechungseinheit 15 zugeteilt ist.
Der Impuls gelangt an die Eingänge der UND-Glieder 25 der
zweiten Gruppe 27. Am Ausgang eines der UND-Glieder 25 der
zweiten Gruppe wird ein Schreibimpuls zum Einschreiben der
Unterbrechungsvektoren ins Register 20 erzeugt. Zur gleichen
Zeit wird die dem gegebenen Register 20 entsprechende Bit
stelle des Zustandsregisters 28 für die Adressenunterbre
chungseinheit 15 in den Eins-Zustand eingestellt. Durch die
erste Vorrangschaltung 30 wird das höchstwertige Register
20 zugeteilt, in das die Eintragung des Unterbrechungsvek
tors vorgenommen ist. Die zweite Vorrangschaltung wählt ein
höherwertiges Register 20 aus, in das noch keine Eintragung
des Unterbrechungsvektors vorgenommen ist. Dazu wird dem
Eingang der ersten Vorrangschaltung 30 ein Signal vom ersten
Ausgang 29 des Zustandsregisters 28 für die Adressenunter
brechungseinheit 15 und dem Eingang der zweiten Vorrang
schaltung 34 ein Signal vom zweiten Ausgang 33 des Zustands
registers für die Einheit 15 zugeführt. Das am Eingang 18
der Einheit 15 liegende Signal gelangt zu den Eingängen
der UND-Glieder 24 der ersten Gruppe 26 und ruft die Über
tragung der Information eines der Register 20 der Gruppe
19 zum ersten Ausgang der Adressenunterbrechungseinheit 15
hervor.
Dabei wird die dem gegebenen Register 20 entsprechen
de Bitstelle des Zustandsregisters 28 für die Adressenunter
brechungseinheit 15 in den Null-Zustand gebracht, so daß
das Register 20 der Gruppe 19 zu einer neuen Eintragung
frei wird. Das Vorliegen mindestens einer Eins im Zustands
register 28 der Einheit 15 ruft das Erscheinen eines Eins-
Signals am Ausgang des ODER-Gliedes 31 hervor, das an den
zweiten Ausgang 17 der Adressenunterbrechungseinheit 15
übermittelt wird und die Notwendigkeit einer Unterbrechung
angibt. Ist das Zustandsregister 28 für die Einheit 15 mit
allen Einsen belegt, dann wird am Ausgang des UND-Gliedes
32 ein Eins-Signal erzeugt, durch das der Algorithmus der
Arbeitsweise des Baugliedes 38 zur Erzeugung eines Schreib
impulses verändert wird, und zwar wird kein Schreibimpuls,
sondern ein Signal formiert, durch das angezeigt wird, daß
alle Register 20 der Gruppe 19 belegt sind.
Das Bauglied 38 (Fig. 5) zur Schreibimpulserzeugung
arbeitet wie folgt. Nachdem von der Leitung 4 ein Si
gnal zum monostabilen Multivibrator 55 eingetroffen ist, erzeugt dieser
einen Impuls, der die Richtigkeit der zu übertragenden
Information anzeigt. Im Anfangszustand, in dem am Eingang 58 des monostabilen
Multivibrators 55 ein der logischen Null entsprechendes Si
gnal anliegt, wird am zweiten Eingang 60 des NOR-Gliedes 61
eine logische Eins vom Inverter 57 und am Ausgang des NOR-Glie
des 61 das Signal einer logischen Null erzeugt, wobei am
Ausgang der Verzögerungsschaltung 56 ein Signal eingestellt
wird, das einer logischen Null entspricht. Nachdem das Eins-
Signal am Eingang 58 des monostabilen Multivibrators 55 angekommen ist,
wird am Ausgang des Inverters 57 das Signal einer logi
schen Null gebildet, wobei am Ausgang der Verzögerungs
schaltung 56 der vorherige Zustand der logischen Null er
halten bleibt und am Ausgang des NOR-Gliedes 61 eine lo
gische Eins erzeugt wird. Das Eins-Signal vom Ausgang der
Verzögerungsschaltung 56 trifft am zweiten Eingang 59 des
NOR-Gliedes 61 ein, an dessen Ausgang die logische Null
wiedereingestellt wird. Auf solche Weise wird ein Impuls erzeugt,
dessen Zeitdauer gleich der Verzögerungszeit des
Signals für dessen Durchgang durch die Verzögerungsschal
tung 56 ist. Dieser Impuls gelangt an die ersten Eingänge
der zwei Glieder 63, 64, deren zweiten Eingängen ein Signal
vom Ausgang des Adressendecoders 41 (Fig. 3) zugeführt wird.
Nimmt nun das Signal am zweiten Eingang des Baugliedes 38
zur Schreibimpulserzeugung den Null-Wert an, so passiert
der Impuls das erste UND-Glied 63 (Fig. 5); beim Eins-Wert
aber wird er durch das zweite UND-Glied 64 durchgeleitet.
Der Impuls vom Ausgang des ersten UND-Gliedes 63 wird
an den Eingang 37 des Baugliedes 38 und den ersten Eingang
des Flipflops 69 übermittelt, so daß dieses in den Eins-
Zustand gesetzt wird. Das Signal vom Ausgang 70 des Flip
flops 69 ist ein solches, das den Empfang des Unterbre
chungsvektors in der Adressenunterbrechungseinheit bestä
tigt. Nachdem der Informationsaustausch über die Daten
adreß- und Steuersignalleitung 4 zum Abschluß gekommen ist,
wird das Flipflop 69 (Fig. 5) in den Ausgangszustand durch
das an seinem zweiten Eingang 71 liegende Signal zurück
gestellt. Der Impuls am Ausgang 67 des zweiten UND-Gliedes
64 wird zur Anzeige der Belegung aller Register 20 (Fig. 3)
der Gruppe 19 benutzt. In diesem Falle muß vom den Unter
brechungsvektor übertragenden Prozessor 1 (Fig. 1) die Ein
tragung nach Ablauf einer gewissen Zeit wiederholt werden.
Somit wird vermieden, daß eine Unterbrechung, wenn sie noch
nicht verarbeitet ist, bei wiederholter Eintragung des Un
terbrechungsvektors ins Register 20 (Fig. 3) der Gruppe 19
verlorengeht.
Das Leitwerk 6 (Fig. 4) erzeugt eine Reihenfolge von
Steuersignalen an seinen Steuereingängen in Übereinstimmung
mit einem Mikroprogramm, das im Mikroprogrammspeicher 42
gespeichert wird. Jeder nächste Mikrobefehl wird dabei aus
dem Mikroprogrammspeicher entsprechend einem über den inter
nen Prozessor-Datenbus 10 eintreffenden und im Befehls
register 43 gespeicherten Befehl sowie entsprechend einer
Information über den Zustand des Prozessors ausgewählt,
die im Prozessorzustandsregister 9 (Fig. 2) gespeichert und
an den dritten Eingang 53 (Fig. 4) des Mikroprogrammspei
chers 42 übermittelt wird. Der Mikrobefehl wird auch ent
sprechend einem an dessen viertem Eingang 54 des Mikropro
grammspeichers 42 eintreffenden Unterbrechungssignal und
einer ins Register 51 für die laufende Mikrobefehlsadresse
eingetragenen Information ausgewählt.
Als Ausgangsinformation des Mikroprogrammspeichers 42
werden ein Mikrobefehl, der im Mikrobefehlsregister 46 ein
getragen und an den ersten Steuereingang 11 und den zweiten
Steuereingang des Leitwerkes 6 übermittelt wird, und eine
Adresse des nächsten Mikrobefehls benutzt, die im Adreß
register 49 für den nächsten Mikrobefehl zwischengespei
chert und dann ins Adressenregister 51 für den laufenden
Mikrobefehl umgeschrieben wird. Auf solche Weise erfolgt
die Verkettung der einzelnen Mikrobefehle zu einem Mikro
programm.
Das Vorhandensein des Unterbrechungssignals am vier
ten Eingang des Mikroprogrammspeichers 42 ermöglicht den
Abruf eines Unterbrechungsmikroprogramms. Dieses Mikropro
gramm beinhaltet die Übertragung des Unterbrechungsvektors
von der Adressenunterbrechungseinheit 15 (Fig. 2) über den
internen Prozessor-Datenbus 10, wozu am zweiten Ausgang des
Leitwerkes 6 ein Eins-Signal erzeugt wird.
Somit ermöglicht die vorliegende Erfindung eine Stei
gerung der Leistung des Mehrrechnersystems dadurch, daß auf un
ergiebiges Durchsuchen der Speicherzellen verzichtet wird.
Außerdem wird die Programmierung des Verkehrs zwischen den
Prozessoren im System vereinfacht. Ferner wird im
System zur Organisation des Verkehrs zwischen den
Prozessoren ein einheitlicher Mechanismus der Datenübertra
gung mit Hilfe einer Datenadreß- und Steuersignalleitung
benutzt, was einen verhältnismäßig kleinen gerätetechnischen Auf
wand erfordert.
Claims (6)
1. Mehrrechnersystem mit folgenden, an eine Daten-Adreß- und
Steuersignalleitung angeschlossenen Funktionseinheiten:
- - mindestens zwei Prozessoren, die Daten verarbeiten,
- - einer Speichereinheit, die Programme und Daten spei chert und
- - einem Ein- und Ausgabegerät,
wobei jeder Prozessor folgende über einen internen Prozes
sordatenbus untereinander verbundene Einheiten umfaßt:
- - eine Arithmetik-Logikeinheit, die arithmetische und logische Operationen während der Datenverarbeitung ausführt,
- - einen Schnellspeicher, der während der Datenverarbei tung erhaltene Zwischenergebnisse speichert,
- - ein Prozessorzustandsregister, das ein laufendes Prozes sorzustandswort speichert,
- - ein Interface, das über die Daten-Adreß- und Steuer leitung das Zusammenwirken jedes Prozessors mit der Speichereinheit, dem Ein- und Ausgabegerät und den anderen Prozessoren gewährleistet,
- - eine Steuereinheit, die Steuersignale zur Steuerung der Arithmetik-Logikeinheit, des Schnellspeichers, der Interface-Einheit und des Prozessorzustandsregisters während der Datenverarbeitung erzeugt, und
- - eine Adressenunterbrechungseinheit, die ein vom Prozes sor auszuführendes Programm unterbricht und Mittel zur Speicherzellenadressierung verwendet,
und wobei die Einheiten jedes Prozessors in folgender
Weise miteinander verbunden sind:
- - der erste Steuerausgang der Steuereinheit mit den Steuereingängen der Arithmetik-Logikeinheit, des Schnellspeichers, der Interface-Einheit und des Prozessorzustandsregisters,
- - der Ein/Ausgang der Arithmetik-Logikeinheit mit dem Ein/Ausgang des Prozessorzustandsregisters,
- - der Ausgang des Prozessorzustandsregisters mit dem ersten Eingang der Steuereinheit,
- - der Ein/Ausgang der Interface-Einheit mit der Daten adreß- und Steuersignalübertragungsleitung,
- - der Ein/Ausgang der Adressenunterbrechungseinheit mit der Daten-Adreß- und Steuersignalleitung,
- - der erste Ausgang der Adressenunterbrechungseinheit mit dem internen Prozessordatenbus,
- - der zweite Ausgang der Adressenunterbrechungseinheit mit dem zweiten Eingang der Steuereinheit, und
- - der zweite Steuerausgang der Steuereinheit mit dem Eingang der Adressenunterbrechungseinheit,
dadurch gekennzeichnet, daß
die Adressenunterbrechungseinheit (15) enthält:
- - eine Gruppe (19) von Unterbrechungsvektorregistern
(20) mit jeweils
- - einem Dateneingang,
- - einem Datenausgang (21) und
- - einem ersten und einem zweiten Steuereingang,
- - eine erste Gruppe (26) von UND-Gliedern (24), mit
- - Ausgängen (22) und
- - ersten und zweiten Eingängen,
- - eine zweite Gruppe (27) von UND-Gliedern (25), mit
- - Ausgängen (23) und
- - ersten und zweiten Eingängen,
- - eine erste Vorrangschaltung (30) mit
- - einem Eingang und
- - einem Ausgang (35),
- - eine zweite Vorrangschaltung (34) mit
- - einem Eingang und
- - einem Ausgang (36),
- - ein einzelnes UND-Glied (32),
- - ein einzelnes ODER-Glied (31),
- - ein Zustandsregister (28) mit
- - einem ersten und zweiten Eingang und
- - einem ersten und zweiten Ausgang (29, 33),
- - ein Bauglied (38) zur Schreibimpulserzeugung mit
- - einem ersten Eingang (39),
- - einem zweiten Eingang (40),
- - einem Ausgang (37) und
- - einem Ein/Ausgang,
wobei die Elemente der Adressenunterbrechungseinheiten
in folgender Weise miteinander verbunden sind:
- - der Dateneingang jedes Unterbrechungsvektorregisters (20) mit dem Ein/Ausgang (16) der Adressenunterbre chungseinheit (15),
- - der Datenausgang (21) jedes Unterbrechungsvektor registers (20) mit dem internen Prozessor-Datenbus (10),
- - die Ausgänge (22) der UND-Glieder (24) jeweils mit den ersten Steuereingängen jedes Unterbrechungsvektorregi sters (20),
- - die Ausgänge (23) der UND-Glieder (25) jeweils mit den zweiten Steuereingängen jedes Unterbrechungsvektorregi sters (20),
- - der Ausgang (35) der ersten Vorrangschaltung (30) mit den ersten Eingängen der UND-Glieder (24),
- - der Ausgang (36) der zweiten Vorrangschaltung (34) mit den ersten Eingängen der UND-Glieder (25),
- - die zweiten Eingänge der UND-Glieder (24) mit dem Eingang (18) der Adressenunterbrechungseinheit (15),
- - der erste Eingang des Zustandsregisters (28) mit den Ausgängen (22) der UND-Glieder (24),
- - der zweite Eingang des Zustandsregisters (28) mit den Ausgängen (23) der UND-Glieder (25),
- - der erste Ausgang (29) des Zustandsregisters (28) mit dem Eingang des UND-Glieds (32) und dem Eingang des ODER-Glieds (31),
- - der zweite Ausgang (33) des Zustandsregisters (28) mit dem Eingang der zweiten Vorrangschaltung (34),
- - der Ausgang des ODER-Glieds (31) mit dem zweiten Aus gang (17) der Adressenunterbrechungseinheit (15),
- - der Eingang (39) des Bauglieds (38) zur Schreibimpuls erzeugung mit dem Ausgang des UND-Glieds (32),
- - der Ausgang (37) des Bauglieds (38) mit den zweiten Eingängen der UND-Glieder (25),
- - der Ausgang des Adressendecoders (41) mit dem zweiten Eingang (40) des Bauglieds (38) und
- - der Ein/Ausgang des Bauglieds (38) und der Eingang des Adressendecoders (41) mit dem Ein/Ausgang (16) der Adressenunterbrechungseinheit (15).
2. Mehrrechnersystem nach Anspruch 1,
dadurch gekennzeichnet,
daß das Bauglied (38) zur Schreibimpulserzeugung umfaßt:
- - einen monostabilen Multivibrator (55), der besteht aus:
- - einer Verzögerungsschaltung (56),
- - einem Inverter (57) und
- - einem NOR-Glied (61), wobei
- - der Eingang der Verzögerungsschaltung (56) und des Inverters (57) an den Eingang (58) des monostabilen Multivibrators (55) und ihre Ausgänge an den ersten bzw. den zweiten Eingang (59 bzw. 60) des NOR-Gliedes (61) angeschlossen sind, dessen Ausgang mit dem Ausgang (62) des monostabilen Multivibrators (55) in Verbindung steht, sowie
- - ein erstes und ein zweites UND-Glied (63 bzw. 64), deren erste und zweite Eingänge mit dem Ausgang (62) des monostabilen Multivibrators (55) bzw. dem zweiten Eingang (40) des Baugliedes (38) zur Schreibimpuls erzeugung verbunden sind, während der dritte Eingang des UND-Gliedes (64) mit dem ersten Eingang (39) des Bau gliedes (38) zur Schreibimpulserzeugung in Verbindung steht,
- - ein Flipflop (69) und einen Inverter (65), dessen Ausgang (66) mit dem dritten Eingang des ersten UND-Gliedes (63) und dessen Eingang mit dem ersten Eingang (39) des Baugliedes (38) zur Schreibimpulserzeugung verbunden ist, wobei der Ausgang des ersten UND-Gliedes (63) an den Ausgang (37) des Baugliedes (38) zur Schreibimpulserzeugung und an den ersten Eingang (68) des Flipflops (69) angeschlossen ist, und wobei dessen zweiter Eingang (71), der Eingang (58) des monostabilen Multivibrators (55), der Ausgang (67) des zweiten UND-Gliedes (64) und der Ausgang (70) des Flipflops an den Ein-/Ausgang des Baugliedes (38) zur Schreibimpulserzeugung geschaltet sind.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19813146769 DE3146769A1 (de) | 1981-11-25 | 1981-11-25 | Rechensystem |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19813146769 DE3146769A1 (de) | 1981-11-25 | 1981-11-25 | Rechensystem |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3146769A1 DE3146769A1 (de) | 1983-06-09 |
DE3146769C2 true DE3146769C2 (de) | 1988-06-30 |
Family
ID=6147203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19813146769 Granted DE3146769A1 (de) | 1981-11-25 | 1981-11-25 | Rechensystem |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE3146769A1 (de) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3508206A (en) * | 1967-05-01 | 1970-04-21 | Control Data Corp | Dimensioned interrupt |
US3614740A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with circuits for transferring between operating routines, interruption routines and subroutines |
US3940743A (en) * | 1973-11-05 | 1976-02-24 | Digital Equipment Corporation | Interconnecting unit for independently operable data processing systems |
US4365294A (en) * | 1980-04-10 | 1982-12-21 | Nizdorf Computer Corporation | Modular terminal system using a common bus |
-
1981
- 1981-11-25 DE DE19813146769 patent/DE3146769A1/de active Granted
Also Published As
Publication number | Publication date |
---|---|
DE3146769A1 (de) | 1983-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
DE69130630T2 (de) | Synchrones Verfahren und Gerät für Prozessoren | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
DE1549522B1 (de) | Datenverarbeitungsanlage mit simultanverarbeitung mehrerer programme mittels mehrerer rechner | |
DE1549474C3 (de) | Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE2911909C2 (de) | Digitales Datenverarbeitungsgerät | |
DE2064383C3 (de) | Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen | |
DE1499206B2 (de) | Rechenanlage | |
DE3587446T2 (de) | Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor. | |
DE4005042A1 (de) | Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit | |
DE68903280T2 (de) | Vektorschlange in computern mit vektorregister. | |
DE2745204A1 (de) | Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage | |
DE3146769C2 (de) | ||
DE69327270T2 (de) | Job-Ausführungsmethode in einem Multiprozessor-System | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen | |
DE69521089T2 (de) | Vektordatenumgehungsmechanismus für einen Vektorrechner | |
DE2727188A1 (de) | Anordnung zum adressieren eines speichers | |
DE10228778A1 (de) | Hardware-Verfahren zum Implementieren von atomischen Semaphoroperationen unter Verwendung von Codemakros | |
DE3542436A1 (de) | Datenflussprozessorsystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OM8 | Search report available as to paragraph 43 lit. 1 sentence 1 patent law | ||
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |