Nothing Special   »   [go: up one dir, main page]

DE3689226T2 - Multiprozessorsystem mit multihierarchischen Ebenen. - Google Patents

Multiprozessorsystem mit multihierarchischen Ebenen.

Info

Publication number
DE3689226T2
DE3689226T2 DE86116525T DE3689226T DE3689226T2 DE 3689226 T2 DE3689226 T2 DE 3689226T2 DE 86116525 T DE86116525 T DE 86116525T DE 3689226 T DE3689226 T DE 3689226T DE 3689226 T2 DE3689226 T2 DE 3689226T2
Authority
DE
Germany
Prior art keywords
processor
lines
block
bus
data
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
DE86116525T
Other languages
English (en)
Other versions
DE3689226D1 (de
Inventor
Giuseppe Barbagelata
Bruno Conterno
Vildo Luperini
Enrico Perroni
Fernando Pesce
Osvaldo Pugliese
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.)
Elsag Bailey SpA
Original Assignee
Elsag Bailey SpA
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 Elsag Bailey SpA filed Critical Elsag Bailey SpA
Publication of DE3689226D1 publication Critical patent/DE3689226D1/de
Application granted granted Critical
Publication of DE3689226T2 publication Critical patent/DE3689226T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein modulares Multiprozessorsystem einer fortgeschrittenen Architektur mit mehreren hierarchischen Ebenen, bestehend aus einer Anzahl von elementaren Prozessoreinheiten, nämlich je nach der betrachteten Anwendung von einigen bis zu einigen tausend Einheiten, die in sehr wirkungsvoller Weise zusammenwirken, und mit gemeinsamen Busleitungen zwischen den einzelnen Prozessoren und dem Speicher.
  • Es wird allgemein das Bedürfnis nach einer Kombination von großer Rechenleistung mit der Fähigkeit anerkannt, große ankommende und ausgehende Datenströme zu behandeln, insbesondere bei Anwendungen, die komplexe Echtzeitverarbeitung beinhalten (z. B. Bildverarbeitung, Zeichen- und Stimmerkennung, künstliche Intelligenz und ganz allgemein wissenschaftliche Rechner). Die Bildung von Multiprozessorsystemen großer Rechenleistung stößt auf vielfältige Probleme der Aufgabenaufteilung, des Verkehrs zwischen den Prozessoren, der Prozeßkooperation und der theoretisch-praktischen Durchführbarkeit, insbesondere aufgrund von Konflikten beim Zugang zu gemeinsamen Datenquellen (Nachrichtenleitungen und Speicher) wegen des gleichzeitigen Betriebs einer großen Anzahl von Prozessoren. Bekannte Lösungsvorschläge (meistens nur theoretischer Art) verwenden extrem teure Systeme (Prozessoranordnungen und über Matrizen verbundene Speicher), die nicht nur schwer zu steuern sind, sondern auch wegen des schlechten Leistungs- Kostenverhältnisses nicht akzeptiert werden können. Außerdem haben bekannte Systeme beim Austausch von Nachrichten zwischen verschiedenen Sektionen mit relativ hoher Datengeschwindigkeit bisher nicht das Problem eines völlig unabhängigen transparenten Betriebs beim gegenseitigen Verkehr von Multiprozessorsektionen gelöst.
  • Beispielhaft hierfür beschreibt die Druckschrift Proceedings of the Ninth Data Communication Symphosium, Whistler Mountain, British Columbia, 10. bis 13. September 1985, Seiten 115-121, IEEE Computer Society Press New York, USA, K.J. Chen et al.:" A new Method for Topological Design in Large Traffic Laden Packet Switched Networks" beschreibt Multiprozessoranordnungen die über Prozessormoduln an einen ätherähnlichen Bus angeschlossen sind, wobei die Prozessormoduln über einen 8 MB/s Multimeisterbus zu Bündeln gekoppelt sind. Die an einen einzigen ätherähnlichen Bus angeschlossenen Bündel bilden einen Knoten, und eine Anzahl von Knoten bildet eine Schaltstelle. Eine Anzahl von Schaltstellen kann auch als ein Unternetz betrachtet werden und jedes Unternetz der Ebene (n+1) hat zwei Schaltstellen als Tore, die die Schnittstelle zwischen den Unternetzen der Ebene (n+1) und dem Unternetz der Ebene n bilden. In diesem System ist jedoch jeder Speicher der Prozessormoduln nicht unmittelbar für die anderen Moduln in unterschiedlichen hierarchischen Ebenen zugänglich.
  • Das Dokument EP-A-0016523 beschreibt ein Multiprozessorsystem mit einer Meistereinheit, die mit einer Anzahl von Sklaveneinheiten verbunden werden kann, die je so programmiert sind, daß sie eine bestimmte Funktion erfüllen, und umgekehrt kann jede Sklaveneinheit als Meister mit einer eigenen Gruppe von Sklaveneinheiten verbunden sein, die wiederum je so programmiert sind, daß sie eine bestimmte Funktion ausfüllen. Das ganze System wird koordiniert und gesteuert durch die ursprüngliche Meistereinheit. Dieses System hat eine starre hierarchische Struktur und ein Prozessormodul einer niedrigeren Ebene kann nicht unmittelbar mit den Prozessormoduln oberhalb seiner eigenen Meistereinheit verkehren. Außerdem ist aus der Druckschrift EP-A-0 113 612 ein Multiprozessorsystem bekannt, das mehrere Speicher verwendet, insbesondere einen gemeinsamen Speicher für alle Prozessoren und einen privaten Speicher für einen der Prozessoren. Der Prozessor, der zum privaten Speicher Zugang hat, greift auch auf Speicherbereiche sowohl in dem Speicherbereich für den gemeinsamen Speicher als auch dem Speicherbereich für den privaten Speicher zu. Es wird jedoch nicht für ein System mit unterschiedlichen hierarchischen Ebenen dargelegt, wie man eine unabhängige Verarbeitung auf jeder Ebene und einen wirksamen Verkehr zwischen Prozessoren unterschiedlichen Ebenen erreicht, die an verschiedene örtliche Busleitungen angeschlossen sind.
  • Ziel der vorliegenden Erfindung ist es, ein Multiprozessorsystem anzugeben, das die oben bezeichneten Nachteile behebt. Der extrem modulare Aufbau des Systems führt zu sehr komplexen Systemen die eine hochgradig parallele Verarbeitung und eine Rechenleistung gewährleisten, wie sie für einen sehr weiten Bereich der kompliziertesten Anwendungen gefordert wird. Außerdem bietet das System ein deutlich verbessertes Verhältnis von Leistung zu Kosten im Vergleich zu bekannten Lösungen.
  • Weitere Ziele und Vorteile der vorliegenden Erfindung gehen aus der nachfolgenden Beschreibung hervor.
  • Angesichts dieses Ziels schlägt die vorliegende Erfindung ein System vor, wie es in Anspruch 1 beansprucht wird.
  • Ein Ausführungsbeispiel des erfindungsgemäßen Multiprozessorsystems wird nun als nicht beschränkend zu verstehendes Beispiel unter Bezugnahme auf die beiliegenden Figuren erläutert:
  • Fig. 1 zeigt ein Blockdiagramm des Multiprozessorsystems gemäß der Erfindung.
  • Die Fig. 2 bis 5 zeigen mehr ins einzelne gehende Blockdiagramme von Komponenten des Systems gemäß Fig. 1.
  • Die Fig. 6A und 6B zeigen mehr in einzelne gehende Blockdiagramme von Busleitungen in den Fig. 2, 3 und 4, die Schnittstellen zwischen den Blöcken bilden.
  • Fig. 7 zeigt ein Flußdiagramm eines Entscheidungsblocks aus dem Diagramm von Fig. 2.
  • Fig. 8 zeigt ein genaueres Blockdiagramm einer Ausführungsform des lokalen Speichers in dem Modul gemäß Fig. 2.
  • Fig. 9 zeigt den Inhalt verschiedener Register in dem beschriebenen System.
  • Fig. 10 zeigt schematisch eine Anzahl von Moduln des Systems gemäß der vorliegenden Erfindung, die an gemeinsame Leitungen angeschlossen sind, sowie interne Blöcke und Signale, die den beliebigen Verkehr zwischen verschiedenen Moduln überwachen.
  • Die Fig. 11a, 11b, 11c und 11d zeigen schematisch Beispiele der Adressenverteilungen für Speicherblöcke und Eingangs-/Ausgangsblöcke des erfindungsgemäßen Systems.
  • Gemäß Fig. 1 besitzt das erfindungsgemäße Multiprozessorsystem eine gemeinsame Busstruktur und teilt sich in eine Anzahl von Regionen 10 auf, die je aus einer Gruppe von Familien 11 besteht. Jede Familie wird von einer Anzahl von Prozessoren gebildet, die unmittelbar über einen gemeinsamen Bus 12 (Familienbus) zugänglich sind, und alle Familien 11 in einer Region 10 sind ihrerseits unmittelbar über einen gemeinsamen Bus 13 (Regionalbus) zugänglich. Innerhalb jeder Region 10 sind die Prozessoren eng miteinander verbunden, d. h. daß sie unmittelbaren Zugriff auf den Speicher in der Region gewährleisten, während unterschiedliche Regionen 10 nur lose miteinander verbunden sind, d. h. über Nachrichten, die über Einheiten 14 ausgetauscht werden, welche über Leitungen 15 verbunden sind. Überwachungsfunktionen des Systems werden vorzugsweise von einer speziellen Region 10' vorgenommen, die über Einheiten 14 mit allen anderen Regionen 10 des Systems und über weiter unten im einzelnen beschriebene Moduln mit einem externen Rechner 16 verbunden sind. Jede Familie 11 enthält einen Monoprozessormodul 17 (P1) der über Leitungen 19 und 20 an den Familienbus 12 bzw. den Regionalbus 13 angeschlossen ist, eine Anzahl von Multiprozessormoduln 18 (PN), die über Leitungen 19' nur an den Familienbus 12 angeschlossen sind, einen Großraumspeicherblock 22 (HCSM, vorzugsweise mit 8 Mbytes) und einen Eingangs-/Ausgangsblock 23 (I/O) zum Austausch von Daten mit dem Anwendungsumfeld des Multiprozessorsystems. Der Speicherblock 22 ist über Leitungen 24 und 25 an den Familienbus 12 bzw. den Regionalbus 13 angeschlossen, während der Block 23 nur an den Familienbus 12 führt. Der Regionalbus 13 kann auch an Eingangs-/Ausgangsblöcke 26 (I/O) zum Verkehr mit Peripheriegeräten verbunden sein.
  • Der Monoprozessormodul 17 (P1) sichert also die Verbindung mit zwei hierarchischen Ebenen (Familie und Region) und ist, wie Fig. 2 zeigt, in zwei Blöcke 27 und 28 aufgeteilt, die eine private bzw. lokale hierarchische Ebene bilden. Der Block 27 enthält einen Prozessor 31 (CPU), der beispielsweise von einem INTEL 80286 Mikroprozessor mit 24 Adressenbits und 16 Datenbits gebildet wird und der an den Daten, Adressen und Steuersignale übertragenden privaten Bus 32 angeschlossen ist. Der Prozessor 31 kann mit einem Standardkoprozessor 33 oder speziellen Koprozessor zur Beschleunigung seiner Funktionen verbunden sein. Der private Bus 32 verbindet einen privaten Speicher 34, bestehend aus RAM-Blöcken 35 und einem EPROM-Block 36. Der RAM-Block 35 ist nur für den Prozessor 31 und (gegebenenfalls) den Koprozessor 33 zugänglich. Es handelt sich um einen statischen Speicherblock mit einer Zugriffszeit, die keine Warteschritte im Zyklus des Prozessors 31 erfordert. Der Speicher wird beispielsweise von Chips mit 8 Bytes und einer möglichen Größe von 256 kb gebildet und wird von einer Pufferbatterie bei Stromausfall mit Strom versorgt. Der EPROM-Block 36 speichert Programme betreffend das Betriebssystem sowie die Initialisierung und die Diagnostik und hat möglicherweise eine Größe von 128 kb. Der private Bus 32 verbindet eine private Eingangs-/Ausgangszone 37 mit einem privaten Steuerregister 38 (CRP), einem privaten Statusregister 39 (SRP), einem Zeitgeberblock 40 (TM), einem Unterbrechungssteuerblock 41 (IC) und einem Serienleitungsblock 42 (SL). Zusätzlich zu einer Gruppe von Leitungen 43 zum Datenaustausch mit dem privaten Bus 32 besitzt der Unterbrechungssteuerblock 41 auch eine Verbindung 44, um Unterbrechungssignale an den Prozessor 31 zu liefern, und eine Verbindung 45, um Empfangsbestätigungssignale vom Prozessor 31 zu empfangen. Der private Bus 32 dient auch der Verbindung eines Fehlererkennungsblocks 46 und eines globalen Adressendekodierblocks 47, der vom Prozessor 31 kommende Daten betreffend Status und Adressen empfängt und den Prozessor 31 zur Steuerung der Adressenverteilung im Speicher und der Eingangs-/Ausgangszone aktiviert, wie weiter unten erläutert wird. Der Block 47 erzeugt nämlich eines von drei Signalen PL, PF, PR zur Auswahl einer Lokal-, Familien- oder Regionalebene, die an einen lokalen Entscheidungsblock 48 gesendet werden, der zum lokalen Block 28 gehört. Der Block 48, der wie in Fig. 7 dargestellt und weiter unten genauer beschrieben arbeitet, besitzt eine erste Steuerleitung 49 für den lokalen Zugang zum Prozessor 31, die auch an den Block 50 führt, um selektiv den privaten Bus 32 vom lokalen Bus 51 zu trennen, der auch Daten-, Adress- und Steuerleitungen besitzt. Der Entscheidungsblock 48 besitzt auch eine Eingangsverbindung 52 und eine Ausgangsverbindung 53 in Richtung auf einen Block 54, der eine Schnittstelle zwischen dem Familienbus 12 und dem lokalen Bus 51 bildet, sowie eine Eingangsverbindung 55 und eine Ausgangsverbindung 56 in Richtung auf einen Block 57, der eine Schnittstelle zwischen dem regionalen Bus 13 und dem lokalen Bus 51 bildet. Die Schnittstellenblöcke 54 und 57 sind weiter an den Bus 12 bzw. dem Bus 13 über Verbindungen 58 bzw. 78 angeschlossen, um eine Ausgangsverbindung zu anderen Moduln anzufordern, und über Verbindungen 61 bzw. 79, um die Verbindung zu den Blöcken 54 bzw. 57 herzustellen. Die Blöcke 54 und 57 sind auch an den Entscheidungsblock 48 über Verbindungen 62 bzw. 80 angeschlossen.
  • An den lokalen Bus 51 sind angeschlossen:
  • - ein lokaler Speicherblock 63, der in zwei Sektionen unterteilt ist, von denen die erste vom Prozessor 31 und dem Regionalbus 13 und die zweite vom Prozessor 31 und dem Familienbus 12 erreicht werden kann. Der Block 63 enthält einen statischen RAM-Speicher, dessen Zugriffszeit, wenn der RAM-Speicher vom Prozessor 31 angesteuert wird, keine Warteschritte in den Prozessorzyklen erfordert. Dieser RAM-Speicher ist auch mit einer Pufferbatterie versehen;
  • - eine lokale Eingangs-/Ausgangszone mit einem lokalen Statusregister 64 (SRL), einem Familiensteuerregister 65, einem Regionalsteuerregister 66, einem Familienrundspruchregister 67 und einem Regionalrundspruchregister 68. Das Familiensteuerregister 65 ist an zwei Eingänge des Unterbrechungssteuerblocks 41 über eine direkte Verbindung 70 und über eine Verbindung 71 angeschlossen, auf der ein FIFO-Block 72 eingefügt ist, der auch an den lokalen Bus 51 angeschlossen ist. Das regionale Steuerregister 66 ist auch an den Unterbrechungssteuerblock 41 über eine direkte Verbindung 74 und über eine Verbindung 75 angeschlossen, die an einen FIFO-Block 76 führt, der auch mit dem lokalen Bus 51 verbunden ist.
  • Der Multiprozessormodul 18, der im einzelnen in Fig. 3 gezeigt ist, bildet den intensiven Prozessormodul des erfindungsgemäßen Multiprozessorsystems und enthält eine Anzahl von Prozessorblöcken 27' der privaten Ebene ähnlich dem Block 27 im Monoprozessormodul 17, mit dem einzigen Unterschied, daß es keinen Serienleitungsblock 42 in der privaten Eingangs-/Ausgangszone 37' gibt. Daher werden entsprechende Elemente mit denselben Bezugszeichen und zusätzlich einem Apostroph bezeichnet. Der Modul 18 enthält auch einen Block 28', der lokalen Ebene, der an Blöcke 27' angeschlossen ist und Zugang nur über den Familienbus 12 bietet. Der Block 28' unterscheidet sich also vom Block 28 im Modul 17 dadurch, daß er keine Schnittstellenkomponenten mit dem regionalen Bus 13 besitzt. Außerdem sind die Blöcke 50', die auf einer Seite mit privaten Busleitungen 31' von privaten Blöcken 27' verbunden sind, auf der anderen Seite an denselben lokalen Bus 51' angeschlossen. Die Blöcke 50' (im vorliegenden Beispiel drei an der Zahl) empfangen daher vom lokalen Entscheidungsblock 48 ein Selektionssignal 49'&sub1;, 49'&sub2; bzw. 49'&sub3;, das auch an die jeweiligen Prozessoren 31' in den Blöcken 27' gesendet wird. Der Zugangsdekodierblock 47' in jedem privaten Block 27' sendet also nur zwei Signale, PL und PF, an den lokalen Entscheidungsblock 48', während das Signal PR zur Adressierung der Region fehlt. So tauscht der Block 48' nicht mehr Signale 80, 55 und 56 mit dem regionalen Schnittstellenblock 57 aus, der ebenso fehlt wie die Regionalregister 66 und 68. Der lokale RAM-Speicherblock 63' bildet die einzige vom Familienbus 12 erreichbare Zone.
  • Der Block 54, der die Schnittstelle zum Familienbus 12 im Monoprozessormodul 17 bildet, ist im einzelnen in Fig. 6A dargestellt. Diese Figur zeigt einen ersten logischen Block 82, der Leitungen 19, 58 und 61 mit dem Familienbus 12 und Leitungen 52, 53 und 62 mit dem lokalen Entscheidungsblock 48 austauscht. Dieser Block 82 liefert ein Zyklusbestätigungssignal 84 an einen logischen Steuerblock 85, der Datensignale 19 mit dem Familienbus 12 und Steuersignale mit dem Prozessor 31 austauscht und Unterbrechungssignale an den Kontrollblock 41 über den lokalen Bus 51 liefert. Der Kontrollblock 85 liefert Bestätigungssignale 86 bzw. 87 an einen Pufferspeicherblock 88, der Daten zwischen dem Familienbus 12 und dem lokalen Bus 51 austauscht, und an einen Pufferspeicherblock 89, der Adressen und Statussignale zwischen dem Familienbus 12 und dem lokalen Bus 51 austauscht. Der Block 54 enthält auch einen logischen Block 90, der Fehlersignale mit dem Familienbus 12 austauscht und Fehlersignale auf den lokalen Bus 51 in Richtung auf den Fehlererkennungsblock 46 sendet.
  • Der Block 57, der den lokalen Bus 51 und den regionalen Bus 13 im Monoprozessormodul 17 verbindet, ist in Fig. 6B gezeigt, wobei Bauteile gleicher Funktionen wie im Verbindungsblock 54 in Fig. 6A mit demselben Bezugszeichen und zusätzlich einem Apostroph bezeichnet sind.
  • Die Schnittstellenblöcke 54 und 57 sind im wesentlichen gleich, was die Verbindungen zwischen den Moduln einschließlich der Prozessoren und dem Familienbus 12 bzw. dem Regionalbus 13 angeht. So wird der Block 54', der als Schnittstelle zum Familienbus 12 auf dem Multiprozessormodul 18 dient, genauso ausgebildet wie der Block 54 in Fig. 6A.
  • Die Einheit 14 (IRCU) ist ein Monoprozessormodul, der mit dem Regionalbus 13 verbunden ist. Wie im einzelnen Fig. 4 zeigt, besitzt er eine ersten Block 27'' ähnlich dem Block 27 im Monoprozessormodul 17, wobei funktional gleichwertige Bauteile mit demselben Bezugszeichen und zusätzlich einem '' bezeichnet sind. Der einzige Unterschied zwischen den Blöcken 27'' und 27 besteht darin, daß der erstere keinen Serienleitungsblock 42 enthält. Die Einheit 14 besitzt auch einen Block 28'' ähnlich dem Block 28 im Monoprozessormodul 17, von dem er sich nur dadurch unterscheidet, daß er keine Schnittstellenkomponenten zum Familienbus 12 besitzt. Ebenso fehlen der Block 54 mit den entsprechenden mit dem lokalen Entscheidungsblock 48'' ausgetauschten Signalen und die Register 65 und 67 mit den zugehörigen Signalen für den Unterbrechungssteuerblock 41''. Der Block 57'', der als Schnittstelle zum Regionalbus 13 dient, ähnelt dem Block 57 in Fig. 6B, und der lokale RAM- Speicher 63'', der mit dem lokalen Bus 51'' verbunden ist, besitzt nur den durch die Region adressierbaren Teil. Die Einheit 14 besitzt weiter einen Block 91 zur Aktivierung des Verkehrs mit der Leitung 15. Im einzelnen kann der private Bus 32'' über Schaltblöcke 92 und 92' an einen Adreßbus 93 bzw. einen Datenbus 94 angeschlossen werden, von denen der erstgenannte an einen TTL-Differentialwandlerblock 95 zur Übertragung an die Leitungen 15 und der zweite an die Leitungen 15 über einen TTL-Differentialwandlerblock 96 angeschlossen ist, der in Serienverbindung mit einen Pipeline-Block 97 steht. Über Busleitungen 93 bzw. 94 sind ein Ausgangsdaten-RAM-Pufferblock 98 (OB) und ein Eingangsdaten-RAM-Pufferblock 99 (IB) angeschlossen. Die Speicherblöcke 98 und 99 können vorzugsweise 8000 Zellen mit je 32 Bits und 32000 Erweiterungszellen besitzen. Die Busleitungen 93 und 94 sind an logische Adressenblöcke 101 (OBC) bzw. 102 (IBC) angeschlossen, die Signale CKOBC bzw. CKIBC von einem logischen Übergabe- und Steuerblock 103 (HSCL) empfangen, der einen Logik zur Steuerung des Dialogs sowohl nach außen als auch mit dem Mikroprozessor 31'' im Block 27'' enthält.
  • Dieser Kontrollblock 103 ist nämlich an zwei Register 104 (ICSR) und 105 (OCSR) angeschlossen, die mit dem privaten Bus 32'' in Verbindung stehen. Der logische Block 103 ist weiter an die region-internen Leitungen 15 über einen Konverterblock 95' ähnlich dem Block 95 für die Signalaussendung und über einen Konverterblock 96' ähnlich dem Block 96 für den Signalempfang angeschlossen. Der Bus 93 ist weiter an einen Block 107 zur Erzeugung von Paritätssignalen 108, die zur Aussendung an den Bus 93 geliefert werden, während der Bus 94 an einen Paritätsüberprüfungsblock 109 angeschlossen ist, dessen Ausgangsverbindung 110 sowohl direkt zum Unterbrechungssteuerblock 41'' als auch zum logischen Dialogsteuerblock 103 führt, der seinerseits eine Verbindung 111 zum Unterbrechungssteuerblock 41'' besitzt. Der lokale Bus 51'' ist auch an die Busleitungen 93 und 94 über Schaltblöcke 113 und 113' angeschlossen.
  • Wie Fig. 1 zeigt, ist die Überwachungsregion 10' an einen externen Rechner 16 über eine Einheit 14 (IRCU) angeschlossen, die ihrerseits an eine TTL-Differentialsignalkonvertereinheit 115 (TDC) angeschlossen ist. Letztere ist mit dem Rechner 16 über einen oder zwei parallel miteinander verbundene Schnittstellenmoduln 116 angeschlossen. Dieses Moduln 116 können genormte DMA-Schnittstellen sein, z. B. DR11-W im Falle einer VAX11/750-Verbindung zum externen Rechner 16.
  • Die verschiedenen Busleitungen der Regionen 13 und Familien 12 besitzen grob gesehen gleiche Kennzeichen: Sie unterstützen Meister-, Sklaven- und Meister-/Sklaven-Moduln und übertragen fünf Gruppen von Signalen, nämlich Adressen- und Statussignale, Datensignale, Steuersignale, Fehlersignale und Entscheidungssignale. Sie sind zur Übertragung von 32-Bit- Daten mit einer Geschwindigkeit von über 10 Megabytes je Sekunde im Paketmodus vorgesehen. Mit der Kapazität von 32 Bits auf dem Bus können 32-Bits-Prozessoren 31, 31' und 31'' verwendet werden. Verwendet man jedoch 16-Bit-Prozessoren, dann hat das erfindungsgemäße System Eigenschaften, die im einzelnen weiter unten erläutert werden, um diese Bus-Kapazität zur Beschleunigung des Datentransfers auszunutzen. Außerdem sind alle von den Busleitungen erreichbaren Speicher wortorganisiert mit 32 parallelen Bits je Wort. Das erfindungsgemäße Multiprozessorsystem enthält daher wie beschrieben eine Anzahl von Regionen 10, die über sehr schnelle parallele Verbindungen miteinander verbunden sind. Da der Verkehr zwischen den Regionen auf einem Nachrichtenaustausch beruht, kann das erfindungsgemäße Multiprozessorsystem auf dieser höheren Ebene als eine Netzwerk von Regionen definiert werden, dessen Geometrie gemäß der besten Anpassung an eine gegebene Anwendung definiert werden kann. Außerdem nützt das ganze System Programme und Peripheriegeräte von handelsüblichen Maschinen aus, indem die Überwachungsregion 10' an den externen Rechner 16 angeschlossen wird. Jede Region 10 besteht deshalb aus einer Anzahl von Familien 11 und teilt sich einen gemeinsamen Speicheradressenbereich und einen gemeinsamen Bus 13. Genauer betrachtet (Fig. 11a) kann ein gemeinsamer Regionaladreßbereich von 7 Megabytes in Unterbereiche aufgeteilt werden, die Speicherblöcken oder Prozessormoduln zugeordnet sind, die an diesen Regionalbus 13 angeschlossen sind. Diese Prozessoreinheiten haben Zugriff zu reziproken Speicherunterbereichen über den Regionalbus 13, aber verwenden diesen Regionalbus nicht, um Zugang zu ihrem eigenen Unterbereich zu bekommen, und zwar wegen der lokalen Busleitung 51 (Fig. 2).
  • Die Struktur jeder Familie 11 ist der Region 10 sehr ähnlich. Eine Familie 11 besteht aus einer Gruppe von Prozessormoduln, die sich einen gemeinsamen Speicheradreßbereich und einen gemeinsamen Bus 12 teilen. Wie im Fall der Region 10 ist ein Familienspeicherbereich (Fig. 11a) von 8 Megabytes in lokale (aber nicht private) Unterbereiche für die verschiedenen Prozessormoduln aufgeteilt, die zu reziproken Speicherbereichen über den Familienbus 12 und zu ihrem lokalen Speicher über den internen lokalen Bus 51' Zugang haben. Jede Region 10 hat Zugang zu einem gemeinsamen Adressenbereich von 16 Megabytes, der wie in Fig. 11a gezeigt aufgeteilt ist, während der Eingangs- und Ausgangsadressenbereich 64 Kilobytes beträgt und wie in Fig. 11b gezeigt aufgeteilt ist.
  • Wie bereits erwähnt, arbeitet das Multiprozessorsystem gemäß der vorliegenden Erfindung mit fünf hierarchischen Ebenen (drei Hauptebenen und zwei Unterebenen), die ineinandergreifen, beginnend von der elementaren Prozessoreinheit 31, 31' oder 31'' bis hinauf zu dem System, das aus Multiprozessornetzen, d. h. Regionen 10 besteht. Diese hierarchischen Ebenen, die davon abhängen, wie weit gemeinsame Ressourcen benutzt werden können (Speicher und Eingänge/Ausgänge, die unmittelbaren Zugriff von allen an den gleichen Bus angeschlossenen Moduln erfordern) sind folgende: Privat-, Lokal-, Familien-, Regional- und Regionalnetzwerkebene. Eine genauere Untersuchung der ersten vier Ebenen zeigt:
  • a) Die private hierarchische Ebene ist die innerste Ebene auf dem Systemprozessor. Sie besteht typisch aus einen unabhängigen Prozessor 31, 31' oder 31'', einem privaten Speicher 34, 34', 34'', der ausschließlich diesem Prozessor 31, 31' oder 31'' gewidmet ist, und eine Gruppe von privaten Eingangs-/Ausgangsressourcen 37, 37', 37''.
  • b) Die lokale hierarchische Ebene ermöglicht jedem Prozessor 31, 31', 31'' des Systems (ob es nun einige wenige oder einige tausend sind) Zugang zu seinem eigenen lokalen Speicher 63, 63', 63'' (physisch auf demselben Modul, der den Prozessor enthält) und zu einer Gruppe von lokalen Ressourcen mit verschiedenen Registern. Im Multiprozessormodul 18 gibt es n private Umfelder, die durch Blöcke 27' angedeutet sind und auf der lokalen Ebene verkehren, wie dies durch Block 28' definiert ist.
  • c) Die hierarchische Familienebene besteht aus einer Gruppe von Prozessor-, Eingangs-/Ausgangs- und Speichermoduln, die sich einen gemeinsamen Speicherbereich von 8 Megabytes teilen und über den Familienbus 12 miteinander in Verbindung stehen. Die Prozessormoduln 17 und 18 greifen je auf den lokalen Speicher 63 und 63' in den anderen Prozessormoduln des Systems sowie auf gemeinsame Ressourcen zu, wie z. B. den Großraumspeicherblock 22 und den Eingangs-/Ausgangsblock 23.
  • d) Die hierarchische Regionalebene besteht aus einer Gruppe von Familien 11, die sich einen Speicherbereich von 7 Megabytes (anders als im Familienspeicherbereich) teilen. Wie im Fall der hierarchischen Familienebene kann der Speicherbereich in Unterbereiche unterteilt werden, die Prozessormoduln zugewiesen werden können und in diesem Fall auch auf den lokalen Speicher 63, 63'' in den anderen Einheiten über den Regionalbus 13 zugreifen, aber diesen Bus nicht benutzen, um sich Zugang zu dem eigenen lokalen Speicher zu verschaffen.
  • Diese vier hierarchischen Ebenen bilden gemeinsam die Multiprozessorsektion des Systems gemäß der Erfindung, das deshalb durch den direkten Zugang von zusammenwirkenden Prozessormoduln zu einem gegebenen physischen Adressenbereich gekennzeichnet ist. Diese Sektion bildet ihrerseits ein extrem wirkungsvolles System, das in der Lage ist in Echtzeit eine Kombination aus z. B. zweiunddreißig Familien 11 zu überwachen, wobei jede Familie 11 aus einhundertfünfundzwanzig Prozessoren 31 und 31' besteht. Die Gesamtrechenleistung gemessen Millionen Instruktionen pro Sekunde (MIPS) für jede Region 10 beträgt zwischen viertausend und achttausend (abhängig von der Anwendung und dem Maß der Verwendung von algorithmischen Beschleunigungsvorrichtungen, wie z. B. Koprozessoren 33). Eine solche Rechenleistung läßt das erfindungsgemäße System in einem fortgeschrittenen Anwendungsbereich rangieren. Die gesamte Rechenleistung des regionalen Netzwerksystems kann dann zwischen vierzigtausend und achtzigtausend MIPS betragen, was deutlich alles übersteigt, was bisher bekannt war. Um eine transparente, intelligente und völlig unabhängige Operation von über Netzwerk verbundenen Regionen 10 zu erreichen und um die gewünschten Datenflüsse zu bewältigen, beruht das erfindungsgemäße System auf speziellen Hardwareeigenschaften, die durch angepaßte Softwareverfahren unterstützt werden. Der Betrieb der Moduln und Blöcke im vorliegenden System wird nun im einzelnen beschrieben:
  • Wie bereits erwähnt, sind die ersten vier hierarchischen Ebenen durch den direkten Zugriff zu einem physischen Adressenbereich von den verschiedenen Prozessoreinheiten des System gekennzeichnet. Dieser Bereich besteht aus zwei Abteilen, einem vom 16 Megabytes der für den Speicher reserviert ist (Fig. 11a), und ein zweites von 64 Kilobytes, das für Eingabe-/Ausgabegeräte reserviert ist (Fig. 11b). Beide sind in drei Hauptzonen unterteilt:
  • Eine private Zone ist einem einzigen Prozessor 31, 31', 31'' gewidmet.
  • Eine Familienzone kombiniert die lokalen Ressourcen der einer Familie zugewiesenen Prozessoren.
  • Eine Regionalzone kombiniert die lokalen Ressourcen der einer Zone zugewiesenen Prozessoren.
  • Die private hierarchische Ebene ist die innerste Ebene der Prozessormoduln des Systems. Sie ist völlig unabhängig bezüglich der anderen und allein dem Prozessor in dem physischen Modul gewidmet, der private Ressourcen unabhängig vom Status weiter außen liegender Ebenen benutzen kann. Diese Ressourcen sind so, daß sie einen hohen Grad von Wirksamkeit und effektives Zusammenwirken mit den anderen Ebenen gewährleisten. Wie bereits erwähnt ist der Monoprozessormodul 17 (P1) sowohl mit dem Familienbus 12 als auch mit dem Regionalbus 13 verbunden. Für jede Familie 11 ist nur ein einziger Monoprozessormodul 17 (P1) vorgesehen, der private Speicherzonen 34 und Eingangs-/Ausgangszonen 37 (I/O) besitzt, zu welchen nur der Prozessor 31 im Modul 17 Zugang hat, sowie eine lokale Zone im Block 28, zu der auch die Prozessoren 31, 31' und 31'' in anderen Moduln 18 auf dem Familienbus 12 Zugang haben oder Moduln 17 oder 14 auf dem Regionalbus 13. Der Prozessor 31 im Modul 17 (P1) kann deshalb auf lokale Speicher 63 oder 63'' (und die örtliche I/O-Zone) der anderen Moduln auf dem Regionalbus 13 sowie auf lokale Speicher 63' (und die lokale I/O-Zone) von familienresidenten Multiprozessormoduln 18 zugreifen.
  • Der Modul 17 (P1) (wie die Moduln 18 (PN) und 14 (IR- CU)) ist daher ein Meister-Sklaven-Modul, d. h. er ist in der Lage, Adressen, Steuerungen und Daten auszusenden (wenn der Prozessor 31 auf einen internen oder externen Speicher oder eine I/O-Zone zugreifen soll) sowie Adressen, Steuerungen und Daten zu empfangen (wenn ein anderer Modul auf die lokale Zone von P1 zugreifen soll).
  • Das private Kontrollregister 38 ist ein 8-Bit-Register, das wie in Fig. 9a gezeigt strukturiert ist und es dem Prozessor 31 ermöglicht, eine Anzahl von speziellen privaten hierarchischen Funktionen wahrzunehmen, beispielsweise Testzyklen (TSC) durchzuführen und nicht maskierbare Unterbrechungen zu ermöglichen (ENMI). Andere vom Register 38 gesteuerte Funktionen betreffen die Mitteilung des Betriebsstatus des Moduls (ONLN) und von Modulfehlern (FLTF) an höhere Ebenen sowie die "Meister-Klar"-Steuerung auf der Familienebene (MCLF). Ein System kann auch für einen Datenaustausch hoher Wirksamkeit zwischen dem lokalen Speicher 63 im Modul 17 (P1) und dem des betroffenen Sklavenmoduls (DW) aktiviert werden, wie weiter unten im einzelnen erläutert wird. Schließlich sorgen zwei Bits (STOPF und STOPR) zur Aufrechterhaltung einer brauchbaren Ansprechzeit auf Unterbrechungswünsche zwischen Familien- und Regionalprozessoren, indem nur ein Prozessor jeweils die ausschließliche Herrschaft über den Familienbus 12 bzw. den Regionalbus 13 während einer Anzahl von Zyklen gemäß einem Merkmal der vorliegenden Erfindung, das weiter unten im einzelnen erläutert wird, ausüben kann. Das private Statusregister 39 ist ein 8-Bit-Register, das wie in Fig. 9b gezeigt strukturiert ist, und eine Anzahl von Fahnen (ENMI, DW), die vom Kontrollregister 38 gesetzt werden, und andere Fehleranzeiger lesen kann. Die Fahnen RAVL bzw. FAVL geben an, daß der Regionalbus 19 bzw. der Familienbus 12 verfügbar ist, was gilt, wenn mindestens ein Modul auf dem Bus seine Verfügbarkeit durch Einholen der ERF-Fahne und Aufziehen der ONLN-Fahne anzeigt. Die ERF-Fahne weist auf einen Betriebsfehler hin und zwingt den Prozessor 31, wenn sie aufgezogen ist, ausschließlich auf der privaten Ebene zu arbeiten, so daß der fehlerhafte Modul vom Rest des Systems abgetrennt wird. Dann werden Unterbrechungssignale (FFRL und RFLR) an alle Moduln der Familien- und Regionalebene ausgesandt. Die HOTST-Fahne gibt an, daß das System nach einem Ausfall wieder gestartet wird und verhindert, wenn sie gesetzt ist, den Zugang zum privaten Speicher 34 oder dem lokalen Speicher 63. Die SLVE-Fahne bezeichnet einen Dialogfehler zwischen Meister und Sklave, der von logischen Kreisen im Sklavenmodul nach einer unmaskierbaren Unterbrechung im Meistermodul angezeigt wurde. Die TOUT- Fahne gibt den Ablauf einer Zeitdauer an, der von dem einen nicht existierenden Sklaven adressierenden Prozessor veranlaßt wurde. Dies führt gegebenenfalls zu einer nicht maskierbaren Unterbrechung im Prozessor.
  • Der Unterbrechungssteuerblock 41 erlaubt dem Prozessor 31, eine Anzahl von Unterbrechungsleitungen zu steuern, indem eine geeignete Priorität zugewiesen wird. Unterbrechungen können in drei Gruppen unterteilt werden, nämlich von der privaten Ebene, von der Familienebene (über die Verbindungen 70 und 71) oder von der Regionalebene (über Verbindungen 74 und 75). Der Zeitgeberblock 40 enthält eine Anzahl von Zeitgebern zur Erzeugung der Übertragungsrate auf der Serienleitung 42 und zur Erzeugung von Unterbrechungssignalen auf der privaten Ebene sowie zu Steuerung von bestimmten Nachrichtenverkehrssituationen zwischen den Moduln, wie dies weiter unten im einzelnen beschrieben wird.
  • Der Globaladressen-Dekodierblock 47, der vom Prozessor 31 gesteuert wird, erzeugt unmittelbar auf dem privaten Bus 32 die Auswahlsteuerungen bezüglich der privaten Speicherzone 34 und der I/O-Zone 37. Er erzeugt auch einen Zugriffswunsch zum lokalen Speicher 63 und zu den I/O-Blöcken auf dem Modul selbst, sowie zum Speicher und den I/O-Blöcken in anderen Moduln der Familienleitung und der Regionalleitung an die P1 angeschlossen ist. Diese Wünsche PL, PF, PR werden geprüft und bedient durch den lokalen Entscheidungsblock 48.
  • Die private Ebene sorgt also für die Interaktion mit höheren Ebenen über den globalen Dekodierblock 47 und den Unterbrechungssteuerblock 41, um mit anderen Blöcken dieser Ebenen Daten auszutauschen und/oder Unterbrechungen auszusenden oder zu empfangen.
  • Die lokale hierarchische Ebene gibt jedem Prozessor 31, 31' und 31'' im System Zugang zu seinem eigenen lokalen Speicher 63, 63', 63'' und zu einer Gruppe von lokalen I/O-Ressourcen, die im Block 28, 28', 28'' enthalten und physisch in demselben Modul wie der Prozessor liegen, oder zum lokalen Speicher und zu lokalen I/O-Ressourcen jedes der anderen Prozessoren einer höheren Ebene (Familien- oder Regionalebene), die mit demselben Bus verbunden sind. Die lokale hierarchische Ebene ist unabhängig von den höheren Ebenen (bei einer einzigen physischen Modulebene), während zugleich eine wirksame Zusammenarbeit mit höheren Ebenen über deren gewidmete Hardwareressourcen gegeben ist. Die lokale Ebene wird nun genauer unter erneuter Bezugnahme auf die Realisierung im Modul 17 (P1) (Fig. 2) beschrieben. Gleiches gilt auch für die Moduln 18 und 14, unter Berücksichtigung von naheliegenden Anpassungen für die jeweils fehlenden Teile zum Zugriff zum Regionalbus 13 und zum Familienbus 12.
  • Aus dem Speicher im Modul 17 (P1) ist der lokale Speicher 63 der für den Prozessor 31, den Familienbus 12 und den Regionalbus 13 zugängliche Teil und bildet so eine von diesen Bauteilen gemeinsam benutzte Ressource.
  • Für den Datenaustausch zwischen lokalen Speicher 63, 63', 63'' auf verschiedenen Moduln (wie im einzelnen weiter unten erläutert wird), erfolgt der Datentransfer parallel mit 32 Bits, wobei der Speicherzugriff sowohl mit 32 Bits als auch mit 16-Bit-Paketen möglich ist.
  • Der lokale Entscheidungsblock 48 besteht aus einer Statusmaschine, die den Zugangswunsch zum lokalen Bus 51 durch die drei Bauteile (Prozessor 31, Regionalbus 13 und Familienbus 12) überprüft.
  • Um einen toten Punkt zu vermeiden, wird von dem verwendeten Algorithmus Zugriffswünschen von den beiden Busleitungen eine höhere Priorität gewährt. Jeder Zugriffswunsch von einem der drei Bauteile kann zu einer ausschließlichen Steuerung des lokalen Busses 51 während einer Anzahl von aufeinanderfolgenden Zyklen führen. Fig. 7 zeigt ein Flußdiagramm der Statusmaschine.
  • Bei Durchführung eines Zyklus wird der Entscheidungsblock 48 vom Block 125 in einer Warteposition gehalten. Bei Eintreffen eines Signals betreffend eines Zugriffswunsches erfolgt ein Übergang von Block 125 zum Block 126, der festlegt, ob es sich um das RL-Signal auf der Verbindung 55 handelt (regionaler Zugriffswunsch). Bei einer positiven Antwort erfolgt ein Übergang von Block 126 zu Block 127, der über die Verbindung 56 den unmittelbaren Zugriff des Regionalbusses 13 über die Schnittstelle 57 auf den lokalen Bus 51 steuert. Dann erfolgt ein Übergang von Block 127 zum Block 126', der dem Block 126 ähnelt und den Block 127 aktiv erhält, wenn der Zugriffswunsch RL immer noch vorliegt, und ansonsten erfolgt ein Übergang auf den Warteblock 125. Bei einer negativen Antwort im Block 126 erfolgt jedoch ein Übergang auf Block 128, der bestimmt, ob der Zugriffswunsch von dem FL-Signal auf der Verbindung 52 kommt (Familienzugriffswunsch). Bei einer positiven Antwort folgt der Übergang vom Block 128 auf Block 129, der über die Verbindung 53 den direkten Zugang der Familienbusleitung 12 über die Schnittstelle 54 auf den lokalen Bus 51 steuert. Dann erfolgt der Übergang von Block 129 auf Block 128', der dem Block 128 ähnelt und den Block 129 in aktivem Zustand hält, wenn das Zugriffswunschsignal FL immer noch vorliegt, und ansonsten den Übergang zum Warteblock 125 bewirkt. Bei einer negativen Antwort im Block 128 erfolgt jedoch ein Übergang auf Block 131, der überprüft, ob der Prozessor 31 Zugriff zur Region wünscht (PR-Signal). Bei einer positiven Antwort erfolgt ein Übergang von Block 131 auf Block 132, der über die Verbindung 49 und die Schnittstelle 50 den direkten Zugang des Prozessors 31 zum lokalen Bus 51 kontrolliert und dann einen Übergang zum Block 126'' (ähnlich dem Block 126) durchführt, der bestimmt, ob ein prioritärer Zugriffswunsch vom Regionalbus 13 aus existiert. Bei einer positiven Antwort erfolgt ein Übergang von Block 126'' zu Block 127, um diese Prioritätsverbindung herzustellen (und um die Schnittstelle 50 zu trennen), während bei einer negativen Antwort ein Übergang von Block 126'' auf Block 134 erfolgt, der über die Verbindung 80 und die Schnittstelle 57 den direkten Zugang des Prozessors 31 zum Regionalbus 13 kontrolliert. Dann erfolgt ein Übergang von Block 134 zum Block 131', der dem Block 131 ähnelt und den Block 134 aktiviert erhält, wenn das Signal PR aufrechterhalten wird, und ansonsten zum Warteblock 125 zurückführt. Bei einer negativen Antwort im Block 131 erfolgt jedoch ein Übergang auf Block 136, der bestimmt, ob die Anfrage für einen Familienzugriff durch den Prozessor 31 (PF-Signal) bestimmt ist. Im positiven Fall erfolgt ein Übergang von Block 136 auf Block 132', der dem Block 132 ähnelt und den direkten Zugriff des Prozessors 31 zum lokalen Bus 51 kontrolliert, worauf ein Übergang auf Block 128'' (ähnlich dem Block 128) erfolgt, der bestimmt, ob ein prioritärer Zugriffswunsch vom Familienbus existiert. Im positiven Fall erfolgt ein Übergang von Block 128'' auf den Block 129, um die Prioritätsverbindung herzustellen (und die Schnittstelle 50 abzutrennen), während im negativen Fall ein Übergang von Block 128'' auf Block 137 erfolgt, der über die Verbindung 62 und die Schnittstelle 54 den direkten Zugang des Prozessors 31 zum Familienbus 12 kontrolliert. Dann erfolgt ein Übergang von Block 137 auf Block 136' (ähnlich dem Block 136), der den Block 137 aktiviert erhält, wenn das Signal PF andauert und ansonsten einen Übergang zum Warteblock 125 vollzieht. Bei einer negativen Antwort im Block 136 erfolgt jedoch ein Übergang auf Block 138, der bestimmt, ob der Zugriffswunsch den Zugriff des Prozessors 31 zum lokalen Bus 51 betrifft (Signal PL). Im positiven Fall erfolgt ein Übergang von Block 138 auf den Block 132'' (ähnlich dem Block 132), der diesen Direktzugriff steuert, und dann erfolgt ein Übergang auf Block 138' (ähnlich Block 138), der den Block 132'' aktiviert hält, wenn das Signal PL immer noch vorliegt und ansonsten einen Übergang zum Warteblock 125 vollzieht. Falls der Modul 18 beispielsweise drei private Blöcke 27' (Fig. 3) enthält, dann werden Signale 49'&sub1;, 49'&sub2; oder 49'&sub3; für Anfragen PL&sub1; oder PF&sub1;, PL&sub2; oder PF&sub2;, PL&sub3; oder PF&sub3; ausgesandt. Das lokale Statusregister 64 ist ein 16-Bit-Register, das wie in Fig. 9c gezeigt strukturiert ist und vom lokalen Bus 51 I/O- Bereich ausgelesen werden kann. Es enthält Informationen betreffend die Art des Moduls und den Status von einer Anzahl von Betriebsstatusfahnen (Fehler, Leitungen ein/aus) im Modul selbst. Die Funktionen der Fahnen ERF, ONLN und FLTF sind dieselben wie im privaten Steuerregister 38 und im privaten Statusregister 39. Die Fahne TYPE identifiziert die Art des Moduls, während die Fahne LREG den Prozessor 31 das Erkennen seines eigenen Statusregisters 64 bezüglich der der anderen Moduln erlaubt. Das Familiensteuerregister 65 ist ein 16-Bit- Leseregister, das an den I/O-Bereich auf dem lokalen Bus 51 angeschlossen ist und wie in Fig. 9d gezeigt strukturiert ist, um Unterbrechungen von anderen Prozessoren in der Familie an den Prozessor 31 senden zu können. Es gibt zwei Arten solcher Unterbrechungen:
  • - vektorbezogene Unterbrechungen (INTFIFO) auf der Verbindung 71,
  • - nicht vektorbezogene Unterbrechungen (INTPR0, INTPR1, INTPR2) auf der Verbindung 70.
  • Die Unterbrechungsart wird durch die Bits F0, F1 und F2 angegeben. Vektorbezogene Unterbrechungen verwenden Bits V0, V1, V2 und V3, um den Vektor zuzuordnen. Die Vektoren werden nacheinander im FIFO-Block 72 eingetragen, von dem sie nacheinander vom Prozessor 31 abgerufen werden. Das Regionalsteuerregister 66 ist von der Funktion her dem Familienregister 65 gleich und kann von Regionalprozessoren erreicht werden. Das erfindungsgemäße System sieht Rundspruch-Transfers vor, d. h. Transfers die von einem Prozessor gesteuert werden, der Daten gleichzeitig aus seinem eigenen lokalen Speicher an die einer Anzahl von empfangenden Prozessoren überträgt.
  • Die empfangenden Prozessoren sind in Gruppen zusammengefaßt, und jeder Prozessor kann bis zum acht Gruppen gleichzeitig angehören.
  • Eine Rundspruchübertragung erfolgt dadurch, daß der sendende Prozessor einen von acht Speicherbereichen adressiert, die für derartige Transfers reserviert sind. Diese Bereiche haben alle die Größe von 64 Kilobytes (Fig. 11a) und liegen im höchsten Adressenbereich, des Familien- und Regionalraums. Jede Gruppe ist ein Bit (CLO-7) im Rundspruchregister zugeordnet, das somit 8 Bits enthält und wie in Fig. 9e strukturiert ist. Die Zuordnung der N-ten Gruppe hängt also vom logischen Wert ab, den das N-te Bit im Rundspruchregister zeigt.
  • Es ist auch möglich, mehrere Steuerregister im Rundspruchverfahren zu beschreiben, um Unterbrechungen gleichzeitig an eine Anzahl von Prozessoren zu senden und so beispielsweise den gleichzeitigen Beginn einer Anzahl von zusammenwirkenden Prozessen zu starten.
  • Der Modul 17 (P1) besitzt ein Rundspruchregister 68 auf der Regionalebene und ein Rundspruchregister 67 auf der Familienebene. Wie bereits in Fig. 6A gezeigt, besteht der Block 54, der die Schnittstelle zum Familienbus 12 bildet, aus fest verdrahteten Schaltungen, die einen Modul (z. B. 17 (PI)) den Zugang zum lokalen Speicher und zum I/O-Bereich der anderen an den Familienbus 12 angeschlossenen Moduln zu steuern erlaubt, wobei diese Moduln auch Zugang zum lokalen Speicher und zum I/O-Bereich im Modul P1 (Familienbereich) bekommen können. Die Familienschnittstelle 54 trägt fünf Gruppen von Signalen (Adressen- und Statussignale, Datensignale, Steuersignale, Fehlersignale und Entscheidungssignale). Die Entscheidung zwischen Moduln erfolgt unter Verwendung der bekannten Schnappschußtechnik, die weiter unten im einzelnen erläutert wird. Wie bereits in Fig. 6B gezeigt, ähnelt der Block 57, der die Schnittstelle zum Regionalbus 13 bildet, funktionell dem Familienblock 54.
  • Die Zusammenarbeit zwischen der lokalen und höheren Ebenen erfolgt deshalb hauptsächlich über
  • - die Familienbusschnittstelle 54 oder die Regionalbusschnittstelle 57,
  • - die Rundspruchregister 67 oder 68,
  • - die Statusregister 64,
  • - die Steuerregister 65 und 66 und zugehörige Unterbrechungsstrukturen.
  • Die Schnittstellen 54 und 57 erlauben Moduln, die an höhere Ebenen angeschlossen sind, auf die lokale Ebene zuzugreifen und umgekehrt. Die Rundspruchregister 67 und 68 bilden die Gruppen und liefern gleichzeitig Unterbrechungen an Prozessoren, die Gruppen zugeordnet sind.
  • Statusregister 64 informieren höhere Ebenen über die Kennzeichen und den Status des Moduls.
  • Steuerregister 65 und 66 ermöglichen den Austausch von Unterbrechungen zwischen Prozessoren der gleichen Ebene.
  • Wie bereits erwähnt, bildet die hierarchische Familienebene die Ebene des Systems mit der intensiven Datenverarbeitung. Hier kooperieren die leistungsfähigsten Rechenelemente des Systems und I/O-Moduln 23 zum Verkehr von und zu der Anwendung.
  • Die Zusammenarbeit zwischen Familienprozessoren erfolgt über den gemeinsamen Familienbus 12.
  • Eine wirksame Kooperation zwischen den Prozessoren auf einer Ebene und zwischen dieser und niedriger (lokaler) oder höherer Ebene (regionaler Ebene und Regionalnetzwerk) läßt sich am besten anhand der Adressenstruktur (Fig. 11a und 11b) erläutern, die der Familie einen Speicherbereich von 8 Mb und einen I/O-Bereich von 16 Kilobytes zuweist. Diesen Bereichen sind alle lokalen Ressourcen jedes Moduls in einer gegebenen Familie zugeteilt.
  • Die bereits beschriebenen Modulblöcke bilden die Mittel und das Umfeld, die ein Zusammenwirken mit der Familienebene über den lokalen Bus 52 erlauben. Insbesondere ergibt der globale Dekoder 47 (und 47') einen Zugriff durch jeden Meistermodul auf dem Familienbus zu seinem eigenen lokalen Speicher und I/O-Bereich sowie zu den lokalen Speichern und I/O-Bereichen aller anderen Moduln auf demselben Bus 12.
  • Der lokale Entscheidungsblock 48 (und 48') empfängt alle Zugriffswünsche auf lokale Ressourcen einschließlich den von der Familie kommenden Wunsch und macht diese Ressourcen in einer Abfolge verfügbar, die vom inneren Status jedes Moduls abhängt.
  • Der lokale Speicher (63 und 63') stellt das physische Kommunikationselement zwischen zwei Ebenen dar, nämlich der lokalen und der Familienebene. Das Familiensteuerregister 65 (und 65') wird zur Unterstützung der ankommenden Familienunterbrechungsstruktur verwendet.
  • Das Familienrundspruchregister 67 (und 67') ordnet einen Speicherbereich einer von acht möglichen Rundspruchgruppen zu.
  • Das lokale Statusregister 64 (und 64') liefert Informationen betreffend den Status eines einzelnen Moduls bezüglich seiner Familie.
  • Die Familienbusschnittstelle 54 (und 54') liefert auf der lokalen Ebenen jedes Moduls Zugriffswünsche von Meistermoduln auf den Familienbus 12.
  • Wie bereits in Verbindung mit der Familienebene dargestellt wurde, besteht eine Region aus einer Gruppe von Moduln, die sich einen gemeinsamen Adressenbereich und einen gemeinsamen Bus teilen. Auch in diesem Fall sind die Moduln, was ihre Datenverarbeitung angeht, weitgehend unabhängig, während sie zugleich eine höchst wirksame Zusammenarbeit mit anderen Moduln in derselben Region vorsehen.
  • Bei einer Kooperation zwischen verschiedenen Ebenen werden die obigen Charakteristiken beibehalten, indem die gleichen bestimmten Funktionen verwendet werden, die auf der Familienebene in jedem physischen Modul innerhalb der Region verwendet werden. Diese Funktionen bilden Interaktionsmittel und Umfelder (Globaldekoder 47 (und 47''), lokaler Speicher 63 (und 63''), regionales Steuerregister 66 (und 66''), Rundspruchregister 68 (und 68''), lokales Statusregister 64 (und 64''), lokaler Entscheidungsblock 48 (und 48'') und regionale Busschnittstelle 57 (und 57'')).
  • Die lokalen Funktionen der verschiedenen Regionalmoduln werden über den Regionalbus 13 zugänglich. Insbesondere wird die Kooperation zwischen der Familien- und Regionalebene durch Moduln 17 (P1) und 22 (HCSM) unterstützt. Der Modul P1 erreicht sowohl den Adressenbereich seiner eigenen Familie (ein P1 je Familie) als auch den regionalen Adressenbereich an den eine Anzahl von Familien (üblicherweise z. B. 32) angeschlossen werden können. P1 bedient sich der beiden Busleitungen großer Kapazität 12 und 13 auf der Familien- und Regionalebene und aller bereits beschriebenen Hardware-Merkmale. Der Block 22 kann einen sehr leistungsstarken Austausch größerer Datenmengen zwischen den beiden Umfeldern (Familien- und Regionalebene) durchführen. Zusätzlich zu der großen Speicherkapazität hat er auch einen doppelten Anschluß, der an den Familienbus 12 sowie an den Regionalbus 13 angeschlossen ist, so daß es möglich ist, daß Daten aus einem Umfeld gleichzeitig im anderen verfügbar sind, mit dem großen Vorteil, daß die Daten nicht über den Systembus laufen müssen, wie im einzelnen weiter unten anhand von Fig. 5 erläutert wird. Der Speicherblock 22 (HCSM) besitzt eine Speicheranordnung 150 mit einem Abschnitt 151 für Steuerbits, die mit einem logischen Fehlererkennungs- und Korrekturblock 152 ausgetauscht werden. Das Lesen oder Schreiben von Daten im Speicher 150 erfolgt über Leitungen 153 (üblicherweise 32-Bit-Leitungen), die an zwei Schreibdatenregister 154 bzw. 155 angeschlossen sind, welche an den Familienbus 12 bzw. den Regionalbus 13 führen, und an zwei Lesedatenregister 156 und 157, die ebenfalls an den Familienbus 12 bzw. den Regionalbus 13 angeschlossen sind. Die mit dem Speicher 150 ausgetauschten Daten laufen auch über Leitungen 158 zum logischen Block 152, der weiter über eine Lese- und Schreibsteuerleitung 159 an die Leitung 153 angeschlossen ist und über eine Fehlersignalleitung 160 an einen Block 161, um über Anfragen zu entscheiden, um den doppelten Anschluß (Familie-Region) zu steuern und um die Steuersignale des Speichers 150 zeitlich einzuordnen. Der Block 161 liefert Adreßsignale 163 (RAS/CAS/ADRESS) an den Speicher 150.
  • Der Familienbus 12 ist angeschlossen
  • - an zwei Eingänge eines Multiplexers 166 über zwei Leitungen 164 und 165 die Adressenbits 16 bis 22 bzw. weitere 7 Bits liefern. Der Ausgang des Multiplexers 166 führt an einen RAM- Speicherblock 168 zum Eintragen der Familienadressen. Dieser Speicherblock 168 empfängt ein (Schreib-) Steuersignal 170 vom Familienbus 12, und sein Ausgang führt zu einer Familienbus-, Adressen- und Statusklinke 171;
  • - an die Klinke 171 über direkte Leitungen 173, die die Adressenbits 0 bis 15 liefern;
  • - an einen die Steuerung der Familienbusleitung 12 empfangenden Block 174, der ein Signal an die Klinke 171 liefert;
  • - an die Eingänge und Ausgänge eines Status- und Kontrollregisters 176 der Familienebene. Der Familienbus 12 empfängt ein Signal 177 von einem logischen Block 178 zur Bestätigung des Datenaustauschs und zur Information.
  • Der Regionalbus 13 ist auch in derselben Weise an funktional äquivalente Blöcke angeschlossen, die dieselben Bezugszeichen und zusätzlich einen Apostroph tragen.
  • Der Statusausgang der Klinke 171 geht an einen Block 180 zur Dekodierung des Status und zur Erzeugung einer Zyklusanfrage, wobei dieser Block an den Block 178 und an den Block 161 angeschlossen ist. Der Statusausgang der Klinke 171' ist in der gleichen Weise angeschlossen.
  • Die Adressenausgänge (Bits 0 bis 22) der Klinken 171 und 171' führen an die Eingänge eines Multiplexers 182, der vom Block 161 gesteuert wird und dessen Ausgang unmittelbar (nur über einen Konjunktions- oder Disjunktionsblock 183) oder über eine Pipeline 184 zum Adresseneingang des Entscheidungsblocks 161 führen, der auch die logischen Blöcke 178 und 178' steuert.
  • Beispielsweise beträgt die maximale Kapazität des Speicherblocks 32 8 Megabyte, aufgeteilt in 128 Segmente von je 64 Kilobytes. Dieser Speicher 22 kann sowohl vom Familienbus 12 als auch vom Regionalbus 13 erreicht werden. Da die Speicherkapazität größer als der für jeden Bus verfügbare Adressenbereich ist, erlaubt die Erfindung einen Eintragungsmechanismus, der es beiden Busleitungen erlaubt, die physische Grenze von 8 Megabytes zu überschreiten.
  • Der Speicher ist mit Wortlängen von 32 Bits (doppelte Wortlänge) organisiert und erlaubt Zugang beim Lesen und Schreiben in Form von 32 Bits (Doppelwörter), 16 Bits (Wörter), und 8 Bits (ein Byte).
  • Die beiden Speicherzugangsanschlüsse für die Familie und die Region besitzen zwei identische unabhängige Eintragungssysteme. Die Logik dieser Systeme führt zu einer Unterteilung der gesamten 8 Megabytes in 128 Segmente von je 64 Kilobytes, wobei jedes dieser Segmente an jeden Punkt innerhalb des physischen Adressenbereichs (innerhalb der Grenzen von 64kb) geschoben werden kann. Eine physische Adresse wird einem gegebenen Segment zugeordnet, indem die Segmentnummer in das Eintragsregister der relativen Adresse geschrieben wird. Die Eintragsregister sind in RAM-Speicherblöcke 168 und 168' von 128 Wörtern zusammengefaßt. In normalen Lese- und Schreibzyklen der Speicheranordnung 150 setzt sich die Adresse vom Familien- und Regionalbus aus zwei Teilen wie folgt zusammen:
  • - Die Bits 0 bis 15 werden direkt zur Speicheranordnung 150 über die Verbindung 173 oder 173' übertragen, die direkt zur Klinke 171 bzw. 171' führt;
  • - die Bits 16 bis 22 werden verwendet, um aus dem Eintragungs-RAM-Speicher 168 oder 168' die Segmentnummer mit 7 Bits zu entnehmen, die der Adresse zugewiesen ist. Diese 7 Bits sind die höchstwertigen Bits in der Adresse der Speicheranordnung 150. Verändert man diese 7 Bits im Eintragungs-RAM-Speicher 168 oder 168' (über Leitungen 165 oder 165'), dann kann dieselbe Adresse vom Familienbus oder Regionalbus verwendet werden, um Zugang zu verschiedenen Segmenten zu erhalten und somit zu verschiedenen Bereichen der Speicheranordnung 150. Das Adressenbit 23 wird auf dem Regionalbus 13 auf O gesetzt und auf dem Familienbus auf 1. Dieses Bit wird durch die Eintragslogik nicht verwendet.
  • Das Eintragsregister 168 oder 168' enthält weiter:
  • - ein Bit zur Definition eines Schreib/Lese- oder Nur-Lese- Segments;
  • - ein Bit zur Bestimmung, ob ein HCSM-Speichersegment an dieser besonderen Adresse existiert. Beispielsweise werden die den 128 Kilobytes auf dem Familienbus 12 entsprechenden Adressen offensichtlich den HCSM-Speichersegmenten zugewiesen, indem diese Adressen dem lokalen Speicher 63 auf dem Modul 18 (P1 - Fig. 11 a) zugewiesen werden;
  • - ein Paritätsüberprüfungsbit, das unmittelbar auf dem Modul erzeugt und gesteuert wird.
  • Der Eintragsmechanismus gemäß der vorliegenden Erfindung führt zur Installierung einer Anzahl von Speichern 22 (HCSM) auf demselben Regional- oder Familienbus sowie zu einer ausschließlichen Erreichbarkeit der Speicher durch die Region oder die Familien. Außerdem führt eine Segmentverschiebung nicht zu einem Datentransfer sondern nur zu einer Veränderung eines Eintragsregisters im Block 168 oder 168'.
  • Das Kontrollprogramm für den Speicher 22 initialisiert und verändert die Speicherblöcke 168 und 168' für die Familien- und Regionaleintragung, indem es Zugang zu einem spezifischen, durch Schalter auswählbaren Abschnitt I/O-Bereichs auf der Familien- und Regionalebene erhält.
  • Steuerregister 176 und 176' sind mit einem Bit versehen, um Zugang zum Speicher 22 zu verhindern, bis das Steuerprogramm die Blöcke 168 und 168' initialisiert hat.
  • Da dieser Speicherblock 22 (HCSM) mit den Busleitungen des erfindungsgemäßen Systems Schnittstellen bildet, muß er die besonderen Merkmale dieser Busleitungen berücksichtigen, wie z. B. die Erzeugung von Pipelineadressen, den Datentransfer mit 8, 16, 32 Bits und die Möglichkeit von diskontinuierlichen oder gesperrten Adressen. Dem muß die Tatsache hinzugefügt werden, daß der Speicher 22 zwei Anschlüsse besitzt, was bedeutet, daß Vorkehrungen getroffen werden müssen um die Konfliktpriorität von völlig asynchron ankommenden Anfragen vom Regionalbus 13 und vom Familienbus 12 zu steuern.
  • Das Problem der vorübergehenden Adressenspeicherung wird gelöst, in dem die Adressen in Klinken 171 und 171' gespeichert werden. Die Dekodierung des Statussignals (z. B. Doppelwort) liefert dem dynamischen Speichersteuerblock 161 Informationen betreffend die Art des gewünschten Zyklus. Derselbe Block 161 bewirkt auch die Synchronisation der Anfragen und die Entscheidung und sichert einen Transfer von gesperrten Daten. Um die Zugangszeit beim Schreibzyklus zu verbessern, wurden zwei Register 154 und 155 (je eines für jeden Bus) zur Aufnahme der Eingangsdaten vorgesehen, so daß der Buszyklus in einer kürzestmöglichen Zeit beendet wird. Zufallslesezyklen sind benachteiligt aufgrund der Zugriffszeit des dynamischen Speichers 150 zu der die Verzögerung hinzugerechnet werden muß, die durch den logischen Fehlererkennungs- und Korrekturblock 152 verursacht wird, sowie die Zeit für die Synchronisierung der Anfrage.
  • Der Betrieb wird wesentlich verbessert im Fall eines sequentiellen und gesperrten Zugangs, wobei die Adresse des im nächsten Zyklus verlangten Speicherplatzes vorausgesehen werden kann und im Pipelinebetrieb Daten vorab entnommen werden können, so daß sichergestellt wird, daß sie unmittelbar verfügbar sind wenn sie vom Meistermodul angefordert werden. In diesem Fall ist daher der Bus nur für eine Mindestzeit besetzt.
  • Solche Betriebseigenschaften sind auf alle Arten von Leseoperationen anwendbar, nämlich Doppelwort-, Wort- und Byteleseoperationen.
  • Die aus dem Speicher 150 entnommenen Daten werden in jedem Fall in zwei separate Register 156 und 157 (je eines für jeden Bus) aufgenommen, um eine mögliche Interferenz zwischen von verschiedenen Busleitungen aktivierten Zyklen zu vermeiden.
  • Die Speicheranordnung 150 ist ein 32-Bit-Speicher, der die Transferkapazität des erfindungsgemäßen Systems voll ausnutzen kann.
  • Den 32-Datenbits werden 7 Fehlerüberprüfungsbits zugefügt. Bei Verwendung von Chips mit 256 Kilobytes ergibt dies insgesamt 8 Speicherbänke von je 1 Megabyte je aus insgesamt 312 Speicherchips.
  • Die Organisation in Form von 32 parallelen Bits ergibt auch eine gewisse Ersparnis in der Anzahl von Fehlerüberprüfungschips ohne Nachteil beim Lesen vom 16-Bit- oder 8-Bit- Wörtern. Da die Speichermatrix 150 aus dynamischen Komponenten gebildet wird, die für Softwarefehler empfindlicher sind, sieht die Logik des Moduls 22 (HCSM) eine 1-Bit-Fehler-Korrektur vor und eine Fehlererkennung über 2 oder mehr Bits. Der CSM-Modul kann auch in 6, 4, 2 Megabytes ausgebildet sein mit oder ohne Fehlererkennung und Fehlerkorrektur über den Block 152.
  • Die höchste hierarchische Ebene des Systems gemäß der Erfindung ist die des Regionalnetzwerks. Diese ist durch die Tatsache gekennzeichnet, daß die verschiedenen Regionen 10, aus denen das System besteht (acht in dem Ausführungsbeispiel), nicht unmittelbar ihren eigenen Adressenbereich erreichen können, sondern in Form von Nachrichten über Verbindungseinheiten 14 miteinander verkehren, die über Leitungen 15 miteinander verbunden sind. Aufgrund von Hardwaremerkmalen, die weiter unten erläutert werden, gewährleisten diese Einheiten 14 die Transparenz des gegenseitigen Zugriffs der verschiedenen Multiprozessorregionen im Netzwerk, die Transferintelligenz, den Empfang bzw. die Verarbeitung der jeweiligen Nachrichten, den völlig unabhängigen Betrieb jeder Region und schließlich den Datendurchsatz, der erforderlich ist, um einen wirksamen Transfer von umfangreichen schnellen Datennachrichten zu sichern. Wie bereits erwähnt, ist diese Einheit 14 ein Monoprozessormodul, der an den Regionalbus 13 angeschlossen ist, wobei der Verkehr über Einheiten 14 mit Hilfe von Nachrichten erfolgt, die die folgenden Funktionen erlauben:
  • 1. Verkehr zwischen Prozessen in beiden Umfeldern,
  • 2. Verwendung von Peripheriegeräten eines äußeren Rechners oder in einer anderen Region.
  • Die Verbindung der Einheiten 14 beruht elektrisch auf einem Differentialprotokoll, z. B. RS-422, ist vorzugsweise parallel organisiert mit 32 Bits und erlaubt Übertragungsgeschwindigkeiten bis zu 13,5 Megabytes/s und einen physischen Abstand zwischen miteinander verbundenen Einheiten 14 von mehr als 100 Meter. Eine Paritätsüberprüfung beim Empfang (1 Bit je 16 Bitwort) und eine Nachrichtenüberprüfung sichert die Zuverlässigkeit der Verbindung.
  • Die Steuerung des Adressenbereichs in der Einheit 14 gleicht der eines P1-Moduls, was die Region angeht. Die Figuren 11c und 11d bezüglich des Speichers und des I/O-Bereichs entsprechen nämlich den Fig. 11a und 11b nach einer Halbierung auf 8 Megabytes bzw. 32 Kilobytes. Ebenfalls identisch wie im Modul 17 (P1) sind das Steuerregister 38'', das private Statusregister 39'', die Regionalregister 66'' und 64'' und die Kontrollfahnen. Die Unterbrechungsstruktur ist ebenso im wesentlichen dieselbe, wie im Modul 17 (P1), ausgenommen daß im vorliegenden Fall die Familienunterbrechungen entfallen und Unterbrechungen bezüglich des Verkehrs zwischen zwei Regionen (oder einem Gast und einer Region) vorgesehen sind. Signale, die von der Einheit 14 ausgesandt oder empfangen wurden, werden TTL-differentialkonvertiert (oder umgekehrt) unter Verwendung von Differentialempfängern 96 und 96' und Differentialsendern 95 und 95', die je Chip 5 Bits umwandeln.
  • Vor der TTL/Differentialumwandlung werden jedem übertragenen 32-Bit-Datenwort zwei Paritätsbits durch den Block 107 zugeordnet (je eines für 16 Bits). Nach der Umwandlung des ankommenden Datenwort erfolgt eine Paritätsüberprüfung im Block 109. Wenn während des Empfangs ein Fehler entdeckt wird, werden Fehlerunterbrechungen an beide Seiten der Leitung über den Anschluß 110 und den Block 103 gesandt. Das Register 97 hinter dem Differentialempfänger 96 hat zwei Aufgaben, nämlich die Paritätsüberprüfung eines stabilen Datenworts durchzuführen und die Bestätigungsantwort im Vergleich zum direkten Pufferschreiben (Pipeline) vorwegzunehmen.
  • Die Puffer 98 und 99 werden vom Prozessor 31'' als zwei private I/O-Anschlüsse behandelt und sind deshalb für den Regionalbus 13 nicht zugänglich. Der Zugang zu den Puffern 98 und 99 ist streng sequentiell, da diese Puffer über zwei 16- Bit-Zeiger (102(IBC) und 101 (OBC) adressiert werden, wobei der Block 103 (HSCL) über das Signal CKIBC jedesmal inkrementiert oder über das Signal CKOBC dekrementiert wird, wenn Zugang zu dem betreffenden Anschluß (IB/OB) erfolgt. Der Prozessor 31'' kann die Werte der Zeiger 101 und 102 lesen und zurücksetzen und den Zeiger 101 (OBC) auf jeden Wert einstellen. Die Stelle O im Puffer 99 (IB) wird extern mit einem TCW gefüllt (im englischen Transmission Control Word - Übertragungssteuerwort), das nützliche Übertragungsinformationen enthält, wie weiter unten beschrieben wird. Danach wird der Puffer automatisch auf die Stelle n inkrementiert, die das n-te Datenwort enthält, und danach wird der Puffer vom Prozessor in derselben Reihenfolge geleert (indem zuerst der Zeiger 102 (IBC) zurückgesetzt wird). Der Puffer 98 (OB) wird vom Prozessor 31'' beginnend mit der vorher zurückgesetzten Stelle O gefüllt, in die das n-te Datenwort eingeschrieben wird. Dann wird die Stelle 1 mit dem (n-1)ten Datenwort gefüllt usw. bis zur Stelle n-1, in die das erste Datenwort des Puffers eingeschrieben wird. Diese Operation erfolgt durch Entnahme von Daten aus dem lokalen Speicher 63'' mit Hilfe einer Umkehradressierung, die vom Prozessor 31'' vorgegeben wird. Das TCW wird dann an die Stelle n des Puffers 98 (OB) eingeschrieben. Der Inhalt des Puffers 98 wird an die angeschlossene Einheit 14 übertragen, indem der Zeiger 101 (OBC) bei jedem Zugriff rückwärtsgezählt wird, so daß die Daten in der richtigen Reihenfolge vom Block 99 (IB) in der angeschlossenen Einheit 14 empfangen werden.
  • Die Logik des "Handschlag"-Blocks 103 entlastet den Prozessor 31'' von der Kontrolle der Sende- und Empfangsvorgänge zwischen den Regionen. Diese Logik steuert die Handschlag-Signale mit äußeren Leitungen 15 und dem Prozessor 31'', so daß gewährleistet ist:
  • 1) eine sehr kurze Reaktionszeit,
  • 2) eine möglichst geringe Interferenz mit der Tätigkeit des Prozessors 31'', der nur aufgerufen ist, die Startkontrolle durchzuführen und das Endsignal und ggf. Fehlersignale zu empfangen.
  • Die Logik des Blocks 103 ist in zwei völlig unabhängige Abschnitte unterteilt, einen Eingangs- und einen Ausgangsabschnitt, die eine komplette Duplex-Implementierung gewährleisten, ohne daß die Verbindung durch den Prozessor 31'' gesteuert werden müßte, was ansonsten sehr viel komplexer wäre.
  • Die beiden Register 104 (ICSR) und 105 (OCSR), die an den logischen Block 103 angeschlossen sind, gewähren dem Prozessor 31'' Zugang (im privaten I/O-Adressenbereich) und sind folgendermaßen aufgebaut:
  • Block 104 (ICSR) (Fig. 9f) Bit Name Typ Funktion "Eingang frei": setzt die Eingangssektion zurück und wird auch durch das vom Prozessor 31'' gesteuerte Signal "Master Clear" rückgesetzt. setze IBC zurück: bei dessen Aktivierung wird ein Impuls zum Rückstellen des Zeigers 102 (IBC) erzeugt. IB voll: Gibt an, daß der Puffer 99 (IB) voll ist; veranlaßt den Prozessor 31'' (über eine Unterbrechung gleichen Namens, die automatisch am Ende der Übertragung erzeugt wird, ob dies nun korrekt ist oder nicht), den Dateninhalt des Puffers 99 (IB) in den lokalen Speicher 63'' zu übertragen, und verhindert weiteren Zugriff zum Puffer 99 (IB), solange dieses Bit gesetzt ist. Es wird durch das Signal MCL (Master Clear) des Prozessors 31'' und durch IC zurückgesetzt. Eingangsparitätsfehler: Gibt einen Paritätsfehler während der Übertragung an und wird durch das MCL+IC-Signal zurückgesetzt. Rückstellfreigabe: Ist dieses Bit gesetzt, dann läßt es das von der angeschlossenen Einheit 14 empfangene Rückstellsignal an den Regionalbus aussenden. Es wird auf 1 durch das MCL-Signal gesetzt. Region ist nicht verfügbar.
  • Die Bits 6 und 7 werden nicht verwendet und als "0" ausgelesen.
  • Block 105 (OCSR) (Fig. 9g) Bit Name Typ Funktion Ausgang rücksetzen: Setzt die Ausgangssektion zurück und wird selbst durch das MCL-Signal zurückgesetzt. Löschen von OBC: Wenn dieses Bit gesetzt ist, dann wird ein Impuls zum Rückstellen des Zeigers 101 (OBC) erzeugt. Wird vom Prozessor 31'' beim Füllen des Puffers 98 (OB) aktiviert, um den Inhalt des Puffers 98 (OB) extern zu transferieren. Das Bit wird automatisch rückgestellt, wenn der Transfer eine Unterbrechung an den Prozessor 38'' erzeugt hat, und wird vom Signal MCL+OC zurückgesetzt. Paritätsfehler am Ausgang: Meldet einen Paritätsfehler während der Übertragung und wird vom Signal MCL+OC zurückgesetzt. Rückstellung: Wird an die angeschlossene Einheit 14 gesandt und, sofern AB-REST = 1, auch an den Regionalbus. Das Bit wird durch das Signal MCL+OC zurückgesetzt.
  • Die Bits 5, 6 und 7 sind unbenutzt und werden als 0 gelesen.
  • Eine genauere Beschreibung des Protokolls für den Verkehr zwischen zwei Regionen 10 im erfindungsgemäßen Multiprozessorsystem wird nun beschrieben.
  • Eine Nachricht von irgendeinem Prozessor (im Modul 17 (P1), 18 (PN) oder irgendeinem anderen Modul des Systems) kann an einen Prozessor in einer anderen Region unter Verwendung verschiedener Techniken übertragen werden, die vom Betriebssystem zur Verfügung gestellt werden und in jedem Fall höchstens sieben Phasen aufweisen:
  • 1) Wenn die Nachricht (Puffer) sich in einem privaten Speicher (34, 34', 34'') befindet, ist es offensichtlich Aufgabe des Prozessors selbst (31, 31', 31''), die Nachricht an einen lokalen Regionalspeicher (63, 63', 63'') zu transferieren, wenn er zugänglich ist, und ansonsten an einen lokalen Familienspeicher.
  • 2) Im Fall eines Quellprozessors 31' innerhalb der Familie überträgt der Familienmeistermodul 17 (P1) die Nachricht vom Familienspeicher 63' an den Regionalspeicher 63, zu dem die Einheit Zugang hat.
  • 3) Da der Puffer 98 sich im privaten Eingabe/Ausgabebereich (I/O, Fig. 11d) befindet, überträgt die Einheit 14 die Nachricht von dem Regionalspeicher 63 (oder 63'') an den Ausgangspuffer 98 (OB).
  • 4) Die Nachricht wird vom Puffer 98 an den Puffer 99 (IB) in der anderen an die Zielregion angeschlossenen Einheit 14 über Blöcke 103 (HSCL) in beiden Einheiten 14 übertragen.
  • 5) Da der Puffer 99 (IB) in ihrer privaten Eingabe/Ausgabeeinheit I/O liegt, überträgt die Zieleinheit 14 die Nachricht vom Puffer 99 (IB) an die Regionalzone.
  • 6) Im Fall eines Zielprozessors 31' innerhalb der Familie überträgt der Familienmeistermodul 17 (P1) die Nachricht von der Regional- an die Familienzone.
  • 7) Ist die Nachricht für eine private Zone bestimmt, dann ist es offensichtlich Aufgabe des Zielprozessors, die Nachricht von der Lokal-, Regional- oder der Familienzone zu übertragen.
  • Die Übertragungen 1 und 7 sind einfache "Move"-Befehle, die von dem alleinigen Prozessor 31, 31', 31'' gesteuert werden. Vor den Übertragungen 2, 3, 5 und 6, die vom Kommunikationsbetriebssystem gesteuert werden, wird der Familienmeistermodul 17 durch Einschreiben in seine Steuer- und Statusregister (66 und 64) informiert und erzeugt auf dem Modul 17 eine Unterbrechung "Datenaustauschwunsch" mit Parametern, die dem Modul 17 den Transfer durchzuführen gestatten.
  • Nun folgt eine genaue Untersuchung der Transferphasen 3, 4 und 5, die zwei Einheiten 14 (IRCU), die in zwei Regionen 10 des Systems residieren, betreffen.
  • 1) Es wird geprüft, ob der Puffer 98 (OB) auch wirklich leer ist (d. h. daß das START-Bit 2 im Register 105 (OCSR) den Wert 0 hat). Ist dies nicht der Fall, dann wird auf die relative Unterbrechung, die bei Beendigung der vorhergehenden Operation erzeugt wird, gewartet.
  • 2) Der Puffer 98 (OB) wird gefüllt, d. h. daß die Nachricht im umgekehrten Modus von dem Regionalspeicher 63 oder 63'' an einen privaten I/O-Anschluß transferiert wird und zu Beginn der Nachricht ein Übertragungssteuerwort (TCW) hinzugefügt wird, wobei ein 32-Bit-Steuerwort die Art der Übertragung angibt:
  • - höchstwertiges Bit ist 1: die Übertragung besteht nur aus dem TCW,
  • - das höchstwertige Bit ist 0: die Übertragung einer Nachricht, deren Länge, in Doppelwörtern ausgedrückt und ausschließlich des TCW, im TCW enthalten ist. Dies führt auch zu einer Fehlerkontrolle, indem dieser Wert mit dem Inhalt des Zeigers 102 (IBC) nach dem Empfang verglichen werden kann.
  • 3) Da es sich hier um eine Voll-Duplex-Punkt-zu-Punkt-Verbindung handelt, ergeben sich keine hierarchischen Probleme. Sendungen können in beliebiger Richtung zu beliebigem Zeitpunkt durch Aktivierung der START-Fahne erfolgen.
  • 4) Die Übertragung wird voll durch die Blöcke 103 (HSCL) in den beiden Einheiten 14 gesteuert, einschließlich des Wartens auf den Puffer 98 (IB) in der Zieleinheit 14, sofern dieser nicht bereits bei der vorhergehenden Übertragung geleert wurde. Beim Ende der Übertragung wird die START-Fahne vom übertragenden Block 103 (HSCL) zur Ruhe gesetzt, indem eine Unterbrechung an den Prozessor 31'' der Quelleinheit 14 gesendet wird. Der empfangende Block 103 (HSCL) setzt IBF durch Aussenden einer Unterbrechung an den Prozessor 31'' in der Zieleinheit 14.
  • 5) In der Software-Aktivier-Prozedur hat der Quellprozessor 31'' folgende Aufgaben:
  • 1) Überprüfung von OPTYE (Register 105 (OCSR)), d. h. Überprüfung, daß es sich um eine Unterbrechung "Ende der Übertragung" und nicht um einen Paritätsfehler handelt.
  • 2) Überprüfung, ob der Zustand des schaltungsmäßig rückwärtsgeschalteten OB-Zeigers 101 den Wert -1 angenommen hat; der Nulldurchgang des Zeigers 101 (OBC) zeigt nämlich das korrekte Ende der Übertragung an.
  • 3) Rückstellen des Zeigers 101 (OBC).
  • 6) In der Software-Aktivier-Prozedur bewirkt der Zielprozessor 31'':
  • 1) die Überprüfung von IPTYE (Register 104 (ICSR)), d. h. daß es sich um eine Unterbrechung "Ende der Übertragung" und nicht um einen Paritätsfehler handelt;
  • 2) das Rückwärtszählen und Absichern des Inhalts des Zeigers 102 (IBC), der die Zahl der empfangenen Doppelwörter (mit Ausnahme des TCW) angibt;
  • 3) die Rückstellung des Zeigers 102 (IBC),
  • 4) das Auslesen des Puffers 99 (IB). Da der Zeiger 102 (IBC) auf die Stelle 0 zeigt, ist der ausgelesene Wert der Wert von TCW. Falls das höchstwertige Bit des TCW O ist, dann hat der Zielprozessor 31'' folgende Aufgaben:
  • 1) Überprüfung, ob das TCW dem aus dem Zeiger 102 (IBC) abgesicherten Wert gleicht; ist dies nicht der Fall, dann bedeutet dies einen Übertragungsfehler;
  • 2) Entleeren des Puffers 99 (IB) und Übertragung des Inhalts an den Regionalspeicher 63'' (mit 16 oder 32 Bits) und ggf. auch Meldung an den regionalen Meistermodul 17 (P1);
  • 3) Rückstellung des Zeigers 102 (IBC) für weiteren Empfang; 4) Rückstellung von IBF (Register 104 (ICSR)) und Meldung an den Block 103 (HSCL) in der angeschlossenen Einheit 14, daß der Puffer 99 (IB) verfügbar ist.
  • Wenn dagegen das höchstwertige Bit im TCW den Wert 1 hat, dann hat der Zielprozessor 31'' folgende Aufgaben:
  • 1) Überprüfung, ob der vom Zeiger 102 (IBC) gesicherte Wert 0 ist; ist dies nicht der Fall, bedeutet dies einen Übertragungsfehler,
  • 2) Rückstellung des Zeigers 102 (IBC),
  • 3) Rückstellung von IBF.
  • Wie bereits anhand von Fig. 1 dargelegt wurde, erfordert der Verkehr zwischen der Region 10' und einem Host-Rechner 16 eine Verbindungseinheit 14 in der Region 10' und eine spezielle Hardware (Blöcke 115 und 116) im Rechner 16. Diese Hardware kann auch die normierten DMA-Kanäle verwenden, die vom Rechnerhersteller 16 geliefert werden, sofern der Durchsatz dieser Kanäle ausreicht für die Erfordernisse des Systems gemäß der vorliegenden Erfindung. In einer Pilotanlage besitzt diese Hardware einen digitalen DR11W-Modul 116 (Standard DMA, Halbduplex mit einem parallelen 16-Bit Eingang/Ausgang für den Benutzer) und einen TDC-Modul 115 (TTL/Differentialwandler) zur Durchführung folgender Aufgaben:
  • 1) Herstellung des Halbduplex- oder Vollduplexanschlusses der Region 10' an den externen Rechner 16 (mit einem oder mit zwei parallel angeschlossenen Moduln 16) zur Erhöhung des Standarddurchsatzes.
  • 2) Elektrische Signalumwandlung vom TTL-Typ (Modul 116) zum Differentialtyp (Einheit 14), um die Anschlußlänge zu erhöhen (von 10 auf über 100 m),
  • 3) Überwachung der Paritätskontrolle/-Erzeugung in beiden Richtungen.
  • 4) Anpassung der Handschlaglogik im Block 103 und die parallele Datenpräsentation (16 Bits im Modul 116, 32 Bits im Modul 14), um genormte Protokolle sowohl im Host-Rechner 16 als auch auf der Seite der Region 10' verwenden zu können.
  • Dies führt zu einer höchstmöglichen Transparenz für den Verwender ohne logische Unterschiede zwischen der Übertragung und dem Empfang zwischen zwei Regionen 10 oder zwischen dem Rechner 16 und der Region 10'.
  • Im Vergleich mit der Verbindung zwischen zwei Einheiten 14 besitzt die Verbindung zwischen einer Einheit 14 und dem Rechner 16 eine Anzahl von Unterschieden:
  • 1) Transfers erfolgen in Form von Paketen von 32 Bits, indem zuerst die 16-Bit-Daten vom externen Rechner 16 zusammengefaßt werden.
  • 2) Der Datenaustauschzyklus wird von 0,15 Mikrosekunden je Wort bei der Verbindung zwischen zwei Einheiten 14 auf 3,3 bis 6,3 Mikrosekunden bei der Verbindung mit der Einheit 14, dem Modul 115 und dem Modul 116 erhöht.
  • 3) Beim Anschluß des Rechners 16 erfordert ein Nachrichtentransfer mehrere Aufrufe von Operationsprogrammen anstatt nur von einem. Im Rechner 16 muß nämlich nach dem Aussenden des Befehls eine Empfangsunterbrechung empfangen werden, ehe das DMA gestartet werden kann. In der Einheit 14 werden, wie bereit erwähnt, die Wartezeit vor der Annahme und der Austausch vom Logikblock 103 hardwaregesteuert. Der Datendurchsatz auf dem Nachrichtenkanal zwischen der Region 10' und dem externen Rechner 16 ist so geringer als der zwischen zwei Regionen 10, wenn auch beide im Vergleich zum bekannten Stand der Technik deutlich verbessert sind.
  • Das Operationssystem der vorliegenden Erfindung kann von jedem Universalrechner gesteuert werden, der speziell für Echtzeitdienste entworfen wurde. Dies System kann durch weitere Schichten mit typischen Operationssystemdiensten überlagert sein. Die aufeinanderfolgenden Schichten verfolgen ein modulares Konzept und arbeiten nur aufgrund von Funktionen, die von niedrigeren Schichten geliefert wurden. Dies führt zu einer Auswahl der Intelligenzebene des Operationssystems im Prozessor durch Beschränkung der Schichtung auf die erforderliche Ebene.
  • Eine zu Demonstrationszwecken entwickelte Ausführungsform des erfindungsgemäßen Systems kann acht miteinander verbundenen Regionen 10 aufweisen, wobei jede Region 32 Familien 11, jede Familie 11 einen Modul 17 (P1) und 31 Moduln 18 (PN) und jeder Modul 18 (PN) drei Prozessoren 31' aufweist, was insgesamt 24064 Prozessoren ergibt.
  • Wie bereits erwähnt, ermöglicht das erfindungsgemäße System einen parallelen Datentransfer mit 32 Bits zwischen dem lokalen Speicher eines Moduls und dem lokalen Speicher von Moduln, die in äußeren Familien und/oder Regionen sitzen, um den Datendurchsatz zu erhöhen, indem das Wortformat (16 Bits der Prozessoren (31, 31', 31'') überschritten wird, die den Transfer unmittelbar betreiben.
  • Fig. 8 zeigt ein besonderes Beispiel, wie ein lokaler Speicher 63 realisiert werden kann. Der Adreßteil 351 (0 bis 23) der lokalen Busleitung 51 verkehrt über einen Adreßverschiebungsblock 250 mit einem lokalen Adressenbus 249 (0 bis 23), der seinerseits über den gesamten lokalen Bus 51 mit den Familien- und Regionalschnittstellen 54 und 57 (wie in den Fig. 6A und 6B gezeigt) sowie mit anderen Blöcken verbunden ist, wie weiter unten im einzelnen beschrieben wird. Dieser Block 250 wird von einem Signal 251 gesteuert, das auch an den Block 256 gelangt, wie weiter unten noch erläutert wird, das von der Doppelwortfahne DW im privaten Steuerregister 38 gesteuert ist und die Rekonstruktion der Adressen bei Doppelwortdatenaustauschvorgängen sicherstellt, wie weiter unten erläutert wird. Dieser Adressenbus 249 ist an einen Klinkenblock 253 angeschlossen, der von einem Strobe-Signal 254 (STLMA) gesteuert wird, das von einem logischen Schaltkreis im lokalen Entscheidungsblock 48 geliefert wird. Diese Klinke liefert die ersten beiden Adreßbits (0, 1) an einen logischen Zugangsblock 256 und weitere Bits (2 bis 14) an vier Byte große Speicherbänke 257, 258, 259, 256, die vertikal Bestandteil des lokalen RAM-Speichers 63 sind und in vier Gruppen von Leitungen (0 bis 7, 8 bis 15, 16 bis 23, 24 bis 31) auf dem Teil 261 der lokalen Busleitung 51 angeordnet sind. Dieser Teil 261 trägt die Datenleitungen und ist außer mit dem vollständigen lokalen Bus 51 und den Schnittstellen 54 und 57 mit dem Teil 262 des lokalen Busses 51 über eine Eingangsklinke 263 und eine Ausgangsklinke 264 verbunden. Dieser Teil 262 tauscht Daten im 16-Bit-Format mit dem Prozessor 31 aus. Die Speicherbänke 257, 258, 259 und 260 sind so organisiert, daß sie sowohl als 16-Bit- als auch als 32-Bit-Wortspeicher zugänglich sind, wie weiter unten genauer erläutert wird. Der Bus 261 ist als 32-Bit-Bus organisiert. Jede Speicherbank 257, 258, 259 und 260 ist horizontal in acht Gruppen von vier Chips aufgeteilt, wobei gemeinsame Auswahlsteuerungen (CS1, . . . CS8) für die gleiche Gruppe in den verschiedenen Bänken vorgesehen sind. Jede Gruppe besitzt daher ein 32-Bit-Format. Jeder Chip in jeder Gruppe bildet auch einen Teil einer der bereits erwähnten Speicherbänke mit vier Bytes. Der Block 256 empfängt Kontrolleitungen 266 vom Prozessor 31, die Bits 0 und 1 auf den Adreßleitungen vom Block 253 und die Bits 15, 16 und 23 auf Adreßleitungen 249. Er liefert, abhängig vom Status des Adressenbits 0 und 1, vier Schreibsteuerungen (WR1, . . . WR4) für jede Bank 257, 258, 259 und 260 sowie zwei Lesesteuerungen (OE1) für die Bänke 257 und 258 bzw. (OE2) für die Bänke 259 und 260. Außerdem liefert der Block 256 abhängig vom Status der Adressenbits 15, 16 und 23 Auswahlsteuerungen (CS1, . . . CS8) im Fall eines 256 kbyte-Speichers. Das Adressenbit 23 wird als der höchstwertige Selektor während der Dekodierung verwendet, um zu jeder Zeit Zugang zur erste Einheit im Speicher 63 im Fall eines Regionalzugangs und zur zweiten Einheit im Fall eines Familienzugangs zu ermöglichen. Diese Einheiten werden von Steuerungen (CS1, . . . CS8) ausgewählt. Schließlich liefert der Block 256 ein Freigabesignal 270 an ein Parkregister 271, das Bits 16 bis 31 auf den Datenbus 261 empfängt und diese Bits auf den Bus 261 wieder zurückführen kann, wie im einzelnen weiter unten erläutert wird. Das Parkregister 271 soll die physische Unfähigkeit des Prozessors 31 kompensieren, eine 32-Bit-Adressierung durchzuführen, wenn sein Format auf 16 Bits begrenzt ist. Außerdem ist ein Austauschblock 272 vorgesehen, um selbst normalen 16-Bit-Zugang zu ermöglichen, trotz der Speicherorganisation im 32-Bit-Format. Dieser Block 272 besitzt hierzu zwei Gruppen von Leitungen, 273, 274, um mit dem Bus 261 Daten der Bits 0 bis 15 bzw. 16 bis 31 auszutauschen.
  • Zugang zu einer gegebenen Adresse (Byte oder Wort) wird also zuerst durch den globalen Dekodierer 47 möglich, der die die Speicherstelle enthaltende Zone eingrenzt. Abhängig von den Adressenbits 0 und 1 bezeichnet der logische Zugangsblock 256 die Bank (Bytezugang) oder das Paar von Bänken (Wortzugang) oder wählt die ganze Gruppe von vier Bänken aus (Doppelwort-Zugang). Die verbleibenden Adreßleitungen definieren die Stelle innerhalb der ausgewählten Bänke.
  • Um den lokalen Speicher 63 auf 512 oder 1024 kbyte zu erweitern, werden die Bits 17 und 18 auf den Adreßleitungen 249 zur Adressierung verwendet. Im Fall eines 512-kbyte-Speichers berücksichtigt der Block 256 den Status der Bits 16, 17 und 23, und ein einziges Chip wird durch die Leitungen 2 bis 15 adressiert. Im Fall eines 1-Mbyte-Speichers verwendet der Block 256 die Bits 17, 18 und 23, und ein einziges Chip wird durch die Leitungen 2 bis 16 adressiert. Dies wird durch eine geeignete Personalisierung des Blocks 256 und die entsprechenden Verbindungen erreicht.
  • Wie bereits erwähnt, ist der lokale RAM-Speicher 63 im Modul 17 (P1) für den Prozessor 31 im Modul 17 (P1) und für Moduln auf den Familien- und Regionalbusleitungen zugänglich, an die der Modul 17 (P1) angeschlossen ist. In allen Fällen können Transfers von einzelnen Bytes und einzelnen Wörtern erfolgen.
  • Wenn der Zugang vom Prozessor 31, 31', 31'' in einem der Systemmoduln gesteuert wird, dann werden Daten und Adressen vom Prozessor selbst ausgetauscht bzw. erzeugt. Der Modul 17 (P1) enthält die Entscheidungsschaltung 48, die die Meisterrolle des internen Prozessors 31 auf dem lokalen Bus 51 bei vom Prozessor 31 überwachten Austauschvorgängen gewährleistet.
  • Der Block 256 erzeugt Lese- und Schreibsteuerungen (OE1, OE2, WR1, WR2, WR3, WR4) gemäß den vom Prozessor 31 ausgesandten Steuerungen.
  • Wie im weiteren genauer erläutert wird, gewährleistet die Vorrichtung 272, daß der Prozessor 31 voll vom lokalen RAM-Speicher 63 erreicht werden kann.
  • Bei einem von externen Moduln gesteuerten Zugriff gewährleistet wieder der lokale Entscheidungsblock 48 die externe Meisterrolle des Moduls 17 (P1) auf dem lokalen Bus 51 (diesmal während des Transfers als "Sklave"). Für den Austausch eines einzelnen Bytes oder eines einzelnen Worts bietet der externe Modul die Daten auf geeigneten Leitungen der lokalen Busleitung 261 gemäß den Adressenbits 0 und 1 an.
  • Der Block 256 erzeugt Lese- und Schreibsteuerungen (OE1, OE2, WR1, WR2, WR3, WR4) gemäß den von der Schnittstelle 54 oder 57 des betroffenen externen Familien- oder Regionalbusses 12 oder 13 erzeugten Steuerungen und gemäß den Adressenbits 0 und 1. Für Doppelwortaustauschvorgänge arrangiert (oder empfängt) der externe Meistermodul das Doppelwort zum Austausch auf den Datenleitungen des Familienbusses 12 oder Regionalbusses 13, die mit dem lokalen Datenbus 261 auf dem Sklavenmodul verkehren. Der Block 256 erzeugt alle Lese- oder Schreibsteuerungen gleichzeitig im Einklang mit den von der externen Busschnittstelle erzeugten Steuerungen.
  • Wie bereits erwähnt, kann der Prozessor gemäß einem Merkmal der vorliegenden Erfindung Doppelworttransfers zwischen den lokalen Speichern von regionalen oder Familienmoduln (einschließlich seines eigenen Speichers natürlich) durchführen, und zwar unter Verwendung einer speziellen Prozedur, die auf alle im Handel befindlichen Mikroprozessoren mit einem MOVS-Befehl (Speicher zu Speicher) angewendet werden. Im normalen Betriebsmodus sorgt diese Prozedur für den Transfer von n Wörtern von einer Startadreßtabelle (s, Quelle) zu einer Startadressentabelle (d, Ziel). In der Demonstrationsausführungsform, die einen 80286 Prozessor verwendet, erfolgt dies durch Ausführung eines sogenannten "MOVE STRING" Befehls, nachdem zuerst die folgenden Arbeitsregister im Prozessor initialisiert worden sind:
  • - DS:(SI) mit einem Deskriptor, der das die Startadresse in der Quelltabelle (Quelltabellenzeiger) enthaltende Speichersegment beschreibt,
  • - ES:(DI) mit einem Deskriptor, der das die Startadresse in der Zieltabelle enthaltende Speichersegment beschreibt (Zieltabellenzeiger). Wie weiter unten im einzelnen erläutert wird, muß im Fall eines Doppelworttransfers die Startadresse die Hälfte der tatsächlichen Startadresse sein.
  • - CX mit der halben Anzahl von auszutauschenden Wörtern.
  • Kurz gesagt, führt der Prozessor den MOVS-Befehl durch, indem er das Wort an der Quellstartadresse liest, dieses Wort an die Zielstartadresse schreibt, das als einen Austauschzähler verwendete Register CX rückwärtszählt und den Quelltabellenzeiger sowie den Zieltabellenzeiger um 2 weiterschaltet. Dann wiederholt der Befehl die Lese- und Schreiboperationen an den so gebildeten neuen Quell- und Zieladressen usw., bis der Austauschzähler zu Null geworden ist und angibt, daß die ganze Tabelle von n Wörtern transferiert worden ist.
  • Gemäß einem Merkmal der vorliegenden Erfindung erreicht man dasselbe Ergebnis mit der halben Anzahl von Transfers. Hierfür müßte zum Transfer von Doppelwörtern der Prozessor in der Lage sein, die Adressenzeiger um 4 (anstelle von 2) Einheiten nach jeder Lese-Schreiboperation weiterschalten. Da der Prozessor 80286 diese Möglichkeit jedoch nicht vorsieht, wird dies erreicht, indem der MOVS-Befehl auf Quell- und Zieladressen der Hälfte ihrer wirklichen Größe initialisiert wird, worauf diese Adressen im Block 250 rekonstruiert werden. Vor der Durchführung eines MOVS-Befehls für Doppelworte muß die DW-Fahne (Doppelwortfahne) im Register 38 aktiviert werden, um die Steuerung 251 zur Auswahl des Blocks 250 auszugeben. Dieser Block verschiebt die Adresse dann nach links (Multiplikation mit dem Faktor 2), um die Halbierung der realen Startadressen wiederzugewinnen. Hierbei schaltet der Prozessor 31 nach jedem Zugriff seine eigenen Zeiger um zwei Einheiten weiter, während die aktuellen Adressen, die an den lokalen Speicher 63 geliefert werden, um vier Einheiten weitergezählt werden.
  • Wenn der 16-Bit-Meisterprozessor eines Datentransfers von Speicher zu Speicher ein gegebenes Doppelwort liest, greift er natürlich nur auf eines der beiden Wörter in den Blöcken 257 und 258 zu, d. h. das geradzahlige Wort bezüglich der Datenleitungen 0 bis 15. Das ungeradzahlige Wort aus den 16-Bit-Blöcken 259 und 260 wird im Register 271 auf den Leitungen 16 bis 31 der lokalen Busleitung 261 gespeichert. Im Doppelwort-Lesezyklus werden also beide Steuerungen OE1, OE2 und die Steuerung 270 für das Schreibregister 271 erzeugt. Im folgenden Schreibzyklus wird das geradzahlige Wort vom Prozessor auf die Datenleitungen 261 von 0 bis 15 gesetzt, das ungeradzahlige Wort vom Register 271 auf die Datenleitungen 261 von 16 bis 31 und die vier Zielspeicher-Schreibsteuerungen (WR1, . . . WR4) werden gleichzeitig erzeugt.
  • Kurz zusammengefaßt besteht die Doppelwort-Transferprozedur, die in der beschriebenen Struktur (Fig. 8) verwendet wird, aus den folgenden Phasen:
  • - Initialisierung des Prozessorregisters CX (Austauschzähler) mit der Hälfte der Anzahl von Wörtern, die übertragen werden sollen,
  • - Initialisierung der Zeigerregister (DS:(SI), ES:(DI)) mit den halben Quell- und Zieladressen,
  • - Aktivierung der DW-Fahne im Register 38,
  • - Durchführung des MOVS-Befehls,
  • - Rückstellung der DW-Fahne bei Beendigung des MOVS-Befehls.
  • Ein Zugriff auf ein einzelnes Byte und ein einzelnes Wort im lokalen Speicher 63, der normalerweise in einem Prozessor 31 vom Typ 80286 vorgesehen ist, muß stets in Verbindung mit möglichen Doppelwortzugriffen gemäß einem Merkmal der vorliegenden Erfindung zugelassen sein. Der Datenbus 262 im 16-Bit-Format im Prozessor 31 verkehrt korrekt mit dem lokalen Datenbus 261 im 32-Bit-Format über den Austauschblock 272, der während eines Zugriffs des Prozessors 31 auf ein Byte oder ein Wort im Speicher 63 des Moduls 17 (und auch während eines Zugriffs von außen) die Datenleitungen 0 bis 15 an die Datenleitungen 16 bis 31 der lokalen Datenbusleitung 261 anschließt. Der Block 272 ist jedoch während Transfers von Doppelwörtern nicht aktiv.
  • Während des Schreibens von einzelnen Bytes liefert aufgrund des Blocks 272 der den Austausch überwachende Meister die Schreibdatenwerte in die folgenden Leitungen des lokalen Busses 261:
  • - Datenleitungen 0 bis 7, wenn die Adressenbits 0 und 1 beide den Wert 0 haben (geradzahliges Byte eines geradzahligen Worts). Der Block 256 erzeugt WR1 bezüglich der ersten RAM- Bank 257;
  • - Datenleitungen 8 bis 15, wenn das Bit 0 den Wert 1 und das Bit 1 den Wert 0 hat (ungeradzahliges Byte eines geradzahligen Worts). WR2 wird bezüglich der zweite RAM-Bank 258 erzeugt;
  • - Datenleitungen 16 bis 23, wenn das Bit 0 den Wert 0 und das Bit 1 den Wert 1 hat (geradzahliges Byte eines ungeradzahligen Worts). WR3 wird erzeugt bezüglich der dritten RAM-Bank 259 (Block 272 ist aktiviert);
  • - Datenleitungen 24 bis 31, wenn die Bits 0 und 1 beide den Wert 1 haben (ungeradzahliges Byte eines ungeradzahligen Worts). WR4 wird erzeugt bezüglich der vierten RAM-Bank 260 (Block 272 ist aktiviert).
  • Während des Schreibens eines einzelnen Worts liefert der Meister die Schreibdaten an:
  • - Datenleitungen 0 bis 15, wenn das Adressenbit 1 den Wert 0 hat (geradzahliges Wort). Der Block 256 erzeugt WR1 und WR2 bezüglich der ersten beiden RAM-Bänke 257 und 258;
  • - Datenleitungen 16 bis 31, wenn das Adressenbit 1 den Wert 1 hat (ungeradzahliges Wort). WR3 und WR4 werden erzeugt bezüglich der beiden anderen RAM-Bänke 259 und 260 (Block 272 ist aktiviert).
  • Während Leseoperationen:
  • - liefern die Bänke 257 und 258 die Daten auf Datenleitungen 261 von 0 bis 15, wenn das Adreßbit 1 den Wert 0 hat. Der Block 256 aktiviert die Dreizustandsausgänge OE1, und das ganze geradzahlige Wort ist für den Datenaustauschmeister verfügbar. Im Fall eines Zugriffs zu einem einzelnen Byte betrachtet der Prozessor des Meisters das durch das Adressenbit 0 ausgewählte Byte (auf den Leitungen 0 bis 7, wenn das Bit 0 den Wert 0 hat, und auf den Leitungen 8 bis 15, wenn das Bit 0 den Wert 1 hat).
  • - liefern die Bänke 259 und 260 die Daten auf Datenleitungen 261 von 16 bis 31, wenn das Adreßbit 1 den Wert 1 hat. In diesem Fall werden die Dreizustandsausgänge OE2 aktiviert und das ganze ungeradzahlige Wort ist für den Datenaustauschmeister verfügbar und der Block 272 wird aktiviert. Im Fall eines Zugriffs zu einem einzelnen Byte betrachtet der Prozessor des Meisters das durch das Adressenbit 0 wie oben beschrieben ausgewählte Byte.
  • Bei Austauschvorgängen betreffend einzelne Bytes oder einzelne Wörter bewirkt die Vorrichtung 250 eine perfekte Anpassung an die vom Austauschmeister auf dem lokalen Adressenbus 51 gelieferten Adressen, und der Zugang zu den Adressen der Speicherstellen kann erfolgen.
  • Wenn der Datenaustausch vom Prozessor 31 des Moduls überwacht wird, dann existiert ein 1 : 1 Abgleich zwischen den Adressenleitungen 0 bis 23 auf dem privaten Bus 32, den Leitungen 0 bis 23 auf dem Bus 51, den Leitungen 0 bis 23 auf dem Bus 249 und den Leitungen 0 bis 16, die vom Block 253 geliefert werden. Ein Austausch von Bytes und Wörtern muß mit zurückgestellter DW-Fahne erfolgen, um den Block 250 in den transparenten Modus zu bringen.
  • Ein Merkmal der vorliegenden Erfindung sieht die Kombination zweier Techniken vor, nämlich die sogenannte "token passing"- und "Schnappschuß"-Technik, um ein neues Merkmal zu bilden, wodurch es möglich ist, sowohl die Unterbrechungswartezeit als auch die Datenaustauschzeit einer gegebenen Datenmenge in einem Multiprozessorumfeld vorauszusagen.
  • "Token passing" wird in einer Schleifenarchitektur verwendet und besteht darin, zwischen den verschiedenen Einheiten des Systems ein Token-Signal zu übermitteln, das dem Halter eine gegebene Aktion durchzuführen gestattet. Die Schnappschuß-Entscheidungsmethode zur Zuteilung der Systembusressource an einen von n Agenten (Meister), die diese Ressource gemeinsam benutzen, besteht darin, einen Schnappschuß der Anmelder zu machen, die diese Busressource bei jedem Zugriffswunsch irgendeines Agenten anfordern. Innerhalb dieses Schnappschusses wird der Bus in einer gänseblümchenförmigen Sequenz allen anfragenden Agenten zugeteilt.
  • Ein weiterer Schnappschuß wird erst genommen, wenn der Bus allen Agenten im vorhergehenden Schnappschuß zugeteilt worden war.
  • Die obigen Merkmale werden im Multiprozessorsystem gemäß der Erfindung verwendet, um nur einem der an den Bus angeschlossenen Meister die Genehmigung zu erteilen, innerhalb eines gegebenen Schnappschusses den Transfer großer Datenmengen zu verlangen, wobei diese Transfers im gesperrten Bündelmodus erfolgen (im englischen "locked burst"). Der gleiche Schnappschuß kann jedoch n einzelne, einen Zugriff verlangende Meister umfassen, wobei n die Gesamtzahl von Meistern auf dem gleichen Bus sein kann.
  • Indem also vorab für das gesamte System die Gesamtgröße von einzelnen im "locked-burst-Modus" zu übertragenden Nachrichten bestimmt wird (der Meister bleibt im Besitz der Busleitung, bis die geforderten Daten übertragen worden sind), kann eine recht genaue Abschätzung der möglichen Wartezeit zwischen einer Anfrage auf einen Zugriff auf den Bus und seiner Akzeptierung gemacht werden. Im ungünstigsten denkbaren Fall ist diese Wartezeit gleich t1+[(n-1)·t2]. Hierbei ist t1 die für einen Austausch im locked-burst-Modus erforderliche Zeit, die als ein Systemparameter definiert sein kann, t2 ist die für einen einzelnen Austausch erforderliche Zeit, [(n-1)·t2] ist eine vernachlässigbare Zeit im Vergleich zu t1. n ist die Gesamtzahl von Meistermoduln.
  • Die Möglichkeit, diese Zeit in einem Multiprozessorsystem vorherzusagen, ist von größter Bedeutung für die Abschätzung des Ausmaßes, in dem das System zur Lösung verschiedener Echtzeitprobleme eingesetzt werden kann.
  • Außerdem darf gemäß der vorliegenden Erfindung der auf Zugriff auf den Bus zur Durchführung eines locked-burst-Austausches wartende Meister an irgendwelchen anderen internen Prozessen arbeiten, während er auf die Akzeptierung des token-passing-Mechanismus wartet. Dies führt zu einem hohen Wirkungsgrad, insbesondere für die in Frage stehende Anwendung, und wird mit sehr geringen Kosten erkauft.
  • Eine detaillierte Beschreibung einer Ausführungsform dieses Merkmals wird nun gegeben. Die gleichen Strukturen werden für beide Systembusleitungen (Familien- und Regionalbus) verwendet. Die Familienbusstruktur ist in Fig. 10 gezeigt, die auf die einschlägigen Blöcke begrenzt ist und deren Beschreibung auch auf den Regionalbus anwendbar ist.
  • Die Moduln 17 und 18, die an den Familienbus 12 angeschlossen sind, sind gänseblümchenförmig angeordnet. Der Modul 17 (P1) ist der leitende Modul der Familie und hat in dieser Funktion folgende Eigenschaften:
  • - Er liegt im ersten Zeitschlitz des Familienbus 12;
  • - er sorgt für die Initialisierung der token-passing-Technik auf der Familienebene über eine spezifische Logik im logischen Kontrollblock 85 der Familienschnittstelle 54;
  • - er besitzt einen den Schnappschußkreis bildenden Block 299, wie er im einzelnen weiter unten erläutert wird und den logischen Block 82 über ein FACKI-Signal steuert.
  • Jeder Modul 17 und 18 enthält die für die Durchführung der token-passing-Technik erforderlichen Einheiten, zu denen ein logischer Steuerblock 85 oder 85' gehört, der mit einem Zeitgeber im Block 40 oder 40' verbunden ist. Jeder logische Block 85 oder 85' liefert ein Ausgangssignal FSTO, das über den Familienbus 12 (als Eingangssignal FSTI) an den logischen Block 85' des nächsten Moduls gesandt wird. Die Schleifenstruktur wird gebildet, indem der FSTO-Ausgang des letzten Moduls 18 an den FSTI-Eingang des ersten Moduls 17 angeschlossen wird.
  • Der Zeitgeber im Block 40 oder 40' erzeugt das Zeitintervall; der Modul 17 oder 18 kann nach Empfang des token Signal s die Durchführung eines locked-burst-Austauschs starten oder buchen. Der Prozessor 31 oder 31' kann direkten Zugang zum Lesen des Status des Zeitgebers 40 oder 40' bekommen.
  • Der logische Steuerblock 85 oder 85' hat die folgenden Aufgaben:
  • - Ein aktiver FSTI-Eingangsimpuls läßt den Zeitgeber 40 oder 40' starten und sendet ein Unterbrechungssignal an den Prozessor 31 oder 31', der das Zählen des Zeitgebers 40 oder 40' mit Hilfe des STOPF-Signals im privaten Steuerregister 38 oder 38' anhalten oder freigeben kann.
  • - Nach dem Zählende schaltet der logische Steuerblock 85 oder 85' den Zeitgeber 40 oder 40' aus und sendet einen FSTO-Impuls, um das token-Signal an den nächsten Modul überzuleiten.
  • - Über eine spezielle Logik im logischen Steuerblock 85 kann der Prozessor 31 im Modul 17 (P1) die token-passing-Funktion initialisieren.
  • Jeder logische Block 82 oder 82' kann ein FPREN-Signal (Familienbuchungssignal) an den Familienbus 12 liefern, das auch an den Block 299 im Modul 17 (P1) gesandt wird. Dieser Block 299 kann ein FFRZ-Sperrsignal aussenden, das ebenfalls über den Familienbus 12 an jeden Block 82 oder 82' in den Moduln 17 und 18 gesandt wird. Schließlich kann jeder logische Block 82 oder 82' ein FACKO-Ausgangssignal liefern, das als ein FACKI-Signal an den Block 82' im nächsten Modul gesandt wird.
  • FPREN ist ein Signal mit offenem Kollektor, das von jedem Modul im Familienbus 12 im Entscheidungssequenz-Schnappschuß geliefert wird. Der erste Übergang von hohem zu niedrigem Pegel im FPREN-Signal startet den Wartezyklus im Schnappschußkreis 299 des Moduls 17 (P1).
  • Das FFRZ-Signal wird vom Schnappschußkreis 299 im Modul 17 (P1) erzeugt und am Ende der Warteperiode aktiviert, während der Familienmoduln einen Zugriff zum Bus 12 buchen können, um weitere Buchungsvorgänge am Ende des Wartezyklus zu verhindern.
  • Die Entscheidungslogik in jedem Modul 82 oder 82' ermöglicht es, daß das FACKO-Bestätigungssignal an den nächsten Modul gesandt wird (FACKO geht auf den hohen Pegel über), sobald der Modul seinen Zugriff zum Bus beendet hat oder wenn kein Zugriffswunsch innerhalb der zugewiesenen Buchungszeit geäußert wurde.
  • Der Betrieb mit den Merkmalen gemäß der vorliegenden Erfindung wird nun genauer untersucht.
  • Um locked-burst-Austauschvorgänge durchzuführen, muß der Prozessor 31 im Modul 17 (P1) zuerst den Zeitgeber 40 auf einen gegebenen Wert einstellen (abhängig von weiter unten erläuterten Faktoren). Der stromaufwärts liegende Modul gibt das token-Signal an den Modul 17 (P1) weiter, indem er einen FSTI-Eingangsimpuls an den Block 85 im Modul P1 liefert, was, wie bereits beschrieben, folgende Konsequenzen hat:
  • - ein Unterbrechungssignal wird an den Prozessor 31 gesandt, um die Möglichkeit der Durchführung von locked-burst-Austauschvorgängen anzugeben;
  • - der Zeitgeber 40 wird freigegeben und beginnt von dem durch den Prozessor programmierten Wert aus zu zählen. Dieser Wert bestimmt das Zeitintervall, während dem P1 nach Empfang des Unterbrechungssignals entscheiden kann, ob locked-burst-Austauschvorgänge durchgeführt werden sollen oder nicht.
  • Während der Unterbrechungsprozedur blockiert der Prozessor 31 das Zählen im Zeitgeber 40, so daß das Erreichen des Zählendes und die Aussendung des FSTO-Signals an die nächsten Moduln verhindert wird. Vor dem Blockieren des Zählers liest der Prozessor jedoch den Status des Zeitgebers 40. Liegt der Zählwert über einem gegebenen Mindestschwellwert (um mehrdeutige Operationen zu vermeiden), dann sperrt der Prozessor 31 den Zeitgeber und beginnt mit der Durchführung der lockedburst-Zyklen, bei deren Beendigung der Prozessor 31 den Zeitgeber 40 wieder freigibt, so daß dieser seinen Zählzyklus vollenden kann. Nach Beendigung des Zählzyklus wird der Zeitgeber 40 ausgeschaltet und der token-Impuls gelangt an den nächsten Modul.
  • Der Zeitgeber 40 oder 40' in der token-passing-Struktur der Moduln auf dem Bus wird normalerweise auf einen niedrigen Wert eingestellt, und die token-Unterbrechung wird maskiert. Dies wird vom Prozessor im Modul nur dann geändert, wenn er die Absicht hat, von den locked-burst-Austauschcharakeristiken Gebrauch zumachen. Nur dann setzt der Prozessor 31 oder 31' den Zeitgeber 40 oder 40' auf einen Wert, der ihn gewöhnlich in die Lage versetzt, die token-Unterbrechung innerhalb des Zählvorgangs zu bedienen, worauf er die token- Unterbrechung aktiviert.
  • Wenn das token-Signal an einen Modul weitergereicht wird, der keine locked-burst-Austauschvorgänge durchzuführen beabsichtigt, dann ist die an den Prozessor 31 dieses Moduls gesendete Unterbrechung unwirksam (da sie maskiert ist) und der Zeitgeber 40 vollendet den programmierten Mindestzählzyklus, worauf das token-Signal schnell an den nächsten Modul weitergegeben wird.
  • Das System wird vom Modul 17 (P1) initialisiert, nachdem alle Moduln 18 auf dem Bus 12 den jeweiligen Zeitgeber 40' auf den Mindestwert programmiert haben und die token-passing- Unterbrechung maskiert haben. In diesem Punkt liefert der Prozessor 31 im Modul 17 über spezifische Logikkreise im logischen Block 85 den ersten Impuls an die token-passing-Struktur im Modul 17, der den Übergang des token-Signals auf den Bus 12 initialisiert.
  • Wie bereits erwähnt, besteht die Schnappschußtechnik darin, einen Schnappschuß der auf die Busressourcen reflektierenden Anmelder bei jedem von irgendeinem Agenten geäußerten Zugriffswunsch zu einem Bus zu machen. In diesem besonderen Fall liefert jedesmal, wenn ein Modul auf dem Familienbus 12 Zugang zum Bus verlangt (um Zugang zum Speicher oder dem I/O eines anderen Familienmoduls zu bekommen), der Block 82 oder 82' im Modul eine Anfrage an den Block 299 im Modul 17 (P1). Bei Empfang der ersten Anfrage startet dieser Block 299 einen Wartezyklus, innerhalb dessen andere Familienmoduln 18 auch eine ähnlich Anfrage auslösen können. Bei Beendigung dieses Zyklus wird keine weitere Anfrage nach Zugang zum Bus 12 mehr akzeptiert.
  • Mit anderen Worten können Familienbusmoduln nur innerhalb dieses Zeitintervalls eine Anfrage an den Block 299 richten (d. h. Zugang zum Familienbus buchen).
  • Der Familienbus 12 wird dann in einer gänseblümchenförmigen Sequenz allen Moduln zugeteilt, die erfolgreich einen Zugriff gebucht haben.
  • Am Ende des Wartezyklus sendet der Block 299 im Block 17 ein Bestätigungssignal (FACKI) an die gänseblümchenförmige Kette bezüglich der logischen Blöcke 82, um alle Moduln auf dem Familienbus 12 zu bescheiden.
  • Das Bestätigungssignal erlaubt nacheinander die Belegung des Busses 12 durch alle Moduln, die erfolgreich einen Zugriff gebucht haben, wobei Priorität den Moduln zugewiesen wird, die physisch am nächsten bei dem leitenden Modul liegen. Sobald alle gebuchten Moduln Zugang zum Bus bekommen haben, wird eine andere Entscheidungsoperation durchgeführt.
  • Insbesondere aktiviert der logische Entscheidungsblock 82 im Modul 17 (P1) (identisch zu dem in den anderen Familienmoduln 18) das FPREN-Signal des Familienbusses, vorausgesetzt, daß die folgenden Bedingungen erfüllt sind:
  • - der Prozessor 31 im Modul 17 beabsichtigt, auf den Familienbus 12 zuzugreifen,
  • - das FFRZ-Signal ist noch nicht aktiv und gibt an, daß der Block 299 im Modul 17 (P1) noch Zugriffsbuchungen annimmt.
  • Das FPREN-Signal kann so gleichzeitig von mehreren Moduln geliefert werden, d. h. von allen Moduln, die Zugriff zum Bus innerhalb des Entscheidungszyklus buchen können. Der erste Aus-Ein-Übergang des FPREN-Signals aktiviert die Logik im Block 299, die die sequentielle Aktivierung der Signale FFRZ und FACKI vorsieht.
  • Die Aktivierung des FFRZ-Signals verhindert, daß andere Moduln einen Zugriff buchen (und damit zur Aktivierung des FPREN-Signals beitragen). Das FACKI-Signal wird zuerst an den logischen Entscheidungsblock 82 im Modul 17 (P1) ausgesandt.
  • Wenn der Prozessor 31 im Modul 17 (P1) ebenfalls erfolgreich gebucht hat, dann ist die Anfrage vom Modul 17 (P1) diejenige, die als erste bedient wird, und der FACKO-Ausgang des logischen Blocks 82 in P1 bleibt ausgeschaltet (und verhindert so die Ausgabe des Bestätigungssignals), bis der Prozessor 31 in P1 den externen Zugriff abgewickelt hat. In diesem Augenblick erlaubt P1 die Ausgabe des Bestätigungssignals (durch Aktivierung des FACKO-Signals) und zieht seinen eigenen Beitrag zur Aktivierung des FPREN-Signals zurück. Der Bus 12 wird dann nacheinander den Moduln 18 geringerer Priorität zugewiesen, die physisch weiter entfernt vom Modul P1 liegen. Sobald der letzte gebuchte Modul 18 seinen Zugriff zum Bus 12 abgewickelt hat, wird das FPREN-Signal ausgeschaltet, was zum Ausschalten der Logik 299 im Modul P1 und zum Verschwinden der Signale FFRZ und FACKI führt, die dann wieder bereit für eine neue Entscheidungsoperation sind.
  • Der Vorzug des erfindungsgemäßen Multiprozessorsystems geht aus der obigen Beschreibung hervor. Insbesondere bietet die Struktur des Systems, beruhend auf fünf hierarchischen Ebenen (privat, lokal, Familie, Region und Regionalnetz) eine wirksame Kontrolle von extrem umfangreichen Konfigurationen, in denen tausende von Mikroprozessoren der jüngsten Generation zusammenarbeiten können, so daß eine erhebliche Erhöhung der Rechenleistung im Vergleich zu bekannten Multiprozessorsystemen erreicht wird. Die Ausstattung jeder Ebene mit eigener Hardware und Software führt zu zwei Merkmalen, die für ein Multiprozessorsystem essentiell sind, nämlich der unabhängigen Datenverarbeitung in jeder Ebene und die wirksame Kooperation zwischen verschiedenen Ebenen. Das erfindungsgemäße System ermöglicht nämlich eine äußerst wirksame gemeinsame Operation zweier typischer Multiprozessormodi, nämlich des Multiprozessormodus (mit direktem Zugriff zu gemeinsamen Leitungen und damit direkter Erreichbarkeit des globalen Speichers) und des Multicomputermodus (Regionalnetz) mit Nachrichtenaustausch zwischen verschiedenen Multiprozessorsektionen (Regionen) oder ggf. mit Sektionen eines Hilfsrechners (Host). Dies wird erreicht durch eine völlig unabhängige Operation der Verbindung zwischen verschiedenen Multiprozessorsektionen (Regionen) verglichen mit der Operation der Sektionen selbst, durch die lokale Intelligenz der verschiedenen involvierten Moduln und den Datendurchsatz, den eine solche Intelligenz erfordert.
  • Ein weiterer Vorteil des erfindungsgemäßen Multiprozessorsystems besteht darin, daß es Datenaustauschvorgänge auf Leitungen zwischen Moduln in einem Multiprozessorsystem mit verteiltem Speicher vorsieht, wobei die Parallelität des Austauschs der doppelten (oder sogar mehrfachen) Wortgröße des verwendeten Mikroprozessors entspricht, wodurch ein entsprechender Zuwachs im Datendurchsatz und eine Verringerung und Vorhersagbarkeit der Unterbrechungswartezeit und des Datenaustauschs zwischen Moduln erreicht wird. Dies ergibt sich unter Verwendung nur beschränkter Mittel mit sehr geringen Zusatzkosten für das System aufgrund der Merkmale, die in Form zusätzlicher Eigenschaften in existierenden System-Grundmoduln verwirklicht werden.
  • Schließlich ergeben sich erhebliche Funktionsvorteile aus dem Großraumspeicher, der unmittelbar an den Regional- und Familienbus angeschlossen werden kann. Dieser Speicher erweitert die Adressengrenzen jedes Moduls und schaltet dynamisch Speicherdaten von einem Modul zum anderen, was dem Datentransfer mit praktisch unbegrenzter Geschwindigkeit gleichkommt, und erzeugt dynamisch Zonen, die verschiedenen Moduln gemeinsam sind, ggf. mit unterschiedlichen Zugriffsrechten.
  • Dem Fachmann ist klar, daß Veränderungen des beschriebenen und dargestellten Ausführungsbeispiels möglich sind. Beispielsweise kann ein Familienbus 11 nur einen Modul 17 (P1) und mehrere Moduln 18 (PN), aber keine Blöcke 22 oder 23 besitzen. Entsprechend kann nur eine Anzahl von Regionen 10 an die Region 10' angeschlossen sein.

Claims (26)

1. Multiprozessorsystem mit mehreren hierarchischen Ebenen und mehreren Regionen (10) von Familien (11) von ersten und zweiten Prozessormoduln (17, 18), wobei jeder Modul mindestens einen Prozessor (31, 31') besitzt und die Prozessoren eine erste hierarchische Ebene, die Privatebene, bilden, während die Moduln eine zweite hierarchische Ebene, die lokale Ebene, bilden, wobei jeder der ersten und zweiten Prozessormoduln (17, 18) erste gemeinsame Direktzugriffsleitungen (32, 32') und zweite gemeinsame Direktzugriffsleitungen (51, 51') besitzt, die selektiv durch Torschaltungen (50, 50') voneinander getrennt werden können, wobei an die ersten gemeinsamen Leitungen (32, 32') einer der Prozessoren (31, 31'), private Speichermittel (34, 34') und private Mittel (37, 37') zur Steuerung des Datentransfers zwischen den ersten (32, 32') und zweiten Leitungen (51, 51') angeschlossen sind, während an die zweiten gemeinsamen Leitungen (51, 51') eine lokale Zone mit lokalen Speichermitteln (63, 63') und lokalen Eingabe-/Ausgabemitteln zu diesem Modul (17, 18) angeschlossen sind, wobei jeder dieser Moduln aus jeder der Familien an eine dritte gemeinsame Direktzugriffsleitung (12) für jede der Familien angeschlossen ist und die Familie von so verbundenen Moduln eine dritte hierarchische Ebene bildet, wobei ein erster Prozessormodul (17) jeder der Familien (11) in jeder der Regionen (10) auch mit einer vierten gemeinsamen Direktzugriffsleitung (13) verbunden ist und die Region von so verbundenen Familien eine feste hierarchische Ebene bildet, und wobei Paare der vierten Leitungen (13) miteinander über Paare von dritten Prozessormoduln (14) verbunden sind und das so verbundene Regionennetz eine fünfte hierarchische Ebene bildet, wobei jeder der dritten Prozessormoduln (14) Sende- und Empfangsmittel (14) und mindestens einen Prozessor (31'') aufweist, der einen unabhängigen Betrieb der ersten und zweiten Prozessormoduln (17, 18) bezüglich des Datenaustauschs zwischen den Paaren von vierten Leitungen (13) zuläßt, wobei jeder der Prozessormoduln (17, 18, 14) als Meister oder als Sklave wirken kann, d. h. Adressen, Steuersignale und Daten aussenden und empfangen kann, und wobei die lokale Zone, die mit der zweiten Leitung (51) jedes ersten Prozessormoduls verbunden ist, über Torschaltungen (54) an eine dritte Leitung (12) anschließbar ist, die vom Prozessor aller zweiten Prozessormoduln (18) derselben Familie (11) adressiert werden kann, und auch über Torschaltungen (57) an eine vierte Leitung (13) anschließbar ist, die vom Prozessor des ersten (17) und dritten Prozessormoduls (14) adressiert werden kann, der an die vierte Leitung (13) derselben Region (10) angeschlossen ist.
2. System nach Anspruch 1, dadurch gekennzeichnet, daß jeder der ersten und zweiten Prozessormoduln (17, 18) Mittel (48) zum Erfassen von Zugriffswünschen zum Anschluß der zweiten Leitungen (51) der lokalen Ebene an die erste Leitung (32) der Privatebene oder an die dritte (12) oder vierte Gruppe (13) von Leitungen und zur Durchführung einer Direktzugriffsverbindung an diese Leitungen gemäß einer vorgegebenen Prioritätsfolge der Anfragen besitzt.
3. System nach Anspruch 2, dadurch gekennzeichnet, daß jeder der ersten und zweiten Prozessormoduln (17, 18) Mittel (67, 68) aufweist, um Daten von dem ersten und dem zweiten Prozessormodul (17, 18) an eine Anzahl von weiteren der ersten und zweiten Prozessormoduln aufweist, die an dieselbe Gruppe (12, 13) von Leitungen angeschlossen sind.
4. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die privaten Mittel (37, 37') Zeitsteuermittel (40, 40'), Steuerregister (38, 38'), Statusregister (39, 39') und Unterbrechungssignal-Steuermittel (41, 41') enthalten.
5. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß jeder zweite Prozessormodul (18), der nur an die dritten Leitungen (12) angeschlossen ist, eine Anzahl von Prozessoren (31') enthält.
6. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es eine zweite Hauptgruppe (13') von gemeinsamen Leitungen in der vierten hierarchischen Ebene (Region) aufweist, an die mindestens einige der Leitungen der vierten Gruppe (13) über die Datenübertragungs- und Empfangsmittel (14) angeschlossen sind, wobei die zweite Hauptgruppe (13') auch über andere Datenübertragungs- und Empfangsmittel (14) an äußere Datenverarbeitungsmittel (16) angeschlossen sind.
7. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß Koprozessoren (33, 33') mindestens einigen der Prozessoren (31, 31') zugeordnet sind.
8. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Datenübertragungs- und Empfangsmittel (14) erste Mittel (98) aufweisen, um zu übertragende Daten vorübergehend zu speichern, und zweite Mittel (99) zur vorübergehenden Speicherung von empfangenen Daten, wobei die ersten bzw. zweiten Mittel (98, 99) von Mitteln (101, 102, 103, 104, 105) adressiert werden, um den Austausch dieser Daten zu steuern, wobei die Steuermittel (101, 102, 103, 104, 105) von dem Prozessor (31'') in den Datenübertragungs- und Empfangsmitteln (14) gesteuert werden, und daß die Datenübertragungs- und Empfangsmittel (14) private Speichermittel (34'') und private Eingangs-/Ausgangsmittel (37'') aufweisen, die an gemeinsame Leitungen (32'') der privaten Ebene angeschlossen sind und von gemeinsamen Leitungen der lokalen Ebene (51'') getrennt werden können, an die lokale Speichermittel (63'') und lokale Eingangs-/Ausgangsmittel angeschlossen sind, wobei die gemeinsamen Leitungen (51'') der lokalen Ebene über Schnittstellenmittel (57'') an die vierte Gruppe von gemeinsamen Leitungen (13) in der vierten hierarchischen Ebene (Region) anschließbar sind.
9. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Datenübertragungs- und Empfangsmittel (14) TTL-Differential-Signalwandlermittel und Differential- TTL-Signalwandlermittel (95, 96, 95', 96') aufweisen.
10. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß für jeden der Prozessormoduln (17, 18, 14) Mittel (47, 47', 47'') zur Dekodierung von Anfragen vom Prozessor (31, 31, 31'') nach direktem Zugriff zu Bereichen der privaten, lokalen, Familien- oder regionalen Ebene in den privaten und lokalen Speichermitteln (34, 63, 63', 63'') und zu den Eingangs-/Ausgangsmitteln der Prozessormoduln (17, 18) oder der Verbindungsmittel (14) vorgesehen sind.
11. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es mindestens ein Speichermittel (22) aufweist, das mit direktem Zugriff sowohl an die dritte Gruppe (12) als auch an die vierte Gruppe (13) von gemeinsamen Leitungen angeschlossen ist.
12. System nach Anspruch 11, dadurch gekennzeichnet, daß die Speichermittel (22) eine große Kapazität besitzen, die die Adressierkapazität der Prozessormoduln (17, 18) übersteigt, die an die dritte Gruppe (12) oder die vierte Gruppe (13) von gemeinsamen Leitungen angeschlossen sind.
13. System nach Anspruch 11 oder 12, dadurch gekennzeichnet, daß für jede Gruppe von Adreßdaten aus der dritten Gruppe (12) und der vierten Gruppe (13) von gemeinsamen Leitungen die Speichermittel (22) Abgleichkodiermittel (168, 168') für einen ersten Teil (165, 165') der Gruppe von Adreßdaten besitzen, während der restliche zweite Teil (173, 173') der Gruppe von Adreßdaten mit dem aus den Abgleichkodiermitteln (168, 168') kommenden Teil wiedervereinigt wird und die ganze Gruppe von Adreßdaten über Auswahlmittel (161, 182) zur Ansteuerung eines Speicherblocks (150) ausgewählt wird.
14. System nach Anspruch 13, dadurch gekennzeichnet, daß der erste Teil der Gruppe von Adreßdaten, der an die Abgleichkodiermittel (168, 168') gesandt wird, der höherwertige Teil ist.
15. System nach Anspruch 13 oder 14, dadurch gekennzeichnet, daß die Abgleichkodiermittel (168, 168') Lese-Schreib-Speichermittel aufweisen.
16. System nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, daß die Lese- oder Schreibdaten des Speicherblocks (150) auf der dritten Gruppe (12) oder der vierten Gruppe (13) von gemeinsamen Leitungen über Register (154, 156; 155, 157) ausgetauscht werden.
17. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die dritte Gruppe (12) und die vierte Gruppe (13) von gemeinsamen Leitungen und die Datenübermittlungs- und Empfangsmittel (14) einen parallelen Datenaustausch bewirken, der ein Vielfaches der Wortgröße des Prozessors (31, 31', 31'') in den Prozessormoduln (17, 18, 14) beträgt, und daß Schnittstellenmittel (63, 261, 250) zwischen dem Prozessor (31, 31', 31'') und den gemeinsamen Leitungen (12, 13) vorgesehen sind, um diese Mehrfachparallelität zu erreichen.
18. System nach Anspruch 17, dadurch gekennzeichnet, daß die Parallelität im Datenaustausch der doppelten Wortgröße der Prozessoren (31, 31', 31'') entspricht.
19. System nach Anspruch 17 oder 18, dadurch gekennzeichnet, daß die Schnittstellenmittel den Datenaustauschteil (261) der zweiten gemeinsamen Leitungen (51) der lokalen Ebene enthalten, die diese Mehrfachparallelität aufweisen, wobei die Datenaustauschleitungen (261) an mehrere Speicherbänke (257, 258, 259, 260) angeschlossen sind, deren Adreßleitungen (249) von dem Prozessor (31, 31', 31'') über Adressenveränderungsmittel (250) oder von äußeren Prozessormoduln (17, 18, 14) kommen, wobei die Adressenveränderungsmittel (250) außer Betrieb sind, wenn die Parallelität des Datenaustauschs zwischen den Prozessormoduln der Wortgröße in den Prozessoren (31, 31', 31'') oder einem Untervielfachen dieser Wortgröße entspricht.
20. System nach Anspruch 19, dadurch gekennzeichnet, daß einzelne Elemente der Speicherbänke (257, 258, 259, 260) über eine Kombination eines Teils einer Anzahl von direkten Leitungen und Signale adressiert werden, die von logischen Blöcken (256) abgeleitet sind, die einen Teil einer anderen Zahl von Adreßleitungen empfangen.
21. System nach Anspruch 19 oder 20, dadurch gekennzeichnet, daß die Datenaustauschleitungen (261) der gemeinsamen Leitungen (51) der lokalen Ebene, die die Wortgröße des Prozessors (31, 31', 31'') überschreiten, über Mittel zur vorübergehenden Speicherung (271) miteinander verbunden sind und über Verbindungsmittel (272) an den Teil der Leitungen angeschlossen sind, die in die Wortlänge des Prozessors passen.
22. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es Mittel (54, 31, 40, 38, 57) enthält, um zwischen der Anzahl der Prozessormoduln (17, 18, 14), die an die dritten Gruppe (12) oder an die vierte Gruppe (13) von gemeinsamen Leitungen angeschlossen sind, einen einzelnen Nachrichtenaustausch zwischen allen Moduln (17, 18, 14) zu ermöglichen, die in einer gegebenen Zeitperiode ein Datenaustauschanfragesignal (FPREN) ausgesandt haben, um einen gesperrten Mehrfachnachrichtenaustausch nur durch einen einzigen zugelassenen dieser Moduln (17 18, 14) zu ermöglichen, so daß sowohl die Unterbrechungssignal-Wartezeit als auch die Datenaustauschzeit bezüglich eines gegebenen Datensatzes vorhergeplant werden kann.
23. System nach Anspruch 22, dadurch gekennzeichnet, daß diese Mittel zumindest teilweise Bestandteile von Schnittstellen (54, 54, 57, 57'') sind, die die Moduln (17, 18, 14) an die dritte Gruppe (12) oder die vierte Gruppe (13) von gemeinsamen Leitungen anschließen.
24. System nach Anspruch 23, dadurch gekennzeichnet, daß diese Mittel vom Prozessor (31, 31', 31'') jedes Moduls, durch den Status von internen Registern (38, 38', 38'') und durch Zeitsteuermittel (40, 40', 40'') gesteuert werden.
25. System nach einem der Ansprüche 22 bis 24, dadurch gekennzeichnet, daß die Mittel (54, 54', 57, 57') der Moduln (17, 18, 14) in Form einer Gänseblümchenblüte miteinander verbunden sind und daß einer dieser Moduln (17) Initialisierungsmittel (299, 85) enthält.
26. System nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß einige der Prozessoren (31') in jedem der Prozessormoduln (18) nur an die dritte Gruppe (12) von gemeinsamen Leitungen und einige -zig Prozessormoduln (18) nur an die dritte Gruppe (12) von Leitungen angeschlossen sind, während einige -zig Gruppen (Familien) (11) von Prozessormoduln (17, 18) an die dritte Gruppe (13) von gemeinsamen Leitungen und einige Gruppen (Regionen) (10) von Familien über die Datenübertragungs- und Empfangsmittel (14) miteinander verbunden sind.
DE86116525T 1985-12-13 1986-11-27 Multiprozessorsystem mit multihierarchischen Ebenen. Expired - Fee Related DE3689226T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT68046/85A IT1184015B (it) 1985-12-13 1985-12-13 Sistema multiprocessore a piu livelli gerarchici

Publications (2)

Publication Number Publication Date
DE3689226D1 DE3689226D1 (de) 1993-12-02
DE3689226T2 true DE3689226T2 (de) 1994-02-24

Family

ID=11307437

Family Applications (1)

Application Number Title Priority Date Filing Date
DE86116525T Expired - Fee Related DE3689226T2 (de) 1985-12-13 1986-11-27 Multiprozessorsystem mit multihierarchischen Ebenen.

Country Status (6)

Country Link
US (1) US4814970A (de)
EP (1) EP0226096B1 (de)
JP (1) JPH0797363B2 (de)
DE (1) DE3689226T2 (de)
ES (1) ES2047474T3 (de)
IT (1) IT1184015B (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228127A (en) * 1985-06-24 1993-07-13 Fujitsu Limited Clustered multiprocessor system with global controller connected to each cluster memory control unit for directing order from processor to different cluster processors
DE3889550T2 (de) * 1987-01-12 1994-09-01 Fujitsu Ltd Datenübertragungspufferschaltungen für Datenaustausch.
JPS63259727A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd コプロセツサのインタ−フエイス方式
US5201040A (en) * 1987-06-22 1993-04-06 Hitachi, Ltd. Multiprocessor system having subsystems which are loosely coupled through a random access storage and which each include a tightly coupled multiprocessor
US5029074A (en) * 1987-06-29 1991-07-02 Digital Equipment Corporation Bus adapter unit for digital processing system
EP0297931B1 (de) * 1987-06-29 1995-12-13 Digital Equipment Corporation Busadapter für digitales Rechensystem
US5226039A (en) * 1987-12-22 1993-07-06 Kendall Square Research Corporation Packet routing switch
US5341483A (en) * 1987-12-22 1994-08-23 Kendall Square Research Corporation Dynamic hierarchial associative memory
US5251308A (en) * 1987-12-22 1993-10-05 Kendall Square Research Corporation Shared memory multiprocessor with data hiding and post-store
US5335325A (en) * 1987-12-22 1994-08-02 Kendall Square Research Corporation High-speed packet switching apparatus and method
US5761413A (en) * 1987-12-22 1998-06-02 Sun Microsystems, Inc. Fault containment system for multiprocessor with shared memory
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
FR2626091B1 (fr) * 1988-01-15 1994-05-06 Thomson Csf Calculateur de grande puissance et dispositif de calcul comportant une pluralite de calculateurs
US5237670A (en) * 1989-01-30 1993-08-17 Alantec, Inc. Method and apparatus for data transfer between source and destination modules
JPH0387958A (ja) * 1989-06-30 1991-04-12 Nec Corp バスロツク制御方式
JP2789479B2 (ja) * 1989-08-14 1998-08-20 松下電器産業株式会社 処理装置およびマルチプロセッサシステム
US5239661A (en) * 1989-08-18 1993-08-24 Mitsubishi Denki Kabushiki Kaisha Hierarchical bus circuit having decoder generating local buses and devices select signals enabling switching elements to perform data transfer operations
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
US5153595A (en) * 1990-03-26 1992-10-06 Geophysical Survey Systems, Inc. Range information from signal distortions
CA2087735A1 (en) * 1990-07-20 1992-01-21 Yuan Shi System for high-level virtual computer with heterogeneous operating systems
GB9018993D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station interfacing means having burst mode capability
GB2251320A (en) * 1990-12-20 1992-07-01 Motorola Ltd Parallel processor
DE69228621T2 (de) * 1991-02-25 1999-07-22 Hewlett-Packard Co., Palo Alto, Calif. Objektorientiertes verteiltes Rechnersystem
JPH04352265A (ja) * 1991-05-30 1992-12-07 Kirin Techno Syst:Kk 階層構造化モジュールシステム
US5296936A (en) * 1991-07-22 1994-03-22 International Business Machines Corporation Communication apparatus and method for transferring image data from a source to one or more receivers
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
US5634135A (en) * 1991-12-13 1997-05-27 Texas Instruments Incorporated Microprocessor with priority determination and priority based instruction selection
CA2078912A1 (en) * 1992-01-07 1993-07-08 Robert Edward Cypher Hierarchical interconnection networks for parallel processing
IT1260848B (it) * 1993-06-11 1996-04-23 Finmeccanica Spa Sistema a multiprocessore
JP3370155B2 (ja) * 1993-12-01 2003-01-27 富士通株式会社 データ処理システム
US5909702A (en) * 1995-09-29 1999-06-01 Intel Corporation Memory address translations for programs code execution/relocation
KR100292685B1 (ko) * 1997-12-15 2001-11-30 구자홍 모니터의통신용부품자동진단장치및자동진단방법
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6976239B1 (en) * 2001-06-12 2005-12-13 Altera Corporation Methods and apparatus for implementing parameterizable processors and peripherals
WO2004038555A2 (en) * 2002-10-22 2004-05-06 Isys Technologies Robust customizable computer processing system
US7256991B2 (en) * 2002-10-22 2007-08-14 Sullivan Jason A Non-peripherals processing control module having improved heat dissipating properties
KR101499826B1 (ko) * 2002-10-22 2015-03-10 제이슨 에이. 설리반 맞춤형 로버스트 컴퓨팅 시스템, 처리 제어 유닛, 및 무선 컴퓨팅 네트워크 장치
US20040139305A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Hardware-enabled instruction tracing
GB2397668B (en) * 2003-01-27 2005-12-07 Picochip Designs Ltd Processor array
US7818388B2 (en) * 2005-10-07 2010-10-19 International Business Machines Corporation Data processing system, method and interconnect fabric supporting multiple planes of processing nodes
US7990724B2 (en) 2006-12-19 2011-08-02 Juhasz Paul R Mobile motherboard
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8397030B2 (en) 2008-06-24 2013-03-12 International Business Machines Corporation Efficient region coherence protocol for clustered shared-memory multiprocessor systems
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
US8799587B2 (en) * 2009-01-26 2014-08-05 International Business Machines Corporation Region coherence array for a mult-processor system having subregions and subregion prefetching
US8285942B2 (en) * 2009-01-27 2012-10-09 International Business Machines Corporation Region coherence array having hint bits for a clustered shared-memory multiprocessor system
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US20150178092A1 (en) * 2013-12-20 2015-06-25 Asit K. Mishra Hierarchical and parallel partition networks
US10416991B2 (en) 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
FR2296221A1 (fr) * 1974-12-27 1976-07-23 Ibm France Systeme de traitement du signal
JPS6016666B2 (ja) * 1977-11-18 1985-04-26 富士通株式会社 階層システムにおけるバツク・アツプ方式
US4240143A (en) * 1978-12-22 1980-12-16 Burroughs Corporation Hierarchical multi-processor network for memory sharing
DE3069249D1 (en) * 1979-02-13 1984-10-31 Secr Defence Brit Data processing unit and data processing system comprising a plurality of such data processing units
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
DE3112766A1 (de) * 1981-03-31 1982-12-30 Rheinische Computer GmbH, 5000 Köln "rechnersystem"
EP0067519B1 (de) * 1981-05-29 1985-10-02 THE GENERAL ELECTRIC COMPANY, p.l.c. Nachrichtenübertragungssystem
DE3276916D1 (en) * 1981-09-18 1987-09-10 Rovsing As Christian Multiprocessor computer system
US4622632A (en) * 1982-08-18 1986-11-11 Board Of Regents, University Of Washington Data processing system having a pyramidal array of processors
US4648035A (en) * 1982-12-06 1987-03-03 Digital Equipment Corporation Address conversion unit for multiprocessor system

Also Published As

Publication number Publication date
EP0226096A2 (de) 1987-06-24
JPH0797363B2 (ja) 1995-10-18
ES2047474T3 (es) 1994-03-01
EP0226096A3 (en) 1988-08-03
IT1184015B (it) 1987-10-22
EP0226096B1 (de) 1993-10-27
US4814970A (en) 1989-03-21
JPS62189549A (ja) 1987-08-19
DE3689226D1 (de) 1993-12-02
IT8568046A0 (it) 1985-12-13

Similar Documents

Publication Publication Date Title
DE3689226T2 (de) Multiprozessorsystem mit multihierarchischen Ebenen.
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE3689087T2 (de) Modularer Mehrfachportdatenknoten.
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE3789104T2 (de) Netzwerkübertragungsadapter.
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE3852698T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
DE2854485C2 (de) Datenverarbeitungsanlage
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE69521549T2 (de) Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
DE69130106T2 (de) Arbitrierung von paketvermittelten Bussen, einschliesslich Bussen von Multiprozessoren mit gemeinsam genutztem Speicher
DE69024078T2 (de) Mehrprozessoranordnung mit Vervielfältigung von globalen Daten und mit zwei Stufen von Adressübersetzungseinheiten
DE3114961C2 (de)
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69429279T2 (de) Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern
DE3689198T2 (de) Systembus für Kommunikation zwischen Prozessoren.
DE69228521T2 (de) Mikroprozessorarchitektur mit der möglichkeit zur unterstützung mehrerer verschiedener prozessoren
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
EP1057117B1 (de) VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
DE3688810T2 (de) Mehrfachport-integrierter Steuerer und Arbitrierer für DMA und Unterbrechungen.
DE3650036T2 (de) Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung.
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE69331311T2 (de) Datenkommunikationssystem und Verfahren
DE68915701T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung.
DE69114961T2 (de) Vorrichtung für Zusammenschaltungskanäle.

Legal Events

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