DE3751853T2 - Vorrichtung für ein fehlertolerantes Rechnersystem mit erweiterungsfähigem Prozessorabschnitt - Google Patents
Vorrichtung für ein fehlertolerantes Rechnersystem mit erweiterungsfähigem ProzessorabschnittInfo
- Publication number
- DE3751853T2 DE3751853T2 DE3751853T DE3751853T DE3751853T2 DE 3751853 T2 DE3751853 T2 DE 3751853T2 DE 3751853 T DE3751853 T DE 3751853T DE 3751853 T DE3751853 T DE 3751853T DE 3751853 T2 DE3751853 T2 DE 3751853T2
- Authority
- DE
- Germany
- Prior art keywords
- processor
- section
- units
- count
- distribution
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 30
- 238000012546 transfer Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000008054 signal transmission Effects 0.000 claims description 2
- 241000269627 Amphiuma means Species 0.000 claims 3
- 230000004043 responsiveness Effects 0.000 claims 2
- 230000003213 activating effect Effects 0.000 claims 1
- 230000004913 activation Effects 0.000 claims 1
- 230000010365 information processing Effects 0.000 claims 1
- 238000012163 sequencing technique Methods 0.000 abstract description 2
- 239000004020 conductor Substances 0.000 description 47
- 230000009471 action Effects 0.000 description 24
- 230000002093 peripheral effect Effects 0.000 description 20
- 238000000034 method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 108010068213 factor XIIa inhibitor Proteins 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1679—Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/372—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Description
- Diese Erfindung bezieht sich auf ein digitales Computersystem, das einen erweiterbaren Prozessorabschnitt aufweist. Insbesondere wird mit der Erfindung ein Computersystem geschaffen, das einen Systembus aufweist, der einen Prozessorabschnitt, einen Speicherabschnitt und einen Eingabe/Ausgabe-Abschnitt miteinander verbindet, und bei dem der Prozessorabschnitt eine variable Komplettierung bzw. Komplementierung von stark autonomen Prozessoreinheiten aufweisen kann. Ein Computersystem gemäß der Erfindung kann somit z. B. eine Prozessoreinheit, zwei Prozessoreinheiten, fünf Prozessoreinheiten oder acht oder mehr Prozessoreinheiten aufweisen - um zunehmend größere oder geringere Bearbeitungskapazität bereitzustellen - , ohne daß durch den Betreiber irgendeine Änderung weder der Software noch der Hardware erforderlich ist, die über die Verbindung der gewünschten Anzahl von Prozessoreinheiten mit dem System hinausgeht.
- Die Erfindung schafft weiterhin eine Prozessoreinheit für einen im wesentlichen autonomen Betrieb in einem Computersystem mit der vorstehend genannten Eigenschaft, mit einer im wesentlichen beliebigen Anzahl von anderen, gleichartigen Prozessoreinheiten.
- Die Erfindung ist insbesondere bei einem Computersystem einsetzbar, bei dem der Prozessorabschnitt stark oder sogar vollständig verteilt ist, dahingehend, daß er aus einer oder mehreren Prozessoreinheiten besteht und nur wenig oder überhaupt keine zentralisierte Steuerung oder Überwachungslogik oder Software aufweist, die den Prozessoreinheiten überlagert bzw. übergeordnet wäre. Ein Beispiel für ein solches Computersystem ist ein fehlertolerantes Computersystem, das eine ausgewählte Redundanz von Operationselementen aufweist, die in einer solchen Weise organisiert sind, daß ein im wesentlichen kontinuierlicher Betrieb selbst in dem Fall eines oder mehrerer Fehler oder Ausfälle bereitgestellt ist.
- Stratus Computer, Inc., Inhaberin dieses Schutzrechts, ist ein Hersteller von derartigen Computersystemen und hat solche Produkte unter den Bezeichnungen FT200, XA400 und XA600 auf den Markt gebracht. In der US-A-4 453 215, die diesem Unternehmen zugeordnet ist, ist ein fehlertolerantes Computersystem der vorstehend erläuterten Art beschrieben, bei dem die vorliegende Erfindung vorteilhaft in Praxis umgesetzt werden kann.
- Die Erweiterung, und umgekehrt die Verringerung, eines Computer-Prozessorabschnitts durch die Hinzufügung oder die Entfernung von Porzessoreinheiten in Anpassung an sich ändernden Bedarf hinsichtlich der Verarbeitungskapazität kann relativ einfach in einem Computersystem bewirkt werden, das ein zentralisiertes Befehlselement aufweist, das Tasks bzw. Aufgaben den Prozessoreinheiten zuordnet. Jedoch ist eine derartige, zentralisierte Organisation häufig unerwünscht. Statt dessen ist eine dezentralisierte Organisation mit autonomen Prozessoreinheiten bevorzugt.
- Demgemäß ist es eine Aufgabe dieser Erfindung, eine verbesserte Vorrichtung für die Erweiterung eines Computer-Prozessorabschnitts bereitzustellen.
- EP-A2 - 0 106084 beschreibt ein Mehrprozessor-Computersystem, bei dem Verarbeitungselemente, Speicherelemente und periphere Einheiten physikalisch hinzugefügt und von dem System entfernt werden können, ohne daß dessen Betrieb unterbrochen wird oder irgendeine Umprogrammierung der auf dem System laufenden Software erforderlich ist. Die Verarbeitungseinheiten, Speichereinheiten und peripheren Einheiten sind sämtlich mit einem gemeinsamen Systembus durch spezialisierte Schnittstelleneinheiten gekoppelt.
- Die Anmelderin stellt die nachfolgende Beschreibung von zwei weiteren Offenbarungen des Standes der Technik bereit, ohne sich diese selbst anzueignen.
- EP-A - 0 137 609 offenbart einen Bus, der mehrere Knoten in einem lokalen Netzwerk LAN, bei dem durch Überwachung des Arbitrationsbusses und durch Erzeugen der geeigneten Abfrage- und Synchronisationssignale die Multi-Masterbus-Steuerlogik an jedem Knoten vor jeder Übertragung einer Nachricht bestimmt, welcher Knoten die Priorität des Zugriffs haben soll, wenn miteinander kollidierende Anforderungen hinsichtlich des Buszugriffes vorhanden sind. Diese Funktion wird hauptsächlich durch die Zeitschlitz-Management-Steuerlogik durchgeführt, die anzeigt, wenn es sich um den eigenen Zeitschlitz der lokalen Knoten handelt, und die einen aktuellen Zeitschlitz-Zähler, einen maximalen Zeitschlitz-Zähler, einen lokalen Zeitschlitz-Zähler und zwei Vergleicher aufweist.
- In der US - A - 4 453 215 ist ein fehlertolerantes Computersystem offenbart, das zwei Prozessoreinheiten, die in schrittverriegelter bzw. schrittgekoppelter Synchronität miteinander arbeiten, zwei Speichereinheiten und eine Mehrzahl von peripheren Steuereinheiten aufweist, die sämtlich durch eine Busstruktur verbunden sind.
- Die Einheiten erhalten Zugang zu der gemeinsamen Busstruktur durch ein Arbitrationsbzw. Entscheidungsnetzwerk. Jede Einheit weist eine Entscheidungsschaltung auf, die eine hardwaremäßige Festlegung dahingehend schafft, welche Einheit, die einen Zugriff zu der Busstruktur anfordert, Priorität für den Erhalt des Zugriffs zu dem Bus besitzt. Die Entscheidungsschaltung jeder Einheit ist mit den Wählleitem verbunden und spricht auf ein Übertragungs-Anforderungssignal in dieser Einheit dadurch an, daß an die Wählleiter ein Signal angelegt wird, das auf die eigene Priorität dieser Einheit anspricht bzw. hiermit in Zusammenhang steht, wobei die Priorität einer Einheit in Übereinstimmung mit der Schlitznummer, bei der diese Einheit mit der Busstruktur verbunden ist, zugeordnet wird, und daß ein Übertragungsbeginn-Ausgangssignal bei dem Fehlen eines von einer höheren Prioritätsrang besitzenden Einheit stammenden, mit dem Rang zusammenhängenden Signals auf den Wählleitern erzeugt wird.
- Die vorliegende Erfindung entspricht der Beanspruchung gemäß Anspruch 1.
- Ein Merkmal eines digitalen Computersystems gemäß Ausführungsbeispielen der Erfindung besteht darin, daß die Anzahl von Zentralprozessoreinheiten bzw. Zentraleinheiten, die den Prozessorabschnitt des Systems bilden, leicht geändert werden kann. Die Änderung wird dadurch bewirkt, daß einfach eine zusätzliche Einheit angeschlossen wird, oder daß umgekehrt eine Einheit von dem System abgetrennt wird. Die Änderung der Anzahl der Zentraleinheiten erfordert keine weitere Aktion des Benutzers und erfordert keine Modifikation der Software des Systems oder von anderen Bedienungssteuerungen.
- Eine Computer-Prozessoreinheit in Übereinstimmung mit Ausführungsbeispielen der Erfindung weist eine Taskverteilungslogik auf, die es der Einheit ermöglicht, Systemprozessortasks zu bestimmten Zeiten durchzuführen, wenn andere, gleichartige Prozessoreinheiten des Systems nicht zur Durchführung solcher Tasks konditioniert sind. Die Taskverteilungslogik in jeder Prozessoreinheit arbeitet mit ausgewählter Synchronität relativ zu der gleichen Logik in anderen Prozessoreinheiten, derart, daß unterschiedliche Prozessoreinheiten jeweils eine zu einem Zeitpunkt, und folglich zu unterschiedlichen Zeitpunkten, aktiviert wird, um die Systemprozessortasks abzuarbeiten.
- Jede Prozessoreinheit ändert die Zeitdauer, während der sie zur Durchführung der Prozessortasks aktiviert ist, in umgekehrter Relation zu der Anzahl von derartigen Einheiten in dem Computersystem. Als Beispiel wechseln sich bei einem System, das zwei Prozessoreinheiten in dem Prozessorabschnitt aufweist, die beiden Prozesssoreinheiten bei der Durchführung der Systemprozessortasks ab, so daß jede Prozessoreinheit typischerweise zur Durchführung derartiger Tasks während der halben Operationszeit aktiviert ist. Wenn das System auf drei Prozessoreinheiten erweitert wird, werden die Prozessoreinheiten erneut derart aktiviert, daß sie die Systemprozessortasks jeweils eine zu einem Zeitpunkt abarbeiten. Jede Prozessoreinheit stellt diesen Taskverteilungsvorgang autonom bereit. Das Computersystem benötigt somit keinen zentralen Master oder eine gleichartige Steuerung für die zeitliche Festlegung der Arbeitsvorgänge des variablen Kompliments bzw. Satzes von Prozessoreinheiten, die den Prozessorabschnitt bilden.
- Ein weiteres Merkmal einer Prozessoreinheit in Übereinstimmung mit Ausführungsbeispielen der Erfindung besteht darin, daß die Synchronisierung der Mehrzahl von Prozessoreinheiten in einem System auf einer verteilten Basis durchgeführt wird, wobei jede Prozessoreinheit den Synchronisationsvorgang bereitstellen kann. Wenn folglich in einem praktischen Fall eine zusätzliche Prozessoreinheit mit einem Computersystem verbunden wird, verbleibt sie off-line und überträgt folglich keine Operationssignale, die typischerweise Wartungs-, Initialisierungs- oder diagnostische Signale einschließen können, und zwar so lange, bis sie eine Synchronisation mit den anderen Prozessoreinheiten des Systems erhält. Diese Synchronisierung kann durch jede beliebige der Prozessoreinheiten zu einem Zeitpunkt vorgenommen werden, wenn keine andere Prozessoreinheit Signale in dem System sendet.
- In Übereinstimmung mit einer bevorzugten Ausführungsform der Erfindung weist jede zentrale Prozessoreinheit eines Computersystems einen Verteilungszeitgeber in der Form eines Verteilungszählers auf, der synchron mit allen anderen Verteilungszählern in anderen zentralen Prozessoreinheiten des Systems schrittweise fortschaltet oder sich in anderen Weise inkrementiert. Jedoch wird jeder Verteilungszähler auf einen Zählwertzustand initialisiert, der sich von demjenigen aller anderer Zähler unterscheidet. Jeder Verteilungszähler erzeugt somit einen Zählwert, der sich zu jedem beliebigen Systemzeitintervall von denjenigen aller anderen Prozessoreinheiten unterscheidet.
- Ein weiteres Merkmal von Ausführungsbeispielen der Erfindung besteht darin, daß der Verteilungszähler in jeder Prozessoreinheit ein Signal, geeigneterweise zumindest zu jedem Zeitpunkt seiner Initialisierung, empfängt, das die Anzahl von anderen Prozessoreinheiten in dem System mitteilt. Der Verteilungszähler spricht auf dieses Größensignal unter Auswahl einer Schrittfolge derart an, daß der Zähler mit einer Anzahl von Zählwerten zyklisch arbeitet, die durch den Wert des größten Signals bestimmt ist. Folglich arbeitet jeder Verteilungszähler zyklisch nach einer Anzahl von Schritten, die in Übereinstimmung mit der Anzahl von anderen Prozessoreinheiten in dem Prozessorabschnitt bestimmt ist, auf die die Tasks zu verteilen sind.
- Elemente in jeder Prozessoreinheit die ausgewählte Tasks durchführen, sprechen auf einen ausgewählten Wert des Verteilungszählstands unter Durchführung eines bezeichneten Tasks an. Da jede Einheit üblicherweise einen beliebigen ausgewählten Wert des Verteilungszählstands in gleicher Häufigkeit wie jede andere Einheit annimmt, führt jede Prozessoreinheit diesen ausgewählten Task mit im wesentlichen der gleichen Frequenz oder dem gleichen Tastverhältnis wie jede andere zentrale Verarbeitungseinheit in dem Verarbeitungsabschnitt des Systems durch - oder ist zur Durchführung aktiviert -. Auf diese Weise bleiben die Prozessoreinheiten im Betrieb stark autonom und es werden dennoch Prozessortasks im wesentlichen gleichförmig auf sie aufgeteilt, unabhängig von der Anzahl von Prozessoreinheiten, die zu einem beliebigen Zeitpunkt on-line in dem Prozessorabschnitt vorhanden sind.
- Es ist anzumerken, daß der Satz von zentralen Prozessoreinheiten, der den Systemverarbeitungsabschnitt bildet, in Untersätze organisiert sein kann. Die Verteilungszähler in den Einheiten eines solchen Untersatzes werden vorzugsweise auf Zählbedingungen initialisiert und mit Zählbedingungen inkrementiert, die die gleichen sind oder sich in bekannter Weise unterscheiden. Als Beispiel weisen bei einer bevorzugten Ausführungsform, bei der jede zentrale Prozessoreinheit sich in einem Untersatz mit einer anderen identischen Einheit befindet, so daß ein Partner-Paar oder Duplex-Paar von Einheiten gebildet wird, die beiden Einheiten Verteilungszähler auf, die auf Zählbedingungen initialisiert werden, die sich lediglich in der Stelle geringster Wertigkeit unterscheiden. Weiterhin werden die anfänglichen Zähistände und die Aufstufungssequenzen der beiden Zähler derart ausgewählt, daß sich die beiden Zähler lediglich in der Stelle geringster Wertigkeit unterscheiden. Folglich befinden sich die beiden als Partner zugeordneten Verteilungszähler stets bei allen Stellen mit Ausnahme der Stelle geringster Wertigkeit bei dem gleichen Zählwert Mit diesem weiteren Merkmal können Prozessortasks einfach auf Untersätze aus Prozessoreinheiten verteilt werden.
- Bei dem nachstehend beschriebenen, zur Erläuterung dienenden Ausführungsbeispiel verteilt der Computersystem-Prozessorabschnitt die Tasks bezüglich der Buszuordnung und des Ansprechens auf Interrupts in der vorstehend erläuterten Weise.
- Ein erheblicher Vorteil eines Computersystems, das die vorstehend erläuterten Merkmale gemäß der Erfindung aufweist, besteht darin, daß bei ihm im wesentlichen jede beliebige Anzahl von autonomen zentralen Prozessoreiheiten in dem Prozessorabschnitt eingesetzt werden können und daß die Anzahl von solchen Prozessoreinheiten mit minimalem Eingriff des Betreibers und mit minimaler Auswirkung auf die Systemkonfiguration und die Betriebssoftware geändert werden kann. Dennnoch kann die Aufteilung der Tasks auf die Prozessoreinheiten im wesentlichen gleichförmig sein, wie es allgemein für einen effizienten Systembetrieb gewünscht ist. Weitere Vorteile und Merkmale der Erfindung erschließen sich aus der nachfolgenden Beschreibung.
- Die Erfindung weist demgemäß die Vorrichtung auf, die Merkmale des Aufbaus, der Kombination von Elementen und der Ausgestaltung von Teilen enthält, wie sie in der nachfolgenden, detaillierten Beschreibung als Beispiel dargestellt sind, wobei der Umfang der Erfindung in den Ansprüchen angegeben ist.
- Für ein vollständigeres Verständnis der Natur und der Zielsetzungen der Erfindung wird auf die nachfolgende, detaillierte Beschreibung und die beigefügten Zeichnungen Bezug genommen:
- Fig. 1 zeigt ein schematisches Blockschaltbild eines Computersystems, das Merkmale der Erfindung verkörpert,
- Fig. 2 zeigt eine funktionelle Blockdarstellung einer zentralen Prozessoreinheit für das System gemäß Fig. 1,
- Fig. 3 zeigt ein schematisches Blockschaltbild einer Taskverteilungsschaltung in Übereinstimmung mit der Erfindung, die zum Verteilen des Buszugriffs und der Interrupt-Tasks dient,
- Fig. 4 zeigt ein Ablaufdiagramm eines verteilten Synchronisierungsvorgangs in Übereinstimmung mit der Erfindung, und
- Fig. 5 zeigt eine schematische Blockbilddarstellung einer Schaltung zur Durchführung des verteilten Synchronisierungsvorgangs gemäß Fig. 4.
- Fig. 1 veranschaulicht die Erfindung, die in einem Digitalcomputersystem 10 verkörpert ist. das einen Pozessorabschnitt 12, einen Speicherabschnitt 14, einen Eingabe/ Ausgabe- Abschnitt 16 und einen Busabschnitt 18 aufweist, der die Kommunikation von Informationen einschließlich von Daten und Befehlen zwischen dem Prozessor-, dem Speicher- und dem Eingabe/Ausgabe-Abschnitt bewirkt. Das Computersystem 10 ist als ein System des fehlertoleranten Typs gezeigt, wie es in dem US-Patent Nr.4 453 215 dargestellt ist, und weist demzufolge eine Duplizierung ausgewählter Hardware auf. Insbesondere weist das dargestellte System zwei identische zentrale Prozessoreinheiten 20 und 22 in dem Prozessorabschnitt 12 auf und umfaßt zwei identische Speichereinheiten 24 und 26 in dem Speicherabschnitt 14.
- Der dargestellte Eingabe/ Ausgabe-Abschnitt 16 verfügt über identische I-O-Steuereinheiten 28 und 30, die jeweils mit peripheren Geräten 32a, 32b, 32c und 32d verbunden sind. Eine weitere I-O-Steuereinheit 34 ist gemäß der Darstellung mit weiteren peripheren Geräten 36a und 36b verbunden. Die peripheren Geräte 32 und 36 können Plattenlaufwerke, Drucker, Kathodenstrahlröhren-Terminals, Dokumentenlesegeräte, Tastaturen oder Kommunikationskoppelglieder oder weitere Bus-Netzwerke sein, wie es bei Computersytemen allgemein bekannt ist.
- Der Eingabe/ Ausgabe-Abschnitt 16 weist ein Paar von duplizierten Steuereinheiten 28 und und eine nicht duplizierte Steuereinheit 34 auf, was als erläuterndes Beispiel dient. Das Computersystem 10 kann andere, unterschiedliche Organisationsformen und Ausgestaltungen der Eingabe/ Ausgabe-Steuereinheiten und der peripheren Geräte im Rahmen der Erfindung haben. In gleichartiger Weise kann die Erfindung mit Hilfe eines Systems in die Praxis umgesetzt werden, das die dargestellte Verdoppelung der Hardware nicht aufweist oder das unterschiedliche Ausgestaltungen derselben enthält.
- Unter erneuter Bezugnahme auf Fig. 1 enthält der dargestellte Busabschnitt 18 zwei identische Busse 38 und 40, die jeweils als ein Bus A bzw. als ein Bus B bezeichnet werden, und umfaßt einen Bus C 42. Die Busse A, B sind mit jeder Steuereinhit, Speichereiheit und Prozessoreinheit verbunden. Im allgemeinen bewirken die Signale auf dem Bus A und auf dem Bus B die Übertragungen von Informationen zwischen Einheiten des Systems 10. Demgemäß führen diese Busse mindestens Funktions-, Adress- und Datensignale. Bei dem dargestellten Ausführungsbeispiel führen diese Busse auch Systemzeitsteuersignale und Strom bzw. Spannung.
- Der Bus C 42 weist ein Segment 42a auf, das mit jeder Prozessoreinheit verbunden ist, und umfaßt ein Segment 42b, das mit jeder Speichereinheit verbunden ist. Ein weiteres Segment 42c des Busses C ist mit jeder I-O-Steuereinheit verbunden. Die verschiedenen Abschnitte des Busses C die bei dem dargestellten System voneinander getrennt sind, führen jeweils Signale, die lediglich mit denjenigen Einheiten zusammenhängen, mit denen sie verbunden sind. Dies schließt Diagnosel Wartungs-Signale und initialisierende Signale ein. Das dargestellte System 10 enthält weiterhin einen Systemtakt 44, der Systemzeitsteuersignale an den Bus A 38 und den Bus B 40 anlegt. Weiterhin ist auch ein Systemenergieabschnitt 46 vorhanden, der die Betriebsspannung an alle Einheiten 20, 22, 24, 26, 28, 30 und 34 mit Hilfe der beiden Busse 38 und 40 anlegt. Der einzelne, gemeinsame Busabschnitt 18 verbindet somit die Systemeinheiten miteinander, um alle Übertragungen von Informationen und von anderen Signalkommunikationen zwischen diesen zu bewirken. Der Busabschnitt liefert weiterhin die Betriebsspannung von der Hauptversorgungsquelle 46 zu den Einheiten des Systems und stellt die Systemsteuersignale, die vom Systemtakt 44 abgegeben werden, bereit.
- In Übereinstimmung mit der Erfindung weist das Computersystem 10 weiterhin eine zusätzliche, zentrale Prozessoreinheit 48 in dem Prozessorabschnitt 12 auf, die mit dem Busabschnitt 18 in identischer Weise wie die Proszessoreinheiten 20 und 22 verbunden ist. Die Einheit 48 ist gemäß der Darstellung mit einer in gleichartiger Weise verbundenen, gleichartigen zentralen Prozessoreinheit 50 gepaart. Zusätzliche zentrale Prozessoreinheiten, die einzeln oder als Partner-Paare ausgelegt sind, können in das System 10 in der gleichen Weise eingefügt sein, wie es in Fig. 1 durch die unterbrochene Linie angegeben ist.
- Ein Gesichtspunkt der Betriebsweise des Systems 10 besteht darin, daß die als Partner ausgelegten zentralen Prozessoreinheiten 20 und 22 bei fehlendem Vorhandensein eines Fehlers synchron miteinander mit schrittverriegelter bzw. schrittstarrer Synchronität arbeiten. Folglich treiben die beiden gepaarten Einzeiten den Bus A und den Bus B in identischer Weise, und es werden beide Einheiten in identischer Weise durch die beiden Busse angesteuert. Der gleiche Sachverhalt trifft auch für die gepaarten, zentralen Prozessoreinheiten 48 und 50 zu. Dies ist ebenfalls für die gepaarten Speichereinheiten 24 und 26 zutreffend.
- Die peripheren Steuereinheiten 28 und 30 arbeiten auf der anderen Seite nicht in völliger, gegenseitiger Synchronität und können folglich mit peripheren Geräten 32a, 32b, 32c und 32d verbunden sein, die asynchron zueinander arbeiten. Ein Beispiel für ein solches peripheres Gerät ist ein Plattenspeicher. Während eines fehlerfreien Betriebs mit den peripheren Plattenspeichergeräten schreibt jede Steuereinheit 28 und 30 Daten, die sie von den Bussen 38 und 40 erhält. in einen peripheren Plattenspeicher, der mit ihr verbunden ist. Folglich enthalten die beiden Plattenspeicher, von denen jeweils einer mit jeweils einer der Steuereinheiten 28 und 30 verbunden ist, identische Daten. Während eines Lesevorgangs liest das System 10 die gespeicherten Daten von einem der beiden Plattenspeicher in Abhängigkeit davon, welche der Steuereinheiten 28 und 30 zur Bewirkung des Lesevorgangs in der kürzesten Zeit zur Verfügung steht, was üblicherweise die Steuereinheit mit der kürzesten Speicherzugriffszeit bedeutet. Eine nicht dargestellte Alternative besteht darin, die beiden Steuereinheiten 28 und 30 über einen gemeinsamen, peripheren Bus mit einer Mehrzahl von peripheren Geräten, die zum synchronen Betrieb imstande sind, zu verbinden, wobei die beiden Steuereinheiten 28 und 30 in diesem Fall in schrittverriegelter Synchronität arbeiten können. Dieser synchrone Betrieb ist z.B. für periphere Geräte wie etwa u.a. Tastaturen, Bildschirmterminals und Modems geeignet. Die periphere Steuereinheit 34, die gemäß der Darstellung ohne eine Partnereinheit arbeitet, wird typischerweise asynchron zu den anderen peripheren Steuereiheiten 28 und 30 betrieben und betreibt die peripheren Geräte 36a und 36b, mit denen sie verbunden ist, in Übereinstimmung mit einem Protokoll, das für diese Geräte geeignet ist.
- Unter weiterer Bezugnahme auf Fig. 1 überprüfen die Einheiten 20 bis 30 und 34, 48 und 50 des Systems 10 üblicherweise das Vorhandensein von fehlerhaften Zuständen während jeder Informationsübertragung. In dem Fall, daß ein Fehler erfaßt wird, wird die fragliche Einheit daran gehindert, entweder den Bus A 38 oder den Bus B 40 anzusteuern. Hierdurch wird das Computersystem gegenüber der Übertragung von möglicherweise fehlerhafter Information zwischen beliebigen Einheiten geschützt. Wenn die fehlerhafte Einheit eine Partner-Einheit aufweist, setzt diese Partner-Einheit jedoch den Betrieb fort. Das System kann folglich einen fehlerhaften Zustand erfassen und den Betrieb fortsetzen, ohne daß für den Benutzer irgendeine Unterbrechung ersichtlich ist. Hinsichtlich einer weiteren Beschreibung des Aufbaus und der Arbeitsweise des in Fig. 1 gezeigten Systems 10 wird auf die bereits genannte US-Patentschrift Nr.4 453 215 Bezug genommen.
- Der Prozessorabschnitt 12 des Systems 10 weist folglich einen Satz aus einer oder mehreren identischen Prozessoreinheiten auf, wobei das dargestellte System vier solche Einheiten 20, 22, 48 und 50 enthält. Weiterhin sind diese gemäß der Darstellung in Untergruppen aus zwei Komponenten organisiert, derart, daß die Einheiten 20 und 22 bei dem Fehlen eines Fehlers in schrittstarrer Synchronisation miteinander arbeitet und identische Operationen durchführen Das andere dargestellte Paar von gepaarten Prozessoreinheiten 48 und 50 arbeitet in der gleichen Weise. In dem Fall eines Fehlers, z.B. in der Einheit 48, setzt die Partnereinheit 50 den Betrieb ohne eine Unterbrechung fort.
- Der Prozessorabschnitt 12 weist keine zentralisierte Steuerung oder kein zentralisiertes Master-Planungselement auf. Weiterhin ist er gemäß der Darstellung ausschließlich aus den Prozessoreinheiten aufgebaut. Weiterhin sind die zentralen Prozesssoreinheiten 20, 22, 48 und 50, die den Prozessorabschnitt 12 bilden, stark autonom, und zwar dahingehend, daß jede Prozessoreinheit im wesentlichen unabhängig von den anderen mit Ausnahme von ausgewählten nicht-verarbeitenden Vorgängen wie etwa von Hochlaufroutinen und Diagnose- und Wartungsvorgängen arbeitet. Das Computersystem 10 kann folglich mit nur einer einzigen beliebigen zentralen Steuereinheit, die mit dem Busabschnitt verbunden ist, arbeiten, d.h. in einem Zustand, bei dem alle anderen Prozessoreinheiten nicht angeschlossen und folglich entfernt sind, und kann alternativ mit einer beliebigen Anzahl von in dieser Weise verbundenen Prozessoreinheiten arbeiten.
- Wenn zwei oder mehr Prozessoreinheiten, oder Paare von gepaarten Einheiten, in dem System 10 aktiv sind, stellt die Erfindung automatisch sicher, daß nur ein solcher Untersatz aus einer oder mehreren Einheiten zu einem beliebigen Zeitpunkt gewisse Tasks durchführt, und stellt weiterhin sicher, daß die Abarbeitung solcher Tasks gleichförmig, oder mit einer anderen ausgewählten Frequenz, auf die Untersätze aus den Einheiten aufgeteilt wird. Durch die automatische Erzielung dieser Betriebsweise bei einer beliebigen Anzahl von Prozessor-Untersätzen in dem System ist es ermöglicht, den Abschnitt im wesentlichen nach freiem Belieben zu erweitern und zu verkleinern, und es ist die Effizienz des mehrere Untersätze aufweisenden Prozessorabschnitts signifikant gefördert. Besondere ineffiziente Vorgänge, die durch diese Task-Verteilung vermieden werden, schließen eine nicht notwendige Unterbrechung von Prozessoreinheiten, nicht erwünschte Prozessorabläufe und Redundanz, die zu Zweideutigkeit führen kann, ein.
- Tasks, die in dieser Weise verteilt werden, werden in dem vorliegenden Text als Tasks des Prozessor-Abschnitts bzw. Prozessor-Abschnitt-Tasks bezeichnet, und zwar deshalb, weil es keinen Unterschied macht, welcher Untersatz den Task durchführt, so lange ein Untersatz in dem Abschnitt aktiviert ist. Einer dieser Tasks des Prozessorabschnitts besteht in der Erlangung des Zugriffs zu dem Busabschnitt zum Senden von Informationen wie etwa für einen Datentransfer mit einer Speichereinheit oder mit einem peripheren Gerät mit Hilfe einer Eingabel Ausgabe-Steuereinheit. Dies bedeutet, daß das dargestellte System 10 derart organisiert ist, daß der Busabschnitt einen einzigen Informationsübertragungsvorgang jeder beliebigen Art zu einem Zeitpunkt, wie etwa dem Vorgang der Definition eines Zyklus, eine Adressoperation oder den Vorgang einer Datenübertragung, bewerkstelligt. Bei dem System ist es somit lediglich erforderlich, daß mindestens die Prozessoreinheiten hinsichtlich des Zugriffs zu dem Bus entscheiden. Die vorstehend genannte Verteilung der Tasks des Prozessorabschnitts erlaubt lediglich einem Prozessor-Untersatz zu einem Zeitpunkt, die höchste Priorität für die Busentscheidung bzw. den Buszugriff zu haben, und verteilt die Rangordnung der Entscheidung auf den variablen Satz aus Prozessor- und Untersätzen.
- Ein weiteres Beispiel eines Tasks des Prozessorabschhitts ist die Handhabung von Interrupt-Anforderungen. Interrupt-Anforderungen an den Prozessorabschnitt treten z.B. dann auf, wenn ein peripheres Gerät oder eine Speichereinheit Informationen hat, die es an eine Prozessoreinheit zu senden hat, oder wenn sie bereit ist, eine weitere Information von einer Prozessoreinheit zu empfangen. Ein Interrupt tritt auch dann auf, wenn eine neu angeschlossene Prozessoreinheit bereit ist, Verarbeitungsvorgänge On-Line zu beginnen, wenn bereits eine oder mehrere andere Prozessoreinheiten On-Line sind. Die Effizienz des Betriebs des Systems 10 ist verbessert, wenn lediglich ein Prozessor-Untersatz die gerade ablaufende Operation unterbricht, um eine solche Interruptanforderung zu bedienen.
- Ein weiterer Task des Prozessorabschnitts, den die Erfindung auf einen beliebigen aus einer Mehrzahl von Prozessor-Untersätzen aufteilt, besteht in der Synchronisierung der Untersätze Die Untersätze sind üblicherweise durch einen Haupttakt des Computersystems zu synchronisieren wenn eine Prozessoreinheit eingeschaltet wird. Es ist wünschenswert, daß lediglich ein Prozessor-Untersatz diese Synchronisierung einleitet.
- Allgemein beinhaltet die Auswahl eines Prozessor-Untersatzes zur Durchführung irgend eines dieser Tasks des Prozessorabschnitts tatsächlich eine Interaktion zwischen der Mehrzahl von Untersätzen. Die Erfindung erreicht die gewünschte Operation, wobei diese Interaktion auf eine ausgewählte Synchronisierung der Prozessor-Untersätze beschränkt ist; im übrigen arbeiten die Untersätze unabhängig voneinander.
- Die Erfindung erreicht dieses pseudo-interaktive Ergebnis der Taskverteilung mit Prozessoreinheiten, die identisch sind, und folglich ohne die Anforderung, daß irgendeine Einheit oder irgendein separates Gerät die Master-Steuerung vornimmt. Stattdessen enthält jede zentrale Prozessoreinheit jn Übereinstimmung mit der Erfindung eine Taskverteilungslogik, die bestimmt, wann diese Einheit bei dem Vorhandensein von keiner weiteren Einheit oder bei dem Vorhandensein von einer oder mehreren weiteren Einheiten, seien diese gepaart oder nicht, aktiviert wird, um ein Task des Prozessorabschnitts durchzuführen. Die Taskverteilungslogik trägt der Anzahl von weiteren zentralen Prozessoreinheiten in dem System Rechnung und verteilt als Reaktion hierauf die Tasks automatisch gleichförmig oder mit einer anderen ausgewählten Frequenz auf die Prozessor-Untersätze. Das Vorsehen einer solchen Taskverteilungslogik in jeder zentralen Prozessoreinheit ermöglicht es somit dem System 10, eine variable Anzahl von Einheiten in dem Prozessorabschnitt 12 aufzuweisen, und ohne daß eine Interaktion des Betreibers mit Ausnahme der Bereitstellung der gewünschten Anzahl von mit dem Busabschnitt verbundenen Prozessoreinheiten zu erfolgen hat, und ohne eine benutzerseitige Modifikation von irgendwelchen Software- Programmen oder von anderen Betriebssteuerungen oder Routinen.
- Fig. 2 zeigt, daß die dargestellte zentrale Prozessoreinheit 20, die typisch für die anderen zentralen Prozessoreinheiten 22, 48 und so ist, zwei Prozessorstufen 20a und 20b für den Zweck der Fehlererfassung innerhalb der Einheit 20 aufweist. Die Prozessorstufe 20a weist ein Prozessorelement 52a, ein lokales Steuerelement 54a, ein Speicherelement 56a und ein Multiplexerelement 48a für die Übertragung von Signalen zwischen dem lokalen Steuerelement, dem Prozessorelement und dem Speicherelement sowie dem Busabschnitt 18 auf. Die andere Prozessorstufe 20b weist in gleichartiger Weise ein Prozessorelement 52b, ein lokales Steuerelement 44b, ein Speicherelement 46b und ein Multiplexerelement 48b auf. Die Speicher-, Prozessor- und lokalen Steuerelemente der beiden Prozessorstufen 20a und 20b arbeiten in identischer Weise und in vollständiger, schrittverriegelter bzw. schrittstarrer, gegenseitiger Synchronisation. Ein Paar von Sendern/ Empfängern 60a und 60b sind zwischen die Multiplexer 58a und 58b und den Bus A 38 und den Bus B 40 kreuzverschaltet, um eine im gleichen Zeitintervall ablaufende Kommunikation sowohl mit dem Bus A als auch mit dem Bus B, oder mit einem dieser Busse, als Reaktion auf "Busausführungs"-Steuersignale zu bewirken.
- Die Prozessoreinheit 20 weist weiterhin ein Vergleichselement 62 auf, das Signale in der Prozessorstufe 20a mit entsprechenden Signalen in der Prozessorstufe 20b vergleicht und das ein "Fehler"-Signal erzeugt, wenn sich entsprechende Signale in den beiden Stufen unterscheiden. Der Prozessor 20 verfügt weiterhin über ein gemeinsames Steuerelement 64, das mit jedem Sender/ Empfänger 60a und 60b und mit dem Segment 42a des Busses C des Busabschnitts 18 verbunden ist. Als Reaktion auf das "Fehler", Signal erzeugt das Steuerelement 64 neben anderen Vorgängen üblicherweise ein Signal "Fehler", das selektiv entweder an den Bus A 38 oder an den Bus B 40 oder an beide Busse angelegt wird damit eine Übertragung an alle Einheiten des Systems 10 stattfindet. Als Reaktion auf ein "Fehler"-Signal schaltet das Steuerelement auch die Prozessoreinheit von dem On-Line- Zustand in den Off-Line-Zustand um, wobei die Einheit 20 durch diesen Vorgang daran gehindert wird, Signale auf den Bussen A und B und auf den Bus C anzusteuern - - üblicherweise mit Ausnahme hinsichtlich des Ansprechens auf diagnostische Signale.
- Unter weiterer Bezugnahme auf Fig. 2 enthält jedes lokale Steuerelement 54a und 54 b eine Taskverteilungslogik 66. Die dargestellte Logik enthält eine Taskverteilungsschaltung und eine Synchronisationsschaltung. Die Taskverteilungsschaltung erzeugt einen Verteilungszählstand, der synchron mit einem Systemzeitsteuersignal, und folglich synchron mit dem Verteilungszählstand jeder änderen Prozessoreinheit in dem Computersystem, schrittweise fortschreitet. Weiterhin erzeugt die Taskverteilungsschaltung jeder zentralen Prozessoreinheit einen Verteilungszählstand, der einzigartig ist, d.h. der sich von dem Zählstand unterscheidet, der in jeder anderen ausgewählten Prozessoreinheit in dem Computersystem erzeugt wird. Eine bevorzugte Ausgestaltung besteht darin, daß sich der Verteilungszählstand jeder Prozessoreinheit von demjenigen von jeder anderen Prozessoreinheit in dem System unterscheidet. Eine Alternative besteht darin, daß der Zählstand der gleiche wie derjenige der Partner-Prozessoreinheit ist, so daß die Prozessoreinheiten in jedem Untersatz den gleichen Verteilungszählstand erzeugen, wobei sich aber der Verteilungszählstand von demjenigen von jedem anderen Prozessor-Untersatz in dem System unterscheidet. Weiterhin läuft die schrittweise Fortschaitung des Verteilungszählstands zyklisch in Übereinstimmung mit der Anzahl von zentralen Prozessoruntersätzen in dem System um.
- Somit können die Verteilungszählstände der Mehrzahl von Prozesssor-Untersätzen in dem System sich beim Annehmen eines ausgewählten Werts abwechseln, derart, daß jeder Prozessor-Untersatz diesen ausgewählten Verteilungs-Zählwert einmal aufweist und anschließend ein zweites Mal lediglich dann anhimmt, nachdem jeder andere Prozessor- Untersatz diesen gleichen Verteilungs-Zählwert angenommen hatte. Als Reaktion auf diesen ausgewählten Zählwert weist jeder Prozessor-Untersatz z.B. die höchste Priorität der Busentscheidung bzw. des Buszugriffes unter den anderen Prozessor-Untersätzen auf. Weiterhin wird jeder Prozessor-Untersatz als Reaktion auf einen ausgewählten Wert des Verteilungszählstands, der der gleiche wie derjenige sein kann, dem die höchste Zugriffspriorität zugeordnet ist, oder sich von diesem Wert unterscheiden kann, dahingehend aktiviert, daß er auf eine Interrupt-Anforderung ansprechen kann.
- Ein ausgewählter weiterer Wert des Verteilungszählstands kann einen Prozessor-Untersatz dahingehend aktivieren, daß dieser die zweithöchste Entscheidungspriorität bzw. Zuordnungspriorität aufweist. In gleichartiger Weise kann ein ausgewählter Verteilungszählstand einen Prozessor-Untersatz zu einem Zeitpunkt dahingehend aktivieren, daß dieser der zweite ist, der für Prozess-Interrupts zur Verfügung steht.
- Unter Bezugnahme auf Fig. 3 ist die Verteilungsschaltung 70 in einem lokalen Steuerelement 54 eines Prozessors, vorzugsweise mit Hilfe eines Verbinders 42 der Prozessoreinheit, mit Schlitznummer-Verbindungen 74a, 74b, 74c und 74d der Rückplatte des Systemgehäuses verbunden. Jede dargestellte elektrische Leitung, die den Verbinder 72 mit einer Verbindung 74 durchverbindet, ist mit einer positiven Versorgungsspannung unter Zwischenschaltung eines Potential-Hochzieh-Widerstands verbunden. Die Schlitznummer-Verbindungen werden derart gesetzt, daß die Identifikationsnummer des Rückplatten- bzw. Rückebenenschlitzes in den die Prozessoreinheit eingeschaltet bzw. eingesetzt ist, spezifiziert ist. Die dargestellten Verbindungen 74 sind entweder eine Verbindung nach Masse oder ein unterbrochener Stromkreis. Verbindungen 74a und 74d sind von dem erstgenannten Typ, wohingegen die verbleibenden Verbindungen 74b und 74c von dem letztgenannten Typ sind. Die Masseverbindung erzeugt einen Wert einer logischen NULL, wohingegen ein geöffneter Stomkreis über den Potential-Hochzieh-Widerstand den Wert einer logischen EINS bereitstellt. Der dargestellte Satz von Schlitznummer-Verbindungen ergibt somit die Schlitznummer "0110", wenn mit dem Lesen von oben begonnen wird.
- Der Prozessorverbinder 72 führt die Schlitznummer von den Verbindungen 74 der Rückseite zu Eingängen eines Verteilungszählers 76 in der Verteilungsschaltung 70. Weitere Eingangssignale für den dargestellten Verteilungszähler 76 sind ein Signal "CPU-Anzahl", das die Anzahl von zentralen Prozessoreinheiten in dem Prozessorabschnitt 12 identifiziert, ein Signal "Fortschalten", das den Zählstand des Veteilungszählers 76 inkrementiert, und ein Signal "Laden". Eine Befehlsfolge, z.B. eine Software oder eine Firmware, in der Prozessoreinheit erzeugt das Signal "CPU-Anzahl" als Teil einer Hochlaufroutine, die die Prozessoreinheit abarbeitet, wenn sie das erste Mal eingeschaltet wird, nachdem sie in die Rückebene des Gehäuses eingeführt worden ist. Die Hochlaufsequenz des Prozessors erzeugt dieses Signal z.B. dadurch, daß alle Prozessorschlitze abgefragt werden, die dem Abschnitt 12 zugeordnet sind.
- Ein zur Zeitsteuerung dienender Teiler 78 in der Verteilungsschaltung 70 erzeugt das Signal "Fortschalten" durch Herabteilen des Systemtaktsignals, das von den Bussen A und B (Busse 38 und 40) empfangen wird.
- Das Eingangssignal "Laden" für den Verteilungszähler 76 ist ein Synchronisationssignal, das die Prozessoreinheit als Reaktion auf einen Befehl erzeugt, den es von dem Busabschnitt 18 empfängt, wobei das Signal "Last" bzw. "Laden" zum Laden des Verteilungszählers synchron mit allen anderen Prozessoreinheiten in dem Prozessorabschnitt 12 des Systems dient, wie es nachfolgend unter Bezugnahme auf Fig. 4 erläutert wird. Der zur Zeitsteuerung dienende Teiler 78 empfängt auch das Synchronisationssignal in der dargestellten Weise.
- Das von dem Verteilungszähler 76 abgegebene Zählausgangssignal mit mehreren Stellen wird an einen Treiber 80 angelegt, der es an Sperrleiter 82 des Busses A 38 anlegt. Die andere Prozessorstufe 20b in der zentralen Prozessoreinheit 20 erzeugt mit Hilfe der Verteilungslogik 66 in dessen lokalem Steuerelement 44b ein identisches Zählsignal für die Entscheidungsanforderung, das an den Bus B 40 angelegt wird.
- Es wird weiterhin auf Fig. 3 Bezug genommen. Der Bus A 38 ist derart dargestellt, daß er einen Satz aus vier Entscheidungsleitern 82a, 82b, 82c und 82d aufweist, die mit sechzehn elektrischen Aufnehmern 84a, 84b, 84c 84p an der Rückseite des Systemgehäuses verbunden sind. Jeder Aufnahme 84 ist eine Schlitznummer zugeordnet, wobei die gezeigten Aufnehmer dementsprechend von "0" bis "15" numeriert sind. Jeder Aufnehmer 84 ist einfach als eine vertikale Spalte von Verbindungen mit den vier Entscheidungsleitern 82 und mit einem Zyklusanforderungsleiter 86 des Busses A 38 verbunden. Das Netzwerk weist folglich vier Entscheidungsleiter auf und kann bis zu (2)&sup4; oder sechzehn Einheiten handhaben, die jeweils mit einem separaten Aufnehmer 84 verbunden sind. Ein Netzwerk, das z.B. fünf Entscheidungsleiter aufweist, kann bis zu zweiunddreißig Einheiten, die einen Zugriff anfordern, handhaben.
- Der Zyklusanforderungsleiter 86 verläuft kontinuierlich entlang des Busses A 38 zu allen Aufnehmern 84, wie es in Fig. 3 gezeigt ist. Die Entscheidungsleiter 82 sind auf der anderen Seite in Übereinstimmung mit einer binären Logik derart segmentiert, daß lediglich einer der Leiter, nämlich der Leiter 82d, der dem binären Wert (2)³ zugeordnet ist, kuntinuierlich zu allen sechzehn Verbindern 84 verläuft. Dieser Leiter führt ein Signal, das als "Acht Sperren", d.h. als Inh (8), bezeichnet ist. Die verbleibenden Entscheidungsleiter 82c, 82b und 82a sind jeweils derart bezeichnet, daß sie Signal "Vier Sperren", ein Signal "Zwei Sperren" und ein Signal "Eins Sperren" führen. Der Entscheidungsleiter 82c ist derart segmentiert, daß jedes Segment mit acht aufeinanderfolgenden, hinsichtlich der Priorität geordneten Aufnehmem 84 verbunden ist. Folglich weist dieser Leiter 82c ein erstes Segment auf, das die Aufnehmer, die den Schlitznummern 0 bis 7 zugeordnet sind. gemeinsam verbindet, und umfaßt ein zweites Segment, das die Aufnehmer bei den Schlitznummern 8 bis 15 gemeinsam verbindet. In gleichartiger Weise ist der Leiter 82b "Inh. (2)" derart segmentiert, daß er die jeweils vierten aufeinanderfolgenden, hinsichtlich der Priorität geordneten Aufnehmer miteinander verbindet, und es ist der Leiter 82a derart segmentiert, daß er lediglich jeden zweiten, aufeinanderfolgend angeordneten Aufnehmer miteinander verbindet. In jedem Fall gibt es keine Verbindung zwischen unterschiedlichen Segmenten entlang eines gegebenen Entscheidungsleiters, oder zwischen unterschiedlichen Segmenten von unterschiedlichen Leitern.
- Wie auf der rechten Seite in Fig. 3 gezeigt ist, verbindet ein Busabschluß 88 an dem Ende des Busses A 38 den Entscheidungsleiter 82d "Inh (8)" und den Zyklusanforderungsleiter 86 mit einer positiven Versorgungsspannung über separate Potential-Hochzieh-Widerstände. Weitere Potential-Hochzieh-Widerstände sind in gleichartiger Weise von jedem Endsegment der Entscheidungsleiter 82c, 82b und 82a zu der Hochzieh-Versorgungsspannung geschaltet. Durch diese Abschlußverbindungen und Hochzieh-Verbindungen wird jedes Segment des Leiters 82 und der Leiter 86 im Normalfall bei einer ausgewählten positiven Spannung gehalten, d.h. in dem Zustand mit hochgelegtem Potential. Ein auf Massepotential liegendes oder eine andere niedrige Spannung aufweisendes externes Signal kann jedoch die Spannung jedes vorhandenen Leiters oder Leitersegments von diesem normalerweise positiven Zustand nach unten ziehen.
- Es wird weiterhin auf Fig. 3 Bezug genommen. Weitere Eingangssignale für den Treiber 80 sind das Signal "Anzahl von CPUs" und ein Signal "Entscheidungsanforderung" bzw. "Zugriffsanforderung". Das Signal "Anzahl von CPUs" legt fest, welchen der Entscheidungsleiter 82 der Treiber 80 ansteuert. Wenn das Signal "Anzahl von CPUs" zum Beispiel anzeigt, daß vier Prozessor-Untersätze angeschlossen sind, steuert der Treiber 80 lediglich die Leiter Inh (1) und Inh (2) an, während ein Signal, das sechzelm Prozessor Untersätze anzeigt, die Vorrichtung dazu veranlaßt, alle vier Sperrleiter 82 anzusteuern. Die Prozessoreinheit 20 erzeugt das Signal "Entscheidungsanforderung" in dem lokalen Steuerelement 54, wenn sie z.B. Information enthält. die zu einer anderen Einheit in dem System zu übertragen ist. Als Reaktion auf das Signal "Entscheidungsanforderung" legt der Treiber 80 Signale mit dem Massepegel in Übereinstimmung mit dem von dem Verteilungszähler erzeugten Zählstand an Segmente von so vielen Sperrleitem 82 an, wie es durch das Signal "Anzahl von CPUs" spezifiziert ist.
- Ein Zuteilungsdekodierer 90 in der Verteilungsschaltung empfängt den von dem Zähler 76 erzeugten Verteilungszählstand-Ausgangswert als Eingangssignale und vergleicht diese mit einem weiteren Satz von Eingangssignalen, die von den Segmenten der Bus-Sperrleiter und von dem Zyklusanforderungsleiter empfangen werden, mit denen dieser Prozessor mit Hilfe seines Verbinders 84 verbunden ist. Der Zuteilungsdekodierer fungiert logisch als eine EXKLUSIV-ODER-Schaltung und erzeugt demzufolge ein bestätigendes Zuteilungssignal (Zuteilungssignalschaltung) auf seiner Ausgangsleitung lediglich dann, wenn die beiden Sätze der Eingangssignale, die er empfängt, vollständig übereinstimmen. Dies tritt lediglich dann auf, wenn die Prozessorstufe, in die der Dekodierer eingefügt ist einen Verteilungszählwert erzeugt und an die Buszuteilungsleiter bzw. Busentscheidungsleiter zu einem Zeitpunkt anlegt, zu dem keine weitere Einheit eine höhere Priorität besitzenden Verteilungszählstand an den Bus anlegt.
- Ein weiteres Eingangssignal, das als Eingangssignal für den Zuteilungsdekodierer 90 dargestellt ist, ist als eine Partner-Kennung bezeichnet. Dieses veranlaßt den Zuteilungsdekodierer, das Signal der geringste Wertigkeit besitzenden Stelle an den beiden anderen Eingängen nicht zu berücksichtigen, wenn die Prozessoreinheit eine Partner-Prozessoreinheit aufweist. Dies liegt daran, daß als Paare vorhandene Prozessoreinheiten bei dem dargestellten System in benachbarte Schlitznummern eingeordnet sind die derart identifiziert sind, daß sich lediglich die geringste Wertigkeit besitzende Stelle der Verteilungszählstände der beiden als Paar ausgebildeten Prozessoreinheiten unterscheidet, diese im übrigen aber identisch sind.
- Bei dem Betrieb der dargestellten Verteilungsschaltung 70 in der Prozessorstufe 28, die in Fig. 3 gezeigt ist empfängt der Verteilungszähler 76 kontinuierlich eine Schlitznummer von den Verbindungen an der Rückebene jedes Mal dann, wenn der Prozessor in das System 10 eingesteckt wird. Wenn die Prozessoreinheit 20 ein Synchronisationssignal von dem Busabschnitt 18 enthält, das z.B. dann auftritt, wenn die Einheit als erste in das System eingesteckt ist oder jedes Mal dann, wenn eine weitere zentrale Prozessoreinheit in das System eingefügt wird, lädt der Verteilungszähler 76 die Schlitznummer und es wird der zur Zeitsteuerung dienende Teiler synchronisiert. Das Synchronisationssignal wird an alle Prozessoreinheiten in dem Signal 10 angelegt und es finden folglich die beiden vorstehend geschilderten Abläufe in schrittstarrer Synchronisierung bei den gleichen Arbeitvorgängen in der entsprechenden Schaltung in allen anderen Prozessoreinheiten statt. Folglich wird jeder Verteilungszähler in dem Prozessorabschnitt des Systems gleichzeitig geladen, jedoch jeweils mit einer unterschiedlichen Schlitznummer. Weiterhin zählen die Mehrzahl von Verteilungszählern in dem Prozessorabschnitt des Systems nachfolgend unter schrittstarrer Synchronisierung als Reaktion auf Schrittsignale schrittweise, die sie jeweils von ihrem zur Zeitsteuerung dienenden Teiler 78 in Abhängigkeit von den Systemtaktsignalen empfangen.
- Jeder Verteilungszähler 76 in dem gesamten Prozessorabschnitt des Systems empfängt auch ein identisches Signal "Anzahl von CPUs", das die Anzahl von Prozessoreinheiten in dem Prozessorabschnitt des Systems identifiziert. Jeder Verteilungszähler spricht auf dieses Signal dadurch an. daß er nach einer Anzahl von Schritten, die der Anzahl von Prozessoreinheiten in dem System entspricht. zyklisch umläuft bzw. von neuem beginnt. Insbesondere bei einem Prozessorabschnitt 12, der lediglich einen Untersatz aus zwei als Paar ausgebildeten zentralen Prozessoreinheiten aufweist, z.B. die Einheiten 20 und 22 in Fig. 1, zeigt das Signal "Anzahl von CPUs" an, daß lediglich zwei Prozessoreinheiten in dem Prozessorabschnitt vorhanden sind. Weiterhin sind die beiden Einheiten bei einem speziellen, bevorzugten Ausführungsbeispiel mit den Schlitznummern vier und fünf der Rückebene verbunden. Die Verteilungszähler in den beiden Prozessoreinheiten werden daher mit den anfänglichen Zählnummern vier und fünf geladen, die in binärer Form "100" bzw. "101" lauten. Auf Grund dieser Ausgestaltung spricht der Verteilungszähler auf jedes Signal "Schritt" dadurch an, daß lediglich die Stelle geringster Wertigkeit seines Zänlstands geändert wird.
- Wenn ein System bei diesem Ausführungsbeispiel vier zentrale Prozessoreinheiten, wie etwa den in Fig. 1 gezeigten Satz aus Prozessoreinheiten 20, 22, 48 und 50, aufweist, sind diese in Schlitze eingesetzt, die mit den hexadezimalen Zahlen 8, 9, A und B bezeichnet sind. Als Reaktion auf das Signal "Anzahl von CPUs", das die Anzahl von vier Einheiten in dem System bezeichnet, arbeitet der Verteilungszähler 76 mit einer Zähifolge, bei der er sequentiell das Bit geringster Wertigkeit ändert, das Bit "Eins" ändert, erneut das Bit geringster Wertigkeit ändert, und dann das Bit Eins ändert usw.
- Die hexadezimalen Verteilungszählstände, die die vier Prozessoreinheiten somit in aufeinanderfolgenden Zeitintervallen erzeugen, entsprechen der Darstellung in der nachfolgenden Tabelle I Tabelle I
- Als weiteres Beispiel sind, wenn dieses System acht zentrale Prozessoreinheiten aufweist, diese in die Schlitze mit der Nummer 0, 1, 2, 3, 4, 5, 6, und 7 eingeführt. Als Reaktion auf das entsprechende Signal "Anzahl von CPUs" arbeiten die Verteilungszähler 76 in der Mehrzahl von Prozessoreinheiten mit einer Zälilfolge, die aufeinanderfolgend das Bit geringster Wertigkeit, das Bit Eins, das Bit geringster Wertigkeit, das Bit Zwei, usw. ändert.
- Die nachfolgende Tabelle II veranschaulicht die resultierenden hexadezimalen Verteilungszählstände jeder Prozessoreinheit für aufeinanderfolgende Zeitintervalle. Tabelle II
- Bei einer solchen Verteilungszählfolge besitzt jede Prozessoreinheit in dem Prozessorabschnitt zu jeder beliebigen Zeit einen Verteilungszählwert, der sich von demjenigen aller anderen Prozessoren unterscheidet. Demgemäß verfügt jede Prozessoreinheit über die höchste Zugriffspriorität jeweils eine zu einem Zeitpunkt auf der Basis gleicher Zeitzuteilung. bezogen auf die anderen Prozessoreinheiten in dem System. Wenn weiterhin die Einheiten in den Schlitzen 0 und 1 als Paar ausgebildet sind und somit einen Untersatz bilden. und auch die Einheiten in den Schlitzen 4 und 5 bzw. in den Schlitzen 6 und 7 zwei weitere Untersätze bilden, unterscheiden sich die Verteilungszählstände in jedem Untersatz lediglich in der Stelle geringster Wertigkeit. Wenn darüber hinaus die Stelle geringster Wertigkeit nicht berücksichtigt wird, weist jeder Untersatz der Einheiten einen Verteilungszählstand auf, der sich von allen anderen Untersätzen unterscheidet, und der den höchsten Entscheidungswert jeweils einzeln zu einem Zeitpunkt und auf der Grundlage gleicher Zeitzuteilung besitzt.
- Es ist anzumerken, daß'jeder Prozessor diesen Vorgang ohne Überwachung des Betriebs der anderen Prozessoreinheiten und ohne irgendwelche übergeordnete Steuerung durch ein Überwachungssystem oder einen Masterprozessor durchführt. Die systemweiten Eingangssignale für den Satz an Prozessoreinheiten sind lediglich eine unterschiedliche Schlitznummer, die jeder Prozessoreinheit verliehen wird, Systemtaktsignale und ein gemeinsames Synchronisationssignal beim Starten bzw. Hochlaufen.
- Unter fortgesetzter Bezugnahme auf Fig. 3 spricht jede dargestellte Prozessoreinheit in dem Prozessorabschmtt 12 auf externe Interrupts lediglich als Reaktion auf einen ausgewählten Verteilungszählwert an. Folglich spricht zu einem beliebigen Zeitpunt jeweils nur ein Prozessor-Untersatz in dem Prozessorabschnitt auf externe Interrupt-Anforderungen an. Die anderen Prozessor-Untersätze können diese im wesentlichen ignorieren und statt dessen ihre volle Arbeitszeit der Verarbeitung von Fragen widmen.
- Die Erfindung erreicht diesen weiteren Vorgang der Taskverteilung, wie er ebenfalls in Fig. 3 gezeigt ist dadurch, daß das den Verteilungszählstand darstellende, von dem Verteilungszähler 76 abgegebene Ausgangssignal an einen Interrupt-Dekodierer 92 angelegt wird, dessen Ausgangssignal an ein Interrupt-Gate 94 angelegt wird. Weitere Eingangssignale für das Interrupt-Gate sind ein Signal "Prozessorleerlauf" auf der Leitung 96 und ein Signal "Interrupt-Anforderung" auf einer Leitung 98. Das Interrupt- Gate erzeugt ein lnterrupt-Signal, das dem Prozessor erlaubt, auf die Interruptanforderung zu reagieren. bei jeder von zwei Bedingungen. Eine Bedingung besteht darin daß sich der Prozessor im Leerlauf befindet, wie es durch das Signal "Leerlauf" auf der Leitung 96 angegeben ist.
- Die andere Bedingung ist erfüllt, wenn der Verteilungszählstand, der an den Dekodierer 92 angelegt wird, einen Wert besitzt, den der Dekodierer gemäß seiner Einstellung als einen Wert "Sofortiger Interrupt" erkennt. Üblicherweise sind alle Interrupt-Dekodierer in der Mehrzahl von Prozessoreinheiten eines Prozesssorabschnitts des Systems derart eingestellt daß sie den identischen Verteilungszählwert als eine Bedingung "Sofortiger Interrupt" dekodieren. Da die Verteilungszähler in den unterschiedlichen Prozessoren einen gegebenen Zählwert lediglich einmal zu einem Zeitpunkt annehmen, erzeugt lediglich eine Prozessoreinheit in einem Prozessorabschnitt ein Signal "Sofortiger Interrupt" zu einem beliebigen Zeitpunkt. Weiterhin wird auch das Signal "Partner-Kennung" an den Interrrupt-Dekodierer 92 angelegt. Auf diese Weise wird bei jedem Untersatz der Prozessoreinheiten der Verteilungszählstand zum Festlegen, wann dieser Untersatz auf externe Interrupts anspricht, und umgekehrt, wann er seinen Betrieb fortsetzt und ein anderer Untersatz aus Prozessoreinheiten auf einen vorhandenen Interrupt anzusprechen hat, eingesetzt.
- Zusätzlich zu der Verteilungsschaltung, die unter Bezugnahme auf Fig. 3 beschrieben wurde, weist die Taskverteilungslogik 66 (Fig. 2) der Prozessoreinheit 20 eine Synchronisierungsschaltung 134 auf, die in Fig. 5 gezeigt ist und gemäß der Darstellung in Fig. 4 arbeitet. Die Funktion dieser Synchronisierungschaltung besteht darin, ein geordnetes Fortschreiten jedes Prozessors von dem Zustand "Off-Line" zu dem Zustand "On- Line" zu erzielen. Wenn sich ein Prozessor in dem Zustand Off-Line befindet, kann er eine Initialisierungsroutine ausführen und dann auf Status- und Wartungsanfragen mit Hilfe des Bussystems 18 reagieren. Jedoch initiiert er nicht Betriebssignale wie etwa Interruptanforderungen, Adressignale oder Daten. Wenn eine Prozessoreinheit sich in dem Zustand On-Line befindet, kann sie derartige Signale initialisieren und diese an den Bus A 38 und/ oder an den Bus B 40 anlegen.
- Das dargestellte Computersystem kann die Sequenzierung benutzen, die die Synchronisierungsschaltung 134 in mehreren Fällen bereitstellt. Ein Fall besteht darin, ein korrektes Hochlaufen zu erreichen, wenn die Spannung an ein System angelegt wird, das eine Mehrzahl von Prozessoreinheiten aufweist. Ein anderer Fall besteht darin, einer funktionierenden Prozessoreinheit zu erlauben, eine neu aktivierte Partner-Prozessoreinheit unter schrittverriegelter Synchronisierung mit ihr in Betrieb zu bringen, was bedeutet, daß eine Prozessoreinheit eine weitere Prozessoreinheit in Duplex-Betrieb mit ihr bringt. Ein weiterer Fall besteht darin, eine neue Prozessoreinheit, oder ein neues, als Duplex- Partner ausgebildetes Paar von Prozessoreinheiten, in ein funktionierendes System einzuführen. Die Synchronisierungsleitung in jeder Prozessoreinheit erreicht diese Funktion in einer Weise, die keine zentralisierte Mastereinrichtung erfordert.
- Die Synchronisierungsschaltung jeder Prozessoreinrichtung stellt den vorstehend erläuterten Ablauf mittels einer Abfolge von Vorgängen bereit, wie sie in dem Ablaufdiagramm gemäß Fig. 4 dargestellt sind, welches mit dem Aktionsblock 100 beginnt wenn die Prozessoreinheit zum ersten Mal eingeschaltet wird oder in anderer Weise zum ersten Mal die Betriebsspannung empfängt. Die Prozessoreinheit führt eine Initialisierungsroutine gemäß dem Aktionsblock 102 durch, wie es für diese Einheit herkömmlich angebracht ist. Ein Initialisierungsvorgang besteht darin, den Verteilungszähler 76 (Fig. 3) mit der Schlitznummer zu laden, die derjenigen entspricht, bei der die Einheit in die Rückebene des Systems eingesteckt ist. Dieser Vorgang wird durch ein Signal "Laden initialisieren" bewirkt, das an das ODER-Glied 79 angelegt wird, und der Zähler verbleibt bei diesem Zählstand, d.h. zählt nicht schrittweise weiter, bis die Einheit in den Zustand "On-Line" umgeschaltet wird. Die Einheit befindet sich in dem Zustand "Off- Line" während der Ausführung der Initialisierungsroutine.
- Wenn die Prozessoreinheit die Initialisierungsroutine 102 abgeschlossen hat, erzeugt sie ein Signal "Bereit zur Synchronisation", das an die Synchronisierungsschaltung 134 angelegt wird, und erzeugt eine Interruptanforderung, wie es jeweils in den Aktionsblock 104 angegeben ist. Das Signal "Interruptanforderung" wird an einen oder an beide Busse A und B angelegt, und zur Erläuterung (Fig. 5) an den Bus B 40, um jede Prozessoreinheit, die möglicherweise bereits "On-Line" sein kann, über die Anforderung der Bedienung durch die fragliche Prozessoreinheit zu informieren.
- Die Prozessoreinheit leitet als nächstes eine Initialisierungsroutine 106 ein, die drei alternative Abläufe bereitstellt, mittels derer die Einheit in den Zustand "On-Line übergehen kann.
- Ein Ablauf, durch den eine im Zustand Off-Line befindliche Prozessoreinheit den Status On-Line annehmen kann, findet statt, wenn sich keine andere Prozessoreinheit in dem Zustand "On-Line" befindet. Die Prozessoreinheit bestimmt zunächst, ob sich eine weitere Prozessoreinheit "On-Line" befindet (Entscheidungsblock 108). Als Reaktion auf ein negatives Ergebnis schreitet die Einheit zur Erlangung eines Buszyklus weiter, wie es durch den Aktionsblock 110 bzeichnet ist. Falls es der Einheit nicht gelingen sollte, bei der Erlangung erfolgreich zu sein, wie es durch ein negatives Ergebnis bei dem Entscheidungsblock 112 angegeben ist, läuft der Betriebsablauf zurück und tritt in den Entscheidungsblock 108 ein, wie es dargestellt ist. Hierbei ist anzunehmen, daß eine andere Prozessoreinheit in einem höhere Priorität besitzenden Schlitz gleichzeitig die Erlangung eines Buszyklus anstrebte und erfolgreich war, wobei der weitere Ablaut gemäß der nachstehenden Beschreibung erfolgt.
- Wenn die Prozessoreinheit auf der anderen Seite bei der Erlangung des Buszugriffes erfolgreich ist, so daß das Ergebnis des Aktionsblocks 112 bejahend ist, wird die Prozessoreinheit die erste, die den Zustand "On-Line" annimmt. Dieses Ergebnis erreicht sie dadurch, daß eine Kennung "Status Boot Master" gesetzt wird, wie es durch den Aktionsblock 114 wiedergegeben ist, wonach sie bei dem Aktionsblock 116 in den Zustand "On-Line" übergeht, woran anschließend sie die Programmabarbeitung beginnt.
- Eine Prozessoreinheit, die den Zustand "On-Line" unter Durchlaufen des Aktionsblocks 110, des Entscheidungssblocks 112 und des Aktionsblocks 116 erreicht hat, kann während der laufenden Programmarbeitung Interruptanforderungen bedienen, die andere, "Off-Line" befindliche Prozessoreinheiten während der Abarbeitung des Aktionsblocks 104 erzeugen, bedienen. Auf diese Weise und mit Hilfe von weiteren Abläufen der Synchronisierungsroutine 106, die im weiteren Text beschrieben wird, bringt eine Prozessoreinheit, die den Status "Boot Master" besitzt, andere Einheiten in den Zustand "On-Line". Bei der Beendigung dieses Vorgangs löscht die erste Einheit, die "On-Line" gegangen ist, den Status "Boot Master", wie es in Fig. 4 mit dem Entscheidungsblock 118 dargestellt ist. Danach weist keine Prozessoreinheit in dem Abschnitt 12 (Fig 1) den Status "Boot Master" auf. Stattdessen haben alle Prozesssoreinheiten den gleichen Status; und es unterscheiden sich lediglich die Zählwerte in den Verteilungszählern.
- Es wird weiterhin auf Fig. 4 Bezug genommen. Eine weitere Abfolge, durch die eine sich Off-Line befindliche Prozessoreinheit den Zustand On-Line bei der Synchronisationsroutine 106 annimmt, tritt auf, wenn die Einheit einen Befehl "On-Line" erhält. Genauer gesagt befindet sich die im Off-Line-Zustand befindliche Prozessoreinheit üblicherweise in einem Off-Line-Wartezustand, wie es in Fig. 4 bei 120 angegeben ist Demgemäß durchläuft die Arbeitsweise der Einheit ein bejahendes Ergebnis bei dem Entscheidungsblock 108, da sich eine andere Einheit On-Line befindet, ist aber nicht erfolgreich, einen Befehl "On-Line" zu erhalten und erhält somit ein negatives Erbebnis bei dem Entscheidungsblock 122, und ist nicht erfolgreich. ein Signal Partner-Anforderung zu empfangen und erzeugt demzufolge bei dem Entscheidungsblock 124 ein negatives Ergebnis. Der Empfang eines Befehls "On-Line" ruft jedoch ein bejahendes Ergebnis bei dem Entscheidungsblock 122 hervor. Die Einheit setzt dann eine Statuskennung die für den empfangenen Befehl geeignet ist, d.h. entweder eine Simplex- oder eine Duplex-Kennung, wie es durch den Aktionsblock 126 angegeben ist. Der Betrieb des Prozessors schreitet dann zu dem Aktionsblock 116 weiter, bei dem er in den Zustand "On-Line" umgeschaltet wird, und schreitet dann mit der Programmabarbeitung weiter Aufgrund dieses Ablaufs kann eine zusätzliche Prozessoreinheit - die sich entweder in einem Simplex-Betrieb oder in einem Duplex-Betrieb, bei dem sie mit einer weiteren Prozessoreinheit gepaart ist, befindet, - "On-Line" in den Prozessorabschnitt eines Computersystems gebracht werden.
- Die dritte dargestellte Abfolge, durch die eine Off-Line befindliche Prozessoreinheit den Zustand On-Line annehmen kann, trifft für eine Einheit zu, die einen Partner für eine weitere Einheit bilden soll, die sich bereits On-Line befindet. Zur Erleichterung der Beschreibung dieses Ablaufs sei angenommen, daß eine On-Line befindliche Prozessoreinheit X Interruptanforderungen verarbeitet, daß sich eine Prozessoreinheit A On-Line befindet, und daß eine Prozessoreinheit B einen Partner für die Einheit A bilden soll und soeben ein Interrupt-Anforderungssignal bei dem Entscheidungsblock 104 erzeugt hat. Bei diesem Betrieb gibt die Prozessoreinheit X keinen Befehl "On-Line" ab, wie es vorstehend unter Bezugnahme auf den Entscheidungsblock 122 erläutert wurde, und befiehlt stattdesssen der On-Line befindlichen Prozessoreinheit A im Effekt, ihre Partnereinheit B On-Line zu bringen. Als Reaktion auf diesen Befehl erzeugt die Einheit A ein Signal "Partneranforderung" und sendet dieses zu der Einheit B mit Hilfe des Abschnitts 42a des Busses C. Dieses Signal veranlaßt die Off-Line befindliche Prozessoreinheit B bei dem Entscheidungsblock 124 ein bejahendes Ergebnis zu erzeugen, und ihre Statuskennung auf Duplex zu setzen, wie es durch den Atkionsblock 128 angegeben ist. Die Prozessoreinheit B fährt dann mit Hilfe des Aktionsblocks 116 damit fort, den Zustand On-Line anzunehmen.
- Jeder der vorstehend beschriebenen Abläufe, durch den eine Off-Line befindliche Prozessoreinheit den Zustand On-Line annehmen kann, enthält ein Rücksetzen des Verteilungszählers 76, Fig. 3, in jeder Prozessoreinheit, die sich On-Line befindet, und auch in der Einheit, die die Synchronisierungsroutine 106 zur Gewinnung des Zustands On-Line ausführt. Demzufolge arbeitet jede Prozessoreinheit vor der Abarbeitung des On-Line-Vorgangs gemäß Block 116 unter schrittstarrer Synchronisierung mit allen anderen, On-Line befindlichen Prozessoreinheiten. Wenn der Off-Line befindliche Prozessor den Zustand On-Line mit Hilfe der Entscheidung gemäß dem Aktionsblock 110 und dem Entscheidungsblock 112 annimmt, enthält dieser Ablauf die Erzeugung eines Synchronisationssignals, das demäß der Darstellung in Fig. 3 den zur Zeitsteuerung dienenden Teiler 78 erneut startet und initialisiert und die schrittweise Fortschaltung des Verteilungszählers 76 einleitet.
- Wenn die Prozessoreinheit den Zustand On-Line durch Empfang des Befehis "On-Line", d.h. mit Hilfe des Entscheidungsblocks 122 und des Aktionsblocks 126 annimmt, gibt der On-Line befindliche Prozessor, der auch den Befehl "On-Line" erzeugt, das Synchronisationssignal, vorzugsweise vor der Abgabe dieses Befehls ab, das alle Prozessoreinheiten die sich On-Line befinden, und auch die Eiheit, die in den Zustand On-Line zu bringen ist, erneut initialisiert und in schrittstarre Synchronisierung bringt.
- In dem dritten Fall, bei dem die sich Off-Line befindliche Prozessoreinheit On-Line mit Hilfe einer Partnereinheit gebracht wird, d.h. mit Hilfe des Entscheidungsblocks 124 und des Aktionsblocks 128, erzeugt entweder die On-Line befindliche Prozessoreinheit, die Interrupts handhabt und die die aktive Partnereinheit zur Abgabe eines Signals "Partneranforderung" aktiviert, oder die letztgenannte, aktive Einheit, zunächst ein Synchronisationssignal zur Synchronisierung alle Prozessoreinheiten in dem Prozessorabschnitt des Computersystems einschließlich der Einheit, die On-Line gebracht wird.
- In Fig. 5 ist eine Realisierung einer Synchronisationsschaltung 134 zur Erzielung des vorstehend erläuterten Ablaufs gemäß Fig. 4 gezeigt. Die Schaltung arbeitet mit einer programmierbaren Logikanordnung 136. die ein beliebiges von drei Synchronisationsbefehlen auf Leitern 138 empfängt. Einer dieser Befehle ist ein Signal "Synchronisation bereit", das bei dem Aktionsblock 104 erzeugt wird, und in Abhängigkeit von dem die programmierbare Logikanordnung ein Signal "Interruptanforderung" auf einem Leiter 140 erzeugt, wie es ebenfalls in Fig. 4 durch den Aktionsblock 104 dargestellt ist Die beiden anderen Synchronisationsbefehle sind ein Befehl "Gehe simplex On-Line" und ein Befehl "Gehe duplex On-Line". Das Signal "Interruptanforderung" wird gemäß der Darstellung an einen Leiter des Busses B 40 für die Kommunikation mit allen anderen On-Line befindlichen Prozessoreinheiten angelegt. Folglich empfängt jede On-Line befindliche Prozessoreinheit eine Interruptanforderung auf seinem Leiter 98, der im unteren Bereich von Fig. 3 gezeigt ist und einen Eingangsleiter für ein Interrupt-Gate 94 in der Einheit bildet.
- Eine Prozessoreinheit, die On-Line ist, erzeugt ein Signal "Partneranforderung" auf einem Leiter 140 als Reaktion auf einen Befehl, eine Partnereinheit On-Line zu bringen. Das Signal "Partneranforderung" wird über einen Treiber, der ein Teil des Arrays 136 ist, an einen Leiter des Busses C 42 angelegt, der das Signal lediglich an die Off-Line befindliche Partner-Prozessoreinheit anlegt. Die letztere Einheit empfängt das Signal "Partneranforderung" auf dem Leiter 144 und spricht durch weiteren Ablauf gemäß der vorstehenden Beschreibung in Übereinstimmung mit einem bejahenden Ergebnis bei dem Entscheidungsblock 124 an (Fig. 4).
- Das Signal, das eine Prqzessoreinheit erzeugt, wenn sie den Zustand "On-Line" annimmt, wird auf einem Leiter 146 in Fig. 5 abgegeben und wird an einen Leiter des Busses C 42 für die Kommunikation mit allen anderen Prozessoreinheiten des Computersytems angelegt. Wie gezeigt ist, empfängt jede Einheit dieses Signal als eine On- Line-Eingabe auf einem Leiter 148.
- Wenn eine Prozessoreinheit einen Buszugriff erhalten will, aktiviert sie ein Entscheidungssignal bzw. Zugriffssignal auf einem Leiter 150. Ein erfolgreiches Ergebnis der Zugriffsbeurteilung ist ein Zuteilungssignal, das über einen Leiter 152 "Eingabe gestatten" an die programmierbare Logikanordnung 136 geleitet wird. Dieser Vorgang entspricht dem Aktionsblock 110 und dem Entscheidungsblock 112 gemäß Fig. 4.
- Es ist somit ersichtlich, daß die vorstehend genannten Zielsetzungen und auch diejenigen, die aus der vorstehenden Beschreibung ersichtlich geworden sind, wirkungsvoll erzielt werden.
Claims (13)
1. Digitales Datenprozessorgerät (10), mit einem Prozessorabschnitt (12), einem
Speicherabschnitt (14), einem Eingabe-Ausgabe-Abschnitt (16), und einem Busabschnitt
(18) für eine Übertragung von Signalen zwischen dem Prozessorabschnitt (12) und
jedem aus dem Speicherabschnitt (14) und dem Eingabe-Ausgabe-Abschnitt (16), und
einem Systemtakt (44) zur Bereitstellung von Zeitsteuersignalen, und:
A. wobei der Prozessorabschnitt einen Satz aus zumindest einer ersten und
einer zweiten Prozessoreinheit (20, 48) enthält, wobei dieser Satz aus den
Prozessoreinheiten (20, 48) zur Durchführung von Tasks des Prozessorabschnitts ausgelegt ist,
wobei die Tasks aus den Tasks des Reagierens auf Interruptsignale, die über den
Busabschnitt empfangen werden, des Entscheidens des Zugriffs zu dem Busabschnitt, und der
Synchronisation der Prozessoreinheiten mit dem Systemtakt ausgewählt sind;
B. wobei jede Prozessoreinheit (20, 48) mit dem Busabschnitt (18) verbunden
ist und eine Einrichtung (52a, 52b) enthält, die zur Durchführung von
Informationsverarbeitungsvorgängen mit Hilfe des Speicherabschnitts (14) und des Eingabe-Ausgabe-
Abschnitts (16) autonom bezüglich anderer Prozessoreinheiten (20, 48) ausgelegt ist;
und
C. wobei jede Prozessoreinheit (20, 48) weiterhin eine
Taskverteilungseinrichtung (66) enthält die für einen bezüglich der Taskverteilungseinrichtungen (66) jeder
der anderen Prozessoreinheiten (20, 48) synchronen Betrieb ausgelegt ist, wobei die
Taskverteilungseinrichtung (66) derart ausgelegt ist, daß:
(i) sie derart arbeitet. daß ihre jeweilige Prozessoreinheit (20, 48) die
Prozessorabschnitt-Tasks zu einer unterschiedlichen Zeit gegenüber allen anderen
Prozessoreinheiten (20, 48) durchführt, und
(ii) sie die Dauer, mit der ihre jeweilige Prozessoreinheit (20, 48)
Prozessorabschnitts-Tasks durchführt. in umgekehrtem Verhältnis zu der gesamten Anzahl von
Prozessoreinheiten (20, 48) in dem Prozessorabschnitt (12) steuert.
2. Digitales Datenprozessorgerät (10) nach Anspruch 1, bei dem jede
Taskverteilungseinrichtung (66) eine Verteilungszählereinrichtung (76) enthält, die synchron mit
der Verteilungszählereinrichtung (76) in anderen Prozessoreinheiten (20, 48) des
Prozessorabschnitts als Reaktion auf ein ausgewähltes Synchronlsationssignal, das von dem
Busabschnitt (18) empfangen wird, und auf einen Zählstand, der sich von einem
initialisierten Zählstand der anderen Verteilungszählereinrichtungen (76) unterscheidet,
initialisiert wird, wobei die Verteilungszählereinrichtung (76) ihren Zählstand unter
Synchronisierung mit anderen Verteilungszählereinrichtungen (76) in dem Prozessorabschnitt (12)
als Reaktion auf die System-Zeitsteuersignale, die von dem Busabschnitt (18) empfangen
werden, schrittweise fortschaltet.
3. Digitales Datenprozessorgerät (10) nach Anspruch 2, bei dem die
Taskverteilungseinrichtung (66) eine Einrichtung zur Abfrage des Prozessorabschnitts (12) mit
Hilfe des Busabschnitts (18) zur Bestimmung der Anzahl von mit diesem verbundenen
Prozessoreinheiten (20, 48) und zum Festlegen einer Zählsequenz ihrer
Verteilungszählereinrichtung (76) als Reaktion auf die bestimmte Anzahl von Prozessoreinheiten (20, 48)
enthält.
4. Digitales Datenprozessorgerät (10) nach Anspruch 1, bei dem
A. jede Prozessoreinheit (20, 48) alternativ in einem Off-line-Zustand, in dem
sie keine Übertragungen von Verarbeitungssignalen zu anderen Einheiten mit Hilfe des
Busabschhitts (18) einleitet, und in einem On-line-Zustand arbeitet, bei dem sie
Verarbeitungssignale zu anderen Einheiten mit Hilfe des Busabschnitts (18) überträgt, und
B. bei dem jede Taskverteilungseinrichtung (66) eine Initialisierungseinrichtung
(136)
(i) zur Aufrechterhaltung des Off-line-Zustands dieser Prozessoreinheit (20, 48)
bei dem Fehlen eines Synchronisationsinitialisierungsignals, das von dem Busabschnitt
(18) empfangen wird, und
(ii) zum Erzeugen eines Synchronisationsinitialisierungssignals und zum
Anlegen desselben an den Busabschnitt (18) aufweist, um hierdurch den On-line-Zustand
anzunehmen und, wenn sie sich in dem Off-line-Zustand befindet, als Reaktion auf eine
Zuteilung des Zugriffs zu dem Busabschnitt (18) eine Signalübertragung zu erreichen,
enthält.
5. Digitales Datenprozessorgerät (10) nach Anspruch 1, bei dem jede der
Prozessoreinheiten eine Einrichtung zur Festlegung (82) des Zugriffs zu dem Busabschnitt
(18) für eine Übertragung von Information durch die Prozessoreinheit (20, 48) zu
mindestens einem aus dem Speicherabschnitt (14) und dem Eingabe-Ausgabe-Abschnitt (16)
aufweist, und bei dem enthalten ist:
A. eine Verteilungszählereinrichtung (76), die mit der Festlegungseinrichtung
verbunden ist und zum Bereitstellen eines Festlegungs-Prioritätswerts für diese
Prozessoreinheit in Abhängigkeit von ihrem Zählstand dient, wobei die Festlegungseinrichtung
auf den Festlegungs-Prioritätswert anspricht,
B. wobei der Verteilungszähler eine Einrichtung zum Ansprechen auf
System-Zeitsteuersignale für das schrittweise Fortschalten von dessen Zählstand aufweist,
C. eine Initialisierungseinrichtung (136) zum Anlegen eines ausgewählten,
initialisierenden Zählwertzustands an die Verteilungszählereinrichtung (76), wobei sich der
initialisierende Zählwertzustand von demjenigen unterscheidet, der an andere
Prozessoreinheiten in deren Satz angelegt wird,
D. so daß die Verteilungszählereinrichtung von einer der Prozessoreinheiten
unter Synchronisation mit der Verteilungszählereinrichtung von anderen Prozessoreinheiten
in deren Satz initialisiert wird und ihren Zählwert schrittweise synchron mit allen
anderen verändert.
E. wodurch jede von ausgewählten Prozessoreinheiten einen höheren
Festlegungs-Prioritätswert als alle anderen ausgewählten Einheiten jeweils zu einem Zeitpunkt
aufweist, um die Festlegungspriorität selektiv auf die ausgewählten Prozessoreinheiten
zu verteilen. wodurch eine Festlegung für einen Buszugriff beim Vorhandensein eines
Satzes aus einer oder mehreren ähnlichen Prozessoreinheiten (20, 48) in dem
Prozessorabschitt (12) bereitgestellt werden kann.
6. Digitales Datenprozessorgerät nach Anspruch 5, bei dem die Prozessoreinheit
(20 48) eine Verbindereinrichtung mit mehreren Kontakten für eine abnehmbare und
austauschbare Verbindung mit dem Computersystem enthält, wobei die
Initialisierungseinrichtung (136) eine digitale Logikeinrichtung aufweist, die mit ausgewählten
Kontakten der Verbindereinrichtung zur Bereitstellung des ausgewählten Initialisierungs-
Zählwertzustands als Reaktion auf einen Signalsatz, der über die ausgewählten Kontakte
empfangen wird, verbunden ist.
7. Digitales Datenprozessorgerät nach Anspruch 5, bei dem die
Verteilungszählereinrichtung (76) weiterhin aufweist
A. eine Einrichtung zum Empfangen von Größeninformation, die die Anzahl
von Prozessoreinheiten (20, 22, 48, 50) in deren Satz identifiziert, von dem
Busabschnitt (18) und
B. eine Einrichtung (76) zum Ändern einer Schrittfolge derselben als Reaktion
auf die Größeninformation, so daß die Zählung seitens der Zählereinrichtung mit einer
Anzahl von Zählschritten zyklisch umläuft, die von der Größeninformation abhängt.
8. Digitales Datenprozessorgerät nach Anspruch 1, bei dem jede
Prozessoreinheit eine Einrichtung (92, 94) zum Reagieren auf ein Interruptsignal, das auf dem
Busabschnitt von mindestens einem aus dem Speicherabschnitt und dem Eingabe-Ausgabe-
Abschnitt und einer weiteren Prozessoreinheit in dem Prozessorabschmtt empfangen
wird, und zum Bereitstellen der Interrupt-Reaktion lediglich bei aktiviertem Zustand
aufweist, und enthält
A. eine Verteilungszählereinrichtung (76), die mit der auf den Interrupt
reagierenden Einrichtung zum Bereitstellen eines Interrupt-Aktivierungssignals lediglich als
Reaktion auf einen ersten ausgewählten Zählzustand verbunden ist,
B. wobei die Verteilungszählereinrichtung eine Einrichtung zum Reagieren auf
System-Zeitsteuersignale zum schrittweisen Fortschalten von deren Zählstand enthält,
C. eine Einrichtung zum Anlegen eines ausgewählten
Initialisierungs-Zählwerizustands an die Verteilungszählereinrichtung, wobei sich der initialisierende
Zählwertzustand
von demjenigen unterscheidet, der an andere Prozessoreinheiten in deren Satz
angelegt wird.
D. so daß die Verteilungszählereinrichtung der Prozessoreinheit unter
Synchronisation mit den Verteilungszählereinrichtungen von anderen, gleichartigen
Prozessoreinheiten in deren Satz initialisiert wird und ihren Zählwert synchron mit allen anderen
schrittweise fortschaltet,
E. wodurch jede von ausgewählten Prozessoreinheiten jeweils eine zu einem
Zeitpunkt einen ersten ausgewählten Zählwertzustand zum selektiven Aufteilen des
Reagierens auf Interruptsignale auf die ausgewählten Prozessoreinheiten besitzt,
wodurch ein Reagieren auf Interrupts bei dem Vorhandensein eines Satzes aus einer oder
mehreren ähnlichen Prozessoreinheiten in dem Prozessorabschnitt bereitgestellt werden
kann.
9. Digitales Datenprozessorgerät nach Anspruch 8, bei dem die Prozessoreinheit
eine Verbindereinrichtung mit mehreren Kontakten zum abnehmbaren und
austauschbaren Verbinden mit dem Computersystem aufweist, wobei die Initialisierungseinrichtung
(136) eine digitale Logikeinrichtung enthält, die mit ausgewählten Kontakten der
Verbindereinrichtung für die Bereitstellung des ausgewählten
Initialisierungs-Zählwertzustands als Reaktion auf einen Signalsatz, der über die ausgewählten Kontakte empfangen
wird, verbunden ist.
10. Digitales Datenprozessorgerät nach Anspruch 8, bei dem die
Verteilungszählereinrichtung (76) weiterhin enthält
A. eine Einrichtung zum Empfangen einer Größeninformation, die die Anzahl
von Prozessoreinheiten (20, 22, 48, 50) in deren Satz identifiziert, von dem
Busabschnitt (18), und
B eine Einrichtung zum Ändern einer Schrittfolge derselben als Reaktion auf
die Größeninformation, so daß der Zählstand der Zählereinrichtung zyklisch mit einer
Anzahl von Zähischritten umläuft, die von der Größeninformation abhängt.
11. Digitales Datenprozessorgerät nach Anspruch 8, mit
A. einer Einrichtung, die auf einen Status einer Prozessoreinheit zum Erzeugen
eines Prozessor-Leerlaufsignals unter ausgewählten Bedingungen anspricht, und
B. bei dem die auf den Interrupt ansprechende Einrichtung eine
Legikeinrichtung enthält, die mit der Verteilungszählereinrichtung (76) zum Bereitstellen des
Inteirupt-Aktivierungssignals als Reaktion auf irgendeinen irgendeines aus dem ersten
ausgewählten Zählzustand und dem Prozessor-Leerlaufsignal verbunden ist.
12. Digitales Datenprozessorgerät nach Anspruch 1, mit
A. einer Verteilungszählereinrichtung (76) in jeder der ersten und zweiten
Prozessoreinheiten (20. 48) zum Bereitstellen eines Verteilungszählstands für diese
Prozessoreinheit,
B. wobei jede Verteilungszählereinrichtung eine Einrichtung zum Reagieren auf
System-Zeitsteuersignale für das schrittweise Fortschalten von deren Zählwert enthält,
C. einer Initialisierungseinrichtung (136) in jeder aus der ersten und der
zweiten Prozessoreinheit zum Anlegen eines Initialisierungs-Zählwertzustands an deren
Verteilungszählereinrichtung, wobei sich der Initialisierungs-Zählwertzustand von
demjenigen unterscheidet, der an andere Prozessoreinheiten angelegt wird, so daß jede
Prozessor-einheit einen gegenüber demjenigen von anderen unterschiedlichen
Verteilungszählwert zu jedem beliebigen Betriebszeitpunkt aufweist, und
D. einer Aktivierungseinrichtung in jeder aus der ersten und der zweiten
Prozessoreinheit für die Aktivierung dieser Einheit zur Durchführung von
Prozessorabschnitttasks lediglich als Reaktion auf einen ausgewählten Verteilungszählstand.
13. Digitales Datenprozessorgerät nach Anspruch 1, mit
A. einer Verteilungszählereinrichtung (76) in jeder aus der ersten und der
zweiten Prozessoreinheit für die Bereitstellung eines Verteilungszählstands für diese
Prozessoreinheit, wobei jede Prozessoreinheit einen Verteilungszählstand aufweist, der sich zu
jedem beliebigen Betriebszeitpunkt von demjenigen anderer unterscheidet, und zum
Reagieren auf System-Zeitsteuersignale für das schrittweise Fortschalten von deren
Zählstand synchron mit dem anderen, und
B. einer Verteilungsdekodiereinrichtung in jeder aus der ersten und der zweiten
Prozessoreinheit von denen jede auf einen ausgewählten Verteilungszählstand zur
Aktivierung dieser Prozessoreinheit für eine Durchführung von Prozessorabschnitts-Tasks zu
einem Zeitpunkt, der sich von demjenigen der anderen Prozessoreinheit unterscheidet
reagiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/927,746 US4816990A (en) | 1986-11-05 | 1986-11-05 | Method and apparatus for fault-tolerant computer system having expandable processor section |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3751853D1 DE3751853D1 (de) | 1996-08-08 |
DE3751853T2 true DE3751853T2 (de) | 1997-02-27 |
Family
ID=25455185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3751853T Expired - Lifetime DE3751853T2 (de) | 1986-11-05 | 1987-11-04 | Vorrichtung für ein fehlertolerantes Rechnersystem mit erweiterungsfähigem Prozessorabschnitt |
Country Status (5)
Country | Link |
---|---|
US (1) | US4816990A (de) |
EP (1) | EP0267011B1 (de) |
JP (2) | JP2623261B2 (de) |
AT (1) | ATE140088T1 (de) |
DE (1) | DE3751853T2 (de) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0394514B1 (de) * | 1989-04-25 | 1994-07-13 | Siemens Aktiengesellschaft | Verfahren zur Synchronisation von Datenverarbeitungsanlagen |
US5144692A (en) * | 1989-05-17 | 1992-09-01 | International Business Machines Corporation | System for controlling access by first system to portion of main memory dedicated exclusively to second system to facilitate input/output processing via first system |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5113522A (en) * | 1989-05-17 | 1992-05-12 | International Business Machines Corporation | Data processing system with system resource management for itself and for an associated alien processor |
US5303352A (en) * | 1989-11-06 | 1994-04-12 | Zenith Data Systems Corporation | Dual connector port for bus master card |
US6038584A (en) * | 1989-11-17 | 2000-03-14 | Texas Instruments Incorporated | Synchronized MIMD multi-processing system and method of operation |
US5193187A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
US5239629A (en) * | 1989-12-29 | 1993-08-24 | Supercomputer Systems Limited Partnership | Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system |
US5168570A (en) * | 1989-12-29 | 1992-12-01 | Supercomputer Systems Limited Partnership | Method and apparatus for a multiple request toggling priority system |
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
JPH07101410B2 (ja) * | 1990-01-17 | 1995-11-01 | インターナショナル、ビジネス、マシーンズ、コーポレーション | データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法 |
US5459836A (en) * | 1990-02-09 | 1995-10-17 | Unisys Corporation | Inter-processor communication net |
US5291608A (en) * | 1990-02-13 | 1994-03-01 | International Business Machines Corporation | Display adapter event handler with rendering context manager |
US5261089A (en) * | 1990-05-16 | 1993-11-09 | International Business Machines Corporation | Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary |
US5165031A (en) * | 1990-05-16 | 1992-11-17 | International Business Machines Corporation | Coordinated handling of error codes and information describing errors in a commit procedure |
JP3293839B2 (ja) * | 1990-05-16 | 2002-06-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム |
US5276876A (en) * | 1990-05-16 | 1994-01-04 | International Business Machines Corporation | Registration of resources for commit procedures |
JP2691081B2 (ja) * | 1990-05-16 | 1997-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・ネットワーク |
US5319774A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Recovery facility for incomplete sync points for distributed application |
US5327532A (en) * | 1990-05-16 | 1994-07-05 | International Business Machines Corporation | Coordinated sync point management of protected resources |
US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
US5179707A (en) * | 1990-06-01 | 1993-01-12 | At&T Bell Laboratories | Interrupt processing allocation in a multiprocessor system |
US5220668A (en) * | 1990-09-21 | 1993-06-15 | Stratus Computer, Inc. | Digital data processor with maintenance and diagnostic system |
JPH04246763A (ja) * | 1991-01-31 | 1992-09-02 | Nec Corp | マルチプロセッサ回路 |
US6247144B1 (en) * | 1991-01-31 | 2001-06-12 | Compaq Computer Corporation | Method and apparatus for comparing real time operation of object code compatible processors |
JP2625589B2 (ja) * | 1991-04-22 | 1997-07-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システム |
US5257383A (en) * | 1991-08-12 | 1993-10-26 | Stratus Computer, Inc. | Programmable interrupt priority encoder method and apparatus |
US5379381A (en) * | 1991-08-12 | 1995-01-03 | Stratus Computer, Inc. | System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations |
US5506964A (en) * | 1992-04-16 | 1996-04-09 | International Business Machines Corporation | System with multiple interface logic circuits including arbitration logic for individually linking multiple processing systems to at least one remote sub-system |
US5434997A (en) * | 1992-10-02 | 1995-07-18 | Compaq Computer Corp. | Method and apparatus for testing and debugging a tightly coupled mirrored processing system |
US5493655A (en) * | 1993-02-20 | 1996-02-20 | Acer Incorporated | Method and apparatus for upgrading a data processing system from a single processor system to a multiprocessor system |
US5490279A (en) * | 1993-05-21 | 1996-02-06 | Intel Corporation | Method and apparatus for operating a single CPU computer system as a multiprocessor system |
US5630056A (en) | 1994-09-20 | 1997-05-13 | Stratus Computer, Inc. | Digital data processing methods and apparatus for fault detection and fault tolerance |
KR0155269B1 (ko) * | 1995-01-16 | 1998-11-16 | 김광호 | 버스 중재방법 및 그 장치 |
US5692121A (en) * | 1995-04-14 | 1997-11-25 | International Business Machines Corporation | Recovery unit for mirrored processors |
US6564278B1 (en) * | 1999-10-21 | 2003-05-13 | Ulysses Esd, Inc. | System and method for obtaining board address information |
US6687851B1 (en) | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
US6708283B1 (en) | 2000-04-13 | 2004-03-16 | Stratus Technologies, Bermuda Ltd. | System and method for operating a system with redundant peripheral bus controllers |
US6691257B1 (en) | 2000-04-13 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Fault-tolerant maintenance bus protocol and method for using the same |
US6735715B1 (en) | 2000-04-13 | 2004-05-11 | Stratus Technologies Bermuda Ltd. | System and method for operating a SCSI bus with redundant SCSI adaptors |
US6820213B1 (en) | 2000-04-13 | 2004-11-16 | Stratus Technologies Bermuda, Ltd. | Fault-tolerant computer system with voter delay buffer |
US6633996B1 (en) | 2000-04-13 | 2003-10-14 | Stratus Technologies Bermuda Ltd. | Fault-tolerant maintenance bus architecture |
US6691225B1 (en) | 2000-04-14 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Method and apparatus for deterministically booting a computer system having redundant components |
US6948010B2 (en) | 2000-12-20 | 2005-09-20 | Stratus Technologies Bermuda Ltd. | Method and apparatus for efficiently moving portions of a memory block |
US6766479B2 (en) | 2001-02-28 | 2004-07-20 | Stratus Technologies Bermuda, Ltd. | Apparatus and methods for identifying bus protocol violations |
US7065672B2 (en) * | 2001-03-28 | 2006-06-20 | Stratus Technologies Bermuda Ltd. | Apparatus and methods for fault-tolerant computing using a switching fabric |
US6928583B2 (en) * | 2001-04-11 | 2005-08-09 | Stratus Technologies Bermuda Ltd. | Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep |
US6996750B2 (en) * | 2001-05-31 | 2006-02-07 | Stratus Technologies Bermuda Ltd. | Methods and apparatus for computer bus error termination |
US20060112208A1 (en) * | 2004-11-22 | 2006-05-25 | International Business Machines Corporation | Interrupt thresholding for SMT and multi processor systems |
DE102007049004A1 (de) * | 2007-10-12 | 2009-04-16 | Fujitsu Siemens Computers Gmbh | Serverschrank, Server, sowie Verfahren zur Erzeugung einer digitalen Kennung eines Servers in einem Serverschrank |
US7453910B1 (en) * | 2007-12-18 | 2008-11-18 | International Business Machines Corporation | Synchronization of independent clocks |
JP2009205258A (ja) * | 2008-02-26 | 2009-09-10 | Toshiba Corp | 半導体集積回路 |
IT1391785B1 (it) * | 2008-11-21 | 2012-01-27 | St Microelectronics Srl | Sistema elettronico per il rilevamento di un guasto |
US8972767B2 (en) * | 2012-11-16 | 2015-03-03 | Oracle International Corporation | Method and apparatus for synchronizing the time reference of a dynamically activated processor to the system time reference |
US10063567B2 (en) | 2014-11-13 | 2018-08-28 | Virtual Software Systems, Inc. | System for cross-host, multi-thread session alignment |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3469239A (en) * | 1965-12-02 | 1969-09-23 | Hughes Aircraft Co | Interlocking means for a multi-processor system |
US3544973A (en) * | 1968-03-13 | 1970-12-01 | Westinghouse Electric Corp | Variable structure computer |
AT285689B (de) * | 1968-03-29 | 1970-11-10 | Siemens Ag | Zentralgesteuerte Vermittlungsanlage der Fernmelde-, insbesondere Fernsprechtechnik |
US3548382A (en) * | 1968-06-10 | 1970-12-15 | Burroughs Corp | High speed modular data processing system having magnetic core main memory modules of various storage capacities and operational speeds |
US3641505A (en) * | 1969-06-25 | 1972-02-08 | Bell Telephone Labor Inc | Multiprocessor computer adapted for partitioning into a plurality of independently operating systems |
US3768074A (en) * | 1972-05-12 | 1973-10-23 | Burroughs Corp | Multiprocessing system having means for permissive coupling of different subsystems |
US3812463A (en) * | 1972-07-17 | 1974-05-21 | Sperry Rand Corp | Processor interrupt pointer |
US4112488A (en) * | 1975-03-07 | 1978-09-05 | The Charles Stark Draper Laboratory, Inc. | Fault-tolerant network with node branching |
US4015246A (en) * | 1975-04-14 | 1977-03-29 | The Charles Stark Draper Laboratory, Inc. | Synchronous fault tolerant multi-processor system |
US4015243A (en) * | 1975-06-02 | 1977-03-29 | Kurpanek Horst G | Multi-processing computer system |
JPS5837585B2 (ja) * | 1975-09-30 | 1983-08-17 | 株式会社東芝 | ケイサンキソウチ |
US4014005A (en) * | 1976-01-05 | 1977-03-22 | International Business Machines Corporation | Configuration and control unit for a heterogeneous multi-system |
US4032893A (en) * | 1976-01-23 | 1977-06-28 | Sperry Rand Corporation | Reconfigurable data bus |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
IT1111606B (it) * | 1978-03-03 | 1986-01-13 | Cselt Centro Studi Lab Telecom | Sistema elaborativo modulare multiconfigurabile integrato con un sistema di preelaborazione |
US4257095A (en) * | 1978-06-30 | 1981-03-17 | Intel Corporation | System bus arbitration, circuitry and methodology |
US4263649A (en) * | 1979-01-05 | 1981-04-21 | Mohawk Data Sciences Corp. | Computer system with two busses |
JPS6048787B2 (ja) * | 1979-06-05 | 1985-10-29 | 日本電気株式会社 | 情報処理装置 |
JPS5621218A (en) * | 1979-07-30 | 1981-02-27 | Nec Corp | Harmonizer for competitive signal |
US4428044A (en) * | 1979-09-20 | 1984-01-24 | Bell Telephone Laboratories, Incorporated | Peripheral unit controller |
US4326250A (en) * | 1979-10-10 | 1982-04-20 | Magnuson Computer Systems, Inc. | Data processing apparatus with serial and parallel priority |
US4304001A (en) * | 1980-01-24 | 1981-12-01 | Forney Engineering Company | Industrial control system with interconnected remotely located computer control units |
US4342083A (en) * | 1980-02-05 | 1982-07-27 | The Bendix Corporation | Communication system for a multiple-computer system |
US4323966A (en) * | 1980-02-05 | 1982-04-06 | The Bendix Corporation | Operations controller for a fault-tolerant multiple computer system |
DE3170828D1 (en) * | 1980-07-08 | 1985-07-11 | Thomson Csf Mat Tel | Method and apparatus for arbitrating between a plurality of sub-systems |
WO1982003931A1 (en) * | 1981-04-27 | 1982-11-11 | Kris Bryan | Multi-master processor bus |
JPS5858672A (ja) * | 1981-07-24 | 1983-04-07 | テキサス・インストルメンツ・インコ−ポレ−テツド | 再構成可能集積回路 |
JPS6012666B2 (ja) * | 1981-07-24 | 1985-04-02 | 株式会社日立製作所 | 分散形優先競合の自己制御方法および装置 |
US4486826A (en) * | 1981-10-01 | 1984-12-04 | Stratus Computer, Inc. | Computer peripheral control apparatus |
US4467436A (en) * | 1981-10-26 | 1984-08-21 | United States Robots, Inc. | Robot arm controller with common bus memory |
US4484273A (en) * | 1982-09-03 | 1984-11-20 | Sequoia Systems, Inc. | Modular computer system |
US4608631A (en) * | 1982-09-03 | 1986-08-26 | Sequoia Systems, Inc. | Modular computer system |
JPS59158151A (ja) * | 1983-02-28 | 1984-09-07 | Fujitsu Ltd | ポ−リング制御方式 |
GB8310003D0 (en) * | 1983-04-13 | 1983-05-18 | Gen Electric Co Plc | Input signal handling apparatus |
DE3334797A1 (de) * | 1983-09-26 | 1985-01-03 | Siemens AG, 1000 Berlin und 8000 München | Multiprozessor-rechner, insbesondere multiprozessor-zentralsteuereinheit eines fernsprech-vermittlungssystems |
DE3334765A1 (de) * | 1983-09-26 | 1985-04-11 | Siemens AG, 1000 Berlin und 8000 München | Pruefungseinrichtung zur fehlererkennung bei gedoppelten schaltungen, insbesondere prozessoren eines fernsprechvermittlungssystems |
DE3482810D1 (de) * | 1983-09-27 | 1990-08-30 | Trw Inc | Multi-master-uebertragungsbus. |
JPS60146350A (ja) * | 1984-01-11 | 1985-08-02 | Hitachi Ltd | 通信制御装置 |
US4658353A (en) * | 1984-11-20 | 1987-04-14 | Burroughs Corporation | System control network for multiple processor modules |
-
1986
- 1986-11-05 US US06/927,746 patent/US4816990A/en not_active Expired - Lifetime
-
1987
- 1987-11-04 EP EP87309735A patent/EP0267011B1/de not_active Expired - Lifetime
- 1987-11-04 AT AT87309735T patent/ATE140088T1/de active
- 1987-11-04 DE DE3751853T patent/DE3751853T2/de not_active Expired - Lifetime
- 1987-11-05 JP JP62278458A patent/JP2623261B2/ja not_active Expired - Lifetime
-
1996
- 1996-11-22 JP JP8325843A patent/JP3071151B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2623261B2 (ja) | 1997-06-25 |
JPS63220353A (ja) | 1988-09-13 |
JP3071151B2 (ja) | 2000-07-31 |
EP0267011A2 (de) | 1988-05-11 |
US4816990A (en) | 1989-03-28 |
EP0267011A3 (en) | 1990-01-31 |
DE3751853D1 (de) | 1996-08-08 |
EP0267011B1 (de) | 1996-07-03 |
JPH09198359A (ja) | 1997-07-31 |
ATE140088T1 (de) | 1996-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3751853T2 (de) | Vorrichtung für ein fehlertolerantes Rechnersystem mit erweiterungsfähigem Prozessorabschnitt | |
DE2856483C2 (de) | ||
DE3779694T2 (de) | Rechnernetzwerksystem. | |
DE3204905C2 (de) | ||
DE69334172T2 (de) | Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph | |
DE3300261C2 (de) | ||
DE69126685T2 (de) | Gerät zur Verbindung elektronischer Geräte | |
DE3238532C2 (de) | ||
DE3752205T2 (de) | Multiprozessor-Busprotokoll | |
DE68920375T2 (de) | Zeitmultiplex-Anordnung. | |
DE69123952T2 (de) | Rechneradressierungseinrichtung | |
EP0952520B1 (de) | Vorrichtung zur fehlertoleranten Ausführung von Programmen | |
DE2755952C2 (de) | ||
DE3820544C2 (de) | Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon | |
DE3686335T2 (de) | Verbindungsanlage fuer eine programmierbare steuerung. | |
DE69021186T2 (de) | "Master-Slave" industrielles Netzwerk mit Tokenübergabe. | |
DE3301628A1 (de) | Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern | |
DE3049774C2 (de) | ||
DE69129840T2 (de) | Nachrichtensteuerungsverfahren für ein datenkommunikationssystem | |
DE69325246T2 (de) | Synchrone Vorrichtung und Verfahren für mehrere Prozessoren zur parallelen Ausführung mehrerer Programme | |
DE3013070C2 (de) | Schaltungsanordnung zur Bearbeitung von aus mehreren peripheren Geräten herangeführten Anforderungssignalen innerhalb einer datenverarbeitenden Einrichtung | |
DE3687172T2 (de) | Multiplexuebertragungssystem. | |
DE69129842T2 (de) | Nachrichtensteuersystem in einem datenübertragungssystem | |
EP0509114B1 (de) | Verfahren zum Übertragen von Daten an mehrere Datenstationen | |
DE2312461A1 (de) | Schaltungsanordnung zur verbindung einer datenverarbeitungseinheit mit einer vielzahl von uebertragungsleitungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: KRAMER - BARSKE - SCHMIDTCHEN, 81245 MUENCHEN |