DE3606211A1 - Multiprozessor-computersystem - Google Patents
Multiprozessor-computersystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
- G06F13/4036—Coupling between buses using bus bridges with arbitration and deadlock prevention
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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.
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 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.
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.
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
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.
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.
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.
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:
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 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.
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.
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
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)
- HOEGER, STELLRECHT & PARTNER 3βQ62 1PATENTANWÄLTE UHLANDSTRASSE 14 c D 7OOO STUTTGART 1A 46 929 b Anmelder: ENCORE COMPUTER CORPORATIONk - 176 257 Cedar Hill Street24. Februar 1986 Marlboro, Massachusetts 01752U.S.A.Patentansprüche1. 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 bk - 176 - 2 -24. Februar 1986mit 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; undes 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 bk - 176 - 3 -24. Februar 1986Einschreibeinrichtungen 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-ModuleA 46 929 bk - 176 - 4 -24. Februar 1986und 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 bk - 176 - 5 -24. Februar 1986Datenbus-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 bk - 176 - 6 -24. Februar 1986eine 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 bk - 176 - 7 -24. Februar 1986Prozessor-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 bk - 176 - 8 -24. Februar 198617. 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 bk - 176 - 9 -24. Februar 1986ist, 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-
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)
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)
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)
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 |
-
1985
- 1985-02-27 US US06/706,142 patent/US5067071A/en not_active Expired - Lifetime
-
1986
- 1986-02-12 AU AU53404/86A patent/AU582822B2/en not_active Ceased
- 1986-02-26 JP JP61041367A patent/JPS6231465A/ja active Pending
- 1986-02-26 GB GB08604787A patent/GB2171542A/en not_active Withdrawn
- 1986-02-26 FR FR868602680A patent/FR2578071B1/fr not_active Expired - Lifetime
- 1986-02-26 DE DE19863606211 patent/DE3606211A1/de not_active Withdrawn
Patent Citations (5)
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 |