DE3606211A1 - Multiprozessor-computersystem - Google Patents

Multiprozessor-computersystem

Info

Publication number
DE3606211A1
DE3606211A1 DE19863606211 DE3606211A DE3606211A1 DE 3606211 A1 DE3606211 A1 DE 3606211A1 DE 19863606211 DE19863606211 DE 19863606211 DE 3606211 A DE3606211 A DE 3606211A DE 3606211 A1 DE3606211 A1 DE 3606211A1
Authority
DE
Germany
Prior art keywords
devices
bus
data
memory
module
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.)
Withdrawn
Application number
DE19863606211
Other languages
English (en)
Inventor
John R Bartlett
Stephen S Corbin
Trevor A Creary
David E Ford
Steven J Frank
Brian D Gill
Russell L Moore
Charles S Namias
Mark J Natale
David J Schanin
David W Zopf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Encore Computer Corp
Original Assignee
Encore Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Encore Computer Corp filed Critical Encore Computer Corp
Publication of DE3606211A1 publication Critical patent/DE3606211A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

HOEGER, STELL-REGHTa -PARTNER 360621
PATENTANWÄLTE UHLANDSTRASSE 14 c ■ D 7000 STUTTGART 1
- 10 -
A 46 929 b Anmelder: ENCORE COMPUTER CORPORATION k - 176 257 Cedar Hill Street
24. Februar 1986 Marlboro, Massachusetts 01752
U.S.A.
Multiprozessor-Computersystem
Die Erfindung betrifft ein Multiprozessor-Computersystem, d.h. ein Computer- bzw. Rechnersystem mit mehreren, eng miteinander gekoppelten Prozessoren.
Die derzeitigen Enwicklungen in der Computer-Industrie zeigen einen immer stärker zunehmenden Trend in Richtung auf größere und raffiniertere Computersysteme. Diese Enwicklungen wurden in vielen Fällen durch die höhere Geschwindigkeit und die geringeren Kosten der elektronischen Schaltungen ermöglicht. Ferner wurde eine größere Leistungsfähigkeit der Systeme durch eine verbesserte Organisation derselben erreicht. Hinsichtlich der verbesserten Organisation sind dabei besonders die Multiprozessor-Computersysteme zu erwähnen, in denen mehrere autonome Prozessor-Einheiten bzw. -Module durch Arbeitsteilung gemeinsam erhebliche Rechenleistungen erbringen.
Im Verlauf der Jahre wurden viele verschiedene Typen von Multiprozessor-Konfigurationen entwickelt. Tat-
-1 1-
A 46 929 b
k - 176 - 11 -
24. Februar 1986
sächlich bieten heute zahlreiche Anbieter von großen Rechenanlagen und einige Hersteller von Minicomputern Systeme mit 2' bis 4 Prozessoren an. Derzeit sind diese Strukturen wegen der hohen Kosten der typischen Prozessoren noch teuer in der Herstellung. Aus diesem Grund haben Multiprozessor-Computersysteme hauptsächlich dort Eingang gefunden, wo es um eine hohe Verfügbarkeit der Rechenkapazität geht, beispielsweise in Kommunikationssystemen, im Bankwesen und für Reservierungen bei Fluglinien.
Ein weiterer Grund für die Bereitstellung von Multiprozessor- Anordnungen besteht darin, die Rechenleistung und -geschwindigkeit durch den Einsatz mehrerer Prozessor-Einheiten zu erhöhen, welche parallel arbeiten, so daß ein Datendurchsatz erreicht wird, der größer ist als bei irgendeinem Einzelprozessor, selbst wenn dieser mit hoher Geschwindigkeit arbeitet. Viele Algorithmen und Rechenoperationen, die typischerweise auf Digitalrechnern durchgeführt werden, können im Parallelbetrieb durchgeführt werden.Da die Kosten.bei zunehmender Prozessorgeschwindigkeit steil über eine vorgegebene Marke ansteigen, lässt es sich ferner zeigen, daß ein Datendurchsatz ,der über einem entsprechenden Niveau liegt, wirtschaftlicher durch die Verwendung einer größeren Anzahl von relativ langsamen Prozessoren erreicht werden kann als durch Erhöhung der Geschwindigkeit eines einzigen Prozessors. Im Hinblick auf die hohe Entwicklungsgeschwindigkeit bei Mikroprozessoren ist
-12-
A 46 929 b
k - 176 - 12 -
24. Februar 1986
außerdem die Anzahl der problematischen Anwendungen, bei denen bei der Verarbeitung der Daten in einem einzigen Strom eine Leistung verlangt wird, die die Leistungsfähigkeit eines Einzelprozessors überschreitet, bereits ziemlich klein und wird weiter schrumpfen.
Einige der Vorteile, die man durch den Einsatz von MuItiprozessoren erreicht, werden durch beträchliche Nachteile hinsichtlich der Flexibilität des Systems und durch Erschwernisse bei der Programmierung erkauft. Diese Nachteile sind typischerweise auf die hierarchische Organisation der Prozessoren zurückzuführen. Eine charaktertistische Schwäche, die häufig zu Problemen hinsichtlich der Zuverlässigkeit führt, ist dabei die übliche organisatorische Anordnung,gemäß welcher jede Kommunikationslinie und jede Ein/Ausgabevorrichtung einem ganz bestimmten Prozessor zugeordnet ist. Ein Versagen dieses einen Prozessores führt nämlich in diesem Fall dazu, daß das ganze System nicht mehr in der Lage ist, die ihm insgesamt zugedachten Aufgaben zu erfüllen.
Bei Multiprozessor-Systemen gibt es derzeit zwei typische Möglichkeiten, die Einzelprozessoren zu koppeln. Bei einem Multiprozessor-System mit eng gekoppelten Prozessoren läuft jeder Prozessor in einen geschlossenen Rechnenbereich, der aus einem Prozessor, einem "privaten" Speicher, einer Ein/Ausgabe-Schnittstelle
-13-
A 46 929 b
k - 176 - 13 -
24. Februar 1986
und einem separaten Betriebssystem besteht. In einem solchen System sind die Flexibilität und die Leistungsfähigkeit deshalb begrenzt, weil jeder Prozessor so isoliert arbeitet, als ob er ein unabhängiges System in einem schnellen Netzwerk wäre. Außerdem besteht keine Möglichkeit, mehr als einen Prozessor effektiv für dieselbe Aufgabe einzusetzen, wenn man nicht in Kauf nehmen möchte, daß bei jeder Umschaltung große Mengen von Daten und Begleitinformationen übertragen werden müssen. Es bestehen also Einschränkungen hinsichtlich der Möglichkeit des dynamischen Einsatzes mehrerer Prozessoren, wenn die Bearbeitung bestimmter Daten schnell geändert werden soll.
Bei Multiprozessor-System mit eng gekoppelten Prozessoren ist letzteren ein gemeinsamer Bus, ein gemeinsamer Speicher und ein gemeinsames Betriebssystem zugeordnet, und auch die Ein/Ausgabeeinrichtungen sind mit allen Prozessoren gekoppelt. Bei einer derartigen Architektur wird lediglich ein Exemplar des Betriebssystems für Hunderte von Prozessen benötigt, die auf einer großen Anzahl von einzelnen Mikroprozessoren laufen. Sämtliche Prozessoren - und Prozesse - teilen sich dabei den Zugriff zum gesamten Hauptspeicher, zum gesamten Netzwert, zu sämtlichen Ein/Ausgabe-Schnittstellen und zum gesamten Massenspeicher. Dieser Time-sharing-Betrieb gestattet eine maximale Nutzung der verfügbaren Prozessoren mit einem minimalen Anteil an ungenütztem Speicherplatz und an nicht genutzter Bus-Bandbreite, da im
-14-
A 46 929 b
k - 176 . - 14 -
24. Februar 1986
Hinblick auf den zeitlich gestaffelten, gemeinsamen Zugriff nur in geringstem Umfang eine Mehrfach-Speicherung von Daten und eine Umspeicherung von Begleitinformationen erforderlich ist. In einem solchen System kann jeder Prozessor jederzeit für jeden Prozess eingesetzt werden. Die enorme Flexibilität dieser Ausgestaltung zahlt sich in einer besseren Verfügbarkeit der Rechenleistung, in größeren Erweiterungsmöglich- . keiten und in einem stark erweiterten Bereich von Anwendungsmöglichkeiten aus.
Bei der Gestaltung eines Multiprozessor-Systems sollten verschiedene Überlegungen berücksichtigt werden, um ein maximales Leistungsniveau zu erreichen. Einer dieser Faktoren besteht darin, daß ein bestimmter Anbieter eine angemessene Vielfalt von Multiprozessor-Systemen bereithalten sollte. Diese Vielfalt sollte dabei sowohl die Leistung als auch die Kosten berücksichtigen. Wenn man unter einer begrenzten Zahl von Familienmitgliedern einer Computerfamilie wählen muß, gibt es dagegen häufig keine befriedigende Lösung, da es teuer ist, verschiedene Computerfamilienmitglieder zu entwerfen und zu entwickeln.
Eine weitere wichtige Überlegung beim Entwurf eines Multiprozessor-Computersystems besteht darin, daß beim Aufbau des Systems aus einer Anzahl von unterschiedlichen Modul-Typen, wie z.B. Prozessoren, Ein/Ausgabe-
-15-
A 46 929 b
k - 176 - 15 -
24. Februar 1986
einrichtungen und Speichermodulen das Versagen eines dieser Module nicht zu einem Versagen des Multiprozessor-Computersystems führen sollte. Im Idealfall sollten geeignete Programme die Möglichkeit bieten, fehlerhafte Module bzw. deren Funktion nachzubilden und die Module selbst außer Betrieb zu setzen, so daß eine Fortsetzung des Betriebes mit minimaler Ausfallzeit ermöglicht wird.
Um die Entwicklungskosten für ein Multiprozessor-System so niedrig wie möglich zu halten, ist es ferner wichtig, daß das Multiprozessor-Computersystem nicht aus einer großen Anzahl von einmaligen Karten aufgebaut ist, wie sie in einem typischen Mini-Computer vorhanden sind. Stattdessen sollte das Multiprozessor-Computersystem aus zahlreichen Exemplaren einer kleinen Anzahl von Modulen aufgebaut sein, was eine schnellere und billigere Entwicklung gestattet, wobei die einzelnen Modul-Typen in großen Stückzahlen hergestellt werden können, was gegenüber älteren Technologien Fortschritte hinsichtlich der Fertigungskosten mit sich bringt.
Bei jedem Multiprozessor-System, bei dem die Leistung und die Flexibilität von äußerster Bedeutung sind, muß derjenige Bus, welcher die verschiedenen Module des Systems verbindet, eine sehr hohe Datenübertragungsgeschwindigkeit besitzen. Bei einem solchen System muß außerdem dafür gesorgt werden, daß die Entscheidung über den Zugriff zum Bus durch einen als Schiedsrichter fungierenden,sogenannten Arbiter-Modul derart fair
-16-
A 46 929 b
k - 176 - 16 -
24. Februar 1986
geregelt ist, daß jeder Modul eine vernünftige Chance auf Zugriff zum Bus bekommt. Zur Erzielung einer hohen Datenübertragungsrate ist es im allgemeinen ferner vorteilhaft, wenn der Bus ein sogenannter "aufgehängter (pended)" Bus ist, d.h. ein Bus mit einer Struktur, welche es gestattet, daß der Abruf von Informationen zeitlich von den daraufhin gegebenen Antworten getrennt wird. Eine derartige Arbeitsweise, bei der ein- " zelne Teile gewisser Operationen "in der Schwebe" bleiben, ermöglicht die Kommunikation einer Anzahl von relativ langsamen Vorrichtungen, wie z.B. Prozessoren, mit anderen langsamen Modulen, wie z.B. den Hauptdatenspeichern, ohne daß die Bandbreite eines Busses schlecht ausgenutzt würde, der für höhere Datenübertragungsgeschwindigkeiten geeignet ist als jede einzelne angeschlossene Einheit. Wenn man aber gewisse Anfragenin der Schwebe lässt, werden sie durch die Kennung der anfragenden Einheit ergänzt und dann bei der ersten sich bietenden Gelegenheit zu dem dafür vorgesehenen Empfänger übertragen. Wenn der Empfänger dann einige Zeit später die Antwort liefert, wird diese wieder mit der Kennung der anfragenden Einheit versehen. Dabei"bemerkt"keiner der Teilnehmer an diesem Informationsaustausch, daß zwischen der Anfrage bzw. Anforderung und deren Beantwortung bzw. Erledigung zahlreiche andere Operationen zwischen anderen Sendeeinheiten und Empfangseinheiten abgewickelt wurde.
Bei jedem Computer-System, welches mehr als einen
-17-
A 46 929 b
k - 176 - 17 -
24. Februar 1986
Prozessor enthält, besteht außerdem das Bedürfnis, daß jeder Prozessor in der Lage ist, am Speicher automatische Prüf- und Einstelloperationen durchzuführen. Eine auf der Hand liegende Möglichkeit, diese automatischen Operationen zu gewährleisten, besteht darin, den Pfad zum Speicher, d.h. den Bus jeweils für einen gesamten Lese-Änderungs-Schreib-Operationszyklus bereitzustellen. In einem leistungsempfindlichen System ist dies eindeutig unerwünscht. Bei einem "aufgehängten" Bus bzw. einem Bus, der in der Schwebe gehalten wird und bei dem die Lesezyklen mit anderen Busoperationen verschachtelt sind, kann ein solcher Weg zum Speicher nicht fest/geschaltet bleiben. Im Ergebnis wird also ein externes Verfahren benötigt, um eine Speicherstelle zu sperren. Da die Speicher bei einem System gemäß der Erfindung nach Art eines Banksystems verschachtelt sind, ist es aber möglich, eine Speicherbank des Banksystems zu sperren. Bei gegebener Größe der Speicherbank ist jedoch ein Sperren des Speichers für einen Bereich von 4 Mbyte unerwünscht.
Ausgehend vom Stand der Technik und der vorstehend aufgezeigten Problematik liegt der Erfindung die Aufgabe zugrunde, ein flexibles und wirtschaftliches Multiprozessor-Computersystem anzugeben, welches eine große Zahl von einzelnen Prozessoren enthalten kann. Dabei wird gleichzeitig angestrebt, daß die einzelnen Prozessoren eng miteinander gekoppelt sind.
-18-
A 46 929 b
k - 176 - 18 -
24. Februar 1986
Diese Aufgabe wird bei einem erfindungsgemäßen Multiprozessor-Computersystem gemäß der Erfindung durch die Merkmale des Kennzeichenteils des- Patentanspruchs 1 gelöst.
Es ist ein Vorteil des erfindungsgemäßen Systems, daß der Anwender das für seine Bedürfnisse richtige Niveau der Leistung bzw. des Preises auswählen kann, ohne auf eine Auswahl unter einer begrenzten Anzahl von Computer-Familienmitgliedern beschränkt zu sein.
Es ist ein weiterer Vorteil des erfindungsgemäßen Systems, daß es aufgrund der Verwendung einer kleinen Anzahl von Modul-Typen, welche außer Betrieb gesetzt werden könnnen, ohne den Rest des Systems zu beeinträchtigen, von vornherein eine hohe Zuverlässigkeit besitzt.
Es ist auch ein Vorteil des erfindungsgemäßen Systems, daß Vektor-Interrupt-Signale ohne längere Belegung von Daten- und/oder Adressenbussen übertragen werden können.
Ein weiterer Vorteil des erfindungsgemäßen Systems besteht darin, daß jeweils zahlreiche Examplare einer kleinen Anzähl von Module vorhanden sind.
Ein weiterer Vorteil des Systems gemäß der Erfindung besteht darin, daß es durch Verbindung mit einem
-19-
A 46 929 b
k - 176 - 19
24. Februar 1986
anderen, ähnlich aufgebauten Multiprozessor-Computersystem erweitert werden kann.
Ein weiterer Vorteil des erfindungsgemäßen Systems besteht darin, daß ein Systembus mit sehr hohen Datenübertragungsmöglichkeiten vorgesehen werden kann.
Es ist auch ein Vorteil des erfindungsgemäßen Systems, daß es ein Speichersystem aufweist, bei dem ohne Blockierung des Systembusses automatische Prüf- und Einstelloperationen durchgeführt werden können.
Allgemein gesagt umfasst ein Multiprozessor-Computersystem gemäß der Erfindung ein oder mehrere Examplare einer Anzahl von ausgewählten Modulen. Ein Prozessor-Modul umfasst dabei mindestens einen Prozessor, der unabhängig mit den übrigen Komponenten des Systems zusammenwirken kann. Ein System kann eine Anzahl dieser Module enthalten. Das System bewältigt ein Versagen eines dieser Module oder eines der Prozessoren eines dieser Module durch "logisches" Ausblenden des Moduls oder Prozessors aus dem System. Jeder dieser Prozessor-Module umfasst außerdem einen Cache-Speicher, welcher häufig benötigte Befehle und Daten speichert. Der Cache-Speicher verringert die Daten-Zugriffszeit erheblich, während gleichzeitig infolge der geringeren Anzahl von Anforderungen, die über den Bus übertragen werden, die Busbelegung beträchtlich reduziert wird.
-20-
A 46 929 b
k - 176 - 20 -
24. Februar 1986
Dabei kann der Cache-Speicher entweder ein sogenannter Durchschreib-Cache-Speicher oder ein Nicht-Durchschreib-Cache-Speicher sein.
Speicher-Module, welche im Time-sharing-Betrieb allen Prozessoren der Prozessor-Module zur Verfügung stehen, halten mindestens eine unabhängige Bank von RAM-Speicher-Chips (Speicher mit wahlfreiem Zugriff) bereit. Jeder
Modul unterstützt zumindest eine vierfache Verschachtelt
telung zwischen den Modulen, so daß die Speichermodule mit der maximal möglichen Busgeschwindigkeit laufen können.
Das Schlüsselelement des Multiprozessor-Computersystems gemäß der Erfindung ist der Systembus, welcher alle Module des Systems miteinander verbindet. Dieser Bus umfasst in der Praxis vier getrennte Busse, nämlich einen Datenbus, einen Adressenbus, einen Vektorbus und einen Steuerbus. Verbindungen über diese Busse sind "in der Schwebe gehaltene" Verbindungen, und die parallelen, im Pipeline-Betrieb über diese Busse übertragenen Informationen bzw. Daten gestatten es diesem Bussystem, für hohe Datenübertragungsdaten zu sorgen.
Bei einem bevorzugten Ausführungsbeispiel besitzt der Systembus eine übertragungsgeschwindigkeit von 100 Mbyte/s.
Der Systemsteuer-Modul arbeitet als Kommunikations- *) bzw. Verknüpfung -21-
A 46 929 b
k - 176 - 21 -
24. Februar 1986
Clearing-Stelle, als Bus-Koordinator und als Diagnosecenter für das erfindungsgemäße Multiprozessor-Computersystem. Der Systemsteuer-Modul umfasst die sogenannten Bus-Arbiter, d.h. die Schiedsrichter- bzw. Entscheidungsstellen für den Zugriff zu Vektor-Daten- und Adressen-Bus. Der Systemsteuer-Modul umfasst ferner die Takteinheit, welche sämtliche Module des Systems mit Taktsignalen versorgt. Der Adressenbus-Arbiter unterstützt die Verringerung der mit der Bus-Leistungsfähigkeit verbundenen Probleme, indem er automatisch dafür sorgt, daß jede Schreibe- oder Lese-Anforderung, welche nicht abschließend bearbeitet wurde, weil die aufgerufene Zieleinrichtung die Anforderung nicht aufnehmen konnte, in einem RETRY-Zyklus wiederholt wird. Mit Hilfe eines Unjam-Zyklus wird ferner verhindert, daß vom Speicher zurückgelieferte Daten von dem gemeinsam benutzten Lese-Schreib-Datenbus ferngehalten werden, wenn nacheinander eine große Anzahl von Schreiboperationen auszuführen ist.
Ein Multiprozessor-System gemäß der Erfindung kann ferner Netzwerk (Ethernet)/Massenspeicher-Module sowie einen Adapter für einen industriellen Standard-Bus, wie z.B. den VME-Bus umfassen.
Das erfindungsgemäße Multiprozessor-Computersystem kann mit anderen Multiprozessor-Computersystemen über einen Großfeld-Multiprozessor (LAmP)-Schnittstellen-Modul verknüpft werden. Dieser LAmP-Schnittstellen-
-22-
A 46 929 b
k - 176 - 22 -
24. Februar 1986
Modul kann dabei einen Cache-Speicher enthalten, welcher in ähnlicher Weise arbeiten kann wie die Cache-Speicher, die den einzelnen Prozessor-Modulen zugeordnet sind. Die Bus-Arbiter behandeln alle auf dem Bus eintreffenden Anforderungen über die LAmP-Schnittsteile in ähnlicher Weise wie jede andere Anforderung, die von einem anderen Modul eintrifft, der mit dem Bus verbunden ist.
Weitere Einzelheiten und Vorteile der Erfindung werden nachstehend anhand von Zeichnungen noch näher erläutert und/oder sind Gegenstand von Unteransprüchen. Es zeigen:
Fig. 1 ein Blockdiagramm der einzelnen Komponenten einer bevorzugten Ausführungsform eines Multiprozessor-Computersystems gemäß der Erfindung;
Fig. 2 ein Blockdiagramm der Komponenten eines Prozessor-Moduls des Systems gemäß Fig.1;
Fig. 3 ein Blockdiagramm der verschiedenen Komponenten des Speicher-Moduls des Systems gemäß Fig. 1;
Fig. 4 ein Blockdiagramm der verschiedenen Komponenten des Systemsteuer-Moduls des Systems gemäß Fig. 1;
-23-
A46 929 b
k - 176 - 23 -
24. Februar 1986
Fig. 5 ein Blockdiagraitim der verschiedenen
Komponenten des Ethernet/Massenspeicher-Moduls des Systems gemäß Fig. 1;
Fig. 6 ein Blockdiagramm eines Computersystems mit mehreren Mulitprozessor-Computersystemen des in Fig. 1 gezeigten Typs;
Fig. 7 ein Blockdiagramm der Komponenten der
Schnittstellenmodule zur Verbindung der verschiedenen Multiprozessor-Systeme gemäß Fig. 6;
Fig. 8 ein Zeitdiagramm der Lese- und Schreiboperationen auf dem Bus des Multiprozessor-Systems gemäß Fig. 1;
Fig. 9a eine schematische Darstellung verschiedener Module des erfindungsgemäßen Systems zur Verdeutlichung der Arbeitsweise der Adressenbus-Arbiter-Einrichtungen des Multiprozessor-Systems gemäß Fig. 1;
Fig. 9b eine schematische Darstellung verschiedener Module des erfindungsgemäßen Multiprozessor-Systems zur Verdeutlichung des Entscheidungsablaufs bei dem Datenbus-Arbiter-Schema des Multiprozessor-Systems gemäß Fig. 1;
-24-
A 46 929 b
k - 176 . - 24 -
24. Februar 1986
Fig. 10 eine schematische Darstellung der Rückwandverdrahtung bzw. der als gedruckte Schaltung ausgebildeten Bus-Platine für eine bevorzugte Ausführungsform des Systems gemäß Fig. 1;
Fig. 11 ein Zeitdiagramm für einen Leerlauf-Zyklus des Systems gemäß Fig. 1;
Fig. 12a ein Zeitdiagramm für einen gerichteten Vektor-Interrupt-Befehl, welcher von einem Modul des Systems gemäß Fig. 1 übertragen wird;
Fig. 12b ein Zeitdiagramm eines Klassen-Vektor-Interrupt-Befehls, welcher von einem Modul des Systems gemäß Fig. 1 übertragen wird;
Fig. 13 eine schematische Darstellung der Datenworte, die mit einem Vektor gesendet werden, der von einem Modul des Systems gemäß Fig. 1 übertragen wird;
Fig. 14 eine schematische Darstellung der Datenleitungen, die bei dem Vektor-Bus-Arbiter-Schema des Systems gemäß Fig. 1 verwendet werden;
A 46 929 b
k - 176 - 25 -
24. Februar 1986
Fig. 15 zeigt Diagramme verschiedener Beispiele bis der Busbenutzung bei dem System gemäß Fig. 16 Fig. 1;
Fig. 17 eine schematische Darstellung der für
die Erzeugung von Verzögerungssignalen, wie sie in dem Zeitdiagramm gemäß Fig.16 gezeigt sind, erforderlichen Schaltkreise; und
Fig. 18 eine schematische Darstellung der Schaltkreise des Speichermoduls des Systems gemäß Fig. 1.
Das Multiprozessor-Computersystem gemäß der Erfindung kombiniert modular verteilte Rechenkapazität mit schnellen, gemeinsam benutzten Speichereinrichtungen und leistungsfähigen, konfigurierten Ein/Ausgabe-Einrichtungen, wobei diese Komponenten zu einem einzigen Rechner zusammengefasst sind, der eine Leistungsfähigkeit besitzt, die vom Mikrocomputer-Bereich bis zum Großrechner-Bereich reichen kann. Wie Fig. 1 zeigt, umfasst das als Beispiel dargestellte Multiprozessor-System 10 insgesamt vier Modultypen als Grundbausteine, nämlich Prozessor-Module 20, gemeinsam genutzte Speicher-Module 40, einen System-Steuer-Modul 60 und Netzwerk-Architektur/Massenspeicher-Module 90, wobei beim Ausführungsbeispiel eine Ethernet-Netzwerk-Architektur vorgesehen ist.
-26-
A 46 929 b
k - 176 - 26 -
24. Februar 1986 ·
Der in Fig. 2 gezeigte Prozessor-Modul 20 umfasst vorzugsweise zwei unabhängige Prozessoren 21, die mit einer Taktfrequenz von 10 MHz arbeiten und beispielsweise IC's vom Typ NS 32032 sein können, sowie einen (von beiden Prozessoren) gemeinsam genutzten Cache-Speicher 22. Jeder Prozessor-Modul 20 ist ferner mit einer Speicherverwaltungseinheit 24/(ausgestattet, welche die Erzeugung von physikalischen 32-bit-Adressen gestattet. Die beiden Prozessoren teilen sich ferner einen internen 32-bit-Datenbus (IDB) 23 und einen internen 32-bit-Adressenbus (IAB) 25. Die Busse IDB 23 und IAB 25 sind gegenüber den Prozessoren 21 durch zur zentralen Recheneinheit (CPU) gehörige Daten- und Adressen-Sende/Empfangs-Einheiten mit Registern - Block 26 gepuffert und gegenüber dem Systembus 100 mittels Bus-Daten-Sende/Empfangs-Einheiten 27 und Adressenregistern 28.
Der Cache-Speicher 22 ist vorgesehen, um die Zugriffszeit zum Speicher dadurch zu verringern, daß er häufig benötigte Befehle und Daten in einer großen Bank (32K byte) eines schnellen, statischen RAM-Speichers speichert. Die Daten aus dem Prozessor-Speicher werden üblicherweise immer dann in den Cache-Speicher 22 eingeschrieben, wenn die Speicherplätze des Hauptspeichers von einem der beiden Prozessoren eines Prozessor-Moduls 2 mit zwei Prozessoren ausgelesen werden oder wenn neue Daten in diese Speicherplätze eingeschrieben werden.
-27-
A 46 929 b
k - 176 - 27 -
24. Februar 1986
Ein Index der Adressen derjenigen Speicherplätze, deren Inhalte auf diese Weise gespeichert werden, wird in einer Zusatzspeicheranordnung 30 des jeweiligen Prozessormoduls gespeichert. Anschließend führt jeder Versuch, die betreffenden Speicherplätze des System-Hauptspeichers 40 zu erreichen, dazu, daß ein Zagriff zu den entsprechenden Daten im Cache-Speicher 22 erfolgt. Zugriffe zum Cache-Speicher führen jedoch nicht zu den Wartezuständen des Prozessors, die sich bei einem Zugriff auf den Prozessor-Hauptspeicher ergeben, da der Prozessor,von dem die Anforderung ausgeht, nicht in Konkurrenz mit Prozessoren in anderen Prozessor-Modulen 20 steht, wenn er Zugriff zum Hauptspeicher haben möchte. Stattdessen werden die Daten einfach über den internen Bus 23 des Prozessor-Moduls 20 transportiert. Bei dem derzeit bevorzugten Ausführungsbeispiel liegt die "Trefferquote" im Mittel bei über 90%.
Der Cache-Speicher 22 für irgendeinen Prozessor-Modul 20 wird mit Hilfe einer Bus-Zusatz logik bezüglich der relevanten Änderungen im-Hauptspeicher (die durch Einschreiboperationen von anderen Systemvorrichtungen erzeugt werden) auf dem laufenden gehalten. Die Bus-Zusatz logik tastet den Systembus 30 bezüglich der Speicheraktivität anderer Systemmodule ab, welcher lokale Cache-Speicheradressen betreffen. Wenn derartige Schreiboperationen festgestellt werden, wird das Gültigkeits-bit (valid bit) 34 für die betreffende Cache-Speicheradresse auf den Zustand "ungültig (invalid)"
-28-
A 46 929 b
k - 176 - 28 -
24. Februar 1986
geschaltet und zeigt damit an, daß die Cache-Speicherdaten an dem betreffenden Speicherplatz nicht mehr den Daten am zugeordneten Speicherplatz des Häuptspeichers entsprechen. Wenn ein externer Prozessor Daten von der entsprechenden Cache-Speicheradresse benötigt, wird er folglich erkennen, daß die an dem betreffenden Cache-Speicherplatz abgelegten Daten nunmehr ungültig sind. Der Prozessor nimmt daraufhin Zugriff zum Hauptspeicher, um die betreffenden Daten von dort anstatt aus dem Cache-Speicher 22 abzurufen. Durch diese Operation erfolgt automatisch ein Aufdatieren der Daten im Cache-Speicher 22 - die Daten werden also auf den neuesten Stand gebracht. Da der Bus-Zusatzspeicher 32 unabhängig von dem CPU-Zusatzspeicher 30 ist und diese Daten "kopiert", erfolgt das Aufrechterhalten gültiger Daten im Cache-Speicher mit Hilfe der Busüberwachung ohne eine Beeinträchtigung der Geschwindigkeit des Zugriffs zum Cache-Speicher durch die zentralen Recheneinheiten.
Der Cache-Speicher 22 kann entweder als Durchschreib-Cache-Speicher oder als Nicht-Durchschreib-Cache-Speicher ausgebildet werden. Wenn ein Prozessor-Modul 20 mit einem Durchschreib-Cache-Speicher eine Schreiboperation anfordert, werden die Daten sowohl in den Cache-Speicher des anfordernden Prozessor-Moduls 20 als auch an dem betreffenden Speicherplatz des Hauptspeichers 40 eingeschrieben. Durch Verwendung eines
-29-
A 46 929 b
k - 176 - 29 -
24. Februar 1986
Durchschreib-Cache-Speichers wird die Datenübereinstimmung in den Cache-Speichern und im Hauptspeicher aufrechterhalten.
Wenn ein Prozessor-Modul 20 mit einem Nicht-Durchschreib-Cache-Speicher eine Schreiboperation fordert, dann besorgt dieser Modul die Daten, und die Daten werden lediglich in den Cache-Speicher 22 eingeschrieben. Der Bus-Zusatzspeicher 32 wird aufdatiert, um anzuzeigen, daß derjenige Hauptspeicherplatz, der dem neu eingeschriebenen Cache-Speicherplatz entspricht, keine gültigen Daten mehr enthält. Anschließend wird jeder Versuch eines Prozessor-Moduls, Zugriff zu dem betreffenden Hauptspeicherplatz zu erlangen, außer bei dem Modul mit dem Cache-Speicher,der die gültigen Daten enthält, zu dem Cache-Speicher mit den gültigen Daten gelenkt. Die Verwendung eines Nicht-Durchschreib-Cache-Speichers reduziert den "Verkehr" auf dem Systembus 100, da von den Prozessor-Modulen weniger Schreiboperationen ausgehen.
Jede CPU 21 überträgt und empfängt Vektoren über den Systembus 100 - dieser wird weiter unten beschrieben. Daher ist mit jedem Prozessor eine Interrupt-FIFO-Queue 36 verbunden, welche die empfangenen Vektoren speichert, bis sie verarbeitet werden, woraufhin-'die Daten während der CPU-Interrupt-Quittier-Zyklen auf den internen Datenbus 23 ausgeschoben werden. Vektoren vom Systembus 100 werden in die FIFO-Queues 36 weder eingeschrieben
*) FIFO = first in - first out __„_
= zuerst empfangen - zuerst ausgeben
**) Queue = Warteschlange
A 46 929 b
k - 176 - 30 -
24. Februar 1986
noch quittiert, wenn diese FIFO-Queues voll sind.
Wie Fig. 3 zeigt, umfasst jeder gemeinsam genutzte Speichermodul 40 vorzugsweise zwei unabhängige Speicherbänke 41. Die Bänke können RAM-Speicherchips vom MOS-Typ mit einer Speicherkapazität von 25 6 K byte sein, und die gesamte Speicherkapazität kann bis zu etwa 4 Mbyte betragen. Jeder Modul ermöglicht dabei eine Vierfach-Staffelung zwischen Speicherplatinen mit gleicher Speichergröße.
Alle Daten, die in den gemeinsam benutzten Speichermodulen 40 gespeichert werden, werden mit einem Fehlerkorrektur-Code (ECC) gespeichert, wobei Einzel-bit-Fehler in jedem langen Wort (32 bits) bei jedem Zugriff mit Hilfe des ECC-Codes korrigiert werden. Doppel-bit-Fehler werden erfasst und gemeldet. Weiterhin wird bei jedem der gemeinsam genutzten Speichermodule 40 der gesamte Speicher während der Auffrisch-Zyklen überstrichen, wobei alle festgestellten Einzelbit-Fehler korrigiert werden. Da bei einem vollständigen Auffrisch-Zyklus ein vollständiger Datendurchlauf etwa alle 8 s erfolgt (bei 256 k-RAM's), reduziert das Arbeiten mit dem Korrektur-Code die Wahrscheinlichkeit, daß ein nicht korrigierbarer Doppelbit-Fehler überhaupt auftritt. Wegen des Korrektur-Codes können zwei Speicher-Chips des gemeinsam genutzten Speichermoduls 40 ausfallen (1 Chip in jeder Bank), ohne daß der Betrieb des Systems unterbrochen werden müsste.
-31-
A 46 929 b
k - 176 - 31 -
24. Februar 1986
Jede gemeinsam genutzte Speicherkarte 40 trägt außerdem einen Diagnose-Mikroprozessor 46, der alle Speicherbänke beim Einschalten und immer dann prüft, wenn er einen entsprechenden Befehl vom System-Diagnose-Prozessor des System-Steuer-Moduls 60 empfängt. Die gemeinsam genutzte Speicherkarte 40 umfasst ferner ein Steuer- und Status-Register, über welches Einzelbit- und Doppel-bit-Fehler sowie Bus-Parity-Fehler an den anfordernden Prozessor gemeldet werden.
Der System-Steuer-Modul (SCM) 60 arbeitet als Kommunikations-Clearing-Stelle, als Bus-Koordinator und als Diagnose-Zentrum für das erfindungsgemäße Multiprozessor-Computersystem 10. Die verschiedenen Komponenten dieses System-Steuer-Moduls 60 sind in Fig. 4 skizziert.
Der Modul 60 umfasst zunächst einen Diagnose-Prozessor 62, der auf der Basis eines Mikroprozessors des Typs NS 32016 aufgebaut ist und Zugriff zu einem auf der Platine befindlichen, dynamischen 128K byte-RAM hat sowie zu einem batteriegestützten (nicht-flüchtigen) statischen 4K byte-RAM. Der Diagnose-Prozessor 62 führt nach Einschalten der Netzspannung die System-Diagnose durch und stellt die Startbedingungen ein. Weiterhin liefert der Prozessor 62 einen Jahreszeit-Takt und überwacht das System-Steuerfeld sowie den Steuerkonsolen-Anschluß des Systems und zwei lokale Benutzeranschlüsse. Der Diagnose-Prozessor 62 übernimmt ferner die Kontrolle des Systembus 100 und aller zugehörigen
-32-
A 46 929 b
k - 176 - 32 -
24. Februar 1986
Module, wenn ein schwerwiegender Systemfehler auftritt. Wenn der Fehler durch das Versagen einer Komponente eines der System-Module hervorgerufen wird, kann der System-Steuer-Modul 60 diesem Modul beim nächsten neuen Start den Zugriff zum Systembus 100 verwehren. Wenn ein neuer Start erfolgt, kann der System-Steuer-Modul das Betriebssystem dahingehend informieren, daß der betreffende Modul als inaktiv (außer Betrieb) zu behandeln ist.
Der System-Steuer-Modul 60 umfasst ferner eine Systembus-Schnittstelie 64, welche dem Diagnose-Prozessor 62 den Zugriff zu anderen Modulen ermöglicht, die mit dem Systembus 100 verbunden sind, während sie gleichzeitig für die anderen System-Module die Möglichkeit schafft, Informationen aus dem gemeinsamen Befehls/ Antwort-Speicher des System-Steuer-Moduls auszulesen bzw. Informationen in diesen Speicher einzuschreiben, der zusammen mit verschiedenen Taktgebern den Block 66 bildet.
Der Speicher/Taktgeber-Block 66 ist für alle aktiven Module am Systembus 100 "sichtbar" (zugänglich). Der Block 66 leitet jedoch selbst keine aktiven Anforderungen ein. Er enthält Taktgeber, die dazu benutzt werden können, Prozess-Identifikationen und getaktete Interrupts zu erzeugen. Der Block 66 enthält ferner einen statischen 32K byte-RAM-Speicher, der dazu benutzt wird, Befehle und Antworten zwischen dem System-
*) die Schnittstellen sind in der Zeichnung -33-mit "interface" bezeichnet
A 46 929 b
k - 176 - 33 -
24. Februar 1986
Steuer-Modul 60 und anderen, mit dem Systembus 100 verbundenen Modulen zu übermitteln.
Wie weiter unten noch näher erläutert wird, besteht der Systembus 100 in Wirklichkeit aus mehreren unabhängigen Bussen (Adressen-, Daten- und Vektor-Bus), über welche im Verlauf jedes Bus-Zyklus nicht miteinander verknüpfte Informationen übertragen werden können. Es ist folglich erforderlich, über den Zugriff zu jedem Bus separat nach vorgegebenen Spielregeln mit Hilfe eines Schiedsrichter- bzw. Arbiter-Kreises zu entscheiden.
Zu diesem Zweck sind ein Vektor-Bus-Arbiter 68, ein Daten-Bus-Arbiter 70 und ein Adressen-Bus-Arbiter vorgesehen, die beim bevorzugten Ausführungsbeispiel zu dem System-Steuer-Modul 6 0 gehören.
Der System-Steuer-Modul 60 umfasst ferner den Systembzw. Haupttaktgeber 74 für das Multiprozessor-Computersystem 10. Der Haupttakt wird von dem System-Steuer-Modul 60 verteilt,und alle Bus-Taktleitungendes Systembusses 100 werden durch den Haupttaktgeber 74 gesteuert,
Der Ethernet/Massenspeicher-Modul 9 0 (EMS-Modul) umfasst Schnittstellen 94,98 zur Ankopplung an ein lokales Ethernet-Bereichsnetzwerk und an einen Kleinrechnersystem-Schnittstellenbus 91. Bei einer bevorzugten Ausführungsform des Multiprozessorsystems gemäß der
-34-
A 46 929 b
k - 176 - 34
24. Februar 1986
Erfindung stützt die Bus-Schnittstelle 98 des EMS-Moduls 90 einen Plattenspeicher und einen Halbzoll-Bandspeicher. Es können weitere EMS-Module installiert werden, von denen jeder einen Datenweg für zusätzliche Plattenspeicher bilden kann.
Wie Fig. 5 zeigt, besteht der EMS-Modul 90 aus vier Grundelementen, nämlich der Systembus-Schnittstelle 92, den Schnittstellen 94 und 98, auf die oben eingegangen wurde, und einer EMS-Zentraleinheit 96 (EMS-CPU). Die Systembus-Schnittstelle 92 wird gemeinsam von den drei anderen Kreisen benutzt. Die Schnittstelle 94 umfasst einen Ethernet-Controller, eine Maschine mit direktem Speicherzugriff (DMA) und einem lokalen Speicher. Dieser Speicher wird als Sende/Empfangseinheit für Befehle und Status-Informationen, statistische Netzwerk-Verwaltungsdaten und Diagnose-Informationen verwendet. Jeder Teil dieses Speichers kann mit Hilfe der DMA-Maschine mit Daten aus dem Hauptspeicher des Multiprozessor-Systems gefüllt oder in dieses umgeladen werden.
Die EMS-CPU 96 ist vorzugsweise ein Mikroprozessor des Typs NS 32032, der mit einem lokalen ROM-Speicher für die Programmsteuerung, einem lokalen RAM-Speicher für die Programm- und Datenspeicherung, einem lokalen Steuer/Zustands-Register, mit Vektor-Interrupt-Einheiten und mit zwei Fenstern zum Hauptspeicher des Multiprozessor-Systems ausgerüstet ist.
-35-
A 46 929 b
k - 176 - 35 -
24. Februar 1986
Die Schnittstelle 98 umfasst einen Bus-Controller für den Bus 91, eine Daten-FIFO-Einheit, einen Mikroprozessor und eine DMA-Maschine. Der Bus-Controller überträgt Daten zwischen dem Bus 91 und der Daten-FIFO-Einheit unter Steuerung durch eine dem Bus 91 zugeordnete zentrale Recheneinheit. Die DMA-Maschine kann Daten zwischen dem Hauptspeicher des Multiprozessor-Systems und der Daten-FIFO-Einheit in jeder Richtung übertragen.
Ferner kann ein VAME-Bus-Adapter-Modul 99 vorgesehen sein, welcher der Aufnahme einer großen Vielfalt von VME-Bus-Karten dienen kann. Dieser Adapter entspricht den gut dokumentierten VME-Bus-Normen, so daß die Benutzer des Multiprozessorsystems neue Funktionen implementieren können, ohne daß die Notwendigkeit bestünde, über eine Schnittstelle direkt Zugriff zum Systembus 100 zu nehmen. Mit dem Adapter 99 kann das System Echtzeit-Ein/Ausgangs-Schnittstellen sowie nach Kundenwunsch gestaltete Spezial-Schnittstellen aufnehmen.
Jedes Multiprozessor-Computersystem 10 der vorstehend beschriebenen Art kann ferner durch einen Großfeld-Multiprozessor-Schnittstellen-Modul 200 (LAmP-Modul) erweitert werden. Wie in Fig. 6 gezeigt, ist in diesem Fall jedes der Systeme 10, welches durch eine Reihe von Anfοrderungsmodulen und gemeinsam benutzten Speichermodulen symbolisiert ist, mit einem weiteren entsprechenden System über den LAmP-Modul 20 0 und einen LAmP-Kommunikationsbus 202 verbunden. Bei der gegenwärtigen
-36-
A 46 929 b
k - 176 - 36 -
24. Februar 1986
Ausgestaltung kann ein System mit derartigen LAmP-Modulen bis zu 16 Multiprozessorsysteme 10 umfassen.
Wie Fig. 7 zeigt, umfasst jeder LAmP-Modul 200 eine Systembus-Schnittstelle 204 und eine LAmP-Bus-Schnittstelle 206. Die LAmP-Schnittstelle 200 umfasst dabei einen LAmP-Cache-Speicher 208, der die Zugriffszeit zu den Speichern aller Systeme verkürzt, außer zu dem System, zu dem der Anforderungsmodul gehört. Der LAmP-Cache-Speicher reduziert folglich die Anzahl der Anforderungen, die über den LAmP-Kommunikationsbus 20 2 übertragen werden, da der Cache-Speicher 208 die Anforderungen für die am häufigsten aufgerufenen Speicherplätze handhabt. Ein LAmP-Cache-Zusatz speicher 210 enthält einen Index der Speicheradressen jedes Cache-Speicherplatzes sowie die Systemnummer desjenigen Systems, zu dem der betreffende Hauptspeicher gehört.
Eine geprüfte LAmP-Gruppenspeicher-Zusatzeinheit 212 speichert einen Index aller Speicherplätze in den Speichermodulen 40 des Multiprozessor-Systems 10, deren Inhalte zu anderen über LAmP-Einheiten angeschlossene Multiprozessorsystem 10. Anforderungen auf dem Systembus 100, welche die Anforderungs- und Beantwortungs-Module nicht beeinflussen, die mit anderen über LAmP-Einheiten angeschlossene Systembusse 100 verbunden sind, werden von der geprüften LAmP-Gruppenspeicher-Zusatzeinheit 212 ausgefiltert.
-37-
A 46 929 b
k - 176 - 37 -
24. Februar 1986
Der Systembus
Der Systembus 100 ist die primäre Systemverbindung zum Verbinden der verschiedenen Module des Multiprozessor-Computersystems 10 gemäß der Erfindung. Der Systembus 100 verbindet Prozessoren, Speicher, Peripheriegeräte mit direktem Speicherzugriff und untergeordnete Peripheriegeräte .
Der Systembus 100 ist ein "in der Schwebe gehaltener" Bus mit einem Durchsatz von 100 Mbyte/s. Der Systembus 100 umfasst einen Datenbus 102 und einen getrennten Systembus 104, wobei diese beiden Busse unabhängig voneinander arbeiten. Der Systembus 100 ist ferner ein synchron arbeitender Bus, auf welchem alle Datenübertragungen synchron mit dem Takt des Bus-Taktgebers erfolgen.
Wie Fig. 1 zeigt, besteht der Systembus 100 aus vier separaten Bussen: dem Datenbus 102, dem Adressenbus 104, dem Vektorbus 106 und dem Steuerbus 108. Wie in der Zeichnung gezeigt, kann der Datenbus 102 64 Informationsbits zuzüglich der Parity-bits übertragen, während über den Adressenbus 104 32 Informations-bits plus Paritybits übertragen werden. Der Vorteil der Verwendung paralleler Daten- und Adressen-Pfade besteht darin, daß auf einen zeitraubenden Multiplex-Betrieb verzichtet werden kann. Folglich wird die Bus-Bandbreite stark erhöht. Die Zugriffsentscheidungen für den Adressenbus
-38-
A 46 929 b
k - 176 - 38 -
24. Februar 1986
102 und den Datenbus 104 sind lediglich teilweise aufgeteilt. Die Entscheidung, welche Einrichtung die Belegung des Busses mit der derzeit höchsten Priorität fordert, erfolgt mit Hilfe eines zentralen Arbiterkreises und wird zu dem ausgewählten, den Bus anfordernden Kreis übermittelt. Die Entscheidung, ob ein bestimmter Modul sich selbst aus dem derzeit geltenden Satz von zulässigen Anforderungseinheiten ausschließen sollte, wird jedoch von jedem Modul selbst getroffen. Wenn einem Modul der Zugriff zum Adressenbus gewährt wurde, liefert er seine Adressen und, falls erforderlich, seine Daten auf den Bus. Wenn einem Modul der Zugriff zum Datenbus gewährt wurde, liefert er seine Daten auf den Datenbus.
Vor einer Diskussion der verschiedenen Entscheidungskriterien bzw. -schemata, mit denen beim Systembus gearbeitet wird, werden die verschiedenen Datenübertragungszyklen beschrieben. Wie oben angesprochen, erfolgt die Übertragung bei dem erfindungsgemäßen System als "in der Schwebe gehaltene" Übertragung, d.h. die Adresse wird bei einer Datenübertragung, bei der Daten ausgelesen werden sollen, zum Empfänger gesendet, woraufhin der Systembus andere Operationen einschiebt, während die zurückzumeldenden Daten vorbereitet werden. Der Bus wartet also nicht auf die Rückmeldung der Daten. Wenn Einschreibadressen übertragen werden, dann folgen ihnen jedoch stets im nächsten Zyklus die einzuschreibenden Daten.
-39-
A 46 929 b
k - 176 - 39 -
24. Februar 1986
Es sind verschiedene Module vorhanden, welche die Benutzung des Adressenbusses 104 anfordern können. Zu diesen Modulen gehören die Prozessor-Module 20, die Ein/Äusgabe-Module 9 0 und die LAmP-Schnittstellen-Module 200. Ein Modul, welcher den Adressenbus benützen möchte, sendet eine Anforderung aus, welche über die Steuerleitungen 100 zum System-Steuer-Modul 60 übertragen wird, zu dem die Arbiterkreise gehören. Sobald der Adressenbus-Arbiter 72 dann Zugriff zum Adressenbus 104 gewährt, wird in der nächsten Taktzeit die Adresse des berechtigten Anforderungskreises auf den Adressenbus 104 gegeben. Wenn die gewünschte Operation eine Schreiboperation ist, dann werden die zu schreibenden Daten in der Taktperiode auf den Datenbus 102 gegeben, welche der Taktperiode folgt, in der die Adresse auf den Adressenbus 104 gegeben wurde.
Es sind ferner verschiedene Module vorhanden, die die Benutzung des Datenbusses 102 fordern können. Ein Modul, der den Datenbus 102 benutzen möchte, sendet über die Steuerleitungen 108 eine entsprechende Anforderung an den System-Steuer-Modul 60,zu dem der Datenbus-Arbiter 7 0 gehört. Ein Modul, der Zugriff zum Datenbus 102 verlangt, muß außerdem den Adressenbus 104 überwachen, um festzustellen, ob die Ausgabe von einzuschreibenden Daten auf den Datenbus 102 bevorsteht. In diesen Fällen vertagt der anfordernde Modul seine Anforderung und fordert die Benutzung des Datenbusses zu einem späteren Zeitpunkt erneut an.
-40-
A 46 929 b
k - 176 - 40 -
24. Februar 1986
Ein Beispiel der Takt- und Übertragungszyklen,von denen vorstehend gesprochen wurde, ist in Fig. 8 gezeigt, wo zwei Steuerleitungen vorhanden sind, nämlich eine Steuerleitung, die mit dem Datenbus-Arbiter verbunden ist, und_ eine zweite Steuerleitung, die mit dem Adressenbus-Arbiter verbunden ist. Wenn eine Anforderung von einem Anforderungsmodul (Anforderungsmodul· Nr. 1) eintrifft, gewährt der Adressenbus-Arbiter 7 2 dem Anforderungsmodul Nr. 1 während einer Taktperiode Zugriff zum Adressenbus 104. Während der nächsten Taktperiode wird die gewünschte Adresse des Anforderungsmoduls Nr. auf den Adressenbus gegeben. Da die Anforderung des Anforderungsmoduls Nr. 1 eine Leseoperation betrifft, muß der Anforderungsmodul Nr. 1 mehrere Bus-Taktperioden warten, ehe die Daten zu ihm ausgegeben werden.
Während der Anforderungsmodul Nr. 1 die gewünschte Adresse auf den Adressenbus 104 gibt, erzeugt ein Anforderungsmodul Nr. 2 eine Anforderung für eine Schreiboperation und erhält Zugriff zum Adressenbus. Die gewünschte Adresse des Anforderungsmoduls 2 wird während der unmittelbar folgenden Taktperiode auf die Adressenleitungen gegeben (beim Ausführungsbeispiel in der Periode Nr. 3), und da eine Schreiboperation gefordert wird, werden die Daten auf den Datenbus 102 während der Taktperiode ausgegeben, die der Periode folgt, in der die Adresse auf den Adressenbus gegeben wurde, nämlich in der Periode Nr. 4. Während einer Schreiboperation wird keine Entscheidung über den Zugriff
-41-
A 46 929 b
k - 176 - 41 -
24. Februar 1986
zum Datenbus 102 benötigt. Damit sind die Operationen für den Anforderungsmodul Nr. 2 abgeschlossen. Einige Taktperioden später werden die Daten für den Anforderungsmodul Nr. 1 zurückgesendet. Zu diesem Zeitpunkt
muß der Datenbus-Arbiter 7 0 dem sendenden Modul Zugriff zum Datenbus 102 gewähren. Beim Ausführungsbeispiel·
wird dieser Zugriff sofort gewährt, und während der
nächsten Taktperiode werden die Daten auf den Datenbus 102 gegeben, womit auch die Operationen des Anforderungsmodul·s Nr. 1 erledigt sind. Wenn der Datenbus 102 beschäftigt gewesen wäre, hätte der die Daten sendende Modul· dagegen warten müssen, bis ihm der Bus zugeteilt worden wäre.
Wenn bei dem obigen Beispiel· aus irgendeinem Grund für eine große Anzahl· von Schreibanforderungen Zugriff zu den Bussen gewährt worden wäre, würden die Anforderungen nach dem Ausiesen von Daten gesperrt und damit die Datenaussendung zu den betreffenden Anforderungsmodul·en verhindert. Zur Abschwächung derartiger Probleme, die ietzt^ch die Datenverarbeitung verlangsamen, wird ein spezielies Steuersignal· UNJAM L auf den Bus
gel·egt, um den Datenbus 102 nach einer gewissen Wartezeit, beispieisweise nach 4 Buszykien, in denen auf
die Freigabe des Datenbusses gewartet wurde, zu reservieren. Wenn das Steuersignal· UNJAM erzeugt wird, dann wird die Annahme von Anforderungen durch den Adressenbus unterbrochen, um so einen freien Zugang zum Datenbus innerhaib weniger Taktperioden zu ermöglichen.
-42-
A 46 929 b
k - 176 - 42 -
24. Februar 1986
Weiterhin werden keine neuen Anforderungen nach dem Datenbus akzeptiert. Das Steuersignal UNJAM wird gelöscht, sobald der Datenbus für die anstehenden daten> freigegeben wurde.
Der Systembus 100 gestattet, da er ein "in der Schwebe gehaltener" Bus ist, die Möglichkeit, daß mehrere Anforderungen für eine einzige Bank des Speichers in der Schwebe gehalten werden. Die Speicher selbst haben keine Möglichkeit, mehr als zwei Anforderungen im Pipeline-Betrieb zu verarbeiten (nämlich die Anforderung, die gerade bearbeitet wird und eine weitere, die in der Schwebe gehalten wird), so daß es möglich ist, daß eine Speicherbank 40 beschäftigt und nicht in der Lage wäre, die Adresse zu empfangen (bzw. Schreibdaten, falls ein Schreibzyklus gefordert ist). Wenn diese Situation entsteht, verweigert die Speicherbank die Annahme der Adresse und erzeugt ein Signal RETRY, welches bewirkt, daß die Übermittlung der Adresse vier Bus-Zyklen später erneut versucht wird.
Wenn irgendein Anforderungs-Modul feststellt, daß eine Adresse "nackt" gewesen ist, beispielsweise infolge einer belegten Speicherbank, sendet er keine neuen Anforderungen aus, bis die "nackte" Adresse erledigt ist. Dieses Vorgehen gewährleistet, daß kein Anforderungskeis für ein längeres Zeitintervall "ausgesperrt" wird, da zwischen seinen erneuten Versuchen andere Module senden und ihre Anforderungen bis zu der Stelle durchgelassen werden, die die betreffende Anforderungseinheit ebenfalls zu erreichen versucht.
-43-
A 46 929 b
k - 176 - 43 -
24. Februar 1986
Wie oben erörtert, gehören zu dem Adressenbus 104 und dem Datenbus 102 jeweils unabhängige Arbiter, welche die Anforderungen für Datenübertragungen überwachen. Wenn eine Anforderung aufgegeben wird, benutzt der Arbiter einen Algorithmus, der eine faire Behandlung gewährleistet und dem Anforderungskreis letztlich einen Zugriff ermöglicht. Der Arbiter macht dies,indem er für den ausgewählten Modul eine Zulassung durchgibt. Der ausgewählte Modul gibt dann die Adresse oder die Daten auf den Bus. Der Adressenbus-Arbiter gewährleistet eine faire Einteilung hinsichtlich des Zugriffs zum Bus durch Implementieren des folgenden Algorithmus:
1. Alle Nicht-Prozessor-Module, beispielsweise der System-Steuer-Modul oder die Bus-Adapter, können Priorität gegenüber den Prozessor-Modulen haben. Diese Module bilden die Prioritätsgruppe A. Wenn irgendeine dieser Einrichtungen den Adressenbus 104 anfordert, wird ihr der Zugriff trotz des Vorliegens einer Anforderung von einem Modul der Prioritätsgruppe B gewährt, welche weiter unten noch definiert wird.
2. Die Prioritätsgruppe B umfasst alle Prozessor-Module. Einem Modul der Gruppe B wird dann Zugriff für eine Adressenübertragung gewährt, wenn er innerhalb seiner Gruppe, d.h. unter den Modulen seiner Gruppe, von denen eine Anforderung
-44-
A 46 929 b
k - 176 - 44 -
24. Februar 1986
ansteht, derjenige Modul mit der höchsten Priorität ist und wenn keine Anforderung von einem Modul der Gruppe A unerledigt ist.
3. Wenn einer Vorrichtung Zugriff zum Bus gewährt wird, dann bekommt die ihr nach dem Algorithmus folgende Vorrichtung anschließend die höchste Priorität.
Der Adressenbus-Arbiter 72 besteht aus einem zentralisierten Entscheidungsmechanismus und einem verteilten Steuermechanismus. Der zentralisierte Entscheidungsmechanismus nimmt die Anforderungen entgegen und liefert die Zulassungen auf der Basis eines rotierenden PrioritätsSchemas unter Verwendung von Modul-Schlitz-Nummern. Bei dem bevorzugten Ausführungsbeispiel ist der zentrale Arbiter Bestandteil der System-Steuereinheit 60. Ein Beispiel für ein Adressenbus-Zuordnungsschema wird unter Bezugnahme auf Fig. 9a diskutiert. Das in Fig. 9a gezeigte System enthält 8 Anforderungs-Module . Geht man davon aus, daß zuvor dem Modul Nr. 1 Zugriff zum Bus gewährt wurde, dann hat nunmehr der Modul Nr. 2 die höchste Priorität. Wenn die Module Nr. und Nr. 5 beide Zugriff zum Bus verlangen, dann wird dem Modul Nr. 5 der Zugriff gewährt, da er nach dem Modul Nr. 2 der Modul mit der höchsten Nummer ist, von dem eine Anforderung des Busses ausgeht. Im Anschluß an die Gewährung Des Zugriffs für den Modul Nr.5 ist nunmehr der Modul mit der höchsten Priorität der Modul Nr. 6.
-45-
A 56 929 b
k - 176 - 45
24. Februar 1986
Der verteilte Steuermechanismus besteht aus einem Zustand-Sequenzer an.jedem Modul, welcher bestimmt, ob ein Modul eine Anforderung nach dem Adressenbus abgeben darf. Die Adressenbus-Anforderungen werden von den Anforderungs-Modulen modifiziert, wenn irgendeine der folgenden Bedingungen vorliegt:
1. Wenn ein Modul der Prioritätsgruppe A eine Anforderung an den zentralen Adressen-Arbiter abgibt,kann dieser das Signal PRIORITY L auf den Steuerbus 108 geben, um alle Module der Prioritätsgruppe B zu zwingen, ihre Anforderungen zurückzuziehen, wodurch für die Module der Gruppe A der Zugriff mit höherer Priorität erfolgen kann.
2. Alle Anforderungskreise suspendieren die Anforderung zum Schreiben von Daten und für Lese-Modifizier-Schreib-Zyklen, solange ein Signal STALL CYCLE L (Zyklus L blockieren) auf dem Steuerbus 108 liegt.
3. Wenn ein Speichermodul keinen Zugriff zum Datenbus erhält, um angeforderte Daten innerhalb einer vorgegebenen Anzahl von Bus-Takt-Zyklen zurückzusenden, gibt er das Signal UNJAM L auf den Steuerbus 108. Die Anforderungskreise suspendieren daraufhin Schreib-Anforderungen, bis das Signal UNJAM L nicht länger vorliegt.
A 46 929 b
k - 176 - 46 -
24. Februar 1986
4. Wenn eine Speicherbank, zu der ein Datenübertragungsbefehl gesendet wird, beschäftigt ist, liefert der Speicher nicht das Signal MEMORY ACCEPTED L auf den Steuerbus 108, wodurch der Anforderungskreis darauf hingewiesen wird, daß er die Anfrage erneut versuchen soll. Diejenigen Anforderungs-Module, bei denen zu diesem Zeitpunkt keine Bus-Anforderung vorliegt, dürfen keine Anforderung abgeben, bis der Modul, der zu einem erneuten Versuch aufgefordert wurde, durch die Speicherbank bedient ist, womit ein Einfrieren auf den gerade vorhandenen Satz von Anforderungskreisen erfolgt. Die Anforderungen innerhalb des eingefrorenen Satzes werden weiterhin mit rotierender Priorität nach den Entscheidungskriterien an den Bus gegeben, mit der Ausnahme, daß der Modul,der aufgefordert wurde, es erneut zu versuchen, jedesmal, wenn er seine Anforderung wieder abgibt, die höchste Priorität erhält. Das Absetzen der Anforderung durch den einen erneuten Versuch startenden Modul beeinträchtigt dagegen nicht die rotierende Priorität für die übrigen Anfragen des eingefrorenen Satzes von Modulen. Die Anfragen werden freigegeben, wenn der betreffende Modul bei einem erneuten Versuch durch die Speicherbank bedient wurde.
Der Zugriff zum Datenbus wird auf der Basis des folgenden Algorithmus zugeordnet:
-47-
A 46 929 b
k - 176 - 47 -
24. Februar 1986
1. Wenn ein Schreibzyklus auf dem Adressenbus 104 läuft, dann überträgt der Datenbus 102 stets die zu schreibenden Daten während des nächsten Datenbus-Zyklus , und zwar unabhängig von jeder anderen anhängigen Datenbus-Anforderung.
2. Wenn keine Schreibdatenübertragungen in der Schwebe sind/ erhält die Einrichtung mit der höchsten Priorität, welche den Datenbus für das Lesen von Daten anfordert, die Zulassung zur Datenübertragung. Die logische Prioritätsordnung derjenigen Einrichtungen, welche eine Anforderung für eine Datenübertragung abgeben können, ist.wie folgt: System-Steuer-Modul·, Bus-Adapter, LAmP-Modul und Speichermodule.
3. Die Priorität auf dem Datenbus ist eine strikt numerische Priorität.
Ein Beispiel für das Datenbus-Entscheidungsschema wird nachstehend in Verbindung mit Fig. 9b erläutert. Bei dem Ausführungsbeispiel gemäß fig. 9b umfasst das System einen Bus-Adapter, einen LAmP-Modul, einen System-Steuer-Modul und drei Speichermodule. Bei dem Beispiel war der letzte Modul,dem Zugriff gewährt wurde, der Speichermodul· Nr. 2.
Wenn keine Schreibdatenübertragungen in der Schwebe sind und wenn der LAmP-Modul· und der Speichermodul· Nr.3
-48-
A 46 929 b
k - 176 - 48 -
24. Februar 1986
Zugriff zum Datenbus verlangen, dann wird der Zugriff wegen der strikt numerischen Priorität des Datenbus-Entscheidungsschemas dem LAmP-Modul gewährt. Wenn statt der Anforderung durch den LAmP-Modul eine Anforderung durch den Speichermodul Nr. 1 und durch den Speichermodul Nr. 3 vorliegen würde, dann würde der Zugriff dem Speichermodul Nr. 1 gewährt, selbst wenn er zuletzt vor kürzerer Zeit Zugriff zum Datenbus gehabt hat als der Speichermodul Nr. 3.
Wie vorstehend diskutiert, ist bei dem Multiprozessor-Computersystem gemäß der Erfindung das System von verteilten Cache-Speichern realisiert. Zur Gewährleistung der Datenübereinstimmung zwischen den Cache-Speichern 22 und dem Hauptspeicher 40 überwachen alle Cache-Speicher 22 gewisse Bus-Operationen auf "Treffer" in ihrem Bus-Zusatzspeichern (BTAG) 32. Wenn ein "Treffer" festgestellt wird, dann wird durch die CPU-Logik deren lokaler CPU-Zusatzspeicher 30 aufdatiert. Die System-Erfordernisse erzwingen jedoch, daß die Pipeline-Bearbeitung derartiger "Treffer" minimal ist, so daß es möglich ist, da£ mehrfache "Treffer" im Zusatzspeicher 3TAG 32 die "Leitung" füllen. In diesem Fall muß die C?U für den Adressenbus-Arbiter das Signal STALL CYCLE L ausgeben, um Schreiboperationen und Lese-Modifizier-Schreiboperationen zu sperren, bis wieder Platz in der "Leitung" ist.
-49-
A 46 929 b
k - 176 - 49 -
24. Februar 1986
Alle Daten, die auf den Systembus 100 übertragen werden , sind von einem Zusatz begleitet, welcher die Schaltung, von der die Information angefordert wird, exakt definiert, so daß die Daten zu dieser Schaltung zurückübertragen werden können. Diese Information ist auf den internen Adressen- und Datenleitungen ID enthalten. Die Information, die 'übermittelt wird, besteht aus einer physikalischen 4 bit-Schlitz-Nr. und zwei reservierten bits. Diese bits werden von der Anforderungsschaltung erzeugt und von der angeschriebenen Einrichtung gespeichert, um sie zusammen mit den angeforderten Daten zurückzusenden. Diese Information wird für zwei Zwecke verwendet. Die physikalische Schlitz-Nummer identifiziert alle Module eines lokalen Systems, mit dem die Daten zurückgesendet werden (unter lokal ist dabei zu verstehen, daß das System ein einziges Multiprozessor-System ist, welches mit einem einzigen Bus verbunden ist, ohne zusätzliche Systeme zu umfassen, die über einen LAmP-Modul angeschlossen sind.) Die reservierten bits werden nicht von irgendeinem Speichermodul verwendet und werden einfach ungeändert zu der Anforderungsschaltung zurückgesandt. Dies ermöglicht der Anforderungsschaltung die gelesenen Daten, welche von dem Speicher zurückkommen, einwandfrei zu identifizieren und zuzuordnen. (Beispielsweise kann ein LAmP-Modul diese Daten benötigen, um festzustellen, welche gelesenen Daten gerade zurückgeliefert werden. Ein Modul mit mehreren Prozessoren
-50-
A 46 929 b
k - 176 - 50 -
24. Februar 1986
könnte die betreffenden bits dazu verwenden, denjenigen Prozessor zu identifizieren, der die Anforderung abgegeben hat.)
Lesezyklen auf dem Systembus werden durch Aussenden des Signals ABUSREQ η gestartet. Der Adressenbus-Arbiter 74 erkennt die Anforderung und wählt den betreffenden Modul aus, wenn die Priorität stimmt. Die Adresse kann von der angeschriebenen Einheit akzeptiert werden. Die angeschriebene Einheit kann aber auch anzeigen, daß sie beschäftigt ist und verlangen, daß nach vier Bus-Zyklen ein erneuter Kontaktversuch unternommen wird. Wenn die angeschriebene Stelle nicht vorhanden ist, kann das System die Adresse verwerfen. Außerdem kann die Adresse dann, wenn ein LAmP-Schaltkreis vorhanden ist, von diesem übernommen und zu einem anderen lokalen System weitergeleitet werden.
Schreibzyklen werden ebenfalls durch Aussenden des Signals ABUSREQ η gestartet. Der Adressenbus-Arbiter erkennt die Anforderung und wählt, wenn die Priorität stimmt, den entsprechenden Modul aus. Die zu schreibenden Daten werden stets in dem Buszyklus übertragen, der der Adresse unmittelbar folgt, ebenso wird mit einem Hinweis verfahren, welche bytes eines der Langworte zu schreiben sind. Wie beim Lesezyklus kann die Adresse vom angeschriebenen Kreis akzeptiert werden oder dieser kann anzeigen, daß er beschäftigt ist und
-51-
A 46 929 b
k - 176 - 51 -
24. Februar 1986
daß der erneute Versuch für einen Zugriff in vier Buszyklen erfolgen soll. Ebenfalls kann die Adresse wie bei dem Lesezyklus von dem System verworfen werden, weil die angeschriebene Einheit bzw. Stelle nicht vorhanden ist. Anders als beim Lesezyklus folgen die zu schreibenden Daten stets der Adresse zwar unabhängig davon, ob die Adresse akzeptiert wird oder nicht. Außerdem können die Adresse und die Schreibdaten dann, wenn ein LAmP-Modul mit dem System verbunden ist, von diesem akzeptiert und an ein weiteres lokales System weitergeleitet werden.
Bei dem vorliegenden Ausführungsbeispiel des Multiprozessor-Computersystems gemäß der Erfindung haben die Bus-Zyklen eine Dauer von 80 ns. Diese Zeit ist ausreichend, um die erforderliche Information für einen Bus-Zyklus zu übertragen. Es ist jedoch keine ausreichende Zeit für irgendeinen Modul vorhanden, die Information innerhalb eines solchen Bus-Zyklus zu verarbeiten. Deshalb wird der System-Bus im Pipeline-Betrieb für ein Niveau betrieben. Mit anderen Worten werden also in einem Zyklus die Daten übertragen und in einem zweiten Zyklus steht Zeit für die Entscheidung zur Verfügung, was mit den Daten anzufangen ist.
Der Prozess der übertragung zweier Langworte (64 bits) in einem Datenzyklus wird als ein Doppel-Pump-Zyklus bezeichnet. Ein solcher Zyklus wird von einem
-52-
A 46 929 b
k - 176 - 52 -
24. Februar 1986
Anforderungskreis angefordert, wenn die Adresse übertragen wird, indem die Doppel-Pump-Zyklusanforderungsleitung des Steuerbusses 108 mit dem Befehl REQDPMP L aufgerufen wird. Die Adresse für einen Doppel-Pump-Zyklus muß an einer Doppel-Langwort-Grenze vorhanden sein; d.h. daß mindestens 3 bits der Adresse 0 sein müssen. Eine Doppel-Pump-Zyklusanforderung, die nicht mit einem Langwort in definierter Weise verknüpft ist, führt zu nicht vorhersagbaren Ergebnissen. Die Daten, die sich aufgrund einer Doppel-Pump-Leseanforderung ergeben, werden gemeinsam im gleichen Datenbuszyklus über den 64 bit-breiten Datenbus übertragen. Es besteht jedoch die Möglichkeit, daß nicht jede adressenmäßig aufgerufene Vorrichtung einer Doppel-Pump-Zyklusanforderung entspricht; sie kann möglicherweise nur eine Einfachübertragung gewährleisten. Diese Tatsache wird der Anforderungseinheit für die zu lesenden Daten mitgeteilt, wenn diese Daten zu der Anforderungseinheit zurückübertragen werden. Zu diesem Zeitpunkt ist ein Signal NDPMP L gültig und zeigt der Anforderungseinheit an, ob die Doppel-Pump-Zyklus-Anfrage erfüllt ist oder ob lediglich ein Langwort niedrigerer Ordnung zurückgeliefert wird. Eine Anforderungseinheit, welche nur Doppel-Pump-Operationen ausführen will, kann Zugriff zu der Doppel-Pump-Erzwingungsleitung des Steuerbusses 108 erhalten. Eine Aussendung des betreffenden Signals erzwingt eine 64-bit-Übertragung sowie die anschließende Rücklieferung der Daten, wobei das Signal NDPMP L nicht gesetzt wird.
-53-
A 46 929 b
k - 176 - 53 -
24. Februar 1986
Die Bus-Signale und die verschiedenen Funktionen, die ihnen zugeordnet sind (einige Bus-Signale wurden bereits erläutert) werden nachstehend näher diskutiert. Bei der nachstehenden Beschreibung ist zu berücksichtigen, daß die Signale in Verbindung mit der Verwendung eines Multiprozessor-Computersystems 10 gemäß Fig. 1 erläutert werden. Die Anforderungs-Module können entweder Prozessor-Module 20 oder ETHERNET/Massenspeicher-Module 90 sein. Weiterhin wird bei der Bezugnahme auf die PARITY-bit-Erzeugung die folgende Definition beabsichtigt: das erzeugte PARITY-bit erzeugt jeweils die angegebene Parität, d.h. ein ungerades PARITY-bit wird dann gesetzt, wenn die Anzahl der Einsen in seinem geschützten Feld gerade ist, so daß eine ungerade Parität bzw. eine ungerade Anzahl von Einsen erhalten wird.
ADD 02 - ADD 31: Diese Leitungen tragen die Adresse der Stelle, welche durch die Anforderungseinheit adressiert wird. Diese Operationen werden stets mit Langworten durchgeführt, so daß die bits NULL und EINS nicht benötigt werden. Die Signale BYTE η L und WORDSEL ersetzen die bits NULL und EINS während der Schreibzyklen. Die Adresse auf diesen Leitungen wird als "wahr" ausgegeben, d.h. der Bus ist nicht invertiert.
ADDP O - ADDP 3: Dies sind die Parity-Bits für die Adressenleitujngen. Es wird der folgende Parity-Algorithmus verwendet:
•54-
A 46 929 b
k - 176 - 54 -
24. Februar 1986
ADDP O hat ungerade Parität bei CYCTYPE 0-1,ADD 02-07
ADDO 1 hat ungerade Parität bei ADD 08-15
ADDP 2 hat ungerade Parität bei ADD 16-23
ADDP 3 hat ungerade Parität bei ADD 24-31
DATA 00 - DATE 63: Diese Leitungen tragen die Daten, welche zwischen den Einrichtungen auf dem Bus von allen Langwort-Steilen übertragen werden. DATA 00 - DATA 31 tragen 32 Daten-bits. Das bit mit der geringsten Wertigkeit ist DATA 00 und das bit mit der höchsten Wertigkeit ist DATE 31. DATA 32 bis DATE 63 tragen 32 Datenbits von allen ungeraden Langwort-Stellen. Das bit mit der geringsten Wertigkeit ist DATA 32 und das bit mit der höchsten Wertigkeit ist DATA 63.
DATAP 0 - 7: Diese bits sorgen für die Parität auf den Datenleitungen. DATAP 0 ist das gerade Parity-bit für das byte auf DATA 00 - 07, während DATAP 7 das gerade Parity-bit für das byte in DATA 56 - 6 3 ist. Die byte-Parität wird nur für ein Langwort geliefert, wenn nur eines übertragen wird. Daher muß der Speichermodul die Parität eines Langworts nicht prüfen, welches nicht geschrieben wird.
ABUSREQ η L: Dieses Signal wird durch die Anforderungseinheit η ausgegeben (n liegt zwischen 0 und der Anzahl N der verfügbaren Anfrage-Einheiten, wobei dieses Anzahl beim Ausführungsbeispiel η = 10 ist), wenn diese
-55-
A 46 929 b
k - 176 - 55 -
24. Februar 1986
eine Adressenübertrag.ung anfordert. Die zehn Anforderungseinheit-Schlitze geben ABUSREQ 0 - 9 L aus. Der Bus-Adapter 99 gibt das Signal ABUSREQ 10 L aus. Der System-Steuer-Modul 60 muß kein Bussignal ausgeben, da er den Bus-Arbiter enthält. Dieses Signal muß synchron mit dem Bus-Takt ausgegeben werden.
DBUSREQ η L: Dieses Signal wird von der Einheit η ausgegeben (n liegt beim derzeit bevorzugten Ausführungsbeispiel zwischen 0 und 9), welche Daten auf den Datenbus zurücksenden möchte. Die Speichermodule 0 bis 7 geben jeweils die Signale DBUSREQ 0 - 7 L ab. Der Bus-Adapter 99 gibt das Signal SBUSREQ 8 L ab. Der LAmP-Schnittstellen-Modul 200 gibt das Signal DBUSREQ 9 L ab. Der System-Steuer-Modul 60 muß kein Bus-Signal abgeben, da er selbst den Bus-Arbiter enthält. Das betrachtete Signal muß synchron mit dem Bustakt abgegeben werden.
CYCTYPE 0-3: Diese Signale werden zusammen mit der Adresse von der Anforderungseinheit auf den Systembus 100 getrieben,und sie definieren den Typ von Zyklus, den der Adressenbus 104 gegenwärtig durchführt. Die folgenden DYCTYPE-Code werden verwendet:
-56-
A 46 929 b
k - 176
24. Februar 1986
- 56 -
CYCTYPE 0 12 3
O 0 X X
0 10 1
0 1X0
0 111
10 11
10 0 1
10 10
10 0 0
1 1 X X
zeigt das Lesen bei einem automatischen Lese-Modifizier-Schreibzyklus an
zeigt einen privaten Lese-Zugriffszyklus an
reserviert für zukünftige Zuordnung
zeigt das Lesen eines öffentlichen Lese-Zugriffszyklus an
zeigt einen Schreib-Invalidate-Zyklus an
modifizierter Schreibzyklus modifizierter Schreibzyklus reserviert für zukünftige Zuordnung
zeigt an, daß derzeit keine gültige Adresse auf dem Bus ist.
X = nicht darum kümmern.
Es ist zu beachten, daß es in der Verantwortlichkeit jeder Einrichtung liegt, welche Daten über den Bus zurückgeben kann, die CYCTYPE-Leitungen auf einen Hinweis zu überwachen, daß eine Schreibadresse auf dem Adressenbus übertragen wird. Wenn dieses Ereignis eintritt, wird die Anforderungseinheit während des nächsten Datenbus-Schlitzes einzuschreibende Daten senden. Daher muß jede Einrichtung, welche plant, während des Zeitschlitzes, der auf eine Schreibadressenübertragung folgt, Daten zurückzuliefern, dies um einen zusätzlichen Datenbus-Zyklus verzögern.
-57-
Λ * S, * Λ Λ
A 46 929 b
k - 176 - 57 -
24. Februar 1986
BYTE η L: Diese Signale werden bei allen Bus-Zyklen (Schreib- und Lese-Zyklen) ausgegeben, um anzuzeigen, welche der bytes gültig sind. Die Befehle BYTE 0 - 3L gelten jeweils für die Signale O bis 3 des Langworts, welches durch den Befehl WORDSEL ausgewählt wurde.
WORDSEL H: Dieses Signal bestimmt, welches der Langwort-Signale BYTE η L angelegt werden muß. Falls negiert, zeigt dieses Signal an, daß das ausgewählte Langwort das Langwort auf den Datenleitungen DATA 00-31 ist. Wenn das Signal WORDSEL ausgesendet wird, dann wird das Langwort auf den Datenleitungen DATA 32-63 ausgewählt.
BYTEP: Dieses Signal stellt die ungerade Parität der Signale BYTE η L, WORDSEL, FDPMP L, REQDPMP L und CYCTYPE 2 dar.
NOCACHE L: Dieses Signal wird von allen Einheiten ausgegeben, welche Daten zurückliefern, welche nicht in den Cache-Speicher eingespeichert werden sollten. Solche Daten können von jeder Stelle stammen, welche ohne sichtbare Bus-Aktivität für die BTAG-Überwachung manipuliert werden kann. Beispiele derartiger Stellen sind Speicher mit zwei Anschlüssen, Register auf einem Modul oder Stellen, welche in Wirklichkeit an einem anderen Bus liegen und lediglich durch einen Bus-Adapter gesehen werden.
-58-
A 46 929 b
k - 176 - 58 -
24. Februar 1986
PRIORITY L: Dieses Signal wird von einer Anforderungseinheit geliefert, die keine Einheit der Klasse B ist, d.h. irgendeine Anforderungseinheit mit Ausnahme einer CPU..Dies gestattet, diesen Anforderungseinheiten,
wie z.B. den EMS-Modulen, dem System-Steuer-Modul 60
und dem Bus-Adapter 99 einen schnellen Zugriff zu dem Bus 100.
MEMORY ACCEPTED L: Dieses Signal wird von einer Speichereinheit ausgegeben, um anzuzeigen, daß sie die
Adresse auf ADD 02 - ADD 31 erfolgreich decodiert hat und daß die Anforderung für eine Datenübertragung akzeptiert wurde.
MEMORY BYPASS L: Dieses Signal wird von einem Nicht-Durchschreib-Cache-Speicher ausgegeben, welcher auf
die laufende Adresse auf dem Adressenbus 104 antworten möchte. Wenn dieses Signal vorliegt, überläuft es das Signal MEMORY ACCEPTED L. Der Speicher wird auf jede
Übertragung verzichten, die er als Antwort auf diese
Adresse geplant hatte.
CACHE ACCEPTED L: Dieses Signal wird nur ausgegeben, wenn das Signal MEMORY BYPASS L ausgegeben wird. Wenn es ausgegeben wird, zeigt es an, daß ein Nicht-Durchschreib-Cache-Speicher die Adresse akzeptiert hat.
WRITE DATE PARITY L: Dieses Signal wird einen Bus-Zyklus nach dem Zeitpunkt ausgegeben, zu dem der
-5 9-
A 46 929 b
k - 176 - 59 -
24. Februar 1986
Befehl MEMORY ACCEPTED L wirksam würde (für eine Schreibdaten-Übertragung) . Dieses Signal zeigt, ob die Schreibdaten erfolgreich übertragen wurden oder nicht.
REQDPMP L: Dieses Signal wird von der Anforderungseinheit ausgegeben, um anzuzeigen, daß der angeforderte Bus-Zyklus ein Doppel-Pump-Zyklus ist. Es ist zu beachten, daß die Adresse aller Doppel-Pump-Zyklus-Anforderungen ein doppeltes Langwort sein muß, welches ausgerichtet sein muß, wenn die Ergebnisse nicht unvorhersagbar sein sollen.
DPMP L: Dieses Signal kann von der Zieleinheit einer Doppel-Pump-Zyklus-Anforderung abgegeben werden. Es wird dann abgegeben, wenn der Doppel-Pump-Zyklus,der gefordert wurde, durch einen Doppel-Pump-Zyklus erledigt wird.
FORCE DPMP REQ L: Dieses Signal wird von der Anforderungseinheit ausgegeben, um den aufgerufenen Speichermodul zu zwingen, die Anforderung durch einen Doppel-Pump-Zyklus zu erledigen. Wenn die betreffende Bank des Speicher-Moduls beschäftigt ist, wird die Anforderung wiederholt.
STALL CYCLE L: Dieses Signal kann von jeder Anforderungseinheit zu jeder Zeit aufgrund eines BTAG-FIFO-Überlaufs oder eines festgestellten Bus-Adressen-
-60-
A 46 929 b
k - 176 - 60 -
24. Februar 1986
Parity-Fehlers ausgegeben werden. Wenn das Signal vorliegt, muß der Speichermodul die empfangene Anforderung verwerfen, welche die Blockierbedienung bewirkt hat, und die Anforderungseinheiten müssen Schreibund Lese-Modifizier-Schreib-Anforderungen suspendieren.
UNJAM L: Dieses Signal wird gesendet/ wenn ein Speicher nicht in der Lage gewesen ist/ während einer vorgegebenen Anzahl von Bus-Zyklen Zugriff zum Datenbus 102 zu bekommen. Wenn es vorliegt, verhindert dieses Signal neue Anforderungen nach dem Datenbus 102 und suspendiert die Zuordnung des Adressenbusses 104 durch den Adressenbus-Arbiter 72 des System-Steuer-Moduls 60.
ADDID 0-5: Dieses Signale werden von ausgewählten Anforderungseinheiten zusammen mit den Adressen ausgegeben. Sie zeigen dem aufgerufenen Modul an, welche Anforderungseinheit die Übertragung durchführt. Das ADDID-Signal besteht aus zwei Feldern: dem Feld mit der physikalischen Schlitz-Nummer und zwei reservierten bits. Das folgende Schema wird verwendet/ um das physikalische Schlitz-Feld zu definieren/ ADDID 0-3:
Oxxx - 1001 Anforderungsmodul· 0-9 gemäß
Identifikation durch die Schlitz-Nr.
1100 System-Steuer-Modul
1101 Bus-Adapter.
CpPY
A 46 929 b
k - 176 - 61 -
24. Februar 1986
ADDID 4 und 5 sind für die Verwendung durch die Anforderungseinheit reserviert. Der Speicher liefert diese bits zusammen mit den angeforderten Daten zurück, und diese bits werden nicht modifiziert. Dies ermöglicht der Anfrageeinheit, die Daten derart zu ergänzen, daß sie mit zwei beliebigen Informationsbits zurückgeliefert werden.
ADDIDP: Dieses bit sorgt bei dem Signal ADDID 0-5 für eine gerade Parität.
DESTSEL 0 - 5: Diese Signale werden von einer Einheit geliefert, welche zuvor angeforderte Lesedaten auf den Datenbus liefert. Sie sind einfach eine Kopie der Signale ADDID 0 - 5, wie sie während der Übertragung der Adresse dieser Einheit benutzt wurden. Sie zeigen an, zu welcher Anforderungseinheit die angeforderten Daten auf dem Bus zurückgeliefert werden und bestehen aus zwei Feldern: dem Feld mit der physikalischen Schiitζ-Nummer und einem weiteren Feld mit zwei reservierten bits. Das folgende Schema wird benutzt, um das Feld mit der physikalischen Schiitζ-Nummer zu definieren, DESTSEL 0-3:
Oxxx - 1001 Anforderungsmodul 0-9 gemäß
Identifizierung durch Schlitz-Nr.
1100 System-Steuer-Modul
1101 Bus-Adapter
1111 keine gültigen Lesedaten auf dem Bus (gültige Schreibdaten können auf dem Bus vorliegen).
-62-
COPY
360621ϊ
A 46 929 b
k - 176 - 62 -
24. Februar 1986
DESTSEL 4 und 5 sind für die Verwendung durch die Anforderungseinheiten reserviert. Der Speicher liefert diese bits zusammen mit den angeforderten Daten zurück, und diese bits bleiben unverändert. Dies ermöglicht den Anforderungseinheiten/ die Daten, die zu ihnen zurückgesendet werden, mit zwei beliebigen Informationsbits zu versehen. Wenn die zu übertragenden Daten Schreibdaten sind, dann setzt die Anforderungseinheit die DESTSEL-Leitungen auf Einsen, wenn der Cache-Speicher der Anforderungseinheit ein Durchschreib-Cache-Speicher ist. Wenn eine Anforderungseinheit Daten anfordert, die in einem Nicht-Durchschreib-Cache-Speicher gespeichert sind, dann enthält das Signal DESTSEL die ADDID-Information der Anfοrderungseinheit der Daten. Der beendete Zustand aller Einsen wird in diesem Fall allen anderen Modulen anzeigen, daß es sich um Schreibdaten handelt, und diese sollten durch alle Anforderungsmodule ignoriert werden.
DESTSELP: Dieses Signal liefert eine ungerade Parität für die DESTSEL L-bits 0-5, für DPMP L und MOCACHE L.
SLOTID 0-3: Diese vier Signale sind in spezieller Weise in jedem Schlitz an dem Bus 100 codiert. Dies ermöglicht einem Modul, diese Linien zu lesen und zu bestimmen, in welchem Schlitz sie angeordnet sind.
BCLOCK η L: Dieses Signal liefert den Bus-Grundtakt. Beim bevorzugten Ausführungsbeispiel kann die
-63-
A 46 929 b
k - 176 - 63 -
24.Februar 1986
Periodendauer der Taktimpulse kurz sein und bis zu
lediglich.80 ns betragen, wobei die Impulsdauer zwischen 22 ns und 33 ns liegt. Das BCLOCK η L - Signal wird auf drei Leitungen verteilt, die wie folgt verbunden sind:
BCLOCK 1 L Speicher-Module 0-2
BCLOCK 2 L Speicher-Module 3-5
BCLOCK 3 L Speicher-Module 6, 7, Anforderungseinheit - Schlitz 0, System-Steuer-Modul
BCLOCK 4 L Anforderungseinheit - Schlitz 1-4 BCLOCK 4 L Anforderungseinheit - Schlitz 5-7
BCLOCK 6 L Anforderungseinheit - Schlitz 8, 9; Bus-Adapter.
Es ist zu beachten, daß alle Leitungen drei Module
treiben, außer den Signalen BCLOCK 3 und 4. Bei der
betrachteten Ausgestaltung treiben diese beiden Signale kürzere Strecken der Rückenverdrahtung, so daß sie
eine zusätzliche Modul-Belastung haben.
DCOK H: Dieses Signal wird von dem System-Steuer-Modul· 60 und dem Netzteil· ausgewertet, um die gesamte Hardware des Systems mit Ausnahme ihrerseibst zurückzusetzen. Bei dem Signal DCOK H gehen a^e Systemzustände verloren. Dies geschieht gewöhnlich im Anschluß an die Netzeinschaltung, nach einem nicht behebbaren Systemfehler oder wenn die Gleichstromversorgung aus dem Toleranzbereich herauswandert.
-64-
A 46 929 b
k - 176 - 64 -
24. Februar 1986
POWERFAIL L: Dieses Signal wird vom Netzteil gesendet. Es zeigt/ daß die Wechselspannung ausfällt und daß mindestens drei ms mit ausreichender Gleichspannung verbleiben, ehe das Signal DCOK H ausfällt. Die nachfolgende Matrix definiert die möglichen Kombinationen der Signale POWERFAIL L und DCOK H:
DCOK H POWERFAIL L INDIKATION
gesetzt gesetzt Spannungsausfall
gesetzt nicht gesetzt normale Operation
nicht gesetzt gesetzt Rücksetzen beim
Einschalten
nicht gesetzt nicht gesetzt Rücksetzen der
Software
SCMNMI L: Dieses Signal wird von einem Modul im System gesetzt, welcher einen nicht maskierbaren Interrupt-Befehl zum Diagnose-Prozessor des System-Steuer-Moduls 60 erwirken möchte. Wenn das Signal gesetzt ist, frieren alle Module ihre Bus-Schnittstellen ein und lösen lokale, nicht maskierbare Interrupt-Befehle aus. Dieses Signal ist synchron mit dem Systemsignal BCLOCK. Es muß von jedem Modul an der Vorderflanke des Signals ENDATA gesetzt und für mindestens einen größeren Zyklus gehalten werden. Alle Module tasten das Signal SCMNMI L bei Auftreten der Vorderflanke des Signals CKDATA ab.
-65-
Λ fe β -
A 46 929 b
k - 176 - 65 -
24. Februar 1986
UNFREEZE η L: Dieses Signal wird von dem Diagnose-Prozessor 62 des System-Steuer-Moduls gesetzt, um die Bus-Schnittstelle eines Anforderungsmoduls freizugeben. Obwohl das Setzen dieses Signals die Bus-Schnittstelle des ausgewählten Moduls freigibt, lässt es den Daten-Cache-Speicher, den Bus-Parity-Check und die Verriegelungslogik gesperrt. Diese Logik wird wieder freigegeben, wenn der System-Steuer-Modul 60 das Signal UNFREEZE L aufhebt. Dieses Ereignis kann von einem Anforderungsmodul überwacht werden, indem er die UNFREEZE L-Leitung in einem lokalen CSR lesbar macht. Es sind insgesamt 11 UNFREEZE L-Signalleitungen vorhanden - eine für jede Anforderungseinheit, außer für den System-Steuer-Modul selbst.
TESTRACK L: Dieses Signal ist nicht mit dem Multiprozessor-System verbunden. Jeder Modul muß einen PuIlup-Widerstand an dieser Leitung haben. Wenn der Modul in den Einbrenn-Prüfrahmen eingesetzt wird, dann wird der Steckverbinder, der an ihm angesteckt wird, diesen Stift erden. Dies ermöglicht dem Modul zu entscheiden, auf welche Weise er seine Selbstprüfung durchführen sollte.
ADDSEL η L: Diese Signale (n liegt zwischen 0 und 10) werden vom Adressenbus-Arbiter gesetzt, um den nächsten Modul auszuwählen, der ausgewählt werden wird, um seine Adresse auf den Adressenbus zu geben. Es ist zu beachten, daß der System-Steuer-Modul 60 keine Zugriffs-
-66-
A 46 929 b
k - 176 - 66 -
24. Februar 1986
erlaubnisleitung hat , da er den Arbiter enthält. Diese Signale sind nicht codiert - es gibt eine Zugriffs-Erlaubnis leitung pro Anforderungseinheit.
DATASEL η L: Eines dieser Signale wird von dem Datenbus-Arbiter gesetzt, um den nächsten Modul auszuwählen, der ausgewählt werden wird, um seine Daten auf den Datenbus zu geben. Jede der DATASEL L-Leitungen ist mit einem der Module verbunden. Die DATASEL-Leitungen 0-7 sind jeweils mit den Speichermodulen 0 bis 7 verbunden. Die Leitung DATASEL 8 L ist mit dem Bus-Adapter 99 verbunden,und die Leitung DATASEL 9 ist mit dem LAmP-Modul 200 verbunden.
Zusätzlich zu dem Datenbus 102 und dem Adressenbus 104 umfasst der Systembus 100 einen Vektorbus 106. Dieser Vektorbus ist verantwortlich für die übertragung von Vektor-Interrupt-Signalen zwischen den Modulen in jedem lokalen System 10. Alle Bus-Anforderungseinheiten können Interrupts für die anderen Anforderungseinheiten bewirken, und daher müssen alle Anforderungseinheiten Zugriff zu dem Vektorbus 106 haben. Der Vektorbus 106 gestattet nicht nur die Übertragung von Vektoren zwischen den Anforderungseinheiten, sondern er unterstützt auch die Entscheidung zwischen den Anforderungseinheiten für Klassen-Interrupts. Wenn eine Anforderungseinheit einen Interrupt-Befehl zu übermitteln wünscht, wird dieser zu einer Klasse von
-67-
A 46 929 b k - 176
24. Februar 1986
- 67 -
Anordnungen übertragen. Eine gerichtete Interrupt-Bezeichnung gestattet die Spezifizierung eines speziellen Anforderungsmoduls. In diesem Fall erfolgt die Vektorübertragung direkt, d.h. der Vektor geht geradewegs zu dem speziell ausgewählten Anforderungsmodul. Wenn dagegen ein Klassen-Interrupt-Befehl gegeben wird, müssen alle Anforderungseinheiten innerhalb dieser speziellen Klasse untereinander eine Ent-, scheidung treffen,und lediglich die Anforderungseinheit mit der niedrigsten Priorität kann den Interrupt-Befehl entgegennehmen. Die letztgenannte Funktion wird durch ein Parallel-Entscheidungsschema erreicht, welches nachstehend noch beschrieben wird.
Der Vektorbus 106 gestattet außerdem die Übertragung von Vektoren durch den LAmP-Schnittstellen-Modul 200 hindurch zu einem anderen System 10. Dies kann in der Weise geschehen, daß man auf eine ganze Klasse in einem anderen System abzielt, oder indem man eine bestimmte Anforderungseinheit in einem anderen System spezifiziert.
Der Vektorbus 106 ist ein Bus, welcher zwölf offene Kollektor-Signalleitungen und zwei TTL-Signalleitungen umfasst. Zehn der offenen Kollektor-Signalleitungen werden als Vektor-Datenleitungen verwendet; eine offene Kollektor-Signalleitung wird als LAmP-Wähl/Bus-Adapter-Anforderungsleitung verwendet, und die andere offene Kollektor-Signalleitung wird als Quittierleitung ver-
-68-
A 46 929 b
k - 176 - 68 -
24. Februar 1986
wendet. Die beiden TTL-Signalleitungen sind Vektorbus-Phasenleitungen. Die Steuerung des Vektorbusses erfolgt durch einen Arbiter-Controller, welcher Bestandteil des System-Steuer-Moduls 60 ist. Dieser Controller bestimmt auch die Phasenlage auf dem Bus.
Der Bus 106 durchläuft drei Typen von Takt-Zyklen: einen Leerlauf-Zyklus, einen gerichteten Vektor-Zyklus und einen Klassen-Vektor-Zyklus. Wenn der Vektor-Bus 106 leerläuft, d.h. wenn keine Anforderungseinheiten Zugriff zu diesem Bus fordern, werden die nachfolgend angegebenen Operationen wiederholt durchgeführt, bis eine Anforderungseinheit während der Anforderungsphase (wie dies in Fig. 11 gezeigt ist) eine Anforderung abgibt:
1. Anforderung des Busses 1 Bus-Zyklus
2. Zuteilung des Busses 1 Bus-Zyklus
3. Leerlauf 1 Bus-Zyklus.
Bei der Durchführung der Übertragung eines gerichteten Vektors werden die folgenden Operationen durchgeführt (wie dies in Fig. 12a gezeigt ist):
1. Anforderung 1 Bus-Zyklus
2. Zuteilung des Busses 1 Bus-Zyklus
3. Übertragung des Vektors 2 Bus-Zyklen
4. Quittierung des Empfangs
des Vektors 1 Bus-Zyklus.
-69-
36062ΐΊ
A 46 929 b
k - 176 - 69 -
24. Februar 1986
Wenn es sich bei der Vektor-Übertragung um die Übertragung eines Klassen-Interrupt-Vektors handelt, werden die folgenden Operationen durchgeführt (wie dies in Fig. 12b gezeigt ist):
1. Anforderung des Busses 1 Bus-Zyklus
2. Zuteilung des Busses 1 Bus-Zyklus
3. Übertragung des Vektors 2 Bus-Zyklen
4. Entscheidung des Prozessors, welche Einheiten den Vektor
akzeptieren muß 4 Bus-Zyklen (maximal)
5. Quittierung des Empfangs des
Vektors 1 Bus-Zyklus.
Alle Übertragungen über den LAmP-Schnittstellen-Modul 200 zu einem anderen System 10 als demjenigen, in dem sich die Anforderungseinheit befindet, gehen unabhängig vom Typ derselben durch einen Vektor-Bus-Zyklus, als ob sie gerichtete Übertragungen wären.Dies liegt daran, daß eine Übertragung nur von der Anforderungseinheit zu dem LAmP-Modul 200 stattfindet, und daß der LAmP-Modul 200 den richtigen Vektor-Bus-Zyklus in dem als Ziel angegebenen lokalen System 10 durchführt. Eine Übertragung zu einem nicht-lokalen System wird dadurch identifiziert, daß das LAmP-Wählsignal während zweier Vektor-Bus-Übertragungen gesetzt wird. Ein Vektor-Bus-Zyklus entspricht zwei System-Bus-Zyklen.
Zehn Anforderungseinheiten können Anforderungsleitungen
-70-
A 46 929 b
k - 176 - 70 -
24. Februar 1986
setzen, um eine Entscheidung über den Zugriff zum Vektor-Bus zu erhalten. Auch der Bus-Adapter 99 kann eine Anforderungsleitung für die LAmP-Auswähl/Bus-Adapter-Anf orderungs leitung setzen. Da der System-Steuer-Modul 60 den Vektor-Bus-Arbiter enthält, muß er keine Bus-Signalleitung setzen, um den Vektor-Bus anzufordern. Die Gewährung des Zugriffs für die Module erfolgt auf derselben Leitung, auf der sie angefordert wurde.
Während eines Vektor-Datentransfer-Zyklus wird eine Anzahl von Stücken von Information über den Vektor-Bus auf Vektor-Datenleitungen 0 bis 9 übertragen, und zwar durch den Anforderungskreis, dem der Bus zugeteilt wurde. Diese Information ist in zwei Datenworten enthalten, wie dies in Fig.13 gezeigt ist. Die LAmP-Identifikations-Nummer 110, welche verwendet wird, wenn der Vektor von einem lokalen System gesendet oder empfangen wird, bei dem es sich um ein anderes System handelt als bei dem System, welches von dem Bus 100 bedient wird, der den Vektor trägt, ist eine Zahl mit vier bits. Zwei dieser bits 110a gehören zu dem ersten Datenwort 114, und die nächsten zwei dieser bits 110b gehören zu dem zweiten Datenwort 112. Das erste Datenwort 114 enthält zusätzlich zu den beiden ersten bits 110a der LAmP-Identifikations-Nummer eine Typ-Identifikations-Nummer 122, welche anzeigt, wie die SLOT ID/CLASS-bits 118 zu interpretieren sind. Wenn die Typ-Identifikations-Nummer 122 0 ist, d.h. wenn es sich um eine gerichtete Übertragung handelt,
-71-
A 46 929 b
k - 176 - 71 -
24. Februar 1986
dann enthalten die SLOT ID/CLASS-bits 118 eine Zahl, die den Schlitz der rückwärtigen Ebene angibt, welcher den Modul enthält, welcher den Vektor empfangen soll. Wenn der Typ 1 ist, enthalten die SLOT ID/CLASS-bits die Klassen-Nummer des Vektors. Das erste Datenwort 114 enthält außerdem eine 3 bit-CPU-Identifikations-Nummer 120, die einen Prozessor eines Moduls in dem ausgewählten Schlitz identifiziert. Zusätzlich zu den beiden zweiten bits 110a der LAmP-Identifikations-Nummer enthält das zweite Datenwort außerdem eine Vektor-Identifikations-Nummer 116.
Nachdem die Datenübertragungsphase stattgefunden hat, tritt einer von zwei Sätzen von Ereignissen ein, und zwar in Abhängigkeit vom Vektor-Typ, der übertragen wurde. Wenn ein gerichteter Vektor oder ein nichtlokaler System-Vektor irgendeiner Art übertragen worden ist, überträgt der aufgerufene Modul einfach den zuvor empfangenen Vektor zu seinem lokalen Prozessor und setzt das Signal VECTOR TAKEN. Wenn es sich um einen Klassen-Vektor gehandelt hat und wenn das LAmP-Wählsignal während der Vektor-Datenübertragung nicht gesetzt war, müssen die Anforderungsmodule eine Entscheidung über den Vektor treffen. Die Absicht des Entscheidungsschemas besteht darin, alle Module in derselben Klasse wie der übertragene Vektor freizugeben, um zu bestimmen, welcher der Module die niedrigste Priorität hat.
-72-
A 46 929 b
k - 176 - 72 -
24. Februar 1986
Eine Modul-Priorität wird durch folgende Information bestimmt/ welche auf die 8 Vektor-Datenleitungen gegeben wird/ die in dem Diagramm gemäß Fig. 14 gezeigt sind. Die Silotiefe oder FIFO-Queue-Zählbits 124 zeigen, daß ein oder mehrere Vektoren nacheinander in den Prozessor eingespeist wurden. Die Silotiefe-bits gestatten eine gleichmäßige Verteilung der Vektoren auf die Anforderungseinheiten innerhalb einer Klasse. Die Schlitzidentifikations-Nummer 128 zeigt an, in welchem Schlitz der Modul angeordnet ist. Das Entscheidungsschema ist ein Parallel-Entscheidungsverfahren, bei dem ein Modul die gesamte vorstehend angegebene Information auf einen Bus mit offenem Kollektor gibt und die vom Bus tatsächlich empfangene Information mit der Information vergleicht/ die er ausgibt. Dieser Vergleich wird mit dem bit höchster Ordnung gestattet und bis zum bit niedrigster Ordnung abgearbeitet. Wenn eine mangelnde Übereinstimmung zwischen dem, was ausgegeben wird, und dem, was sich auf dem Bus befindet, festgestellt wird, blendet der Modul die Aussendung aller bits geringerer Wertigkeit aus. Da in der Entscheidungsinformation eine Modul-Schlitz nummer enthalten ist, ist garantiert, daß nur ein Modul jeweils den Entscheidungsprozess gewinnt, selbst wenn zwei Module dieselbe Priorität und InBetrieb-Einstellung haben. Dieser Vergleichs- und Ausscheidungsprozess erfolgt asynchron, weshalb für die Vektor-Empfangsentscheidung vier Bus-Zyklen vorgesehen sind, die der maximalen Zeit entsprechen, die erforderlich ist, um die Entscheidungsleitungen zu erledigen .
-73-
A 46 929 b
k - 176 - 73 -
24. Februar 1986
Der System-Bus 100 überträgt Adressen- und Daten-Information während eines größeren Zyklus des Busses. Die Datenübertragungen durch den Bus 100 machen einen Zeitgabe-Impuls und eine Takt-Flanke erforderlich. Der Zeitgabe-Impuls wird genutzt, um die laufenden Bus-Treiber zu sperren, einen neuen Bus-Treiber auszuwählen und den neuen Bus-Treiber wieder freizugeben. Die Takt-Flanke wird benutzt, um die Daten an allen verbleibenden Modulen des Systems einzutakten.
Die Genauigkeit der Verteilung dieser Zeitgabe-Signale ist entscheidend für die Leistung auf dem Bus 100. Es ist nicht möglich, diese Flanken mit der geforderten Genauigkeit zu verteilen, und zwar aufgrund der kapazitiven Verzögerung auf dem Bus, aufgrund der Verschiebung zwischen den Gattern an unterschiedlichen Modulen, aufgrund von Schwellwert-Änderungen an den Gattern usw. Daher besteht dasjenige Schema, welches für den Bus 100 gemäß der Erfindung gewählt wird, darin, nur eine Zeitgabe-Signalflanke über das system zu verteilen. Diese Flanke wird verwendet, um eine Verzögerungsleitung/Impulsgenerator-Einheit zu triggern, welche eine exakt gesteuerte Impulserzeugung gestattet. Das Diagramm gemäß Fig. 15 zeigt die Theorie des Zeitgabe-Impulses und der Zeitgabe- bzw. Taktimpuls-Flanke, die von der Verzögerungsleitung erzeugt werden. Das Signal ENDATA L ist dasjenige Signal, welches den Bus-Treiber-Sperrimpuls 132 erzeugt, welcher auf die nächste Treiberauswahl· taktet. Der Impul·s 132 muß eine Impuls-
A 46 929 b
k - 176 - 74 -
24. Februar 1986
breite haben, die groß genug ist, um alle bei seinem Auftreten laufenden Treiber abzuschalten, ehe der nächste Treiber eingeschaltet wird. Die Rückflanke des Impulses 132 dient der erneuten Freigabe des nächsten Satzes von Treibern. Die Qualifikation erfolgt an jedem Modul, um das Signal EN BUF TO BUS L zu erzeugen. Ein Signal CKDATA H wird als Datentakt verwendet.
Die Analyse der zeitlichen Steuerung des Busses gemäß der Erfindung, die anhand von Fig. 16. erläutert wird, resultiert aus der Verwendung einer Verzögerungsleitung sowie aus einer elektrischen Analyse des schlechtesten Falles (worst case) hinsichtlich der Bus-Verzerrung und der Schwellwert-Änderungen. Beim Lesen des Diagramms der Analyse des zeitlichen Ablaufs bemerkt man, daß das Signal CKDATA H für den vorausgehenden Zyklus, bezogen auf das Signal ENDATA L, anwendbar ist. Außerdem sind zwei Impulse BUS TRANSFER ENABLE 1H und TRANSFER ENABLE 2H vorhanden. Diese Impulse werden benötigt, um den Modulen eine zuverlässige interne Übertragung der Daten zu ermöglichen, die vom Systembus 100 empfangen wurden.
Die Schaltung zur Erzeugung der verzögerten Impulse, die in Fig. 15 und 16 gezeigt sind, ist in Fig. 17 gezeigt. Die Verzögerungsschaltung wird mit dem Bus-Takt BCLOCK η L getaktet, welcher an die Verzögerungsleitung über ein NAND-Gatter 136 angelegt wird, dessen
-75-
A 46 929 b
k - 176 - 75 -
24. Februar 1986
anderer Eingang von der Verzögerungsleitung 140 gespeist wird. Der Ausgang des NAND-Gatters 136 wird der Verzögerungsleitung 140 und dem Eingang von NOR-Gattern 138 zugeführt. Die zweiten Eingangssignale für die NOR-Gatter 138 werden über den Anschluß LOCAL ENABLE L gespeist. Die Ausgänge der fünf NOR-Gatter 138 liefern die CKDATA Η-Signale. Ein weiteres Ausgangssignal der Verzögerungsleitung 140 wird einem NAND-Gatter 142 zugeführt. Das zweite Eingangssignal für das NAND-Gatter 142 wird von einem D-Flip-Flop geliefert/ dessen Datenleitung (D-<Eingang) mit dem Anschluß LOCAL SELECT H verbunden ist. Das NAND-Gatter 142 liefert das Freigabe-Signal für das Schreiben von Daten an das Bus-Signal. Ein weiteres Ausgangssignal der Verzögerungsleitung 140 wird einem NAND-Gatter zugeführt/ dessen zweites Eingangssignal von einem D-Flip-Flop 148 geliefert wird, welches als Datensignal das Signal ADDSEL empfängt. Das NAND-Gatter liefert das Signal EN BUF TO BUS L. Das letzte Ausgangssignal der Verzögerungsleitung 140 wird NAND-Gattern 150 zugeführt, deren jeweils andere Eingänge mit einer 5 V-Spannungsquelle verbunden sind. Die NAND-Gatter 150 liefern die Signale BUS TRANSFER ENABLE 1H und BUS TRANSFER ENABLE 2H.
System-Speicher
Der System-Speicher des Multiprozessor-Computersystems gemäß der Erfindung umfasst zwei unabhängige Speicher-
-76-
A 46 929 b
k - 176 - 76 -
24. Februar 1986
bänke 41, ein Steuer- und Status-Register (CSR) 48 und einen zugehörigen Diagnose-Prozessor 46 für eine Selbstprüfung. Die Adressierstruktur stützt eine Verschachtelung auf vier Wegen zwischen Speicher-Modulen
40 von äquivalenter Größe. Die Modul-Verschachtelung wird durch. CSR-bits 12 und 13 gesteuert und erfolgt automatisch zwischen den Bänken. Die Speicherbus-Schnittstelle ist ein integraler Bestandteil des Bussystems 100 und kann als solche als eine Verlängerung des Busses angesehen werden. Der interne Bus 154 des Systemspeichers 4O7 BUF DATA, arbeitet mit der doppelten Datenrate auf dem Bus 100. Gelesene.Daten werden von einer Speicherbank 41 oder dem CSR-Register 48 zu Bus-Schnittstellen-Puffern übertragen, wenn das Signal ENDATA negiert ist. Schreibdaten werden von der Bus-Schnittstelle übertragen, wenn das Signal CLKDATA negiert ist. Diese Architektur ermöglicht dem Speichersystem, sowohl Lese- als auch Schreibdaten zwischen der Bus-Schnittstelle 165 und den Speicherbänken (oder dem CSR-Register) innerhalb eines einzigen größeren Bus-Zyklus zu übertragen.
Wie in dem vereinfachten Blockdiagramm des Speichersystems in Fig. 3 dargestellt, sind die Speicherbänke
41 und das Register 48 getrennte Untersysteme, die über Schnittstellen an einen internen Bus 154 angeschlossen sind. Der interne Bus 154 wird durch eine Bus-Schnittstellensteuerung 156 oder durch den integrierten Diagnose-Prozessor 46 getrieben. Wenn der
-77-
A 46 929 b
k - 176 - 77 -
24. Februar 1986
Diagnose-Prozessor 46 mit dem internen Bus 154 verbunden ist, wird der Speicher für die Bus-Schnittstellensteuerung 156 unsichtbar. Daher muß der System-Diagnose-Prozessor 46 einen Zeit-Aus-Mechanismus implementieren, wann immer der Selbsttest durch Anschreiben zum CSR-bit 15 eingeleitet wird. Da das CSR-Register 48 bei dieser Betriebsart nicht verfügbar ist, implementiert die Datenbus-Anforderungslogik einen Prioritätsmechanismus, durch den Datenübertragungen auf dem internen Datenbus 156 bezüglich der Datenverfügbarkeit der einzelnen Bänke synchronisiert werden. Die Parität der Adressen von der B \s-Schnittstellensteuerung 156 wird an den Empfängern geprüft, und die Adresse wird, wenn ein Fehler vorliegt, als nicht existent betrachtet. Die Parität der Schreibdaten wird in der Schreibdaten-Paritätsprüflogik 49 geprüft. Wenn ein Fehler festgestellt wird, dann werden die Schreibdaten verworfen, und es wird das Signal WRITE DATA PARITY ERROR L gesetzt. Die Parität der Lesedaten wird lokal bei jedem üntersystem erzeugt. Die Parität des ADDID-Feldes wird nicht geprüft; das Signal ADDIDP wird lediglich izu dem Signal DESTSELP für CSR-Bezugsgrößen kopiert oder es wird das Komplement von DESTSELP für Speicher-Bezugsgrößen gebildet. Dies ist erforderlich, da das Signal DESTSELP bei dem Signal NOCACHE Parität besitzt.
Wie Fig. 11 zeigt, umfasst jede Speicherbank 41 zwei
-78-
"36062 Ϊ1
A 46 929 b
k - 176 - 78 -
24. Februar 1986
Reihen von RAM-Speichern/ die mit einem einzigen bidirektionalen Datenbus 160 verbunden sind. Die Schnittstellenverbindung mit diesem internen Bus erfolgt über einen Fehlererkennungs- und Korrektur-Chip (EDAC) gemeinsam mit der Parity-Logik 164 zum Erzeugen und Prüfen der Parität für den Systembus 100. Auf dem Bus 100 gibt es keine Fehlerkorrektur-Code-bits. Die Lesedaten-Parität wird in der Paritätslogik 164 erzeugt und über BUF DATA zu der Busschnittstelle 165 übertragen. Die Schreibdaten-Parität wird durch die Logik 49 geprüft,und bei Fehlern wird das Signal WRITE DATA PARITY ERROR L gesetzt,und der Schreibzyklus wird zu einem Auffrisch-Zyklus abgewandelt. Das CSR-Register 48 wird mit dem Signal ADDID der Übertragung aufda-. tiert. Der Diagnose-Prozessor 46 verwendet DATAP-Leitungen, um Prüf-bits und/oder Syndrome zwischen den Speicherbänken und seiner Datenschnittstelle zu übertragen. Die Zeitfolge-Steuerung jeder der Speicherbänke 120 erfolgt durch getrennte Steuerungen 166, welche unabhängig arbeiten. Bei dem derzeit bevorzugten Ausführungsbeispiel sind die Steuerungen bzw. Controller als Status-Sequenzer des Typs 82S105A ausgebildet. Zwei Einrichtungen werden pro Bank parallel betrieben, um genügend Steuer-Ausgangssignale zu erzeugen. Für jede Steuerung sind sieben Grundtypen von Zyklen definiert, und zwar wie folgt:
-79-
A 46 929 b
k - 176 - 79 -
24. Februar 1986
Zyklus Erläuterung
0 Auffrischen
1 Bus-Schnittstelle - nur lesen
2 Bus-Schnittstelle - lesen verriegeln
3 Bus-Schnittstelle - Langwort
schreiben
4 Bus-Schnittstelle - schreiben
5 Diagnose-Kreis gesperrt -
lesen korrigieren
6 Diagnose-Kreis gesperrt -
schreiben korrigieren.
Wenn ein Zyklus 0 (Auffrischen) aktiviert wird, wird eine Bank 41 ausgewählt, wenn der Auffrisch-Zeitgeber eine Auffrischung verlangt. Ein Auffrisch-Zyklus hat stets Priorität gegenüber jeder in der Schwebe befindlichen Anfrage von der Bus-Schnittstelle 165 oder dem Diagnose-Prozessor 48. Wenn das Signal ECC EINLEITEN gesetzt wird, verriegelt die Steuerung das Ausgangsregister des Fehler-Erfassungs- und Korrektur-Chips (EDAC) 162 und erzwingt eine Betriebsart, bei der Prüfbits erzeugt werden. Auf diese Weise werden die zufälligen Inhalte des EDAC-Chip-Ausgaberegisters zusammen mit korrekten Prüfbits in den Speicher geschrieben. Anschließend wird dann der RAM-Zeitgeber getriggert, so daß das Einschreiben in die RAM-Speicher 168 erfolgt. Wenn die Initialisierung von ECC nicht wirksam ist,werden die Inhalte der aufgefrischten Adressen
-80-
A 46 929 b
k - 176 - 80 -
24. Februar 1986
gelesen und auf dem EDAC-Chip 162 gespeichert. Wenn die Fehler-Abtastung freigegeben wird, werden die Daten nach Fehlern geprüft. Einzel-bit-Fehler werden korrigiert und an den Speicher zurückgemeldet. Mehrfache bit-Fehler werden ignoriert.
Ein Zyklus 1 (nur lesen) wird eingeleitet, wenn die betreffende Bank 41 ihren Adressenspeicher geladen hat und wenn kein Auffrisch-Zyklus in der Schwebe ist. Wenn die Bank im Augenblick nicht beschäftigt ist, wird der RAM-Zeitgeber durch die Adressenladelogik getriggert. Parallel dazu wird der Bank-Sequenzer 166 gestartet. Wenn die Bank 41 im Augenblick beschäftigt ist, wird der RAM-Zeitgeber von dem Sequenzer 166 auf einen beschäftigt-zu-unbeschäftigt-Übergangs-Zustand getriggert. Während eines Zyklus "nur lesen" erfolgt der Zugriff auf die ausgewählte Reihe von RAM-Speichern, und die Lese-Daten, die auf dem EDAC-Chip 162 und in den Bank-zu-Puffer-Datenregisters 170 gespeichert sind. Der Sequenzer 166 bzw. die Steuerung erzeugt eine Anforderung, die gelesenen Daten über die Bus-Schnittstelle 165 parallel zur Prüfung der Daten auf Fehler zu übertragen. Wenn keine Fehler vorhanden sind, werden die zuvor geladenen RAM-Daten zu der Bus-Schnittstelle 165 übertragen, andernfalls wird der Datenschutz bei Gewährung gelöscht, und die korrigierten Daten (wenn es sich um Einzel-bit-Fehler handelt) werden von dem EDAC-Chip 162 erneut in die Bank-zu-Puffer-
-81-
A 46 929 b
k - 176 - 81 -
24. Februar 1986
Register 170 geladen. Nicht korrigierbare Datenfehler werden mit Hilfe des CSR-Registers 48 aufgezeichnet.
Ein Zyklus 2 (read interlock) ist grundsätzlich ein Lesevorgang, an den sich automatisch ein Einschreiben am selben Speicherplatz anschließt. Mit anderen Worten handelt es sich bei dieser Operation also um einen internen Lesen-Modifizieren-Schreiben-Zyklus auf der Bankebene. Während dieses Zyklus führt eine Speicherbank 41 eine Leseoperation durch, die identisch mit dem Zyklus 1 (nur Lesen) ist, der oben erläutert wurde, und sendet die Daten zu der Anforderungseinheit. Während der Schreibphase bewirkt die Banksteuerung 166, daß alle Einsen an dem byte-Speicherplatz eingeschrieben werden, der gerade ausgelesen wurde. Der Vorteil eines solchen Lesen-Modifizieren-Schreiben-Zyklus, welcher durch den Speichermodul 40 durchgeführt wird, besteht darin, daß automatische bit-Setzoperationen durchgeführt werden können, ohne den Bus zu bewegen, und einen weiteren Zugriff zum Bus zu verhindern.
Bei einem Zyklus 3 (Langwort-Schreiben) werden Langwörter eingeschrieben, indem man 32 bits der Daten von dem Puffer-zu-Bank-Register 170 zusammen mit den richtigen Prüf-bits in den Speicher einschreibt.
Ein Zyklus 4 (byte schreiben) ist dem read-interlock-Zyklus 2 insofern ähnlich, als in beiden Fällen eine
-82-
A 46 929 b
k - 176 - 82 -
24. Februar 1986
interne Lesen-Modifizieren-Schreiben-Operation ausgeführt wird. Der Inhalt des Speicherplatzes, auf den der Zugriff erfolgt, wird von den RAM-Speichern ausgelesen, auf dem EDAC-Chip 162 gespeichert und auf Fehler geprüft. Einzel-bit-Fehler werden, soweit vorhanden, automatisch korrigiert. Nicht korrigierbare Fehler werden signalisiert und in dem CSR-Register aufgezeichnet. Im Falle eines nicht korrigierbaren Fehlers wird auf die Schreiboperation verzichtet, und der Zyklus wird beendet. Wenn keine nicht korrigierbaren Fehler vorliegen, wird das zu schreibende byte von den Puffer-zu-Bank-Registern zusammen mit den ungeänderten bytes, erforderlichenfalls korrigiert, von dem EDAC-Chip 162 freigegeben und auf den RAM-Datenbus 160 gegeben. Das resultierende Wort wird zusammen mit den neuen Prüf-bits in den Speicher eingeschrieben.
Ein Zyklus 5 (Diagnoseeinheit sperren - lesen korrigieren) wird dazu benutzt, dem Diagnose-Prozessor das Lesen der RAM-Daten ohne Intervention durch den EDAC-Chip 162 zu ermöglichen. In entsprechender Weise dienen die Operationen des Zyklus 6 (Diagnosekreis sperren - schreiben korrigieren) zum Schreiben von Daten und Prüfbits, die in den Puffer-zu-Bank-Registern gespeichert sind, in den Speicher unter Umgehung des EDAC-Chips 162. Dieser Mechanismus gestattet dem Diagnose-Prozessor 46 alle Daten- oder Prüfbit-Muster zur Prüfung
-83-
A 46 929 b
k - 176 - 83 -
24. Februar 1986
des EDAC-Chips 162 in den Speicher einzuschreiben.
Während das Multiprozessor-Computersystem gemäß der Erfindung vorstehend anhand bevorzugter Ausführungsbeispiele beschrieben wurde, versteht es sich, daß dem Fachmann, ausgehend von dem Ausführungsbeispiel unter Berücksichtigung der Detailbeschreibung und der zugehörigen Zeichnungen zahlreiche Möglichkeiten für Änderungen und/oder Ergänzungen zu Gebote stehen, ohne daß er dabei den Grundgedanken der Erfindung verlassen müsste. Insbesondere können die verschiedenen Module, speziell die Speicher und Prozessor-Module, derart modifiziert werden, daß sie andere Konfigurationen von Baugruppen umfassen, beispielsweise mehr als zwei Prozessoren als Elemente eines Prozessor-Moduls .
-SV-
- Leerseite -

Claims (1)

  1. HOEGER, STELLRECHT & PARTNER 3βQ62 1
    PATENTANWÄLTE UHLANDSTRASSE 14 c D 7OOO STUTTGART 1
    A 46 929 b Anmelder: ENCORE COMPUTER CORPORATION
    k - 176 257 Cedar Hill Street
    24. Februar 1986 Marlboro, Massachusetts 01752
    U.S.A.
    Patentansprüche
    1. Multiprozessor-Computersystem, gekennzeichnet durch folgende Merkmale:
    Es sind mehrere Prozessor-Module vorgesehen, von denen jeder mindestens einen Prozessor und der Ankopplung dienende Schnittstelleneinrichtungen umfasst, über welche Daten, Adressen und Programmunterbrechungen (interrupts) übertragbar sind, wobei der Prozessor außerdem Cache-Speichereinrichtungen zum Speichern der Inhalte von häufig . angesteuerten Speicherplätzen aufweist; es sind System-Speichereinrichtungen vorgesehen, welche der Ankopplung dienende Schnittstelleneinrichtungen aufweisen, über welche Daten übertragbar sind und zu denen jeder der Prozessoren Zugriff hat;
    es sind Betriebssteuereinrichtungen zum Zuordnen und Steuern des Ablaufs einer Anzahl von Prozessen für mindestens einen Prozessor vorgesehen; es sind Zeitsteuereinrichtungen zum Erzeugen von Zeitsignalen vorgesehen, welche aufeinanderfolgende Betriebsintervalle definieren; es sind Systembuseinrichtungen vorgesehen, die
    -2-
    A 46 929 b
    k - 176 - 2 -
    24. Februar 1986
    mit den der Ankoppelung dienenden Schnittstelleneinrichtungen der Prozessor-Module und der System-Speichereinrichtungen verbunden sind, und folgende Elemente umfassen:
    a) Adressenbuseinrichtungen zum übertragen von Speicheradressen von einem der Prozessor-Module zu den System-Speichereinrichtungen;
    b) Datenbuseinrichtungen zum übertragen von Daten von den System-Speichereinrichtungen zu den einzelnen Prozessoren und von diesen zu den System-Speichereinrichtungen;
    c) Vektorbuseinrichtungen zum übertragen von Vektor-Interrupt-Signalen zwischen jeweils einem der Prozessor-Module und einem anderen Prozessor-Modul;
    d) Steuerleitungseinrichtungen als Pfade für Signale, die von den Betriebssteuereinrichtungen zu dem Prozessor-Modulen und den System-Speichereinrichtungen und von den Prozessor-Modulen und den System-Speichereinrichtungen zu den bzw. von den Betriebssteuereinrichtungen zu übertragen sind; und
    es sind Arbitereinrichtungen zum Zuteilen des Zugriffs zu den Adressenbus-, Datenbus- und Vektorbuseinrichtungen vorgesehen.
    2. System nach Anspruch 1, dadurch gekennzeichnet, daß jeder der Multiprozessor-Module folgende Elemente umfasst:
    -3-
    A 46 929 b
    k - 176 - 3 -
    24. Februar 1986
    Einschreibeinrichtungen zum Einschreiben der Inhalte häufig angesteuerter Speicherplätze in die Cache-Speichereinrichtungen;
    Prozessor-Zusatzeinrichtungen zum Speichern von Systemspeicheradressen der häufig angesteuerten Speicherplätze, deren Inhalte in den.Cache-Speichereinrichtungen gespeichert sind; Bus-Zusatzeinrichtungen zum überwachen der Systembuseinrichtungen auf Schreiboperationen, die einen Systemspeicherplatz betreffen, dessen Inhalt in den Cache-Speichereinrichtungen des Prozessor-Moduls gespeichert ist;
    Aufdatierungseinrichtungen, welche auf die Bus-Zusatz einrichtungen ansprechen, um für die Prozessor-Zusatzeinrichtungen anzuzeigen, daß der Inhalt eines Cache-Speicherplatzes von dem Inhalt des diesem entsprechenden Hauptspeicherplatzes verschieden ist.
    3. System nach Anspruch 1, dadurch gekennz eichnet, daß die Systembuseinrichtungen für eine verschachtelte Ausführung mehrerer Operationen ausgebildet sind.
    4. System nach Anspruch 1, dadurch gekennzeichnet, daß die Betriebssteuereinrichtungen Adressenbus-Arbitereinrichtungen zum Zuteilen des Zugriffs zu den Adressenbuseinrichtungen umfassen, welche über die Priorität des Zugriffs für Prozessor-Module
    A 46 929 b
    k - 176 - 4 -
    24. Februar 1986
    und Nicht-Prozessor-Module entscheiden, derart, daß die Priorität den Nicht-Prozessor-Modulen gegenüber den Prozessor-Modulen gewährt wird, und daß der Zugriff für die Prozessor-Module nach Art eines Umlaufs gewählt wird.
    5. System nach Anspruch 4, dadurch gekennzeichnet, daß die Adressenbus-Arbitereinrichtungen Reservierungseinrichtungen zum Bewirken einer Reservierung auf den Adressenbuseinrichtungen für die Dauer eines Datenlesezyklus umfassen.
    6. System nach Anspruch 1, dadurch gekennzeichnet, daß die Vektorbuseinrichtungen Entscheidungseinrichtungen umfassen, die bestimmen, welcher von mehreren Prozessoren für den Empfang eines übertragenen Vektors freigegeben wird.
    7. System nach Anspruch 1, dadurch gekennzeichnet, daß die Vektorbuseinrichtungen Aufteilungseinrichtungen umfassen, um die Prozessoren in Gruppen aufzuteilen und für eine gleichmäßige Aufteilung der Vektoren bezüglich der Gruppen zu sorgen.
    8. System nach Anspruch 4, dadurch gekennzeichnet, daß die Betriebssteuereinrichtungen Datenbus-Arbitereinrichtungen zum Zuteilen des Zugriffs zu den Datenbuseinrichtungen umfassen, wobei die
    -5-
    A 46 929 b
    k - 176 - 5 -
    24. Februar 1986
    Datenbus-Arbitereinrichtungen derart ausgebildet sind, daß sie den Zugriff zu dem Datenbus für einen Anforderungsmodul freigeben, der eine Schreiboperation anfordert und eine Adresse auf die Adressenbuseinrichtungen gegeben hat, und wobei die Datenbus-Arbitereinrichtungen ferner Entscheidungseinrichtungen umfassen, die für diejenigen Module, welche eine Lese/Antwort-Operation anfordern, über die Priorität des Zugriffs zu den Datenbuseinrichtungen entscheiden.
    9. System nach Anspruch 1, dadurch gekennzeichnet, daß die Datenbus-Arbitereinrichtungen Reservierungseinrichtungen zum Reservieren der Datenbuseinrichtungen vor dem Zeitpunkt umfassen, zu dem die Datenbuseinrichtungen von einem Anforderungsmodul benötigt werden.
    10. System nach Anspruch 1, dadurch gekennzeichnet, daß die Betriebssteuereinrichtungen Wiederholeinrichtungen umfassen, mit deren Hilfe der Versuch der Durchführung eine angeforderte Operation, welche vom Zielschaltkreis der angeforderten Operation nicht angenommen wurde, wiederholbar ist.
    11. System nach Anspruch 4 und 10, dadurch gekennzeichnet, daß die Adressenbus-Arbitereinrichtungen zusätzliche Einrichtungen umfassen, mit deren Hilfe
    -6-
    A 46 929 b
    k - 176 - 6 -
    24. Februar 1986
    eine Wiederherstellung der Priorität einer wiederholten Anforderung ohne Störung des Umlauf-Prioritätsschemas herbeiführbar ist.
    12. System nach Anspruch 1, dadurch gekennzeichnet, daß die BetriebsSteuereinrichtungen Freigabeeinrichtungen umfassen, mit deren Hilfe ein Zugriff für eine Datenanforderung gewährbar ist, welcher für ein vorgegebenes Zeitintervall ein Zugriff zu den Datenbuseinrichtungen verwehrt war, wobei die Freigabeeinrichtungen Sperreinrichtungen umfassen, um zu verhindern, daß neue Anforderungen Zugriff zu den Systembuseinrichtungen erhalten.
    13. System nach Anspruch 1, dadurch gekennzeichnet, daß Schnittstelleneinrichtungen vorgesehen sind, welche mit den Systembuseinrichtungen verbunden sind und einen Austausch von Daten-, Adressen- und Interrupt-Signalen mit mindestens einem weiteren Multiprozessor-Computersystem ermöglichen, derart, daß das eine Multiprozessor-Computersystem und das mindestens eine weitere Multiprozessor-Computersystem als ein einziges, mit einem einzigen Bus verbundenes System von eng gekoppelten Prozessoren arbeiten.
    14. System nach Anspruch 1, dadurch gekennzeichnet, daß die Cache-Speichereinrichtungen der einzelnen
    — 7 —
    A 46 929 b
    k - 176 - 7 -
    24. Februar 1986
    Prozessor-Module Einschreibeinrichtungen umfassen, mit deren Hilfe dieselben Daten in die Cache-Speichereinrichtungen und in die Systemspeichereinrichtungen einschreibbar sind.
    15. System nach Anspruch 1, dadurch gekennzeichnet, daß die Cache-Speichereinrichtungen der einzelnen Prozessor-Module Umschalteinrichtungen umfassen, durch deren Betätigung ein Einschreiben allein in die Cache-Speichereinrichtungen herbeiführbar ist und daß die Umschalteinrichtungen Anzeigeeinrichtungen umfassen, durch die für die Systemspeichereinrichtungen anzeigbar ist, daß die an einem Speicherplatz der Cache-Speichereinrichtungen gespeicherten Daten von den an einem entsprechenden Speicherplatz der Systemspeichereinrichtungen gespeicherten Daten verschieden sind.
    16. System nach Anspruch 1, dadurch gekennzeichnet, daß die System-Speichereinrichtungen Speichereinrichtungen zum Sperren eines Speicherplatzes während eines Lese-Modifizier-Schreib-Zyklus umfassen und daß die Sperreinrichtungen derart ausgebildet sind, daß sie die übertragung von Daten und Adressen durch das System bei gesperrtem Speicherplatz gestatten.
    -8-
    A 46 929 b
    k - 176 - 8 -
    24. Februar 1986
    17. System nach Anspruch 1, dadurch gekennzeichnet, daß Schnittstelleneinrichtungen vorgesehen sind, welche mit den Systembuseinrichtungen verbunden sind und einen Austausch von Daten-, Adressen-Interrupt-Signalen mit mindestens einem weiteren Multiprozessor-Computersystem ermöglichen und daß die Schnittstelleneinrichtungen Cache-Speichereinrichtungen zum Speichern der Inhalte von häufig angesteuerten Speicherplätzen des mindestens einen weiteren Mikroprozessor-Computersystems aufweisen.
    18. System nach Anspruch 1, dadurch gekennzeichnet, daß die Cache-Speichereinrichtungen als Durchschreib -Cache-Speichereinrichtungen ausgebildet sind, bei denen Daten, die in Cache-Speicherplätze einzuschreiben sind, "auch in Speicherplätze der Systemspeichereinrichtungen eingeschrieben werden.
    19. System nach Anspruch 1, dadurch gekennzeichnet, daß die Cache-Speichereinrichtungen als Nicht-Dur chschreib-Speichereinrichtungen ausgebildet sind, bei denen Daten, die in Cache-Speicherplätze eingeschrieben werden, nur in diese eingeschrieben werden.
    20. System nach Anspruch 19, dadurch gekennzeichnet, daß Anzeigeeinrichtungen vorgesehen sind, durch die für die Anforderungseinrichtungen anzeigbar
    -9-
    A 46 929 b
    k - 176 - 9 -
    24. Februar 1986
    ist, daß Daten, die an einem Speicherplatz der Systemspeichereinrichtungen gespeichert sind, in der gültigen Form nur in den Nicht-Durchschreib-Cache-Speichereinrichtungen gespeichert sind.
    -10-
DE19863606211 1985-02-27 1986-02-26 Multiprozessor-computersystem Withdrawn DE3606211A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/706,142 US5067071A (en) 1985-02-27 1985-02-27 Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus

Publications (1)

Publication Number Publication Date
DE3606211A1 true DE3606211A1 (de) 1986-12-04

Family

ID=24836377

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19863606211 Withdrawn DE3606211A1 (de) 1985-02-27 1986-02-26 Multiprozessor-computersystem

Country Status (6)

Country Link
US (1) US5067071A (de)
JP (1) JPS6231465A (de)
AU (1) AU582822B2 (de)
DE (1) DE3606211A1 (de)
FR (1) FR2578071B1 (de)
GB (1) GB2171542A (de)

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4858173A (en) * 1986-01-29 1989-08-15 Digital Equipment Corporation Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system
NZ220423A (en) * 1986-05-30 1989-07-27 Honeywell Bull Multiprocessor system; shared resource status appears on bus
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
IL85518A0 (en) * 1987-03-13 1988-08-31 Apple Computer Computer with expansion slots for cards and card therefor
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
IT1227360B (it) * 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
US5043874A (en) * 1989-02-03 1991-08-27 Digital Equipment Corporation Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
CA1324679C (en) * 1989-02-03 1993-11-23 Michael A. Gagliardo Method and means for interfacing a system control unit for a multi-processor system with the system main memory
US5526487A (en) * 1989-02-09 1996-06-11 Cray Research, Inc. System for multiprocessor communication
US5121487A (en) * 1989-02-21 1992-06-09 Sun Microsystems, Inc. High speed bus with virtual memory data transfer capability using virtual address/data lines
IT1228728B (it) * 1989-03-15 1991-07-03 Bull Hn Information Syst Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi.
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
US5212796A (en) * 1990-01-02 1993-05-18 Motorola, Inc. System with modules using priority numbers related to interrupt vectors for bit-serial-arbitration on independent arbitration bus while CPU executing instructions
US5555425A (en) * 1990-03-07 1996-09-10 Dell Usa, L.P. Multi-master bus arbitration system in which the address and data lines of the bus may be separately granted to individual masters
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
JP2545482B2 (ja) * 1990-03-15 1996-10-16 富士通株式会社 インタ―フェイス装置の転送パラメ―タ設定方法
US5289585A (en) * 1990-03-26 1994-02-22 Siemens Nixdorf Informationssysteme Ag Multiprocessor system having a system bus for the coupling of several processing units with appertaining private cache memories and a common main memory
US5179707A (en) * 1990-06-01 1993-01-12 At&T Bell Laboratories Interrupt processing allocation in a multiprocessor system
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
JP3144794B2 (ja) * 1990-11-09 2001-03-12 株式会社日立製作所 マルチプロセッサシステム
US5495615A (en) * 1990-12-21 1996-02-27 Intel Corp Multiprocessor interrupt controller with remote reading of interrupt control registers
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5282272A (en) * 1990-12-21 1994-01-25 Intel Corporation Interrupt distribution scheme for a computer bus
US5253348A (en) * 1990-12-28 1993-10-12 Apple Computer, Inc. Method of arbitration for buses operating at different speeds
WO1992017840A1 (en) * 1991-03-28 1992-10-15 Cray Research, Inc. Real-time i/o operation in a vector processing computer system
US5515523A (en) * 1991-06-03 1996-05-07 Digital Equipment Corporation Method and apparatus for arbitrating conflicts by monitoring number of access requests per unit of time in multiport memory systems
US5392417A (en) * 1991-06-05 1995-02-21 Intel Corporation Processor cycle tracking in a controller for two-way set associative cache
US5280608A (en) * 1991-06-28 1994-01-18 Digital Equipment Corporation Programmable stall cycles
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
JP3466212B2 (ja) * 1991-09-17 2003-11-10 インテル・コーポレーション コンピュータシステム
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
CA2078312A1 (en) 1991-09-20 1993-03-21 Mark A. Kaufman Digital data processor with improved paging
CA2078310A1 (en) * 1991-09-20 1993-03-21 Mark A. Kaufman Digital processor with distributed memory system
US5293384A (en) * 1991-10-04 1994-03-08 Bull Hn Information Systems Inc. Microprocessor bus interface protocol analyzer
US5442785A (en) * 1991-10-08 1995-08-15 Unisys Corporation Method and apparatus for passing messages between application programs on host processors coupled to a record lock processor
WO1993013481A1 (en) * 1991-12-23 1993-07-08 Intel Corporation Interleaved cache for multiple accesses per clock in a microprocessor
US5276858A (en) * 1991-12-26 1994-01-04 Intel Corporation Memory controller with integrated delay line circuitry
US5239632A (en) * 1992-04-16 1993-08-24 Hewlett-Packard Company Device to translate logical unit number communications on one SCSI bus to ID communications on a subordinate SCSI bus
US5555382A (en) * 1992-04-24 1996-09-10 Digital Equipment Corporation Intelligent snoopy bus arbiter
JPH0660015A (ja) * 1992-06-08 1994-03-04 Mitsubishi Electric Corp 情報処理装置
ATE186411T1 (de) * 1992-08-19 1999-11-15 Siemens Nixdorf Inf Syst Multiprozessorsystem mit cache-speichern
US5491812A (en) * 1992-09-28 1996-02-13 Conner Peripherals, Inc. System and method for ethernet to SCSI conversion
US5553248A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation System for awarding the highest priority to a microprocessor releasing a system bus after aborting a locked cycle upon detecting a locked retry signal
US5553310A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
SE9203016L (sv) * 1992-10-14 1994-04-15 Ericsson Telefon Ab L M Signalbehandlingssystem med delat dataminne
EP0599488B1 (de) * 1992-11-18 1999-10-06 Canon Information Systems, Inc. Verfahren und Vorrichtung zur Prüfung einer Schnittstellenkarte
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
EP0608663B1 (de) * 1993-01-25 1999-03-10 Bull HN Information Systems Italia S.p.A. Multiprozessorsystem mit gemeinsamem Speicher
US5666515A (en) * 1993-02-18 1997-09-09 Unisys Corporation Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
US5381541A (en) * 1993-05-26 1995-01-10 International Business Machines Corp. Computer system having planar board with single interrupt controller and processor card with plural processors and interrupt director
FR2707778B1 (fr) * 1993-07-15 1995-08-18 Bull Sa NÓoeud de processeurs.
US5590338A (en) * 1993-07-23 1996-12-31 Dell Usa, L.P. Combined multiprocessor interrupt controller and interprocessor communication mechanism
US5473763A (en) * 1993-08-02 1995-12-05 Advanced Micro Devices, Inc. Interrupt vector method and apparatus
US5671372A (en) * 1993-09-30 1997-09-23 International Business Machines Corporation Data processing system with microprocessor/cache chip set directly coupled to memory bus of narrower data width
SG67906A1 (en) * 1993-12-16 1999-10-19 Intel Corp Multiple programmable interrupt controllers in a multi-processor system
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US5519876A (en) * 1993-12-23 1996-05-21 Unisys Corporation Processor communications bus having address lines selecting different storage locations based on selected control lines
US5611053A (en) * 1994-01-21 1997-03-11 Advanced Micro Devices, Inc. Apparatus and method for integrating bus master ownership of local bus load by plural data transceivers
US6295572B1 (en) * 1994-01-24 2001-09-25 Advanced Micro Devices, Inc. Integrated SCSI and ethernet controller on a PCI local bus
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
EP0665501A1 (de) * 1994-01-28 1995-08-02 Compaq Computer Corporation Bus-Master-Arbitrierungsschaltung mit Wiederholungsmechanismus
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
DE69519816T2 (de) * 1994-05-03 2001-09-20 Hewlett-Packard Company (A Delaware Corporation), Palo Alto Anordnung mit Duplikat des Cache-Etikettenspeichers
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
EP0695999A3 (de) * 1994-06-30 1998-07-08 Digital Equipment Corporation Systembus mit getrennten Protokollen für Adresse und Databus
US6256694B1 (en) * 1994-06-30 2001-07-03 Compaq Computer Corporation Distributed early arbitration
US5748866A (en) * 1994-06-30 1998-05-05 International Business Machines Corporation Virtual display adapters using a digital signal processing to reformat different virtual displays into a common format and display
CN1191533C (zh) * 1994-08-31 2005-03-02 国际商业机器公司 用于设备间通信的系统与方法
CA2154509A1 (en) * 1994-10-03 1996-04-04 Paul Peixoto Carreiro Method and apparatus for automatic frame transmission on a channel to controller interface in a data processing system
WO1996013775A1 (en) * 1994-10-26 1996-05-09 Flamepoint, Inc. Simultaneous processing by multiple components
US5623699A (en) * 1994-12-06 1997-04-22 Thunderwave, Inc. Read only linear stream based cache system
US6061731A (en) * 1994-12-06 2000-05-09 Thunderwave, Inc. Read only linear stream based cache system
US5872982A (en) * 1994-12-28 1999-02-16 Compaq Computer Corporation Reducing the elapsed time period between an interrupt acknowledge and an interrupt vector
US5761731A (en) * 1995-01-13 1998-06-02 Digital Equipment Corporation Method and apparatus for performing atomic transactions in a shared memory multi processor system
US5638538A (en) * 1995-01-13 1997-06-10 Digital Equipment Corporation Turbotable: apparatus for directing address and commands between multiple consumers on a node coupled to a pipelined system bus
US5596729A (en) * 1995-03-03 1997-01-21 Compaq Computer Corporation First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus
US6524019B1 (en) * 1995-03-27 2003-02-25 Nec Corporation Inter-cluster data transfer system and data transfer method
US5864839A (en) * 1995-03-29 1999-01-26 Tm Patents, L.P. Parallel system and method for generating classification/regression tree
US5923859A (en) * 1995-04-13 1999-07-13 Compaq Computer Corporation Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus
US5815676A (en) * 1995-04-28 1998-09-29 Apple Computer, Inc. Address bus arbiter for pipelined transactions on a split bus
US5708783A (en) * 1995-04-28 1998-01-13 Apple Computer, Inc. Data bus arbiter for pipelined transactions on a split bus
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US5706446A (en) * 1995-05-18 1998-01-06 Unisys Corporation Arbitration system for bus requestors with deadlock prevention
US5644733A (en) * 1995-05-18 1997-07-01 Unisys Corporation Dual coupled partitionable networks providing arbitration logic for managed access to commonly shared busses
US5737524A (en) * 1995-05-22 1998-04-07 International Business Machines Corporation Add-in board with programmable configuration registers for use in PCI bus computers
KR960042387A (ko) * 1995-05-31 1996-12-21 유기범 하이파이플러스 인터럽트버스 중재방법
US6529933B1 (en) 1995-06-07 2003-03-04 International Business Machines Corporation Method and apparatus for locking and unlocking a semaphore
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
US5765195A (en) * 1995-12-08 1998-06-09 Ncr Corporation Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms
KR100197407B1 (ko) * 1995-12-28 1999-06-15 유기범 전전자 교환기에 있어서 프로세서들간 통신버스구조
EP0882266A1 (de) 1996-02-20 1998-12-09 Intergraph Corporation Hochverfügbarer superserver
KR100391246B1 (ko) * 1996-04-08 2003-11-28 엘지엔시스(주) 다중 프로세서 시스템의 시스템 버스 운용방법
US5954809A (en) * 1996-07-19 1999-09-21 Compaq Computer Corporation Circuit for handling distributed arbitration in a computer system having multiple arbiters
JP3317156B2 (ja) * 1996-09-18 2002-08-26 三菱電機株式会社 リモートplc装置を備えた数値制御装置
US7136903B1 (en) 1996-11-22 2006-11-14 Mangosoft Intellectual Property, Inc. Internet-based shared file service with native PC client access and semantics and distributed access control
US6647393B1 (en) * 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US6021261A (en) * 1996-12-05 2000-02-01 International Business Machines Corporation Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US6014709A (en) * 1997-11-05 2000-01-11 Unisys Corporation Message flow protocol for avoiding deadlocks
US6049845A (en) * 1997-11-05 2000-04-11 Unisys Corporation System and method for providing speculative arbitration for transferring data
US6092156A (en) * 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6292910B1 (en) * 1998-09-14 2001-09-18 Intel Corporation Method and apparatus for detecting a bus deadlock in an electronic system
US6052700A (en) * 1998-09-17 2000-04-18 Bull Hn Information Systems Inc. Calendar clock caching in a multiprocessor data processing system
EP1067461B1 (de) 1999-07-08 2013-04-24 Texas Instruments France Vereinheitlichtes Speicherverwaltungssystem für heterogene Multiprozessor-Architektur
US6687818B1 (en) 1999-07-28 2004-02-03 Unisys Corporation Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system
US6665761B1 (en) 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system
WO2001028179A2 (en) 1999-10-14 2001-04-19 Bluearc Uk Limited Apparatus and method for hardware implementation or acceleration of operating system functions
US6629176B1 (en) * 1999-11-02 2003-09-30 Agilent Technologies, Inc. Arbiter architecture allowing rapid implementation of arbitration policies
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US6564274B1 (en) * 1999-12-17 2003-05-13 Omnicluster Technologies, Inc. Modular architecture for small computer networks
US6609034B1 (en) * 2000-03-29 2003-08-19 Epicenter, Incorporated System and method for remotely controlling and monitoring a plurality of computer systems
US6463506B1 (en) 2000-04-29 2002-10-08 Hewlett-Packard Company Arrangement of data within cache lines so that tags are first data received
US6742160B2 (en) * 2001-02-14 2004-05-25 Intel Corporation Checkerboard parity techniques for a multi-pumped bus
US6742145B2 (en) * 2001-03-01 2004-05-25 International Business Machines Corporation Method of de-allocating multiple processor cores for an L2 correctable error
US7032134B2 (en) * 2001-03-28 2006-04-18 Intel Corporation Microprocessor design support for computer system and platform validation
DE10128475A1 (de) * 2001-06-12 2003-01-02 Siemens Ag Mehrprozessorsystem mit geteiltem Arbeitsspeicher
US6789155B2 (en) * 2001-08-29 2004-09-07 Micron Technology, Inc. System and method for controlling multi-bank embedded DRAM
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US7000046B1 (en) * 2003-01-17 2006-02-14 Unisys Corporation Standard channel I/O processor (SCIOP)
US7099971B1 (en) * 2003-06-26 2006-08-29 Emc Corporation Arbitration system
JP4487756B2 (ja) * 2004-12-16 2010-06-23 日本電気株式会社 コンピュータシステム及びシステム監視プログラム
US8291174B2 (en) 2007-08-15 2012-10-16 Micron Technology, Inc. Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same
US7822911B2 (en) * 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
US8055852B2 (en) 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
US10026458B2 (en) 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
CN102207852A (zh) * 2011-05-27 2011-10-05 清华大学 动态可重构处理器内子单元间进行数据交互的系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4232366A (en) * 1978-10-25 1980-11-04 Digital Equipment Corporation Bus for a data processing system with overlapped sequences
US4365294A (en) * 1980-04-10 1982-12-21 Nizdorf Computer Corporation Modular terminal system using a common bus
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
DE3235739C2 (de) * 1982-09-27 1984-07-12 Nixdorf Computer Ag, 4790 Paderborn Verfahren zur Vorbereitung der Anschaltung einer von mehreren datenverarbeitenden Einrichtungen an eine zentral taktgesteuerte Mehrfach-Leitungsanordnung
EP0165600A2 (de) * 1984-06-20 1985-12-27 Convex Computer Corporation Ein-/Ausgabebus für Rechner

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3566363A (en) * 1968-07-11 1971-02-23 Ibm Processor to processor communication in a multiprocessor computer system
US3710324A (en) * 1970-04-01 1973-01-09 Digital Equipment Corp Data processing system
US3665404A (en) * 1970-04-09 1972-05-23 Burroughs Corp Multi-processor processing system having interprocessor interrupt apparatus
FR2273317B1 (de) * 1974-05-28 1976-10-15 Philips Electrologica
US4130865A (en) * 1974-06-05 1978-12-19 Bolt Beranek And Newman Inc. Multiprocessor computer apparatus employing distributed communications paths and a passive task register
US4141067A (en) * 1977-06-13 1979-02-20 General Automation Multiprocessor system with cache memory
US4190885A (en) * 1977-12-22 1980-02-26 Honeywell Information Systems Inc. Out of store indicator for a cache store in test mode
FR2430637A1 (fr) * 1978-07-06 1980-02-01 Cii Honeywell Bull Procede et dispositif pour garantir la coherence des informations entre des caches et d'autres memoires d'un systeme de traitement de l'information travaillant en multitraitement
US4229791A (en) * 1978-10-25 1980-10-21 Digital Equipment Corporation Distributed arbitration circuitry for data processing system
US4513390A (en) * 1979-06-08 1985-04-23 Planning Research Corporation System for digital transmission and synthesis of integrated data
IT1122890B (it) * 1979-08-30 1986-04-30 Honeywell Inf Systems Italia Sistema a microprocessori con struttura modulare a bus e configurazione espandibile
BE887134A (fr) * 1979-12-14 1981-05-14 Gte Automatic Electric Lab Inc Circuit expanseur d'interruption
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4400773A (en) * 1980-12-31 1983-08-23 International Business Machines Corp. Independent handling of I/O interrupt requests and associated status information transfers
US4439829A (en) * 1981-01-07 1984-03-27 Wang Laboratories, Inc. Data processing machine with improved cache memory management
US4420806A (en) * 1981-01-15 1983-12-13 Harris Corporation Interrupt coupling and monitoring system
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
US4570217A (en) * 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
US4562535A (en) * 1982-04-05 1985-12-31 Texas Instruments Incorporated Self-configuring digital processor system with global system
US4539637A (en) * 1982-08-26 1985-09-03 At&T Bell Laboratories Method and apparatus for handling interprocessor calls in a multiprocessor system
US4591976A (en) * 1983-06-17 1986-05-27 The United States Of America As Represented By The Secretary Of The Air Force Multiple task oriented processor
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control
CA1239227A (en) * 1984-10-17 1988-07-12 Randy D. Pfeifer Method of and arrangement for ordering of multiprocessor operations in a multiprocessor system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4232366A (en) * 1978-10-25 1980-11-04 Digital Equipment Corporation Bus for a data processing system with overlapped sequences
US4365294A (en) * 1980-04-10 1982-12-21 Nizdorf Computer Corporation Modular terminal system using a common bus
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
DE3235739C2 (de) * 1982-09-27 1984-07-12 Nixdorf Computer Ag, 4790 Paderborn Verfahren zur Vorbereitung der Anschaltung einer von mehreren datenverarbeitenden Einrichtungen an eine zentral taktgesteuerte Mehrfach-Leitungsanordnung
EP0165600A2 (de) * 1984-06-20 1985-12-27 Convex Computer Corporation Ein-/Ausgabebus für Rechner

Also Published As

Publication number Publication date
FR2578071B1 (fr) 1990-01-12
JPS6231465A (ja) 1987-02-10
US5067071A (en) 1991-11-19
FR2578071A1 (fr) 1986-08-29
GB2171542A (en) 1986-08-28
AU5340486A (en) 1986-09-04
AU582822B2 (en) 1989-04-13
GB8604787D0 (en) 1986-04-03

Similar Documents

Publication Publication Date Title
DE3606211A1 (de) Multiprozessor-computersystem
DE69521549T2 (de) Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE3486299T2 (de) Bus-Arbitrierungssystem.
DE69429279T2 (de) Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern
DE69032614T2 (de) Verfahren zur Datenverteilung in einer Speicherplattenanordnung
DE69223303T2 (de) Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE3909948C2 (de)
DE3127349C2 (de)
DE3882977T2 (de) Verfahren und anordnung zur implementierung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3883532T2 (de) Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus.
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE3114934A1 (de) Zentrales subsystem fuer eine datenverarbeitungsanlage
DE2750721A1 (de) Ein/ausgabe-system
DE3485980T2 (de) Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem.
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE69230483T2 (de) Quadraturbusprotokoll zum Ausführen von Transaktionen in einer Rechneranordnung
DE102004003102A1 (de) System und Verfahren zum Bestimmen einer Transaktionszeitüberschreitung
DE4413459C2 (de) Programmierbares Interrupt-Controller-System
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8139 Disposal/non-payment of the annual fee