DE3852698T2 - Multiprozessorsystem mit Vervielfältigung von globalen Daten. - Google Patents

Multiprozessorsystem mit Vervielfältigung von globalen Daten.

Info

Publication number
DE3852698T2
DE3852698T2 DE3852698T DE3852698T DE3852698T2 DE 3852698 T2 DE3852698 T2 DE 3852698T2 DE 3852698 T DE3852698 T DE 3852698T DE 3852698 T DE3852698 T DE 3852698T DE 3852698 T2 DE3852698 T2 DE 3852698T2
Authority
DE
Germany
Prior art keywords
processor
signal
system bus
bus
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3852698T
Other languages
English (en)
Other versions
DE3852698D1 (de
Inventor
Ferruccio Zulian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Application granted granted Critical
Publication of DE3852698D1 publication Critical patent/DE3852698D1/de
Publication of DE3852698T2 publication Critical patent/DE3852698T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Landscapes

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

Description

  • Die Erfindung betrifft ein Multiprozessor-Rechnersystem, welches eine globale Datenmultiplikation aufweist.
  • Ein Multiprozessor-Rechnersystem weist mehrere unabhängig oder halb-unabhängig arbeitende intelligente Einheiten oder Prozessoren auf, die zur gegenseitigen Kommunikation über einen Kommunikationsbus verbunden sind.
  • Das System kann auch weitere Einheiten aufweisen, die passiv sind, also nur unter Anweisung und Steuerung einer intelligenten Einheit arbeiten.
  • Ein Beispiel für eine passive Einheit ist ein Hauptarbeitsspeicher, der an den Kommunikationsbus angeschlossen ist, und von den intelligenten Einheiten gemeinsam genutzt wird.
  • Der Zweck der Verteilung der Systemintelligenz zwischen mehreren Prozessoren, die von der Funktion her gleich oder unterschiedlich sein können, beispielsweise ein Zentralprozessor oder I/O-Prozessoren, besteht in der Verbesserung der Durchsatzleistung des Systems, da unterschiedliche Vorgänge und Tasks gleichzeitig von den verschiedenen Einheiten durchgeführt werden.
  • Es sind verschiedene Multiprozessor-Rechnersysteme bekannt, deren Architektur zwischen der lose gekoppelten Architektur, die im Extremfall eine Gruppe unabhängiger Prozessoren ist, die einige Information über einen Bus austauschen können, und der eng gekoppelten Architektur liegt, die im Extremfall eine Gruppe von Prozessoren ist, die mehrere Quellen wie beispielsweise Speicher, Register, Eingabe/Ausgabe-Einheiten teilen, und die einander die Betriebsbedingungen vorgeben.
  • Beide Architekturen weisen Vorteile und Einschränkungen auf, die sich folgendermaßen zusammenfassen lassen:
  • Bei lose gekoppelter Architektur gibt es eine hohe Leistung eines einzelnen Prozessors, jedoch wird kein einfacher Ausgleich in Echtzeit der Belastung zwischen den Prozessoren ermöglicht.
  • Umgekehrt ermöglichen eng gekoppelte Architekturen einen einfachen Lastausgleich und eine einfache Verteilung zwischen Prozessoren, jedoch werden sie durch die Engstelle beeinträchtigt, die in der gemeinsamen Nutzung gemeinsamer Quellen über einen oder mehrere Busse besteht (der ebenfalls eine gemeinsame Quelle darstellt).
  • Soweit die Systembus-Engstelle betroffen ist, beschreibt die EP-A-1 81 007 ein BUS-Sendeverfahren und eine zugehörige Vorrichtung für ein Multiprozessorsystem, wobei jeder Prozessor, der dieselben Daten oder dieselbe Nachricht an mehrere andere Prozessoren senden muß, eine Sendebetriebsart einstellen kann, Zugriff auf den Systembus erlangen kann, und die Sendebetriebsart durch einen Adressencode identifizieren kann.
  • Der Adressencode wird von sämtlichen Prozessoren festgestellt, und die zu sendenden Daten werden in Eingangspuffern zwischengespeichert. Wenn das Senden der Nachricht beendet ist, so wird ein Interrupt-Signal in den empfangenden Prozessoren erzeugt, und die zugehörige CPU beginnt mit einer Interrupt- Bearbeitungsroutine.
  • Die beschriebene Vorgehensweise stellt beim Austausch von Nachrichten unter Prozessoren, bei welchen mehrere Empfangsprozessoren beteiligt sind, in der Hinsicht einige Vorteile zur Verfügung, daß vermieden wird, daß mehrfach auf den Bus zugegriffen werden muß, um dieselbe Information zu jedem von mehreren Prozessoren zu übertragen, jedoch ist diese Vorgehensweise ungeeignet für den gleichzeitigen Zugriff auf mehrere lokale Speicher, da sie die Intervention mehrerer CPUs nach Ausgabe eines Interrupt-Signals erfordert, also eine Intervention auf dem Software-Niveau, welche die mehreren CPUs dazu zwingt, von einem Bearbeitungsvorgang auf eine Interrupt-Bearbeitungsroutine überzugehen.
  • Die weitere Beendigung der Informationsübertragung an sämtliche beteiligten Prozessoren wird nicht sicher durch ein Rückkopplungssignal von den verschiedenen Prozessoren sichergestellt.
  • Eine dazwischenliegende Vorgehensweise besteht darin, daß gemeinsame Quellen und lokale Quellen vorgesehen werden, beispielsweise lokale Speicher, und zwar in jedem Prozessor, wobei die gemeinsamen Quellen für sämtliche Prozessoren zur Verfügung stehen, über den Systembus, jedoch die lokalen Quellen nur dem jeweiligen Prozessor zur Verfügung stehen.
  • Cache-Speicher können in diesem Zusammenhang als lokale Speicher angesehen werden.
  • Durch diese Anordnung kann die Konkurrenz zwischen Prozessoren beim Zugriff auf gemeinsame Quellen verringert werden, da der Hauptteil der Information, mit welcher sie arbeiten müssen, gespeichert und von den lokalen Quellen behandelt werden kann, jedoch muß, damit die Arbeitsergebnisse den anderen Prozessoren zur Verfügung stehen, in den gemeinsamen Quellen eine Kopie der durchgeführten Arbeit verfügbar sein, wodurch wiederum eine gewisse Belegung des Systembusses zum Schreiben und Lesen der angeforderten Information sowie eine Prozessoraktivität zur Durchführung derartiger Operationen erforderlich sind.
  • Der Nachteil wird dadurch weiter erhöht, daß eine Kongruenz zwischen der in lokalen Quellen gespeicherten Information und der kopierten Information sichergestellt werden muß, die in dem gemeinsamen Arbeitsspeicher gespeichert wird.
  • Zur Überwindung dieser Nachteile ist es unbedingt erforderlich, daß jede Information, die für einen der Prozessoren von Interesse sein kann, immer in gemeinsamen Quellen gespeichert ist, und nicht in lokalen Quellen dubliziert wird. Die einzige Ausnahme von dieser Anforderung kann bei nicht änderbarer Information vorhanden sein, beispielsweise Betriebssystemsbefehlen, die keine variablen Parameter und Adressen aufweisen.
  • Hier handelt es sich um nur lesbare Information, und diese kann frei wählbar in jedem der lokalen Speicher dubliziert werden.
  • Eine alternativ vorgeschlagene Vorgehensweise führt zu dem Konzept geteilter, globaler Quellen, und ist beispielsweise in der europäischen Patentanmeldung mit der Veröffentlichungsnummer 0 105 556 beschrieben.
  • Zusammenfassend kann jeder Professor in einem Multiprozessorsystem seine eigenen, lokalen Quellen aufweisen, nämlich einen lokalen Speicher, auf den dicht über den Systembus zugegriffen werden muß, jedoch können dieselben lokalen Quellen als verteilte gemeinsame Quellen angesehen werden, auf die über den Systembus von jedem Prozessor in dem System zugegriffen werden kann.
  • Offensichtlich bringt eine derartige Architektur gewisse Vorteile mit sich, frei von den voranstehend erwähnten Einschränkungen, erfordert jedoch immer noch, wenn eine erhöhte Leistung gefordert ist, daß die meiste, oder sogar die gesamte Information, die von mehr als einem Prozessor angefordert wird, in einer gemeinsamen, nicht-lokalen Quelle gespeichert ist, und auf diese muß immer noch über den Systembus zugegriffen werden.
  • Daher ist der Engpaß des Systembusses und der gemeinsamen Nutzung von Speichern immer noch vorhanden, wenn auch in gewissem Ausmaß abgemildert.
  • Die vorliegende Erfindung stellt eine weitere Verbesserung des Wirkungsgrades einer Multiprozessor-Systemarchitektur zur Verfügung, gleichgültig ob diese eng oder lose gekoppelt ist, und die gemeinsame und/oder verteilte Quellen aufweist, durch Bereitstellung einer neuen Nutzung verteilter Quellen und von Schaltungen, die eine derartige, neue Nutzung ermöglichen; und ist gemäß Patentanspruch 1 aufgebaut.
  • Das grundlegende Konzept besteht darin, globale Daten, also änderbare Information, die von mehr als einem Prozessor angefordert wird, zu dublizieren und in einem lokalen Speicher jedes der Prozessoren zu speichern, welche das System bilden, sowie einen Schreibmechanismus vorzusehen, der durch Hardware, ohne daß eine Software-Intervention erforderlich ist, jedesmal dann, wenn ein globales Datum in einem lokalen Speicher geändert wird, eine entsprechende Änderung in demselben globalen Datum in sämtlichen anderen lokalen Speichern zur Verfügung stellt.
  • Daher können globale Daten durch jeden Prozessor dadurch gelesen werden, daß ein Zugriff auf den eigenen, lokalen Speicher des Prozessors erfolgt, ohne daß es erforderlich ist, über den Systembus auf einen gemeinsamen Speicher zurückzugreifen, wogegen ein Zugriff auf den Systembus nur in einem solchen Fall erforderlich ist, in welchem ein globales Datum in einem lokalen Speicher durch einen Schreibvorgang geändert werden muß, was es erforderlich macht, über den Systembus auf die anderen lokalen Speicher für einen entsprechenden Schreibvorgang zurückzugreifen.
  • Berücksichtigt man, daß für jede Art einer änderbaren Information die Anzahl der Lesevorgänge für diese Information die Anzahl der Abänderungen und erneuten Einschreibungen bei weitem übersteigt (im Durchschnitt um mehr als das Zweifache), wird eine beträchtliche Leistungsverbesserung erzielt.
  • Allerdings ist das Konzept der "globalen Daten" nicht starr und kann angepaßt werden, um noch höhere Verbesserungen der Leistung zu erzielen.
  • Beispielsweise können "globale Daten" als die gemeinsam genutzten und änderbaren Informationseinheiten definiert werden, die wahrscheinlich in einem Zeitraum unverändert bleiben, in welchem sie von denselben oder unterschiedlichen Prozessoren ausgelesen werden, wobei der Zeitraum eine vorbestimmte Anzahl von beispielsweise 5 oder 10 übersteigt.
  • Diese und weitere Vorteile und die grundlegenden Merkmale der Erfindung werden aus der nachstehenden Beschreibung und den zugehörigen Zeichnungen noch deutlicher. Es zeigt:
  • Fig. 1 ein Blockschaltbild eines Multiprozessor-Rechnersystems, welches eine globale Datenmultiplikation in jedem von mehreren lokalen Speichern aufweist, gemäß der Erfindung;
  • Fig. 2 die Formatstruktur einer Speicheradresse in dem System von Fig. 1;
  • Fig. 3 eine bevorzugte Ausführungsform einer Schnittstelleneinheit der Prozessoren in dem System von Fig. 1;
  • Fig. 4 eine bevorzugte Ausführungsform zusätzlicher Schaltungen in der Schnittstelleneinheit von Fig. 3, um ein Bestätigungssignal für einen globalen Datenschreibvorgang zu erhalten, der in sämtlichen Prozessoren durchgeführt wird; und
  • Fig. 5 ein Zeitablaufdiagramm der Operation der Schaltungen von Fig. 4.
  • Fig. 1 ist ein Blockschaltbild eines Multiprozessor-Rechnersystems, welches eine globale Datenmultiplikation aufweist.
  • Die bevorzugte Ausführungsform des Systems ist mit Standardkomponenten aufgebaut, die marktgängig sind.
  • Insbesondere weist das System zwei Prozessoren 1, 2 auf, die identisch aufgebaut sind, einen Hauptarbeitsspeicher 3, und eine I/O-Steuereinheit 19.
  • Die beiden Prozessoren, der Hauptspeicher 3 und die I/O- Steuereinheit 19 sind miteinander über einen Standard-VME-BUS 4 oder Systembus verbunden.
  • Die Struktur des Busses 4 und die dort durchgeführten Dialoge sind im einzelnen in der Veröffentlichung "VME Bus Specification Manual", Ausgabe B, beschrieben, welche im August 1982 von der Gruppe der Hersteller für den VME-Bus veröffentlicht wurde. Auf dieses Dokument wird bezüglich jeder Detailinformation zurückgegriffen, die nachstehend nicht angegeben ist.
  • Der Zugriff auf den Bus 4 wird durch eine Arbitrationseinheit 12 oder BUS ARBITER gesteuert.
  • Jeder Prozessor weist einen Mikroprozessor 5 auf, beispielsweise Motorola MC68020, eine Gleitkommateinheit 6, eine Speichermanagementeinheit MMU 7, einen Nur-Lese-Speicher ROM 8 für die Initialisierung und den Bootstrap, einen lokalen Speicher 9, einen Cache-Speicher 10, sowie eine VME-Schnittstelleneinheit 11 zur Verbindung des Prozessors mit dem VME-Bus.
  • Eine detaillierte Beschreibung des MC68020, der Speichermanagementeinheit 7 und der Gleitkommaeinheit 6 findet sich in folgenden Veröffentlichungen:
  • - MC68020 - 32 Bit Mikroprozessor - User Manual - Zweite Ausgabe, Prentice Hall 1984.
  • - MC68881 - Floating Point Coprocessor - User Manual- Erste Ausgabe, Motorola 1985
  • - MC68851 - Memory Management Unit - Advance Information -Motorola 1986.
  • Eine Gruppe von Verbindungsleitungen, die zusammen als interner Bus bezeichnet werden, verbindet alle diese Elemente.
  • Im wesentlichen weist der interne Bus drei Abschnitte auf, einen Adressenbus, einen Datenbus, und einen Steuerbus.
  • Zur Vereinfachung zeigt Fig. 1 nur den Adressenbus und den Datenbus.
  • Der Adressenbus ist in unabhängige Abschnitte unterteilt, die miteinande durch unidirektionale oder bidirektionale Dreizustandsgates 13, 14, 15 verbindbar sind.
  • Im einzelnen weist die Mikroprozessoreinheit 5 Adressenausgänge auf, die an den Adressenbusabschnitt 16 angeschlossen sind. Die MMU 7, das ROM 8, die Gates 13 und die Gleitkommaeinheit 6 weisen Adresseneingänge auf, die an den Adressenbusabschnitt 16 angeschlossen sind. Die Eingänge/Ausgänge der Gates 15 sind ebenfalls an den Adressenbusabschnitt 16 angeschlossen.
  • Ein zweiter Adressenbusabschnitt 17 ist zwischen Adressenausgängen von MMU 7, Ausgängen der Gates 13 und Adresseneingängen des lokalen Speichers 9, Adresseneingängen des Cache 10 und Eingängen der Gates 14 eingerichtet.
  • Ein dritter Adressenbusabschnitt 18 verbindet die Ausgänge der Gates 14, die Eingänge/Ausgänge der Gates 15 und die Eingänge/Ausgänge der VME-Schnittstelleneinheit 11.
  • Ein bidirektionaler Datenbus 20 verbindet die Eingänge/Ausgänge des Mikroprozessors 5, Eingänge/Ausgänge der Gleitkommaeinheit 6, Eingänge/Ausgänge von MMU 7, den lokalen Speicher 9, den Cache-Speicher 10, die VME-Schnittstelleneinheit 11 und Ausgänge des ROM 8.
  • Eine Arbitrationsvorrichtung 22 für den internen Bus steuert den Zugriff auf den internen Bus.
  • Die Arbitrationsvorrichtung 22 ist an den Mikroprozessor 5 über einen Steuerbus 23 angeschlossen, für den Austausch dreier Steuersignale BREQ (von der Arbitrationsvorrichtung 22 zum Mikroprozessor 5), BGRANT (vom Mikroprozessor 5 zur Arbitrationsvorrichtung 22), und BGACK (von der Arbitrationsvorrichtung 22 zum Mikroprozessor 5).
  • Die Arbitrationsvorrichtung 22 für den internen Bus ist weiterhin an die VME-Schnittstelleneinheit 11 über einen Steuerbus 24 angeschlossen, für den Austausch zweier Steuersignale MYSP (von der VME-Schnittstelleneinheit 11 zur Arbitrationsvorrichtung 22) und S5 (von der Arbitrationsvorrichtung 22 zur VME-Schnittstelleneinheit 11).
  • Die VME-Schnittstelleneinheit ist an den Systembus 4 angeschlossen, um Adressen, Datensignale und Steuersignale zu empfangen und auszusenden, um Zugriff auf den Systembus zu erlangen.
  • Der Zugriff auf den Systembus wird durch eine VME-Bus-Arbitrationsvorrichtung 12 gesteuert.
  • Wenn der Prozessor 1 einen Zugriff auf den Systembus benötigt, teilt die VME-Schnittstelleneinheit 11 ein Signal SBREQ1 auf der Leitung 25 zu.
  • Beim Empfang dieses Signals teilt die Bus-Arbitrationsvorrichtung 12, wenn keine Anforderungen mit höherer Priorität vorhanden sind, ein Signal SBGR1 auf der Leitung 26 zu.
  • Beim Empfang dieses Signals wartet die VME-Schnittstelleneinheit 11, bis der Systembus tatsächlich verfügbar ist, welcher Zustand durch ein Signal SBBUSY ausgedrückt wird, wenn dieses nicht der Leitung 27 zugeordnet ist, teilt dann das Signal SBBUSY der Leitung 27 zu, und hat dadurch Zugriff auf den Systembus, daß eine Adresse an Leitungen 28 angelegt wird, ein Adressen-Strobe-Signal BAS auf eine Leitung des Steuerbusses 39, und Dateninformation auf Datenleitungen 29 (nur für eine Schreiboperation).
  • Die Zieleinheit, die der Prozessor 2, der Hauptspeicher 3 oder die I/O-Steuereinheit 19 sein kann, je nach Festlegung durch einen Adressenabschnitt, nimmt die Dateninformation an und ordnet ein Datenbestätigungssignal BDTACK einer Steuerbusleitung 30 zu.
  • Im Falle eine Leseoperation teilt die Zieleinheit das Signal BDTACK zu, nachdem sie die angeforderte Information auf die Datenleitungen 29 gelegt hat.
  • Beim Empfang dieses Signals gibt die VME-Schnittstelleneinheit 11, nachdem sie die ausgelesene Information von den Systembusleitungen 29 angenommen hat, die Steuerung über den Bus frei, durch Negation des Signals SBBUSY.
  • Natürlich kann der Prozessor 2 dieselbe Architektur wie der Prozessor 1 aufweisen, und insbesondere eine VME-Schnittstelleneinheit 31, die statt über Leitungen 25, 26 über Leitungen 32, 33 an die BME-Bus-Arbitrationsvorrichtung 12 angeschlossen ist, um ein Signal SBREQ2 zu senden, und ein Signal SBGR2 zu empfangen.
  • Bevor mit mehr Einzelheiten die Struktur und Operation der VME-Schnittstelleneinheit 11 oder die Operation der Prozessoren bei der Erlangung des Zugriffs auf verteilte Speicherquellen überlegt werden, ist es empfehlenswert zu überlegen, wie der Systemspeicherraum (oder einfach der Systemraum) strukturiert ist und angesprochen wird.
  • SYSTEMRAUM-ADRESSIERUNG
  • Fig. 2 zeigt die Struktur einer Adresseninformation, welche einen Ort in dem Systemraum bezeichnet.
  • Eine Adresseninformation besteht aus 32 Bits.
  • Eine Zone 34 derartiger Information, die beispielsweise die höchstwertigen Bits von 28 bis 31 umfaßt, legt durch einen Binärcode einen "Zielraum" fest.
  • Beispielsweise bezeichnet ein binärer Zielcode 0000 einen internen Raum.
  • Dies bedeutet, daß eine Adresse, die innerhalb des Prozessors 1 erzeugt wird (durch den Mikroprozessor 5 oder MMU 7), wenn der Zielcode 0000 ist, einen Speicherort bezeichnet, der innen im Prozessor 1 liegt.
  • Unter Bezugnahme auf Fig. 1 kann daher der angegebene Ort im lokalen Speicher 9 liegen, im ROM-Speicher 8, oder in irgendeinem von adressierbaren Registern, die nicht gezeigt und im Prozessor 1 enthalten sind.
  • Welche Einheit innerhalb des Prozessors 1 angesprochen werden soll, wird durch eine Zone 35 der Adresseninformation festgelegt.
  • Diese Zone, die beispielsweise die Bits 24 bis 27 der Adresse umfaßt, definiert einen Systemraum durch einen Binärcode.
  • Beispielsweise kann ein Raumcode 0000 einen "abgebildeten Raum" bezeichnen, und angeben, daß die Zone 36 der Adresse durch die MMU 7 von einer logischen Adresse in eine physikalische Adresse übersetzt werden muß.
  • Ein Systemraumcode 01XX (X bezeichnet entweder 1 oder 0) kann einen nicht abgebildeten physikalischen Raum angeben und festlegen, daß die Zone 36 eine physikalische Adresse für den lokalen Speicher 9 ist und nicht übersetzt werden muß.
  • Entsprechend kann ein Raumcode 0101 einen Registerraum bezeichnen, und angeben, daß die Zone 36 oder ein Abschnitt dieser Zone einen Code darstellt, welcher eines unter mehreren Registern identifiziert.
  • Betrachtet man wiederum die Zone 34, so kann ein Zielcode 0001 einen Zielraum angeben, der sich im Prozessor 1 befindet, und ein Zielcode 0010 kann einen Zielraum angeben, der sich im Prozessor 2 befindet.
  • Wenn daher innerhalb des Prozessors 1 die Adresse erzeugt wird, welche den Zielcode 0001 enthält, so ist der angegebene Zielraum immer noch innerhalb des Prozessors, und der Code 0001 ist synonym mit 0000.
  • Wenn allerdings der Zielcode 0001 innerhalb des Prozessors 2 erzeugt wird, so ist der angegebene Zielraum nicht innen im Prozessor 2, sondern bezieht sich auf den Prozessor 1.
  • Wenn vom Prozessor 1 die Adresse erzeugt wird, welche den Zielcode 0010 enthält, so liegt entsprechender Zielraum innerhalb des Prozessors 2, und wenn der Zielcode 0010 durch den Prozessor 2 erzeugt wird, so liegt der Zielraum immer noch in dem Prozessor 2, und der Code 0010 ist synonym mit 0000.
  • Ein weiterer Zielcode, beispielsweise 0100, kann einen Hauptspeicher 3 als Zieleinheit festlegen.
  • Entsprechend kann ein anderer Zielcode die Eingabe/Ausgabe- Einheit 9 bezeichnen, und können andere Codes weitere Einheiten bezeichnen, die an den Systembus angeschlossen und nicht gezeigt sind. Selbstverständlich gibt es einige systematische Beschränkungen für die Kombinationen der verschiedenen Zielcodes und der Systemraumcodes.
  • Beispielsweise wird der Hauptspeicher 3 immer durch physikalische Adressen adressiert, und daher muß der Zielcode 0100 mit dem Raumcode 01XX verbunden werden. Es wird darauf hingewiesen, daß der Hauptspeicher 3, obwohl dieser in der Systemarchitektur vorhanden sein kann, nicht wesentlicht für die Architektur oder die vorliegende Erfindung ist.
  • Wenn der Zielcode 0100 mit dem Raumcode 0000 verbunden wird, so wird die Adresse erst durch die MMU des Prozessors übersetzt, welcher die Adresse (MMU 7 im Falle des Prozessors 1) erzeugt hat, und zwar in eine physikalische Adresse, wobei der Raumcode in 01XX umgewandelt wird.
  • Entsprechend kann ein lokaler Speicher, beispielsweise der lokale Speicher 9, durch den Mikroprozessor 5 sowohl durch eine physikalische Adresse als auch eine logische Adresse angesprochen werden (wobei die logische Adresse durch MMU 7 in eine physikalische Adresse umgewandelt wird), jedoch kann der lokale Speicher 9 durch einen anderen Prozessor, beispielsweise den Prozessor 2, nur durch eine physikalische Adresse angesprochen werden.
  • Eine Eigenart der vorliegenden Erfindung stellt die Tatsache dar, daß ein Zielcode, beispielsweise 1110, mit der Bedeutung eines globalen Datenraums vorgesehen ist.
  • Dieser Code gibt an, daß die Zieleinheit nicht eine bestimmte Einheit ist, sondern daß sämtliche aktiven Prozessoren, beispielsweise die Prozessoren 1 und 2, gemeinsam als Zielprozessor angesehen werden sollen.
  • Eine Adresse, welche einen derartigen Zielcode enthält, bezeichnet daher einen Speicherort sowohl im Prozessor 1 als auch im Prozessor 2.
  • Dieser Code wird im wesentlichen und exklusiv für Schreiboperationen verwendet.
  • Durch Verwendung eines derartigen Codes und geeigneter Hardware in den VME-Schnittstelleneinheiten, wie beispielsweise 11 und 31, wird es möglich, eine Schreiboperation sowohl bezüglich eines Speicherorts innerhalb des Prozessors 1 als auch innerhalb des Prozessors 2 durchzuführen, nahezu gleichzeitig und durch Ausführung desselben Schreibbefehls. Die Bedeutung des Begriffs "nahezu gleichzeitig" wird aus den nachstehenden Erläuterungen deutlich.
  • Es ist nunmehr möglich, die Operation der Prozessoren bei der Erlangung des Zugriffs auf verteilte Speicherquellen zu überlegen.
  • ZUGRIFF AUF VERTEILTE SPEICHERQUELLEN
  • Unter Bezugnahme auf Fig. 1 wird zuerst der Fall des Zugriffs auf lokale Speicherresorcen durch den Prozessor 1 überlegt.
  • Normalerweise hat der Mikroprozessor 5 die Kontrolle über den internen Bus, und kann Adressen auf den Adressenbus 16 legen, und auf dem Datenbus 20 Daten senden oder empfangen.
  • Wenn eine Adresse auf den Adressenbus 16 gelegt wird, so dekodiert ein Dekodierer 37, der an den Adressenbus 16 angeschlossene Eingänge aufweist, sowohl den Zielcode als auch den Systemraumcode.
  • Wenn der Zielcode gleich 0000 oder 0001 ist, so gibt der Dekodierer 37 geeignete Auswahlsignale aus, welche von dem Raumcode abhängen, und wählt eine unter den internen Quellen aus.
  • Insbesondere wenn der Systemraumcode einen Registerraum bezeichnet, so wird ein S4-Signal für die Auswahl nicht gezeigter Registerbänke erzeugt.
  • Falls der Systemraumcode 0000 einen abgebildeten Raum bezeichnet, so gibt der Dekodierer 37 ein Auswahlsignal S0 für die MMU 7 aus.
  • Die MMU 7 wandelt die empfangene logische Adresse in eine physikalische Adresse um, die auf den Bus 17 gebracht wird, und aktiviert den Cache 10 und den lokalen Speicher 9, es sei denn, der Zielcode dieser physikalischen Adresse würde in einen anderen Zielcode als 0000 oder 0001 umgewandelt.
  • Wenn eine Adressenübereinstimmung in dem Cache 10 erfolgt und die durchzuführende Operation ein Lesevorgang ist, so wird die angeforderte Information von dem Cache 10 ausgelesen, und auf den Kanal 20 gebracht, zur Lieferung zum Mikroprozessor 5.
  • Wenn keine Übereinstimmung der Adressen in dem Cache 10 erfolgt, so wird die angeforderte Information aus dem lokalen Speicher 9 ausgelesen.
  • Im Falle einer Schreiboperation kann die Information sowohl in den Cache 10 als auch in den lokalen Speicher 9 eingeschrieben werden ("Durchschreib-Cache").
  • Bezeichnet der Systemraumcode (01XX) einen nicht abgebildeten physikalischen Raum, so gibt der Dekodierer 37 ein Auswahlsignal S2 aus, welches die Gates 13 freischaltet, um die physikalische Adresse auf den Bus 17 zu übertragen, und den Cache 10 und den lokalen Speicher 9 aktiviert, welche wie voranstehend beschrieben arbeiten.
  • Man erkennt, daß bei der Durchführung dieser Operationen in allen betrachteten Fällen die Arbitrationsvorrichtung 22 für den internen Bus, die VME-Schnittstelleneinheit 11 und die Gates 14, 15 nicht beteiligt sind.
  • Eine unterschiedliche Situation tritt auf, wenn der Prozessor 1 einen Zugriff zu externen Speicherquellen benötigt, oder falls die MMU 7 eine physikalische Adresse erzeugt, welche durch einen Zielcode ungleich 0000 oder 0001 eine externe Speicherquelle bezeichnet, also eine Quelle außerhalb des Prozessors 1.
  • Es wird beispielsweise angenommen, daß der Mikroprozessor 5 auf den Adressenbus 16 eine Adresse legt, bei welcher der Zielcode gleich 0010 ist, was angibt, daß die Speicherquelle zum Prozessor 2 gehört.
  • Dieser Code wird durch den Dekodierer 37 in ein Steuersignal S1 dekodiert, welches die Gates 15 freischaltet, um den Adressencode vom Bus 16 auf den Bus 18 zu übertragen, und gleichzeitig die VME-Schnittstelleneinheit 11 so steuert, daß sie Zugriff zum Systembus erlangt.
  • Die VME-Schnittstelleneinheit 11 gibt ein Signal SBREQ1 an die Arbitrationsvorrichtung 12 für den VME-Bus aus, welche zu geeigneter Zeit durch Zuordnung des Signals SBGR1 reagiert.
  • Sobald der Systembus verfügbar ist, teilt die VME-Schnittstelleneinheit 11 das Signal SBBUSY zu, und legt die Adresseninformation auf die Adressenleitungen 28.
  • Über die Adressenleitungen 28 wird der Zielcode an sämtliche möglichen Zieleinheiten gesendet, beispielsweise den Prozessor 2, den Hauptspeicher 3 und die I/O-Steuereinheit 19.
  • Alle diese Einheiten weisen jeweils eine VME-Schnittstelleneinheit auf, die einen Dekodierer oder einen Komparator enthält, welcher den Zielcode mit einem Code vergleicht, der die Bezeichnung der eigenen Einheit angibt.
  • Wenn der Zielcode und der Name der Einheit zusammenpassen, so wird die Einheit ausgewählt und verwendet die Adresse zur Bezugnahme auf einen internen Speicherort, an welchem eine angeforderte Information gelesen werden soll, die auf die Datenleitungen 29 gebracht wird, oder in welchen die Information eingeschrieben werden soll, welche auf die Datenleitungen 29 durch die Einheit gebracht wurde, welche die Übertragung eingeleitet hat, beispielsweise Prozessor 1, über die VME-Schnittstelleneinheit 11, wobei der Prozessor 2 die Zieleinheit ist.
  • Nunmehr wird angenommen, daß der Mikroprozessor 5 auf den Adressenbus 16 eine logische Adresse bringt, bei welcher der Zielcode gleich 0000 oder 0001 ist, jedoch wird diese Adresse durch MMU 7 in eine physikalische Adresse umgewandelt, bei welcher der Zielcode gleich 0010 ist, und auf den Bus 17 gebracht wird.
  • Der Dekodierer 37 fördert keine Aktion auf der VME-Schnittstelleneinheit 11, sondern ein zweiter Dekodierer 38, der an den Bus 17 angeschlossene Eingänge aufweist, erfaßt einen derartigen Code und erzeugt ein Steuersignal S3, welches die Gates 14 freischaltet, und steuert gleichzeitig die VME- Schnittstelleneinheit 11, um Zugriff auf den Systembus zu erlangen.
  • Sobald der Zugriff erlangt wurde, wird wie voranstehend erläutert die Dateninformationsübertragung durchgeführt.
  • Nunmehr wird der Betrieb des Prozessors 1 überlegt, unter der Annahme, daß er durch eine Adresse auf dem Systembus als die Zieleinheit ausgewählt wurde.
  • Ein Komparator oder Dekodierer, der in der VME-Schnittstelleneinheit vorgesehen ist, erfaßt eine Übereinstimmung zwischen dem Zielcode 0001 und seinem eigenen Namen, und erzeugt ein Signal MYSP für die Arbitrationsvorrichtung 22 für den internen Bus.
  • Die Arbitrationsvorrichtung 22 überträgt ein derartiges Signal (als BREQ) an den Mikroprozessor 5.
  • Wenn der Mikroprozessor 5 damit fertig ist, die Kontrolle über den internen Bus freizugeben, so schickt er ein Signal BGRANT an die Arbitrationsvorrichtung 22 zurück, welche bei Erfassung, daß der interne Bus tatsächlich verfügbar ist, auf der Grundlage des Pegels bestimmter Signale, das Signal BGACK dem Mikroprozessor 5 zuteilt und ein Signal S5 für die VME-Schnittstelleneinheit 11 auf 1 erhöht.
  • Daraufhin können die Einheiten, die an den internen Bus angeschlossen sind, durch den Adressenbus und Daten angesprochen werden, die in die betreffende Einheit eingeschrieben oder von dieser ausgelesen werden.
  • Selbst wenn vom Prinzip her jede Einheit angesprochen werden kann, werden in der Praxis nur der lokale Speicher 9, der Cache 10 und nicht dargestellte Register angesprochen.
  • Das Signal S5 wird über die VME-Schnittstelleneinheit 11 an den Freischalteingang der Gates 15 übertragen, die freigeschaltet werden, um die auf den Leitungen 28 und dem Bus 13 vorhandenen Adressen auf den Bus 16 zu übertragen.
  • Da ein nicht abgebildeter Raum gewöhnlich durch den Raumcode 01XX bezeichnet wird, erzeugt der Dekodierer 37 ein Signal S2, und die Adresse wird vom Bus 16 über die Gates 13 auf den Bus 17 übertragen, für ein direktes Ansprechen der Cache- Einheit 10 und des lokalen Speichers 9.
  • Wenn der Raumcode einen Registerraum bezeichnet, so gibt der Dekodierer 37 ein Signal S4 zur Auswahl nicht dargestellter Registerbänke aus.
  • GLOBALE DATEN-MULTIPLIAKTION
  • Gemäß der Erfindung ist jeder lokale Speicher in jedem der aktiven Prozessoren (beispielsweise der lokale Speicher 9 im Prozessor 1) dazu vorgesehen, eine Kopie globaler Daten zu speichern, und jedesmal, wenn ein globales Datum in den lokalen Speicher des Prozessors 1 eingeschrieben oder modifiziert wird, so wird es ebenfalls in den lokalen Speicher des Prozessors 2 eingeschrieben oder modifiziert (und entsprechend bei jedem weiteren zusätzlichen Prozessor, wenn mehr als zwei Prozessoren vorhanden sind).
  • Nimmt man an, daß der lokale Speicher 9 am Anfang keine globalen Daten enthält, und der lokale Speicher im Prozessor 2 ebenfalls nicht, so werden die globalen Daten im Hauptspeicher 3 oder in irgendeine Disk-Speichereinheit gespeichert, gesteuert durch die I/O-Steuereinheit 19.
  • Wenn globale Daten im Hauptspeicher 3 gespeichert sind, so kann der Prozessor 1 derartige Information dadurch lesen, daß der Hauptspeicher 3 mit einer Adresse adressiert wird, bei welcher der Zielcode gleich 0100 ist (oder irgendein anderer, geeigneter Code, wenn globale Daten in einem Disk- Massenspeicher gespeichert sind).
  • Sobald sie einmal empfangen wurde, kann die Information durch den Mikroprozessor 5 in den lokalen Speicher 9 an einer vorher festgelegten Adresse eingeschrieben werden, wobei der Zielcode auf 1110 eingestellt ist und der Raumcode auf 0000 (abgebildeter Raum) oder 01XX (nicht abgebildeter Raum) eingestellt sein kann.
  • Wenn der Raumcode auf 0000 eingestellt ist, hat natürlich der Mikroprozessor 5 vorher die MMU 7 mit geeigneter Information zur Umwandlung logischer Adressen in physikalische Adressen versorgt.
  • Die Dekodierer 37, 38 sind ebenfalls für die Erfindung wesentlich, und zwar in der Hinsicht, daß sie den Zielcode 1110 dekodieren, gleichzeitig mit einem Schreibbefehl R/W, der durch den Mikroprozessor 5 ausgegeben wird, in einer Gruppe von Steuersignalen, welche S1 plus S2 enthalten, wenn der Raumcode gleich 01XX (nicht abgebildeter Raum) ist, sowie S3 plus S0, wenn der Raumcode gleich 0000 ist (abgebildeter Raum).
  • Daher werden nicht nur der lokale Speicher 9 (und der Cache 10) des Prozessors 1 angesprochen, um die globale Dateninformation zu speichern, sondern wird auch die VME-Schnittstelleneinheit 11 aktiviert, um über den Systembus einen Schreibbefehl an andere Prozessoren auszusenden.
  • Die VME-Schnittstelleneinheiten 11 und 31 des Prozessors 1 bzw. 2 sind insoweit für die Erfindung wesentich, daß sie dann, wenn sie nicht durch die Signale S1, S3 aktiviert werden, den Zielcode 1110 als Bezugnahme auf den Prozessor dekodieren können, zu welchem sie gehören.
  • Beim Empfang des Zielcodes 1110 identifiziert die VME-Schnittstelleneinheit 31 den Prozessor 2 als Zieleinheit, und die auf dem Systembus vorhandene Adresse wird innerhalb des Prozessors 2 über die VME-Schnittstelleneinheit 31 und Elemente, welche in der Funktion dem Bus 18 entsprechen, und Gates 15 sowie Gates 13 an den lokalen Speicher (und den Cache-Speicher) des Prozessors 2 übertragen, um in diese die Information einzuschreiben, die auf dem Systemdatenbus 29 vorhanden ist.
  • Selbstverständlich wird diese mehrfache Schreiboperation oder Sende/Schreib-Operation nicht nur bei der Initialisierung durchgeführt, sondern zu jedem Zeitpunkt, bei welchem neue Information, die als Globaldaten identifiziert wird, in irgendeinen der lokalen Speicher eingeschrieben wird, so daß die Identität des Inhalts globaler Daten sämtlicher lokale Speicher während der Operation des Systems sichergestellt ist.
  • Dies führt dazu, daß jedesmal dann, wenn ein Prozessor globale Dateninformation lesen muß, er diese von seinem eigenen lokalen Speicher oder einer zugehörigen Cache-Einheit erhalten kann, ohne auf Systembus-Datenübertragungen zurückgreifen zu müssen.
  • Offensichtlich ist die Einschränkung, die für Information eigentümlich ist, welche von mehreren Prozessoren geteilt wird, immer noch vorhanden.
  • Ein Satz globaler Daten, der momentan von einem Prozessor genutzt wird, kann nicht gleichzeitig von anderen Prozessoren benutzt werden, welche ihn ändern könnten. Dies kann einfach durch wohlbekannte Verfahren der Datenunterteilung in Blöcke und die Einstellung (über wohlbekannte Test- und Einstelloperationen) von Verriegelungsbits erfolgen, welche eine gleichzeitige Nutzung desselben Blocks durch mehr als einen Prozessor verhindern.
  • Zur Vervollständigung der Beschreibung wird nachstehend eine bevorzugte Ausführungsform der VME-Schnittstelleneinheit 11 (oder 31) beschrieben.
  • VME-SCHNITTSTELLENEINHEIT
  • Fig. 3 ist ein ins Einzelne gehendes Blockschaltbild einer bevorzugten Ausführungsform der VME-Schnittstelleneinheit 11.
  • Weiterhin zeigt sie eine bevorzugte Ausführungsform der Arbitrationseinheit 22, die durch eine gestrichelte Linie begrenzt ist.
  • Im wesentlichen weist die VME-Schnittstelleneinheit Schnittstellen-Treiber und -Empfänger auf, bidirektionale Dreizustandstreiber, sowie Logikgates, welche diese Treiber steuern.
  • Weiterhin weist sie Logikelemente zum Anfordern und Erhalten von Zugriff auf den Systembus auf.
  • Die Buszugriffslogik umfaßt ein OR 40, ein NAND 41, ein JK- Flipflop 42, NOT 43, AND-Gates 44, 45, ein Verzögerungselement 46, Treiber 47, 48, einen Empfänger 49 und einen invertierenden Empfänger 50.
  • Die Verschaltung der Elemente, welche die Buszugriffslogik bilden, erfolgt wie in Fig. 3 dargestellt, und benötigt keine ins Einzelne gehende Beschreibung über die nachstehende Erläuterung der Logikoperation hinaus.
  • Das Flipflop 42 befindet sich normalerweise im rückgesetzten Zustand, und wird durch ein NAS-Signal (die Negierung des AS- Signals) auf dem Pegel 0 rückgesetzt und rückgesetzt gehalten.
  • Das AS-Signal ist ein Adressen-Strobe-Signal, welches jedesmal dann zugeordnet wird (also auf den elektrischen Pegel 0 gesetzt wird) durch den Mikroprozessor 5, wenn ein Zugriff auf den internen Bus erlangt wird, und welches auf 1 angehoben wird, wenn der interne Bus freigegeben wird.
  • Wenn daher der Mikroprozessor 5 eine Adresse auf den internen Adressenbus 16 gibt, und das AS-Signal zuordnet, welches anzeigt, daß eine Quelle außerhalb vom Prozessor 1 adressiert werden soll, so wird das Signal S1 oder S3 auf den Pegel 1 angehoben, und ein Signal SBREQ1 der Leitung 25 zugeordnet (also auf den Pegel 0 gesetzt).
  • Zur geeigneten Zeit reagiert die VME-Arbitrationsvorrichtung 12 durch Zuordnung (Setzen auf den Pegel 0) des Signals SBGR1 der Leitung 26.
  • Sobald er Systembus verfügbar ist, steigt das Signal SBBUSY auf der Busleitung 27 auf 1 an, und der Ausgang des AND-Gates 44 steigt auf 1 an, wodurch das Flipflop 42 gesetzt wird.
  • Durch das Setzen des Flipflops 42 wird das Signal SBREQ1 nicht zugeordnet (es steigt auf 1 an) und wird das Signal SBBUSY zugeordnet (also auf 0 abgesenkt).
  • Weiterhin wird am direkten Ausgang des Flipflops 42 ein Signal BEN auf 1 angehoben, und mit einer Verzögerung, die durch das Verzögerungselement 46 bewirkt wird, wird auch ein Signal DBEN auf 1 angehoben.
  • BEN wird dazu verwendet, zum richtigen Zeitpunkt Treiber und Empfänger in der VME-Schnittstelleneinheit 11 freizuschalten.
  • DBEN und NAS (erhalten aus AS über den Invertierer 43) werden in das AND-Gate 45 eingegeben, welches ein Signal SEN (Strobe- Freischalten) ausgibt. SEN wird spezifisch dazu verwendet, Treiber freizuschalten, die mit der Übertragung von Strobe- Signalen beschäftigt sind.
  • Insbesondere wird der bidirektionale Treiber 51 am Ausgang freigeschaltet, um auf eine Systembusleitung 39 ein Signal BAS (Busadressier-Strobe) zu übertragen.
  • Wenn der externe Lese/Schreib-Vorgang beendet ist, so hebt der Mikroprozessor 5 das Signal AS auf 1 an, was die Wirkung hat, daß das Flipflop 42 zurückgesetzt wird, und gleichzeitig BAS auf 1 erhöht wird, und der bidirektionale Treiber 51 gesperrt wird.
  • Dies führt dazu, daß SBBUSY auf der Leitung 27 hochgetrieben wird, und BEN, DBEN, und SEN heruntergetrieben werden.
  • Zusätzlich zu dem bidirektionalen Treiber 51 weist die VME- Schnittstelleneinheit drei bidirektionale Treiber 53, 54 und 55 auf, sowie zwei Gruppen bidirektionaler Treiber 56, 57.
  • Der bidirektionale Treiber 53 steuert die Übertragung eines R/W-Signals, welches vom Mikroprozessor 5 auf eine interne Busleitung 58 gebracht wurde, von der internen Busleitung 58 auf eine Systembusleitung 59, sowie die Übertragung eines BR/W-Signals, welches vom Prozessor 2 (oder, wenn mehr als zwei Prozessoren als zwei vorgesehen sind, von jedem anderen Prozessor als eins) auf die Systembusleitung 59 gesetzt wurde, von der Leitung 59 auf die interne Leitung 58.
  • Der Treiber 53 wird am Ausgang durch das Signal BEN freigeschaltet.
  • Wenn daher BEN = 1 ist, so wird das Signal R/W vom Mikroprozessor 5 auf die Leitung 59 gesetzt, und zeigt die angeforderte Übertragungsrichtung an, also eine Schreiboperation vom Prozessor 1 zu einer anderen Zieleinheit, wenn R/W = 0 ist, oder eine Leseoperation von einer Zieleinheit zum Prozessor 1, wenn R/W = 1 ist.
  • Die bidirektionale Treibergruppe 54 steuert die Übertragung von Adressen (einschließlich Zielcode und Raumcode) zwischen dem internen Adressenbus 18 und dem Systemadressenbus 28.
  • Die Gruppe 54 wird am Ausgang (vom Prozessor 1) durch das Signal BEN freigeschaltet.
  • Der bidirektionale Treiber 56 steuert die Übertragung eines Daten-Strobe-Signals DS von einer internen Busleitung 60 auf eine Systembusleitung 61, und die Übertragung eines Daten- Strobe-Signals BDS, welches durch andere Einheiten als den Prozessor 1 auf die Systembusleitung 61 gebracht wurde, von der Leitung 61 auf die Leitung 60.
  • Der Treiber 56 wird am Ausgang durch das Signal SEN freigeschaltet.
  • Die bidirektionale Treibergruppe 57 steuert die Übertragung von Daten zwischen dem internen Datenbus 20 und dem Systemdatenbus 29.
  • Da die Übertragungsrichtung nicht nur von der Einheit abhängt, welche die Übertragung verlangt, sondern auch von der Art (Lesen/Schreiben) der Übertragung, wird eine sehr einfache Logik dazu verwendet, diese Gruppe freizuschalten.
  • Das AND-Gate 62, welches als Eingangssignale BEN und W empfängt (erhalten aus R/W über den Invertierer 64), stellt ein Freischaltsignal für die Treibergruppe 57 über das OR- Gate 63 zur Verfügung, für eine Schreiboperation.
  • Das AND-Gate 65, welches als Eingangssignale BEN und R/W empfängt, stellt ein Freischaltsignal für die Treibergruppe 57 über das OR-Gate 66 für eine Leseoperation zur Verfügung.
  • Daher schalten die AND-Gates 62, 65 die Treibergruppe 57 frei, wenn die Einheit, welche die Übertragung anfordert, der Prozessor 1 ist.
  • Die AND-Gates 67, 68, welche die Treibergruppe 57 freischalten, wenn die Übertragungsanforderung von dem Systembus kommt, werden später betrachtet.
  • Der bidirektionale Treiber 55 steuert die Übertragung eines Datenbestätigungssignals DTACK von einer internen Busleitung 69 zu einer Systembusleitung 30 sowie die Übertragung eines Systembus-Datenbestätigungssignals BDTACK von der Leitung 30 zur Leitung 69. Der Treiber 55 wird am Eingang durch das Signal BEN freigeschaltet.
  • Nachstehend wird die Operation der VME-Schnittstelleneinheit für einen vom Prozessor 1 angeforderten Systembuszugriff kurz beschrieben.
  • Sobald der Prozessor 1 den Zugriff auf den Systembus erlangt hat und das SBBUSY-Signal zugeordnet hat, werden der Treiber 53 und die Treibergruppe 54 am Ausgang freigeschaltet, und der Treiber 55 am Eingang freigeschaltet.
  • Die Treibergruppe 57 wird am Eingang oder am Ausgang freigeschaltet, abhängig vom Pegel des Signals R/W.
  • Daher werden ein Adressencode und gegebenenfalls ein Datencode (wenn die Operation ein Schreibvorgang ist) auf den Systembus gebracht.
  • Unmittelbar danach werden Strobe-Signale BAS und BDS über Treiber 51 und 56 zugeordnet, um die Adresse und gegebenenfalls die Daten gültig zu machen.
  • Die durch den Zielcode in der Adresse festgelegte Zieleinheit antwortet der anfordernden Einheit durch Schreiben der empfangenen Daten oder Lesen der angeforderten Daten, an dem durch die Adresse festgelegten Ort, und ordnet das Signal BDTACK dem Systembus zu.
  • BDTACK hat entweder die Bedeutung akzeptierter und gespeicherter Daten (im Falle einer Schreibanforderung) oder von auf dem Systembus verfügbaren Daten (im Falle einer Leseanforderung).
  • Beim Empfang von BDTACK über den Treiber 55 erhält der Prozessor 1 und insbesondere der Mikroprozessor 5 die empfangenen Daten (im Falle einer Leseanforderung) und befreit den Systembus durch Anheben des Signals AS auf 1.
  • Durch dieses Signal wird BBUSY auf 1 angehoben, und sämtliche Treiber einschließlich des bidirektionalen Treibers 55 gesperrt.
  • Fig. 3 kann nun in bezug auf eine andere Situation betrachtet werden, bei welche die VME-Schnittstelleneinheit 11 eine Zieleinheit ist, statt einen Systembuszugriff zu verlangen.
  • Daher beherrscht irgendeine andere Einheit, insbesondere der Prozessor 2, den Systembus, und benennt durch einen geeigneten Zielcode (der entweder gleich 0001 oder 1110 sein kann) den Prozessor 1.
  • An Leitungen des Adressenbusses 28 sind über permanent freigeschaltete Empfänger, falls erforderlich, wobei diese nicht gezeigt sind, Eingänge eines Dekodierers 70 angeschlossen.
  • Er empfängt weiterhin von der Leitung 52 als Eingangssignal BAS sowie das Signal BEN.
  • Wenn die Signale BAS, BEN beide auf niedrigem Pegel liegen, was anzeigt, daß der Adressencode auf dem Bus 28 eine Bedeutung hat, und der Prozessor 1 nicht den Systembus beherrscht, so wird de Dekodierer 70 freigeschaltet, und wenn der empfangene Zielcode gleich 1110 oder 0001 ist, so wird ein Signal MYSP (mein Raum) auf den Pegel 1 auf der Leitung 71 ausgegeben.
  • Das Signal MYSP wird in die Arbitrationseinheit 22 eingegeben.
  • Die Arbitrationseinheit umfaßt NOR-Gates 72, 73, ein AND- Gate 74, ein NAND-Gate 75, und Invertierer 76, 77 und 78, die wie in Fig. 3 miteinander verbunden sind.
  • Das NAND-Gate 75 empfängt als Eingangssignal MYSP und das Signal BGACK am Ausgang vom NOR 73.
  • Liegt dahe BGACK auf hohem Pegel, was anzeigt, daß der interne Bus unter der Steuerung des Mikroprozessor 5 steht, so gibt nach dem Empfang von MYSP das Gate 75 das Signal BREQ auf dem Pegel 0 aus. BREQ wird von dem Mikroprozessor 5 empfangen, der dann, wenn er zur Freigabe der Kontrolle des internen Busses bereit ist, das Signal BGRANT zuordnet (auf 0 absenkt).
  • BGRANT wird dem Invertierer 76 eingegeben, dessen Ausgang an einen Eingang des AND-Gates 74 angeschlossen ist.
  • Das AND-Gate 74 empfängt an anderen Eingängen Signale DTACK, AS und BGACK (über Invertierer 77, 78 in Kaskadenschaltung).
  • Diese Signale, wenn sie sich auf dem Pegel 1 befinden, zeigen sämtlich an, daß der interne Bus tatsächlich frei ist.
  • Nach dem Empfang von BGRANT, und sobald der interne Bus verfügbar ist, steigt daher das Ausgangssignal von AND 74 auf 1 an, und ordnet über NOR 73 das Signal BGACK zu (senkt es auf 0 ab).
  • Die Arbitrationsvorrichtung 22 erlangt die Steuerung über den internen Bus und übergibt diese Steuerung an die VME- Schnittstelleneinheit 11 in Form des Freischaltsignals S5, welches aus BGACK durch den Invertierer 78 erhalten wird.
  • Das NOR-Gate 72, welches als Eingangssignale BAS (von dem Systembus) und BGACK empfängt, führt eine Niederhaltefunktion bezüglich des Signals BGACK durch, solange BAS ebenfalls niedrig ist.
  • Es wird deutlich, daß das Signal S5 als Freischaltsignal zum Freischalten der Treibergruppe 54 am Eingang und zum Freischalten des Treibers 55 am Ausgang verwendet wird.
  • Die Treibergruppe 57 wird am Eingang oder am Ausgang freigeschaltet, abhängig von dem Pegel des Signals BRW auf der Leitung 59.
  • Die Signale S5 und BRW werden in das AND-Gate 67 eingegeben, welches über das OR-Gate 63 die Treibergruppe 57 am Ausgang freischaltet (konsistent mit einer Leseanforderung, die außerhalb des Prozessors 1 entstanden ist).
  • Die Signale S5 und BW (erhalten aus BRW über den Invertierer 80) werden dem AND-Gate 68 eingegeben, welches über das OR- Gate 66 die Treibergruppe 57 am Eingang freischaltet.
  • Ein NAND-Gate 81, welches als Eingangssignale S5 sowie ein Signal empfängt, welches aus S5 über ein Verzögerungselement 79 erhalten wird, erzeugt am Ausgang ein verzögertes Freischaltsignal DS5, welches zum Freischalten des Treibers 51 und des Treibers 56 am Eingang verwendet wird.
  • Hieraus wird unmittelbar deutlich, daß die Signale S5 und DS5 dieselbe Freischaltfunktion für die Signale BEN und SEN durchführen, jedoch in entgegengesetzter Übertragungsrichtung.
  • Wenn eine Einheit außer dem Prozessor 1 den Zugriff auf Quellen innerhalb des Prozessors 1 anfordert, so wird daher der auf dem Systembus vorhandene Zielcode dekodiert, und ein Signal MYSP erzeugt, und sobald der interne Bus verfügbar ist, erzeugt die Arbitrationsvorrichtung 22 das Signal S5, und die Schnittstellen-Gates werden ordnungsgemäß freigeschaltet.
  • Sobald der Lese- oder Schreibvorgang durchgeführt wurde, ordnet der Prozessor 1 (und insbesondere die bezeichnete Einheit, beispielsweise der Blockadespeicher 9 innerhalb des Prozessors 1) auf der internen Busleitung 69 das Signal DTACK zu.
  • Bei Empfang von DTACK mit niedrigem Pegel über den Treiber 55 und die Systembusleitung 30 hebt die anfordernde Einheit das Signal BAS auf der Systembusleitung 39 an.
  • Das BAS-Signal wird in NOR 72 der Arbitrationsvorrichtung 22 eingegeben, entriegelt das Signal BGACK, welches auf hohen Pegel getrieben wird, wogegen das Signal S5 auf niedrigen Pegel getrieben wird, wodurch sämtliche Schnittstellen-Gates gesperrt werden.
  • Zur Vervollständigung der Beschreibung von Fig. 3 müssen noch zwei Einzelheiten erwähnt werden.
  • Man ersieht aus Fig. 3, daß das Signal S5 auch in den Freischalteingang einer Gruppe von Treibern 82 eingegeben wird.
  • Derartige Treiber weisen Dateneingänge auf, die an eine Pegelquelle "0" angeschlossen sind, und ihre Ausgänge sind an einige der Leitungen des internen Busses 18 angeschlossen.
  • Der Zweck einer derartigen Anordnung besteht darin, zwangsweise einen Zielcode 0000 (interner Raum) auf Adressenleitungen aufzubringen, und zu verhindern, daß die Dekodierer 37, 38 Signale S1, S3 erzeugen.
  • Selbstverständlich ist dies nur eine bevorzugte Ausführungsform. Eine Alternative unter zahlreichen Alternativen bestände darin, das Signal S5 in beide Dekodierer 37, 38 einzugeben, als ein Zustand, welcher die Erzeugung der Signale S1, S3 sperrt.
  • Ein weiteres Problem, welches vermieden werden muß, ist eine gegenseitige Blockade.
  • Es wird angenommen, daß der Prozessor 2 bereits die Steuerung des Systembusses übernommen hat, für eine Übertragung, bei welcherder Prozessor 1 die Zieleinheit ist, wobei jedoch die Arbitrationsvorrichtung 22 im Prozessor 1 vom Mikroprozessor 5 noch nicht die Steuerung über den internen Bus erhalten hat.
  • Es kann vorkommen, daß gleichzeitig der Mikroprozessor 5 versucht, Zugriff auf den Systembus zu erlangen, jedoch keine Erlaubnis hierfür durch die Arbitrationsvorrichtung 12 gegeben wird.
  • Beide Prozessoren würden ewig warten.
  • Eine sehr einfache Lösung für dieses Problem, unter den vielen möglichen Lösungen, ist in Fig. 3 gezeigt und besteht in dem NAND-Gate 83. Das NAND-Gate 83 empfängt als Eingangssignale MYSP und S13 (das logische OR = ODER der Signale S1, S3).
  • Falls daher die Prozessoren 1 und 2 um den Zugriff auf den Systembus konkurrieren, sinkt der Ausgang des NAND-Gates 83 auf 0 ab, und ordnet ein BERR-Signal und ebenfalls ein HALT- Signal zu.
  • Wenn diese Signale vom Mikroprozessor 5 empfangen werden, veranlassen sie ihn zum Anhalten, zur Ausführung des momentanen Befehls, und zum Start eines erneuten Versuches.
  • Bevor jedoch ein erneuter Versuch gestartet wird, erfaßt eine Arbitrationslogik, die im Mikroprozessor 5 vorgesehen ist, daß das Signal BREQ noch anliegt, erlaubt den Zugriff auf den internen Bus, und verschiebt die Operation des erneuten Versuches, bis der interne Bus wieder frei ist.
  • GLOBALES DATENSCHREIBEN - ZEITABLAUFÜBERLEGUNGEN
  • Zu diesem Zeitpunkt ist es wesentlich, sich in Erinnerung zu rufen, daß bei der Durchführung eines globalen Datenschreibvorgangs mehr als zwei Einheiten an dem Vorgang beteiligt sind, beispielsweise eine anfordernde Einheit und zumindest zwei Empfangseinheiten.
  • Fig. 1 zeigt wiederum, daß dann, wenn der Mikroprozessor 5 einen globalen Datenschreibvorgang anfordert, nicht nur der lokale Speicher 9 als Zieleinheit beteiligt ist, sondern auch der lokale Speicher 92 im Prozessor 2.
  • Hat der Prozessor 5 Zugriff auf den internen Bus erlangt, und einen globalen Datenschreibvorgang begonnen, so ist der lokale Speicher 9 sicherlich verfügbar, die Adresse und den Schreibbefehl zu empfangen. Er führt sofort die Schreiboperation durch, mit seiner eigenen Ausführungszeit, und ordnet daraufhin auf der Leitung 69 das Signal DTACK zu.
  • Der Zugriff auf den Systembus und auf den internen Bus des Prozessors 2 erfolgt jedoch einige Ausbreitungszeit und Wartezeit, zusätzlich zur Ausführungszeit des lokalen Speichers 92.
  • Dies führt dazu, daß der lokale Speicher 92 das Signal DTACK auf einer innen im Prozessor 2 angeordneten Leitung zuordnet, sowie das Signal BDTACK auf der Leitung 30, eine gewisse Zeit später als die Zuordnung des Signals DTACK durch den lokalen Speicher 9.
  • Bis zu diesem Zeitpunkt muß der Mikroprozessor 5 den internen Bus und den Systembus festhalten, und darf sie erst dann freigeben (durch Anheben des Signals AS auf 1), nachdem BDTACK empfangen wurde.
  • Daher muß die Zuordnung des Signals DTACK durch den lokalen Speicher 9 ignoriert werden, und die Operation durch das Signal BDTACK durchgeführt werden, welches von dem Systembus empfangen wird.
  • Dies kann einfach durch Maskierung erzielt werden.
  • Fig. 1 zeigt, daß ein Signal ACK am Ausgang des lokalen Speichers 9 in das OR-Gate 84 eingegeben wird, welches an einem zweiten Eingang das Signal S13 empfängt. Beim Gate 84 ist der Ausgang mit der Leitung 69 verbunden (DTACK-Leitung).
  • Es ist daher klar, daß jedesmal dann, wenn die VME-Schnittstelleneinheit 11 aktiviert ist und das Signal S13 auf hohem Pegel liegt, verhindert wird, daß die Zuordnung des Signals ACK infolge der gleichzeitigen Aktivierung des lokalen Speichers 11 das Signal DTACK absenkt.
  • Falls das System mehr als zwei Prozessoren aufweist, so muß ebenfalls berücksichtigt werden, daß im Falle eines globalen Datenschreibvorgangs mehr als ein Prozessor zu einer unterschiedlichen Zeit das Signal BDTACK auf derselben Busleitung 30 zuordnet.
  • Die zuerst auftretende Zuordnung führt daher dazu, daß das Signal BDTACK auf 0 abgesenkt wird, und eine später kommende Zuordnung kann nicht wahrgenommen werden.
  • Eine zusätzliche Busleitung und einige zusätzliche Schaltungen in der VME-Schnittstelleneinheit jedes der Prozessoren sind dazu erforderlich, eine Anzeige bereitzustellen, daß sämtliche Prozessoren, die bei dem globalen Datenschreibvorgang beteiligt waren, ihr eigenes DTACK-Signal zugeordnet haben.
  • Fig. 4 zeigt eine bevorzugte Ausführungsform derartiger Schaltungen, und die geringfügigen Änderungen, die bei den Schaltungen gemäß Fig. 3 erforderlich sind.
  • In Fig. 4 stellt der Block 1 den Prozessor 1 dar, und der Block I irgendeinen Prozessor unter N-1 Prozessoren, wobei N größer als 2 ist.
  • Der Prozessor 1 wird als der anfordernde Prozessor angesehen, und der Prozessor I als Zielprozessor.
  • Zusätzlich zu den in Fig. 3 gezeigten Schaltungen weist die VME-Schnittstellenschaltung des Prozessors I einen weiteren Treiber 85 auf, ein NOR-Gate 87, und einen Invertierer 88. Diese Bauteile dienen zur Erzeugung eines zusätzlichen Signals GLOBACK.
  • Zusätzlich zu den in Fig. 3 gezeigten Schaltungen weist die VME-Schnittstelleneinheit des Prozessors 1 ein AND-Gate 89 für den Empfang des Signals GLOBACK auf.
  • Es ist deutlich, daß der Prozessor I auch ein Gate entsprechend dem Gate S9 aufweist, und daß der Prozessor 1 die weiteren, beim Prozessor I gezeigten Bauteile enthält, da die Rolle von anforderndem und Zielgerät vertauscht werden kann.
  • Der Systembus weist eine zusätzliche Leitung 90 zur Übertragung des Signals GLOBACK auf.
  • Die Leitung 90 ist an eine Spannungsquelle +V über einen Heraufziehwiderstand 91 angeschlossen, nicht anders als die anderen Busleitungen.
  • Der Ausgang des Treibers 85 ist mit der Busleitung 90 verbunden. Der Eingang ist an den Ausgang des NOR 87 angeschlossen.
  • NOR 87 empfängt als Eingangssignale DTACK und NS5, welches aus S5 über den Invertierer 88 erhalten wird.
  • Der Freischalteingang des Treibers 85 ist an einen Ausgang des Dekodierers 70 angeschlossen, um ein Signal GLOB zu empfangen, welches auf 1 ansteigt, wenn als Zielcode 1110 festgestellt wird.
  • Das AND-Gate 89 empfängt als Eingangssignale BEN und ein Signal GLOBACK, welches auf der Leitung 90 vorhanden ist.
  • Der Ausgang des AND-Gates 89 ist mit dem Freischalteingang des Treiber-Empfängers 55 verbunden, und beim Pegel 1 wird der Treiber/Empfänger 55 freigeschaltet, um das Signal BDTACK einzugeben, welches auf der Leitung 30 vorhanden ist.
  • Die Operation derartiger Schaltungen ist sehr einfach und läßt sich leicht unter Bezugnahme auf das Zeitablaufdiagramm von Fig. 5 verstehen.
  • Es wird angenommen, daß der Prozessor 1 einen Zugriff auf den Systembus für einen globalen Datenschreibvorgang erlangt, und zum Zeitpunkt t1 das Signal BAS zuordnet.
  • Gleichzeitig stellt in sämtlichen Prozessoren I der Dekodierer 70 den Zielcode 1110 fest, und hebt die Signale MYSP und GLOB auf den Pegel 1 an.
  • In jedem Prozessor I wird von der VME-Schnittstelleneinheit Zugriff auf den internen Bus angefordert, bevor jedoch der Zugriff gewährt wird, befindet sich das Signal S5 auf dem Pegel 0, und daher NS5 auf dem Pegel 1.
  • Zum Zeitpunkt t1, unabhängig vom Pegel von DTACK, gibt daher der Treiber 85 in sämtlichen Prozessoren I ein Signal GLOBACK auf dem Pegel 0 auf der Leitung 90 aus.
  • Zum Zeitpunkt t2 wird bei einem ersten (F) der I Prozessoren der Zugriff zum internen Bus gewährt. Dies bedeutet, daß in diesem Prozessor das Signal DTACK(F) auf dem Pegel 1 liegt, und auf dem Pegel 1 bleibt, bis der Schreibvorgang beendet ist (Zeitpunkt t3). Dies führt dazu, daß der Ausgang des Treibers 85 auf niedrigem Pegel gehalten wird, selbst wenn das Signal MS5(F) absinkt.
  • Zum Zeitpunkt t3 ordnet der Prozessor F das Signal DTACK(F) zu, und demzufolge wird BDTACK zugeordnet. Er versucht weiterhin, das Signal GLOBACK auf der Leitung 90 anzuheben, aber der andere Prozessor hält das Signal GLOBACK immer noch auf dem Pegel 0.
  • Dies führt dazu, daß der Treiber/Empfänger 55 immer noch gesperrt ist und die Zuordnung des Signals DTACK im Prozessor 1 verhindert.
  • Zum Zeitpunkt t4 wird in dem letzten (L) der I Prozessoren der Zugriff zum internen Bus gewährt, und S5(L) auf den Pegel 1 angehoben (sowie NS5(L) auf 0 abgesenkt).
  • Zum Zeitpunkt t5 beendet der letzte (L) der I Prozessoren die Schreiboperation und es wird das Signal DTACK(L) zugeordnet.
  • Die Zuordnung von DTACK(L) hat keine Wirkung auf BDTACK, welches bereits zugeordnet wurde (auf dem Pegel 0).
  • Es hat jedoch eine Auswirkung auf das Signal GLOBACK, welches auf den Pegel 1 angehoben wird.
  • Daher ist zum Zeitpunkt t5 der Empfänger 55 freigeschaltet, und der Prozessor 1 kann den Systembuszugriff dadurch fertigstellen, daß das Signal BEN abgesenkt und das Signal BAS angehoben wird (Zeitpunkt t6).
  • Zum Zeitpunkt t6 sind daher sämtliche Systembussignale auf 1 angehoben, und kurz darauf werden sämtliche DTACK-Signale auf 1 angehoben (Zeitpunkt t7).
  • Es ist deutlich, daß es sich bei der voranstehenden Ausführungsform nur um eine bevorzugte Ausführungsform handelt, und daß sich unterschiedliche Anordnungen vornehmen lassen.
  • Beispielsweise können die VME-Schnittstelleneinheiten in jedem der Prozessoren durch ein Adressenregister und ein Datenregister abgepuffert werden.
  • Sobald in diesem Fall ein anfordernder Prozessor den Zugriff auf den Systembus erlangt hat, können die Adressen- und Datenregister in jedem der Zielprozessoren gleichzeitig geladen werden, und daraufhin kann der Systembus freigegeben werden. Der Schreibvorgang kann dann selbsttätig innerhalb jedes Zielprozessors fertiggestellt werden.
  • Zwar erfolgte bei der anstehenden Beschreibung eine Bezugnahme auf Mikroprozessoren wie beispielsweise Motorola 68020 als Kern des Prozessors sowie auf den VME-Bus als den Systembus, jedoch erfolgte dies nur deswegen, um die Beschreibung der Struktur und Operation des Systems zu vereinfachen.

Claims (5)

1. Multiprozessorrechnersystem, bei welchem mehrere Prozessoren (1, 2) miteinander über einen Systembus (4) verbunden sind, jeder Prozessor eine Bearbeitungseinheit (5), einen lokalen Speicher (9) und eine Schnittstelleneinheit (11) aufweist, die Bearbeitungseinheit eines Prozessors Zugriff auf den zugehörigen lokalen Speicher dieses Prozessors hat, ohne Zugriff auf den Systembus zu benötigen, eine Bearbeitungseinheit irgendeines der Prozessoren Zugriff auf den lokalen Speicher eines anderen Prozessors über den Systembus sowie die Schnittstelleneinheit beider Prozessoren hat, und eine Information, die in einem der lokalen Speicher gespeichert ist oder gespeichert werden soll, durch einen Adressencode angesprochen wird, der einen Zielcode aufweist, welcher eine Information als gespeichert oder als zur Speicherung vorgesehen festlegt, in einem vorher festgelegten Speicher unter den lokalen Speichern, dadurch gekennzeichnet, daß:
- der Zielcode eine vorbestimmte Binärkonfiguration aufweist, welche eine Information als globale Daten identifiziert, also als modifizierbare Information, die von mehr als einem Prozessor benötigt wird, wobei jeder Prozessor aufweist:
- eine erste Einrichtung (7, 11, 13, 14, 15, 37, 38), welche den Zielcode und ein von dem Prozessor erzeugtes Schreibsteuersignal empfängt, die vorbestimmte Binärkonfiguration feststellt, die eine Information als Globaldaten identifiziert, und in Reaktion hierauf eine Schreiboperation der Information in den zugehörigen lokalen Speicher (9) des Prozessors durchführt, und gleichzeitig Zugriff auf den Systembus (4) erhält und die globalen Daten sowie eine Globaldaten-Schreibadresse einschließlich des Zielcodes über den Systembus (4) aussendet,
- Logikschaltungen (11, 70, 22), welche den Zielcode von dem Systembus (4) empfangen, die vorbestimmte Binärkonfiguration des Zielcodes erfassen, und in Reaktion hierauf eine Schreiboperation der Globaldaten in dem zugehörigen Lokalspeicher durchführen, und
- eine zweite Einrichtung (90, 85, 87, 89) in dem System, welche auf die vorbestimmte Binärkonfiguration auf dem Systembus (4) reagiert, um die Ausführung einer globalen Schreiboperation zu bestätigen (beispielsweise bezüglich sämtlicher Kopien derselben Globaldaten), für einen Prozessor, welcher die Binärkonfiguration über den Systembus sendet, sobald alle anderen Prozessoren die Globaldaten und die Schreibadresse empfangen haben,
wodurch der sendende Prozessor seinen Systembus-Zugriff beim Empfang der Bestätigung beenden kann.
2. Multiprozessorsystem nach Anspruch 1, bei welchem die erste Einrichtungen einen Dekodierer (37, 38) aufweist, der auf die vorbestimmte Binärkonfiguration mit der Bereitstellung eines Auswahlsignals (S1, S2) reagiert, welches sowohl den lokalen Speicher des zugehörigen Prozessors für eine Schreiboperation auswählt, als auch die Schnittstelleneinheit des zugehörigen Prozessors, zur Anforderung eines Systembus-Zugriffs und des Aussendens einer Schreiboperationsanforderung an alle anderen Prozessoren.
3. Multiprozessorsystem nach Anspruch 1, bei welchem die Logikschaltungen einen Dekodierer (70) aufweisen, der sowohl auf den Zielcode reagiert, welcher den zugehörigen lokalen Speicher angibt, als auch auf die vorbestimmte Binärkonfiguration, zur Bereitstellung eines Zugriffsanforderungssignals (MYSP) für den zugehörigen Prozessor, zum Richten einer Speicherbezeichnung, die auf dem Systembus vorhanden ist, an den zugeordneten lokalen Speicher.
4. Multiprozessorsystem nach Anspruch 3, bei welchem der Dekodierer (70) einen Steuereingang aufweist, welcher ein Signal (BEN) empfängt, wobei dieses Signal in dem zugehörigen Prozessor zugeordnet wird, wenn der zugehörige Prozessor Zugriff auf den Systembus erlangt hat, und das zugeordnete Signal die Erkennung der vorbestimmten Binärkonfiguration auf dem Systembus durch den Dekodierer (70) verhindert, wenn die vorbestimmte Binärkonfiguration auf dem Systembus durch den zugehörigen Prozessor ausgegeben wird.
5. Multiprozessorsystem nach Anspruch 3, bei welchem die Logikschaltungen eine dritte Einrichtung (82) zum Umwandeln der vorbestimmten Binärkonfiguration in einen Zielcode umfassen, welcher den lokalen Speicher des zugehörigen Prozessors angibt.
DE3852698T 1987-11-17 1988-10-29 Multiprozessorsystem mit Vervielfältigung von globalen Daten. Expired - Fee Related DE3852698T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT22666/87A IT1223142B (it) 1987-11-17 1987-11-17 Sistema multiprocessore di elaborazione con multiplazione di dati globali

Publications (2)

Publication Number Publication Date
DE3852698D1 DE3852698D1 (de) 1995-02-16
DE3852698T2 true DE3852698T2 (de) 1995-08-03

Family

ID=11199037

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3852698T Expired - Fee Related DE3852698T2 (de) 1987-11-17 1988-10-29 Multiprozessorsystem mit Vervielfältigung von globalen Daten.

Country Status (4)

Country Link
US (1) US4928224A (de)
EP (1) EP0320607B1 (de)
DE (1) DE3852698T2 (de)
IT (1) IT1223142B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901225A (en) * 1984-04-09 1990-02-13 Kabushiki Kaisha Toshiba Processing apparatus with hierarchical structure for implementing a machine instruction
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
US5055999A (en) 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
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
IT1216085B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Apparato di selezione veloce di memoria locale.
NL8800858A (nl) * 1988-04-05 1989-11-01 Philips Nv Rekenmachinesysteem voorzien van een hoofdbus en een tussen processor en geheugen direkt verbonden extra kommunikatielijn.
IT1227360B (it) * 1988-11-18 1991-04-08 Honeywell Bull Spa Sistema multiprocessore di elaborazione dati con replicazione di dati globali.
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
US4980819A (en) * 1988-12-19 1990-12-25 Bull Hn Information Systems Inc. Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
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.
GB8914352D0 (en) * 1989-06-22 1989-08-09 Int Computers Ltd Multiprocessor data processing system
IT1239122B (it) * 1989-12-04 1993-09-28 Bull Hn Information Syst Sistema multiprocessore a risorse distribuite con replicazione dinamica di dati globali
GB9004116D0 (en) * 1990-02-23 1990-04-18 Digital Equipment Int Transaction control
DE69022716T2 (de) * 1990-03-19 1996-03-14 Bull Hn Information Syst Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
GB2251099B (en) * 1990-12-19 1994-08-03 Motorola Inc Bus system
JPH04246745A (ja) * 1991-02-01 1992-09-02 Canon Inc 情報処理装置及びその方法
US5390302A (en) * 1991-02-21 1995-02-14 Digital Equipment Corporation Transaction control
US5276871A (en) * 1991-03-18 1994-01-04 Bull Hn Information Systems Inc. Method of file shadowing among peer systems
SE513182C2 (sv) * 1991-06-12 2000-07-24 Icl Systems Ab Förfarande och system för att revidera data i ett distribuerat datasystem
JPH079632B2 (ja) * 1991-06-18 1995-02-01 インターナショナル・ビジネス・マシーンズ・コーポレイション アドレス変換装置および方法
JPH07122864B2 (ja) * 1991-07-22 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム、データ処理システムに使用するインターフエース回路及びデータ・プロセツサ間の通信方法
US5410654A (en) * 1991-07-22 1995-04-25 International Business Machines Corporation Interface with address decoder for selectively generating first and second address and control signals respectively in response to received address and control signals
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
CA2078315A1 (en) * 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
US5283870A (en) * 1991-10-04 1994-02-01 Bull Hn Information Systems Inc. Method and apparatus for avoiding processor deadly embrace in a multiprocessor system
US5727179A (en) * 1991-11-27 1998-03-10 Canon Kabushiki Kaisha Memory access method using intermediate addresses
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
JP3098344B2 (ja) * 1992-12-18 2000-10-16 富士通株式会社 データ転送処理方法及びデータ転送処理装置
JP2826028B2 (ja) * 1993-01-28 1998-11-18 富士通株式会社 分散メモリ型プロセッサシステム
FR2770665B1 (fr) * 1997-11-06 2002-12-20 Alsthom Cge Alkatel Dispositif d'echange entre unites de traitement d'informations a processeurs interconnectes par un bus commun
GB2419006B (en) 2002-04-22 2006-06-07 Micron Technology Inc Providing a register file memory with local addressing in a SIMD parallel processor
US7681046B1 (en) 2003-09-26 2010-03-16 Andrew Morgan System with secure cryptographic capabilities using a hardware specific digital secret
US7694151B1 (en) * 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
US8643659B1 (en) 2003-12-31 2014-02-04 3Dlabs Inc., Ltd. Shader with global and instruction caches
US7849369B2 (en) * 2005-10-25 2010-12-07 Waratek Pty Ltd. Failure resistant multiple computer system and method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3753234A (en) * 1972-02-25 1973-08-14 Reliance Electric Co Multicomputer system with simultaneous data interchange between computers
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
US4402046A (en) * 1978-12-21 1983-08-30 Intel Corporation Interprocessor communication system
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4470114A (en) * 1982-03-01 1984-09-04 Burroughs Corporation High speed interconnection network for a cluster of processors
US4466098A (en) * 1982-06-11 1984-08-14 Siemens Corporation Cross channel circuit for an electronic system having two or more redundant computers
US4713834A (en) * 1982-09-30 1987-12-15 American Telephone And Telegraph Company, At&T Bell Laboratories Multiprocessor computing system featuring shared global 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
AU4907285A (en) * 1984-11-09 1986-05-15 Spacelabs, Inc. Communications bus broadcasting
US4814982A (en) * 1984-12-24 1989-03-21 General Electric Company Reconfigurable, multiprocessor system with protected, multiple, memories

Also Published As

Publication number Publication date
EP0320607A3 (en) 1990-05-16
EP0320607A2 (de) 1989-06-21
IT8722666A0 (it) 1987-11-17
DE3852698D1 (de) 1995-02-16
US4928224A (en) 1990-05-22
IT1223142B (it) 1990-09-12
EP0320607B1 (de) 1995-01-04

Similar Documents

Publication Publication Date Title
DE3852698T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE69024078T2 (de) Mehrprozessoranordnung mit Vervielfältigung von globalen Daten und mit zwei Stufen von Adressübersetzungseinheiten
DE3909948C2 (de)
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE69312192T2 (de) Aufteilung des buszugriffs zwischen mehreren endlichen automaten mit minimaler wartezeit und priorisierung von ähnlichen zyklustypen
DE68927375T2 (de) Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69130106T2 (de) Arbitrierung von paketvermittelten Bussen, einschliesslich Bussen von Multiprozessoren mit gemeinsam genutztem Speicher
DE69626231T2 (de) Bus-Master-Arbitrierungssschaltung mit einer Vielzahl von Arbitern
DE69223303T2 (de) Verfahren und Gerät für die dynamische Zuweisung von unadressierten Unterbrechungen
DE2854485C2 (de) Datenverarbeitungsanlage
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE69030640T2 (de) Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE68923944T2 (de) RAM mit doppelten Ein/Ausgängen.
CH657714A5 (de) Mehrprozessorenanlage.
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2241257B2 (de) Datenverarbeitende Anlage
DE3606211A1 (de) Multiprozessor-computersystem
DE3882991T2 (de) Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus".
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee