DE3855338T2 - Rechnersystem - Google Patents

Rechnersystem

Info

Publication number
DE3855338T2
DE3855338T2 DE19883855338 DE3855338T DE3855338T2 DE 3855338 T2 DE3855338 T2 DE 3855338T2 DE 19883855338 DE19883855338 DE 19883855338 DE 3855338 T DE3855338 T DE 3855338T DE 3855338 T2 DE3855338 T2 DE 3855338T2
Authority
DE
Germany
Prior art keywords
computer system
data
manager
process block
processor
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
DE19883855338
Other languages
English (en)
Other versions
DE3855338D1 (de
Inventor
Ichiroh Andoh
Tomoyuki Minamiyama
Shigeo Takahashi
Keisuke Yamada
Shiryo Yasui
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.)
Toyo Communication Equipment Co Ltd
Original Assignee
Toyo Communication Equipment Co Ltd
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
Priority claimed from JP62055891A external-priority patent/JPS63221452A/ja
Priority claimed from JP62058095A external-priority patent/JPS63223948A/ja
Priority claimed from JP62087782A external-priority patent/JP2855326B2/ja
Priority claimed from JP62124930A external-priority patent/JPS63289666A/ja
Priority claimed from JP62333251A external-priority patent/JPH01173243A/ja
Application filed by Toyo Communication Equipment Co Ltd filed Critical Toyo Communication Equipment Co Ltd
Publication of DE3855338D1 publication Critical patent/DE3855338D1/de
Application granted granted Critical
Publication of DE3855338T2 publication Critical patent/DE3855338T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

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

Description

  • Diese Erfindung bezieht sich auf Computersysteme und im besonderen auf solche Systeme, die eine Vielzahl von Computern steuern, die in einem Ring verbunden sind, um jeweils miteinander in Beziehung zu stehen, um dezentralisierte Funktionsverarbeitung oder dezentralisierte Lastverarbeitung (bad processing) frei auszuführen.
  • Kürzlich ist der Versuch unternommen worden, die Operationen durch Vorsehen einer Vielzahl von Prozessoreinheiten (im folgenden als "PU" bezeichnet) zum Verarbeiten eines Programms in verteilter Weise oder einer Vielzahl von Programmen in paralleler Weise zu beschleunigen.
  • Ein typischer konventioneller Prozeß dieses Typs ist ein dezentralisiertes Prozessorsystem, bei dem viele PUs über einen Bus oder Kommunikationskanäle verbunden sind, um ein Multiprozessorsystem aufzubauen, und zwar so, daß die entsprechenden PUs zum Verarbeiten von Informationen zusammenarbeiten. Solche dezentralisierten Systeme werden in dezentralisierte Funktionssysteme und dezentralisierte Lastsysteme klassifiziert, abhängig vom Inhalt der den entsprechenden PUs zugeordneten Verarbeitung.
  • Wie in Fig. 1 gezeigt, ist das dezentralisierte Funktionssystem zum Beispiel aus einem Hauptprozessor MPU und einer Vielzahl von Prozessoren PU&sub1; - PUn aufgebaut, die in einer Sternanordnung verbunden sind. Die Prozessoren PU&sub1; - PUn haben entsprechende vorbestimmte Funktionen. Zum Beispiel enthält PU&sub1; ein Programm zum Steuern eines Druckers; PU&sub2; ein Programm zum Steuern einer CRT-Anzeige; und PUn ein Programm zum Steuern eines Floppydisk-Geräts.
  • In diesem System wird das vom Nutzer gewünschte Programm in den Hauptprozessor MPU geladen und von ihm ausgeführt. Im Laufe der Ausführung schreitet der Hauptprozessor MPU mit seiner Verarbeitung voran, indem er die entsprechenden PUs ihre Jobs abarbeiten läßt, die sie unter Verwendung ihrer Funktionen abarbeiten können.
  • Wie in Fig. 2 gezeigt, ist das dezentralisierte Lastsystem aus einem Hauptprozessor MPU und einer Vielzahl von von dem Hauptprozessor gesteuerten Prozessoren PU&sub1; - PUn aufgebaut. Ein von dem Hauptprozessor auszuführendes Programm wird in n geeignete Subprogramme aufgeteilt, die dann den n Prozessoren PU zugeordnet und von ihnen ausgeführt werden. Das Resultat der Ausführung wird von dem Hauptprozessor gesammelt, um ein Endresultat zu erhalten.
  • Jedoch ist ein solches konventionelles dezentralisiertes Prozessorsystem vorab aufgebaut, so daß es entweder einem dezentralisierten Funktionssystem oder einem dezentralisierten Lastsystem entspricht und nicht beide Systeme zur gleichen Zeit ausfüllen kann.
  • Bei dem dezentralisierten Funktionssystem werden fast alle Funktionen, die zuvor dezentralisiert werden können, nur einer Eingangs-/Ausgangsverarbeitung durch die Peripheriegeräte des Computersystems zugeordnet, wie oben erwähnt, so daß die Dezentralisierung auf die entsprechenden PUs eines Programms, das hauptsächlich solche Verarbeitungen ausführt (im folgenden als "I/O-Grenzprogrammm" bezeichnet) effektiv ist. Es ist jedoch nicht so nützlich fiir andere dezentralisierte Verarbeitungen.
  • Im Gegensatz zu dem dezentralisierten Funktionssystem kann bei dem dezentralisierten Lastsystem ein Programm, das fast ganz auf Berechnungen gerichtet ist (im folgenden als "Berechnungsgrenzprogrammm" bezeichnet) zum Zweck der Parallelverarbeitung auf eine Vielzahl von PUs verteilt und ihnen zugeordnet werden, was zur Verbesserung der Verarbeitungskapazität effektiv ist. Es kann jedoch eine solche Parallelverarbeitungsfunktion nicht für das I/O-Grenzprogramm ausführen.
  • Wie oben beschrieben, kann die dezentralisierte Verarbeitung mit den konventionellen Computersystemen nicht sowohl die Funktionsdezentralisierungsfunktion als auch die Lastdezentralisierungsfunktion erfüllen und nutzt möglicherweise abhängig von dem auszuführenden Programm das Computersystem nicht effektiv.
  • Es ist ein System praktisch verwendet worden, bei dem anstelle der PUs getrennte Computer angeordnet sind, um erforderliche Daten untereinander auszutauschen, um diese Computer dadurch effektiv zu nutzen. Bei einem solchen Computersystem übertragen und/oder empfangen die entsprechenden Computer untereinander jedoch nur ihre durch Ausführung ihrer eigenen Programme erhaltenen Resultate. Beispielsweise kann keine Anwendung eingeplant werden, bei dem ein Teil eines von einem Computer ausgeführten Programms zu Verarbeitungszwecken auf andere Computer verteilt oder ihnen zugeordnet werden kann.
  • "Computer Networks" (Prentice Hall, Inc., Englewood Cliffs, N.J. 07632; Andrew S. Tanenbaum) beschreibt Multiprozessor-Computersysteme, bei denen konventionelle Computer in einer Ringanordnung verbunden sind. Jeder der Computer weist eine einzelne CPU auf.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Computersystem anzugeben, das eine dezentralisierte Verarbeitungskapazität aufweist und optional sowohl die Funktionsdezentralisierung als auch die Lastdezentralisierung ausführt.
  • Um diese Aufgabe zu lösen wird ein Computersystem nach Anspruch 1 angegeben.
  • Damit kann das Computersystem optional sowohl die Funktions- als auch die Lastdezentralisierungsfunktion ausführen, um dadurch eine erheblich verbesserte Funktion zu realisieren, die mit dem Stand der Technik nicht erreicht werden kann.
  • Wenn ein größeres Computersystem aufgebaut wird, indem zwei oder mehr der Prozessorelemente des Basiscomputersystems gegen entsprechende solche Basiscomputersysteme ausgetauscht werden, wird dies ein ideales Computersystem sein, bei dem alle Computersysteme eine zugeordnete Verarbeitung ausführen, als wenn sie ein einziger Computer wären, und zur Erzielung einer verbesserten Funktion zusammenarbeiten.
  • Fig. 1 illustriert schematisch das Konzept der dezentralisierten Funktionsverarbeitung mit einem konventionellen Computersystem.
  • Fig. 2 illustriert schematisch das Konzept einer zugeordneten Lastverarbeitung mit einem konventionellen Computersystem.
  • Fig. 3 ist ein Blockdiagramm eines ersten Ausführungsbeispiels eines Computersystems nach dieser Erfindung.
  • Fig. 4 ist ein Blockdiagramm eines zweiten Ausführungsbeispiels mit einer Modifikation gegenüber dem in Fig. 3 gezeigten Ausführungsbeispiel.
  • Fig. 5 ist ein Blockdiagramm einer Struktur zur Veranschaulichung eines Prozessorelements.
  • Fig. 6 ist ein Blockdiagramm eines dritten Ausführungsbeispiels eines Computersystems nach dieser Erfindung, und zwar beispielsweise mit dem in Fig. 5 gezeigten Prozessorelement aufgebaut.
  • Fig. 7 ist ein Blockdiagramm einer beispielhaften Verschaltung eines Crossbar- Schalters in dem in Fig. 6 gezeigten Ausführungsbeispiel.
  • Fig. 8 ist ein Blockdiagramm eines vierten Ausführungsbeispiels des Computersystems nach der Erfindung.
  • Fig. 9 ist ein Blockdiagramm eines fünften Ausführungsbeispiels mit einer Modifikation gegenüber dem in Fig. 3 gezeigten ersten Ausführungsbeispiel oder dem in Fig. 8 gezeigten vierten Ausführungsbeispiels.
  • Fig. 10 ist ein Blockdiagramm einer bestimmten wichtigen Struktur des in Fig. 9 gezeigten fünften Ausführungsbeispiels.
  • Fig. 11 illustriert schematisch die Struktur eines in Fig. 10 gezeigten Pufferspeichers.
  • Fig. 12 illustriert schematisch die Struktur eines Pakets in dem fünften Ausführungsbeispiel.
  • Fig. 13 und 14 sind vereinfachte Blockdiagramme zur Erklärung der Kommunikation zwischen den Managern im fünften Ausführungsbeispiel.
  • Fig. 15 ist ein Blockdiagramm einer wichtigen Struktur eines sechsten Ausführungsbeispiels des Computersystems nach dieser Erfindung.
  • Fig. 16 ist ein Blockdiagramm einer bestimmten beispielhaften Struktur einer in Fig. 15 gezeigten Speicherschutzvorrichtung.
  • Fig. 17 illustriert schematisch die Speicherstruktur eines Verifikationstabellenspeichers und die Funktion der in Fig. 16 gezeigten Speicherschutzvorrichtung.
  • Diese Erfindung wird nun anhand ihrer Ausführungsbeispiele im einzelnen beschrieben.
  • Fig. 3 illustriert schematisch die Struktur eines ersten Ausführungsbeispiels eines Computersystems nach dieser Erfindung. Nach diesem Ausführungsbeispiel ist eine Anzahl von Netzwerkprozessorelementen (im folgenden als "PE" bezeichnet) mit jeweils zumindest zwei Kanal prozessoren ch.P, die die entsprechenden Kommunikationskanäle getrennt managen, über die Kanalprozessoren ch.P zu einem Ring verbunden, um eine PE-Schleife 10 zu bilden. Eines der Prozessorelemente ist als Mastermanager MM bezeichnet, der alle anderen PEs überwacht und steuert; einige andere PEs als Prozeßmanager SM&sub1; - Smn; einige andere PEs als Server S&sub1; - Sr zum Ansteuern dem System hinzugefügter Peripheriegeräte; und einige andere PEs als Kommunikationsmanager CM zur Kommunikation mit anderen Systemen. Die Prozessormanager SM&sub1; - SMn haben jeweils eine Prozeßblockgruppe 20 mit einem Speicher, in dem ein auszuführender Prozeß gespeichert ist. Jede Prozeßblockgruppe 20 beinhaltet eine vorbestimmte Anzahl von Prozeßblöcken PF&sub1; - PFk einer Gruppe von Anwenderprogrammen und arbeitet als logische CPU in dem entsprechenden Speicherbereich, um einen bestimmten Job auszuführen. Die Prozeßmanager SM&sub1; - Smn überwachen jeweils den Prozeßinhalt der entsprechenden Prozeßblöcke PF und steuern die Ausführung der entsprechenden Prozesse.
  • Bei diesem Aufbau wird ein beliebiger Prozeß in der folgenden Weise ausgeführt. Es sei angenommen, daß der Mastermanager MM die Namen erforderliche Prozesse und Ausführungsanweisungen als Nachricht an die entsprechenden Prozeßmanager SM&sub1; - SMn liefert. Ansprechend darauf senden die Prozeßmanager als Nachricht Befehle zum Lesen ausführbarer Programme entsprechend den jeweiligen Prozeßnamen an die entsprechenden Server S&sub1; - Sr (in diesem Fall werden die Server als ufile server bezeichnet) und warten auf die Aufnahme der auszuführenden Programme aus den File Servern. Dann werden die empfangenen ausführbaren Programme von den damit verknüpften Prozeßmanagern geeigneten Prozeßblöcken PF in den entsprechenden Prozeßblockgruppen 20, die die Prozeßmanager selbst managen und ausführen, zugeordnet.
  • Wenn der Prozeß gestoppt werden soll, liefert der Mastermanager MM an die entsprechenden Prozeßmanager SM&sub1; - SMn eine den Namen des zu stoppenden Prozesses und einen Stopbefehl beinhaltende Nachricht. Die Prozeßmanager stoppen die Ausführung der entsprechenden Prozesse ansprechend auf eine solche Nachricht.
  • Bei dieser bestimmten Anordnung wird die Kommunikation zwischen den in beliebigen Prozeßblockgruppen 20 ausgeführten Prozessen über die damit verknüpften Prozeßmanager ausgeführt, indem dem Netzwerk ein den Namen des Senderprozesses aus dem Senderprozeßblock, den Namen des ausgewählten Empfängerprozesses und einen Kommunikationsinhalt enthaltendes Nachrichtenpaket zugeführt wird.
  • Wenn bei einer solchen Interprozeßkommunikation ein dem ausgewählten Empfängerprozeßnamen in dem Nachrichtenpaket entsprechender Prozeß in der Prozeßblockgruppe 20 ausgeführt wird, die der Entsprechende der in dem Netzwerk angeordneten Prozeßmanager SM&sub1; - SMn managt, informiert der entsprechende Prozeßmanager den ausführenden Prozeßblock über den empfangenen Inhalt der Kommunikation.
  • Ansprechend auf diese Verarbeitung des Prozeßmanagers führt der Empfängerprozeßblock dem Senderprozeßblock über den entsprechenden passenden Prozeßmanager eine den Empfang des Nachrichtenpakets bestätigende Nachricht zu, und dann beginnt die Kommunikation zwischen den damit verbundenen Prozessen.
  • Wenn der Name des ausgewählten Empfängerprozessors in dem empfangenen Nachrichtenpaket nicht mit dem von irgendeinem der Prozeßblöcke, die der entsprechende Prozeßmanager managt, zusammenfällt, oder wenn der ausgewählte Prozeß nicht ausgeführt wird, ignoriert der entsprechende Prozeßmanager das Nachrichtenpaket und führt es unverändert einem benachbarten Manager zu. Die entsprechenden Prozeßmanager SM&sub1; - SMn wiederholen diese Operation sequentiell, bis das Nachrichtenpaket den Manager erreicht, der den in dem Nachrichtenpaket enthaltenden Namen des ausgewählten Empfängerprozesses managt.
  • Es ist anzumerken, daß das Hauptprogramm in dem System über den Mastermanager MM geladen wird. Der Kommunikationsmanager CM in der PE-Schleife 10 wird zum Kommunizieren mit anderen Computern oder anderen Computersystemen verwendet, in welchem Fall der Kommunikationsmanager CM eine Nachricht in dem System, zu dem der Kommunikationsmanager gehört, in ein diesen anderen Computern oder diesen anderen Computersystemen eigenes Signalformat umwandelt und die Nachricht sendet und empfängt.
  • Mit einem solchen Computersystem nach dieser Erfindung kann eine sogenannte dezentralisierte Lastverarbeitung ausgeführt werden, bei der Teile eines Programms allen PEs der zu einem Ring verbundenen PE-Schleife 10 zugeordnet und von ihnen ausgeführt werden. Einige PEs, d.h. Server S&sub1; - Sr, beinhalten eine I/O-Schnittstelle für Peripheriegeräte, zum Beispiel eine Speicherdisk, ein CRT, eine Anzeige oder ein Drucker, so daß sie die Peripheriegeräte ansteuern können, ohne den Hauptprozessor (Mastermanager MM) zu belasten. Die letztgenannte Funktion entspricht der dezentralisierten Funktionsverarbeitung. Alle das System aufbauende PEs sind in der Lage, sich sowohl auf die Funktions- als auch auf die Lastzentralisierung (richtig: Dezentralisierung) einzustellen, so daß sie optional Teile eines auszuführenden Programms unabhängig von der Art des Programms, nämlich ob das Programm ein I/O- Grenzprogramm oder ein Berechnungsgrenzprogramm ist, zu Verarbeitungszwecken der Vielzahl von PEs zuordnen können.
  • Fig. 4 zeigt ein zweites Ausführungsbeispiel, das eine Modifikation gegenüber dem in Fig. 3 gezeigten Ausführungsbeispiel aufweist, und bei dem das Konzept des Ausführungsbeispiels aus Fig. 3 weiter ausgedehnt ist. Bei dem zweiten Ausführungsbeispiel ist eine Vielzahl von Computersystemen, nämlich ein erstes System 11, ein zweites System 12, ... ein n-tes System 1n, wobei jedes System eine Vielzahl von, um eine PE-Schleife 10 zu bilden, zu einem Ring verbundenen und als Mastermanager MM, Server S, Prozeßmanager SM (SM&sub1; - SMn) und Kommunikationsmanager CM bezeichnete PEs enthält, über die entsprechenden Kommunikationsmanager CM (CM&sub1; - CMn) zu einem Ring verbunden.
  • Beim zweiten Ausführungsbeispiel ist der Mastermanager MM von jedem der Computersysteme, zum Beispiel dem ersten System 11, als Mastermanager für alle Systeme 11 bis 1n ausgewählt, um den ausgewählten Mastermanager zum Steuern aller anderer Systeme zu bringen. Das als Mastermanager für alle anderen Systeme ausgewählte PE ordnet die Verarbeitung von Teilen eines Programms den entsprechenden anderen Systemen zur dezentralen Verarbeitung zu.
  • Mit dieser Anordnung können selbst Computersysteme, die gewöhnlich auf verschiedene Orte verteilt und getrennt genutzt werden, bei Bedarf in einheitlicher Weise gesteuert werden. Ferner wird ein erwünschtes Programm in zugeordneter Weise, wie oben erwähnt, abgearbeitet, um dadurch die Verarbeitungsgeschwindigkeit zu verbessern.
  • Daher sind, wenn es in der Prozeßblockgruppe 20, die von dem Prozeßmanager SM in dem damit verbundenen Computersystem gemanagt wird, keinen Prozeßblock gibt, dem ein vorbestimmtes Programm (Prozeß) zugeordnet werden kann, andere Computer erforderlich, um das vorbestimmte Programm über diesen Kommunikationsmanager CM auszuführen. Daher können alle oder die erforderlichen der ringartig verbundenen Computersysteme das entsprechende Programm in zugeordneter Weise ausführen.
  • Wenn alle Systeme 11 - 1n zu einem einzigen großen Computersystem vereinheitlicht werden, wird die Frage, welcher Mastermanager oder welches Computersystem ein "großer" Master sein sollte, bestimmt, wenn die Initialisierung zum Systembetrieb durchgeführt wird. Die Position des Masters muß nicht festgelegt sein und kann bei Bedarf für jede Initialisierung bestimmt werden.
  • Natürlich können die entsprechenden Computersysteme 11 - 1n gewöhnlich ihre individuellen Programme frei als einzelne unabhängige Computersysteme getrennt vom Ring ausführen.
  • Die Ausdehnung des Systemkonzepts dieses Ausführungsbeispiels führt zu der folgenden Systemstruktur.
  • Durch dem konventionellen Computersystem Hinzufügen der Funktion des Kommunikationsmanagers CM und Mastermanagers MM oder äquivalenter Funktionen und durch Verbinden der Computersysteme über die Kommunikationsmanager CM zu einem Ring wird bei konventionellen Computersystemen wie im obigen Ausführungsbeispiel ein Computersystem aufgebaut, das die Funktionsdezentralisierungs- und Lastzuordnungsfunktion ausfüllt. In diesem Fall kann eine Vielzahl von kleinen Computersystemen zu einem großen Computersystem vereinheitlicht werden, oder können größere und kleinere Computer zu einem noch größeren Computersystem vereinheitlicht werden, und zwar kann optional ein systematisch aufgerüstetes Computersystem aufgebaut werden.
  • Zu einem Ring verbundene konventionelle Computersysteme erfordern nur zumindest einen Kommunikationsmanager CM. Wenn darüber hinaus eine Vielzahl von Computersystemen zu einem Ring verbunden wird, kann die Anzahl der Kommunikationsmanager CM entsprechend der Anzahl der verwendeten Computersysteme verändert werden.
  • Das Hinzufügen des Mastermanagers zu dem konventionellen Computersystem dient zum Umwandeln einer Nachrichtenformatierung, die sich von denen in anderen Computersystemen unterscheidet, in eine in dem entsprechenden Empfängercomputersystem verwendete Nachrichtenformatierung und ist nicht unbedingt erforderlich, wenn das Nachrichtenformat im Sender- und im Empfängercomputersystem das gleiche ist.
  • Wie im ersten und im zweiten Ausführungsbeispiel beruht der Grund, warum beim Abarbeiten eines Prozesses eine Vielzahl von Programmen in miteinander zusammenarbeitender Beziehung verwendet werden kann, als ob ein einzelnes Computersystem arbeitet, auf der Tatsache, daß die entsprechenden Prozessoren einen Kanalprozessor ch.P aufweisen, der ihren Kommunikationskanal unabhängig managt. Daher muß für konventionelle Prozessoren und/oder Computersysteme, die keine solche Funktion aufweisen, eine CPU zum Steuern aller möglichen Kommunikationen zwischen ihnen verwendet werden, und dadurch wird die Gesamtverarbeitungskapazität erheblich eingeschränkt.
  • Fig. 5 zeigt eine bestimmte beispielhafte Struktur für jedes der in dem ersten und in dem zweiten Ausführungsbeispiel verwendeten PEs. Wie gezeigt, weist die PE eine CPU und eine Vielzahl von (zum Beispiel 4) Kanalprozessoren ch.P auf. Diese Kanalprozessoren ch.P selbst steuern und managen die entsprechenden Kommunikationskanäle derart, daß sie ein über diese Kommunikationskanäle empfangenes Nachrichtenpaket oder andere Nachrichten lesen und die CPU darüber informieren.
  • Die Anzahl der für jedes PE erforderlichen Kanalprozessoren ch.P variiert entsprechend der der PE selbst zugeordneten Funktionen. Zum Beispiel erfordert jedes PE im Fall der in Fig. 8 gezeigten jeweiligen PEs nur zwei Kanalprozessoren zur Verbindung mit benachbarten PEs. Dasjenige dieser PEs, das als Kommunikationsmanager CM ausgewählt ist, weist einen zusätzlichen Kanalprozessor zum Kommunizieren mit anderen Computern auf.
  • Während beim ersten und zweiten Ausführungsbeispiel eine Anordnung verwendet wird, bei der jedes PE eine minimale Anzahl von Kanalprozessoren aufweist, kann auch ein Durchlaßkanal als separate Strecke gebildet werden, über den zum Beispiel ein vor jedem PE vorgesehener weiterer (spare) Kanalprozessor mit dem entsprechenden weiteren (spare) Kanalprozessor irgendeines anderen PE verbunden ist. Bei einem solchen Aufbau kann die Kommunikation unter Verwendung dieser Strecke stattfinden, wenn eine besondere Verarbeitung erforderlich ist.
  • Fig. 6 zeigt die Struktur eines dritten Ausführungsbeispiels eines Computersystems, bei dem in der PE-Schleife 10 eine solche Durchlaßstrecke gebildet ist. Wie in Fig. 5 gezeigt, werden zum Beispiel zwei der vier Kanalprozessoren ch.P zum Verbinden benachbarter PEs verwendet, und die übrigen beiden Kanalprozessoren ch.P werden zum Bilden von Durchlaßstrecken mit anderen PEs verwendet. Es ist anzumerken, daß in Fig. 6 nur einige der Prozeßmanager SM des (der) in Fig. 3 oder in Fig. 4 gezeigten Computersystems (-systeme), die die Prozeßblöcke managen, der leichteren Erklärung halber gezeigt sind. Der Bequemlichkeit halber sind auch die Prozeßblöcke nicht gezeigt.
  • Im dritten Ausführungsbeispiel in Fig. 6 wiederum weisen PE&sub1; - PEm jeweils einen Mikroprozessor auf, der wiederum eine separate CPU und zumindest vier Kanalprozessoren ch.P, die von der CPU gemanagt werden, aufweist. Diese PEs sind jeweils über zwei der Kanalprozessoren, zum Beispiel einen ersten Kanal (ch11, ch21, ..., chm1) und einen zweiten Kanal (ch12, ch22, ..., chm2), mit benachbarten PEs verbunden. Diese PEs und andere (nicht gezeigte) PEs bilden eine ringartige PE-Schleife 10. Die verbleibenden beiden Kanäle, nämlich ein dritter Kanal (ch13, ch23, ..., chm3) und ein vierter Kanal (ch14, ch24, ..., chm4) dieser PEs sind mit den erforderlichen Anschlüssen eines Crossbar-Schalters CBS verbunden, um eine Durchlaßstrecke (eine Nebenkanalstrecke) zu bilden.
  • Bei einer solchen Anordnung sei angenommen, daß der Crossbar-Schalter CBS wie in Fig. 7 gezeigt verschaltet ist. Der dritte Kanal ch13 des PE&sub1; ist über den Crossbar-Schalter CBS mit einem vierten Kanal ch24 des PE&sub2; verbunden. Entsprechend ist der Kanal ch24 des PE&sub2; mit chm4 des PEm verbunden; und chm3 des PEm ist wiederum mit ch14 des PE&sub1; verbunden. Die drei PE&sub1;, PE&sub2; und PEm sind nämlich über den Crossbar-Schalter CBS zu einem Ring verbunden.
  • Für diese drei PEs sind die Basiskanalstrecke (PE-Schleife 10), die so geschaltet ist, daß sie alle anderen PEs zu einem Ring zusammenfaßt, und die Nebenkanalstrecken über den Crossbar-Schalter CBS auf die oben beschriebene Weise gebildet, so daß die im folgenden beschriebene dezentrale Verarbeitung möglich ist.
  • Wenn zum Beispiel ein Programm über die Basiskanalstrecke in erforderliche Blöcke aufgeteilt wird und die entsprechenden Blöcke einigen der PEs zur Ausführung zugeordnet werden, werden diejenigen der PEs, denen die dezentrale Verarbeitung zugeordnet ist und die die Resultate der Verarbeitung durch andere PEs benötigen, oder diejenigen, die im Verlauf der Verarbeitung Befehle von dem Mastermanager MM benötigen, über den Crossbar-Schalter CBS in den entsprechenden Nebenkanälen verbunden. Wenn also zwischen diesen miteinander verknüpften PEs Daten übertragen werden, werden die Nebenkanalstrecken nicht über die Basiskanalstrecke benutzt, so daß zwischen diesen PEs eine unabhängige Kommunikation ausgeführt werden kann, wodurch die Verarbeitungsgeschwindigkeit des Gesamtcomputersystems unabhängig von dem Zustand, in dem die Basiskanalstrecke benutzt wird, erheblich verbessert werden kann. Die Struktur und der Betrieb des Crossbar-Schalters CBS sind allgemein bekannt, und eine weitere Beschreibung wird weggelassen.
  • Obwohl in dem dritten Ausführungsbeispiel nur die jeweils vier eine Nebenstrecke (Nebenkanalstrecke) bildende Kanalprozessoren aufweisenden Teile PE&sub1; - PEm der PE- Schleife 10 gezeigt sind, ist die praktische Verwendung nicht darauf eingeschränkt, und verschiedene Veränderungen und Modifikationen sind möglich.
  • Es kann zum Beispiel eine Anordnung verwendet werden, bei der alle entsprechenden ringartig verbundenen PEs zumindest vier Kanalprozessoren aufweisen, und alle anderen Kanalprozessoren als die ringartig verbundenen über den Crossbar- Schalter verbunden sind. In diesem Fall können möglicherweise selektiv nur die erforderlichen PEs über die Nebenkanalstrecke verbunden sein. Wenn eine solche Nebenstrecke auf eine feste Weise gebildet werden kann, können die entsprechenden Kanäle direkt ohne Verwendung des Crossbar-Schalters verbunden sein.
  • Natürlich kann mit dem als drittes Ausführungsbeispiel gezeigten Computersystem das als das zweite Ausführungsbeispiel in Fig. 4 gezeigte größere System aufgebaut werden.
  • Fig. 8 zeigt ein viertes Ausführungsbeispiel des Computersystems nach dieser Erfindung. Wie in Fig. 8 gezeigt, weist das vierte Ausführungsbeispiel Blockgruppen 20 (vgl. Fig. 3) auf, die von den entsprechenden Prozeßmanagern SM&sub1; - SMn gemanagt werden und über die entsprechenden Pufferspeicher B&sub1;&sub1; - B1n mit einer gemeinsamen Busleitung BL verbunden sind, um dadurch einen Transfer auf eine als DMA (direct memory access = direkter Speicherzugriff) bezeichnete Weise auszuführen. Das Ausführungsbeispiel in Fig. 8 basiert auf der Systemstruktur des ersten Ausführungsbeispiels.
  • Daher kann nach dem vierten Ausführungsbeispiel die im ersten Ausführungsbeispiel erwähnte "Kommunikation zwischen in beliebigen Prozeßblockgruppen 20 ausgeführten Prozessen" direkt unter Verwendung der Busleitung BL über die entsprechenden Pufferspeicher B&sub1;&sub1; - B1n ausgeführt werden, und daher wird der Freiheitsgrad der PE-Schleife 10, die die ringartig verbundenen Kanalprozessoren ch.P (Mastermanager MM, Prozeßmanager SM&sub1; - SMn, Server S&sub1; - Sr und Kommunikationsmanager CM) aufweist, weiter verbessert. Bei der "Kommunikation zwischen den Prozessen" muß nur dann, wenn in einen Pufferspeicher eine Nachricht eingegeben wird, der entsprechende der Prozeßmanager SM&sub1; - SMn, die die entsprechenden Blockgruppen 20 managen, die eingegebene Nachricht an den bezeichneten Empfängerprozeßblock übertragen, und daher wird die Last an diesen Prozeßmanagern SM&sub1; - SMm als Element der PE-Schleife 10 erheblich erleichtert. Dies bringt eine erhebliche Verbesserung der Verarbeitungsgeschwindigkeit des Gesamtcomputersystems mit sich.
  • Die jeweiligen von den entsprechenden Prozeßmanagern SM&sub1; - SMn gemanagten Prozeßblockgruppen 20 sind über entsprechende Pufferspeicher B&sub1;&sub1; - B1n mit der Busleitung verbunden, um dadurch eine Datenübertragung und/oder einen Datenempfang bei der "Kommunikation zwischen den Prozessen" unabhängig von dem Zustand der entsprechenden Prozeßmanager zu erlauben, um dadurch insgesamt die Wartezeit für die Datenübertragung zu verkürzen.
  • Die verwendeten Pufferspeicher B&sub1;&sub1; - B1n sind vom FIFO (first-in first-out)-Typ. Auch gewöhnliche Speicher ohne solche Struktur können als Pufferspeicher B&sub1;&sub1; - B1n verwendet werden, wenn sie durch eine Speichersteuerungseinrichtung, etwa eine DMA-Steuerungseinrichtung, die zusammen mit diesen Speichern vorgesehen ist, mit einer FIFO-Funktion versehen werden.
  • Natürlich ist die Struktur des vierten Ausführungsbeispiels nicht nur auf das erste Ausführungsbeispiel sondern auch auf das zweite oder dritte Ausführungsbeispiel anwendbar.
  • Fig. 9 illustriert schematisch die Struktur eines fünften Ausführungsbeispiels des Computersystems nach dieser Erfindung. Wie in Fig. 9 gezeigt sind im fünften Ausführungsbeispiel Pufferspeicher B&sub2;&sub1; - B&sub2; (n+r+3) mit einer FIFO-Struktur vorgesehen, wobei jeweils einer zwischen beliebigen benachbarten PEs in der PE-Schleife 10 mit dem Mastermanager MM, den Prozeßmanagern SM&sub1; - SMn, dem Kommunikationsmanager CM und den Servern S&sub1; - Sr zwischengesetzt ist, so daß die Nachrichtenkommunikation, die sonst zwischen den entsprechenden PEs über die Kanalprozessoren ch.P und die Kommunikationskanäle ausgeführt würde, ferner über entsprechende der Pufferspeicher B&sub2;&sub1; - B&sub2; (n+r+3) ausgeführt wird.
  • Die über diese Pufferspeicher ausgeführte Nachrichtenkommunikation wird im folgenden in weiteren Einzelheiten beschrieben. Fig. 10 illustriert das Konzept der Verschaltung eines Teils der Schleife 10 aus den PEs und den Pufferspeichern, die im fünften Ausführungsbeispiel verwendet wird. Wie in Fig. 10 gezeigt, gibt es zwei Arten von Kommunikationskanälen, nämlich diejenigen für Ausgabe- und Eingabezwecke zwischen beliebigen benachbarten PEs und dementsprechend gibt es zwei Arten von Kanalpuffern, nämlich diejenigen, die als Ausgabe- und Eingabekanalpuffer OCB2 (i-1), OCB2i bzw. ICB&sub2; (i-1), ICB2i gezeigt sind.
  • Fig. 11 illustriert die Struktur dieser Kanalpuffer. Die Ausgangs- und Eingangspuffer sind in der Struktur gleich und haben, wie oben erwähnt, die FIFO-Form.
  • Auf diese Puffer wird in Paketeinheiten zugegriffen, die in einem Format dargestellt sind, das die entsprechenden Prozessoren interpretieren können.
  • Fig. 12 illustriert die Struktur eines Pakets, das aus den folgenden fünf Elementen aufgebaut ist:
  • i Inhalt einer Nachricht (der zu verarbeitende Inhalt);
  • ii: Nachrichtenübertragungselement (Verarbeitungsanfrageelement);
  • iii: Nachrichtenempfangselement (Verarbeitungsausführungselement);
  • iv: Der Datentyp, den das Nachrichtenempfangselement empfängt; und
  • v: Daten oder Wegweiser zu den Daten, die das Nachrichtenempfangselement empfängt.
  • Das Element iv bestimmt, ob v die Daten selbst oder einen Wegweiser zu den Daten darstellt.
  • Bei der Parallelverarbeitung mit einem gewöhnlichen Multiprozessor betragen viele Datensegmente, die ein Prozeß (Verarbeitungseinheit) sendet und/oder empfängt, einige bis zehn ungerade Wörter (a few to ten-odd words). Ein Einzelpaket stellt im Vorhinein zehn ungerade Wörter (ten-odd words) als Daten sicher. Der Datentyp in iv stellt dar, daß v selbst Daten sind (vgl. Paket 1-1 in Fig. 12).
  • Wenn eine die durch ein Paket sichergestellte Menge überschreitende Datenmenge übertragen/empfangen wird, gibt das Element iv an, daß v ein Wegweiser zu den Daten ist (Paket 1-2 in Fig. 12).
  • In diesem Fall werden die tatsächlichen Daten üblicherweise in einem für das Nachrichtenübertragungselement ausschließlichen Speicher gespeichert. Der Wegweiser gibt die Kopfadresse des Übertragungselements in dem ausschließlichen Speicher an, in dem die Daten exisitieren, und die Zahl der Datensegmente.
  • Es wird nun ein bestimmtes Beispiel für die Kommunikation gezeigt.
  • (1) Ein einfaches Beispiel
  • Situation: ein PEi-1 richtet eine Anfrage an einen benachbarten PEi, einen Prozeß auszuführen, und das benötigte PEi ist frei. Fig. 13 illustriert diese Situation.
  • Im folgenden wird das Verhalten PEi-1 und PEi in dieser Situation beschrieben.
  • PEi-1 gibt die folgenden Daten in die entsprechenden Elemente eines Pakets ein, und zwar wie folgt: Nachricht, die an sendet Datentyp; und Daten (oder Wegweiser zu den Daten),
  • und lädt dieses Paket in den Ausgangskanalpuffer OCB 2 (i-1), zu welcher Zeit PEi-1 von diesem Prozeß befreit wird und sich der Verarbeitung des nächsten Prozesses zuwenden kann.
  • PEi liest periodisch eine in dem ersten in den Puffer OCB 2 (i-1) geladenen Paket gespeicherte Nachricht aus, führt den bezeichneten Prozeß aus und gibt die folgenden Daten in die entsprechenden Elemente eines Pakets ein, und zwar wie folgt: Nachricht, die an sendet; Datentyp; und Daten (oder Wegweiser zu den Daten),
  • und lädt dieses Paket in den Eingangskanalpuffer ICB2(i-1).
  • PEi-1 liest periodisch das erste in das Paket ICB&sub2; (i-1) geladene Paket aus und prüft, ob der geladene Inhalt dem Paketinhalt entspricht, der in den ersten der vorhergehenden Ausgangskanalpuffer OCB2 (i-1) geladen ist. Wenn ja, stellt es vorübergehend den bis dahin ausgeführten Prozeß zurück, empfängt die Daten in dem Eingangspaket ICB&sub2; (i-1), verschiebt die Pakete in diesen Puffern OCB2 (i-1) und ICB&sub2; (i-1) eines nach dem anderen und aktualisiert dieselben. PEi-1 eröffnet dann wieder die Ausführung des bis dahin zurückgestellten Prozesses.
  • (2) Ein kompliziertes Beispiel
  • Situation: Obwohl ein PEi-1 an ein benachbartes PEi die Anfrage richtet, einen Prozeß auszuführen, ist das PEi mit der Ausführung eines anderen Prozesses beschäftigt, so daß PEi an ein benachbartes freies PEi+1 die Anfrage richtet, diesen Prozeß anstelle von PEi auszuführen.
  • Fig. 14 illustriert diese Situation, wobei das Verhalten von PEi-1, PEi und PEi+1 in dieser Situation im folgenden gezeigt wird. PEi+1 gibt die folgenden Daten in die entsprechenden Elemente eines Pakets ein, und zwar wie folgt: Nachricht, die an sendet; Datentyp; und Daten (oder Wegweiser zu den Daten),
  • und lädt dieses Paket in den Ausgangskanalpuffer OCB2(i-1), zu welcher Zeit PEi-1 von diesem Prozeß befreit wird und sich der Ausführung des nächsten Prozesses zuwendet.
  • PEi liest periodisch das erste in den Puffer OCB2(i-1) geladene Paket aus, in welchem Fall der gerade ausgeführte Prozeß vorübergehend zurückgestellt wird. PEi erkennt also, daß eine Nachricht für PEi angekommen ist, führt jedoch gerade einen anderen Prozeß aus, so daß es an ein benachbartes freies PEi+1 die Anfrage richtet, diesen Prozeß anstelle von PE auszuführen. Und zwar gibt PEi die folgenden Daten in die entsprechenden Elemente eines Pakets ein: Nachricht, die an sendet; Datentyp; und Daten (oder Wegweiser zu den Daten),
  • und lädt dieses Paket in den Ausgangskanalpuffer OCB2i, überträgt das Element iii des zuvor in den Puffer OCB2(i-1) geladenen Pakets von PEi zu PEi+1 und eröffnet wieder den bis dahin zurückgestellten Prozeß.
  • PEi+1 liest periodisch eine in dem in den ersten Ausgangskanalpuffer OCB2i geladenen Paket gespeicherte Nachricht aus und führt den bezeichneten Prozeß aus, wenn es frei ist.
  • PEi+1 gibt die folgenden Daten in die entsprechenden Elemente eines Pakets ein, und zwar wie folgt: Nachricht, die an sendet Datentyp; und Daten (oder Wegweiser zu den Daten),
  • und lädt dieses Paket in den Eingangskanalpuffer ICB2i.
  • Pi liest periodisch das erste in den Puffer ICB&sub2;i geladene Paket aus und prüft, ob dieser Inhalt demjenigen des ersten in den vorhergehenden Ausgangskanalpuffer OCB2i geladenen Pakets entspricht. Wenn ja, stellt PEi vorübergehend den bis dahin ausgeführten Prozeß zurück, empfängt die Daten in dem Paket im Puffer ICB2i und führt iii des ersten in den vorhergehenden Ausgangskanalpuffer OCB2(i-1) geladenen Pakets von PEi+1 zu PEi zurück. Ferner kopiert es die Daten in dem Paket im Eingangskanalpuffer ICB2i und lädt diese Daten in den Eingangskanalpuffer CB2(i-1), und zwar gibt es die folgenden Daten in die entsprechenden Elemente eines Pakets ein, und zwar wie folgt: Nachricht, die an sendet Datentyp; und Daten (oder Wegweiser zu den Daten),
  • und lädt dieses Paket in den Eingangskanalpuffer ICB2(i-1). Es verschiebt und aktualisiert dann die Pakete im Ausgangs- und Eingangskanalpuffer bzw. OCB2i eins nach dem anderen und eröffnet wieder die Ausführung des bis dahin zurückgestellten Prozesses.
  • Im Fall eines komplizierteren Beispiels, kann ein ähnliches Verfahren verwendet werden, um ein freies PE zu finden, und dieses zum Ausführen eines angefragten Prozesses zu bringen.
  • Im fünften Ausführungsbeispiel wird der Prozeß, bei dem sich PE auf den Inhalt eines Kanalpuffers bezieht, vorrangig zu irgendeinem anderen Prozeß ausgeführt.
  • Nach dem fünften Ausführungsbeispiel wird die Zeit, für die die entsprechenden PEs, die einen Teil der PE-Schleife 10 bilden, einer Nachrichtenkommunikation zugewandt sind, erheblich vermindert. Selbst wenn die parallel in diesen PEs ausgeführten Prozesse in der Anzahl ansteigen, können sie mit einer hohen Geschwindigkeit rationell durchgeführt werden, um dadurch ein sehr effizientes Betriebssystem zu realisieren.
  • Während Fig. 9 die Struktur zeigt, bei der die Pufferspeicher B&sub2;&sub1; - B2(n+r+3) jeweils zwischen entsprechende Benachbarte aller PEs, die die PE-Schleife 10 bilden, zwischengesetzt sind, sind die Position und die Anzahl der Pufferspeicher optional, und diese entsprechenden Pufferspeicher können auf bestimmte Weise ausschließlich zwischen entsprechenden Benachbarten von verschiedenen bestimmten PEs zwischengesetzt werden.
  • Die Struktur des fünften Ausführungsbeispiels kann natürlich nicht nur auf das erste sondern genauso auf das zweite bis vierte Ausführungsbeispiel angewendet werden.
  • Fig. 15 illustriert das Konzept der Struktur eines sechsten Ausführungsbeispiels des Computersystems nach dieser Erfindung. In dem sechsten Ausführungsbeispiel in Fig. 15 sind jeweils parallel zwischen die Entsprechenden der als Prozeßmanager SM&sub1; - SMn bestimmten die PE-Schleife 10 aufbauenden PEs und die entsprechenden von den entsprechenden Prozeßmanagern gemanagten Prozeßblockgruppen 20 Speicherschutzeinheiten 30 vorgesehen, um eine Zerstörung der als Prozeßblöcke PF (PF&sub1; - PFk) in den entsprechenden Prozeßblockgruppen 20 geladenen Nutzerprogramme durch unautorisierten Zugriff des Prozeßmanagers auf die entsprechende Prozeßblockgruppe 20 zu verhindern.
  • Das sechste Ausführungsbeispiel wird nun in weiteren Einzelheiten anhand Fig. 16 beschrieben, die eine beispielhafte bestimmte Struktur eines beliebigen Paares aus einer Prozeßblockgruppe 20 und einer Speicherschutzeinheit 30 zeigt.
  • Wie in Fig. 16 gezeigt, weist die Prozeßgruppe (Speicher) einen Hauptspeicher 21, dessen Speicherbereich in k Seiten P&sub1; - Pk eingeteilt ist, und ein Gate 22 auf, das die Datenanschlüsse des Hauptspeichers 21 mit den Datenanschlüssen des entsprechenden Prozeßmanagers PE verbindet, wobei für jede Seite ein Nutzer bestimmt ist. Die entsprechenden Prozeßblöcke PF werden in den entsprechenden Seiten registriert und gespeichert. Es wird angenommen, daß nur der auf der ersten Seite P&sub1; der Seiten P&sub1;-Pk registrierte Ote Prozeßblock (der zum Beispiel PF&sub1; sein kann) ein frei zugänglicher Block ist, für den kein bestimmter Nutzer bestimmt ist.
  • Wenn ein Prozeßmanager Adressendaten AD, die Nutzernamendaten UND, Seitenadressendaten PAD und Bytedaten BD beinhalten können, wie in Fig. 17 gezeigt, der entsprechenden Prozeßblockgruppe 20 zuführt, um einen beliebigen Prozeßblock zu bestimmen, wird eine der durch die Adressendaten AD bestimmten Adresse entsprechende Seite in dem Hauptspeicher 21 dieser Prozeßblockgruppe 20 aktiv, so daß die in diese Seite gespeicherten Daten ausgelesen und dem entsprechenden Prozeßmanager zugeführt werden oder die von dem entsprechenden Manager zugeführten Daten in diese Seite eingeschrieben werden. Wenn zu dieser Zeit ein "Unautorisierter Zugriff"-Signal FAIL, das später im einzelnen beschrieben wird, der Prozeßgruppe (Speicher) zugeführt worden ist, wird das Gate 22 geschlossen, um das Datenauslesen und -einschreiben zu verhindern.
  • Wie in Fig. 16 gezeigt, beinhaltet die Speicherschutzeinheit 30 einen Verifiziertabellenspeicher 31, eine Auslese-/Einschreibsteuerungsschaltung 32, einen [0]- Dekodierer 33, eine Nichtübereinstimmungs-Erfassungsschaltung 34 und einen "Unautorisierter Zugriff"-Signalgenerator 35. Sie prüft, ob der durch die von dem entsprechenden Prozeßmanager ausgegebenen Adressendaten AD bestimmte Zugriff von einem unautorisierten Nutzer gemacht wird. Wenn dieser Zugriff ein unautorisierter ist, erzeugt die Schutzeinheit ein "Unautorisierter Zugriff"-Signal FAIL, um die Verwendung des Hauptspeichers durch diesen Nutzer zu verhindern.
  • Wie in Fig. 17 gezeigt, beinhaltet der Verifiziertabellenspeicher 31 die gleiche Anzahl von Nutzerdeskriptoren U&sub1; - Uk wie die Seiten jedes der Hauptspeicher 21 der Prozeßblockgruppe 20. In die entsprechenden Nutzernamenbereiche 311 der Nutzerdeskriptoren U&sub1; - Uk sind die entsprechenden Nutzernamen UN, die die entsprechenden der Seiten P&sub1; - Pk jedes der Hauptspeicher 21 der Prozeßblockgruppe 20 nutzen, eingeschrieben. Die Nutzernamen stellen die entsprechenden ldentifikations(ID)- Zahlen 0 - (k - 1) der Prozeßblöcke PF&sub1; - PFk dar. Wenn der Verifiziertabellenspeicher 31 mit den in den Adressendaten AD enthaltenen Seitenadressendaten PAD und ferner mit einem Auslesesignal R (vgl. Fig. 1 6) aus der Auslese-/Einschreibsteuerungsschaltung 32 versorgt worden ist, liest er den in den Nutzerdatenbereich 311 des von diesen Seitenadressendaten PAD bestimmten Nutzerdeskriptors geschriebenen Nutzernamen UN aus und führt den Nutzernamen der Nichtübereinstimmungs-Erfassungsschaltung 34 zu.
  • Wenn der Verifiziertabellenspeicher 31 mit den Seitenadressendaten PAD der Adressendaten AD und ferner mit einem Auslesesignal W (vgl. Fig. 16) aus der Auslese/Einschreibsteuerungsschaltung 32 versorgt worden ist, schreibt er den Namen (die Identifikationsnummer dieses Prozeßblocks), der durch die von dem entsprechenden Prozeßmanager zugeführten Nutzernamendaten UND dargestellt wird, als Nutzernamen UN in den Nutzernamenbereich 311 des von den Seitenadressendaten PAD bestimmten Nutzerdeskriptors ein.
  • Die entsprechenden Nutzerdeskriptoren U&sub1; - Uk des Verifiziertabellenspeichers 31 weisen ein zusätzliches Benutzungsverhinderungsbit 312 auf, wie in Fig. 17 gezeigt. Das Benutzungsverhinderungsbit 31 2 hat einen dort hineingeschriebenen logischen Wert "0", der angibt, daß die Benutzung der entsprechenden Prozeßblockgruppe erlaubt ist. Unter der Annahme, daß dem Verifiziertabellenspeicher 31 ein Auslesesignal W zugeführt wird, wenn ihm bereits ein "Unautorisierter Zugriff"-Signal FAIL zugeführt worden ist, wird ein dem zu dieser Zeit ausgewählten Nutzerdeskriptor entsprechendes Benutzungsverhinderungsbit mit einem logischen Wert "1" geschrieben, was anzeigt, daß die Benutzung des entsprechenden Prozeßblocks verboten ist.
  • Wenn in der Speicherschutzeinheit 30 in Fig. 1 6 die in den Adressendaten AD enthaltenen Nutzernamendaten UND von dem den Oten Prozeßblock anzeigenden Wert [0] verschieden sind, das heißt, wenn ein anderer Nutzer als das OS (Betriebssystem) des Systems das Computersystem nach diesem Ausführungsbeispiel nutzt, erfaßt der [O]-Dekoder 33 dies und erzeugt ein Überprüfungserlaubnissignal (zum Beispiel ein logisches "1"-Signal) CHEN, das dann dem "Unautorisierter Zugriff"-Signalgenerator 35 zugeführt wird.
  • In der Speicherschutzeinheit 30 weist die Nichtübereinstimmungs- Erfassungsschaltung 34 einen internen digitalen Vergleicher auf, der den durch die Nutzernamendaten UND der Adressendaten AD dargestellten Nutzernamen UN mit dem von dem Verifiziertabellenspeicher 31 ausgegebenen Nutzernamen UN vergleicht und ein Nichtübereinstimmungssignal D&sub1; (zum Beispiel ein logisches "1"-Signal) erzeugt, wenn Nichtübereinstimmung gilt, und dieses Signal dem "Unautorisierter Zugriff"- Signalgenerator 35 zuführt.
  • Der "Unautorisierte Zugriff"-Signalgenerator 35 weist ein UND-Gatter 351, wie in Fig. 1 6 gezeigt, auf, das ein "Unautorisierter Zugriff"-Signal FAIL erzeugt (zum Beispiel ein logisches "1 "-Signal), vorausgesetzt, daß ihm von dem [0]-Dekoder 33 ein Überprüfungserlaubnissignal CHEN und ferner von der Nichtübereinstimmungs- Erfassungsschaltung 34 ein Nichtübereinstimmungssignal D&sub1; zugeführt worden ist, und führt dieses Signal FAIL der Auslese-/Einschreibsteuerungsschaltung 32, dem Gate 22 der Prozeßblockgruppe und dem Unterbrechungsanschluß des entsprechenden Prozeßmanagers zu.
  • Die Auslese-/Einschreibsteuerungsschaltung 32 liefert ein Auslesesignal R und/oder ein Schreibsignal W an den Verifiziertabellenspeicher 31, und zwar entsprechend dem von dem entsprechenden Prozeßmanager zugeführten Auslese- /Einschreibsteuerungssignal R/W.
  • Zur Veranschaulichung wird nun der Betrieb des sechsten Ausführungsbeispiels beschrieben. Zunächst werden, wenn von dem entsprechenden Prozeßmanager Adressendaten AD ausgegeben werden, die in den Adressendaten enthaltenen Nutzernamendaten UND von dem [O]-Dekoder 33 geprüft.
  • Wenn der Wert ein anderer als die den Oten Prozeßblock anzeigende [O] ist, bestimmt der [0]-Dekoder 33, daß diese Benutzung von einem Nutzer außerhalb des Systems vorgenommen wird, und gibt ein Überprüfungserlaubnissignal CHEN aus, um dadurch den "Unautorisierter Zugriff"-Signalgenerator 35 freizugeben.
  • Parallel zu diesem Betriebsschritt gibt die Auslese-/Einschreibsteuerungsschaltung 32 das Auslesen des Verifiziertabellenspeichers 31 frei und bewirkt das Auslesen des Nutzernamens UN, der in den Nutzernamenbereich 31 des durch den in den Adressendaten AD enthaltenen Adressendaten PAD bestimmten Nutzerdeskriptors unter den Nutzerdeskriptoren U&sub1; - Uk eingeschrieben ist, aus dem Verifiziertabellenspeicher 31 und das Zuführen zu der Nichtübereinstimmungs-Erfassungsschaltung 34.
  • Wenn der von dem Verifiziertabellenspeicher 31 ausgegebene Nutzernamen UN nicht mit dem durch die in den Adressendaten AD enthaltenen Nutzernamendaten UND dargestellten Nutzernamen UN übereinstimmt, erfaßt die Nichtübereinstimmungs- Erfassungsschaltung 34 diese Tatsache, und der "Unautorisierte Zugriff"- Signalgenerator 35 erzeugt ein "Unautorisierter Zugriff"-Signal FAIL.
  • Durch das "Unautorisierte Zugriff"-Signal FAIL wird der logische Wert des Benutzungsverhinderungsbits 31 2 des zu dieser Zeit ausgewählten Nutzerdeskriptors in dem Verifiziertabellenspeicher 31 als "1" wiedergeschrieben, um die Benutzung der entsprechenden Prozeßblockgruppe durch diesen Nutzer zu verhindern, und durch dieses "Unautorisierte Zugriff"-Signal FAIL wird das Gate 22 für die Prozeßblockgruppe 20 geschlossen, um dadurch den Zugriff zu verhindern.
  • Gleichzeitig damit wird der entsprechende Prozeßmanager von dem "Unautorisierten Zugriff"-Signal FAIL unterbrochen, um den gerade auszuführenden Zugriff zu stoppen, und der nächste Nutzer wird automatisch von der Prozeßumschaltfunktion ausgewählt, die der Prozeßmanager selbst aufweist.
  • Wenn bei dem obigen Betriebsschritt der von dem Verifiziertabellenspeicher 31 ausgegebene Nutzernamen UN mit dem von den in den Adressendaten enthaltenen Nutzernamendaten UND angegebenen Nutzernamen UN übereinstimmt, wird festgestellt, daß der stattfindende Zugriff von einem autorisierten Nutzer vorgenommen wird, so daß die Daten aus der entsprechenden Prozeßblockgruppe 20 ausgelesen oder in sie eingeschrieben werden.
  • Nach dem sechsten Ausführungsbeispiel sind die in die Prozeßblockgruppe 20 geladenen jeweiligen Nutzerprogramme so aufgebaut, daß sie einander nicht stören, um dadurch die entsprechenden Programmschritte zu gewährleisten und wirksam eine mögliche Zerstörung des Inhalts eines Nutzerspeichers durch falschen Zugriff durch einen anderen Nutzer zu verhindern.
  • Die Struktur der Speicherschutzeinheit 30 ist nicht auf die in Fig. 16 gezeigte eingeschränkt und kann eine beliebige andere sein, die insgesamt eine Funktion zum getrennten Aufnehmen von aus dem entsprechenden Prozeßblock ausgegebenen Adressendaten, zum Überprüfen, ob die Adressenposition und der durch diese Adressenposition bestimmte Prozeßblockdeskriptor (Nutzername) der tatsächlichen Struktur der richtigen Prozeßblockgruppe entspricht, und zum Unterbinden den Zugriffs des diese Adressendaten verwendenden Prozeßmanagers, wenn sie sich nicht entsprechen, aufweist.
  • Die die Speicherschutzeinheit 30 nach dem sechsten Ausführungsbeispiel enthaltende Struktur kann auf alle anderen oben beschriebenen Ausführungsbeispiele angewendet werden.
  • Obwohl diese Erfindung wie oben beschrieben aufgebaut ist, können verschiedene Veränderungen und Modifikationen bei tatsächlichen Anwendungen vorgenommen werden und sind nicht auf das erste bis sechste Ausführungsbeispiel beschränkt. Die Computersysteme nach dieser Erfindung können sowohl in Form von Hardware als auch in Form von Software, die die CPU steuert, aufgebaut sein. Der letztgenannte Aufbau ist wohl noch effizienter.

Claims (11)

1. Computersystem mit:
einer Anzahl von Netzwerkprozessorelementen (PE) mit jeweils zumindest drei Prozessoren und zumindest einem Prozeßspeicher, wobei zwei der drei Prozessoren als Kanalprozessoren (ch.P) bestimmt sind, wobei jeder Kanalprozessor unabhängig Kommunikationsvorgänge steuert, und der dritte Prozessor als Hauptprozessor bestimmt ist;
wobei die Anzahl von Netzwerkprozessorelementen zu einem aus Kanalsegmenten, die durch die Kanalprozessoren verbunden sind, gebildeten Ring verbunden sind, um eine Prozessorelementschleife (10) zu bilden;
wobei einige aus der Anzahl von Netzwerkprozessorelementen als Prozessmanager (SM&sub1;, SM&sub2;, SMn) bestimmt sind und jeder mit jedem der Prozeßmanager verknüpfte Speicher eine Prozeßblockgruppe (20) bildet, die eine Gruppe von Prozessen speichert, die von den Prozeßmanagern zugeordnet wird, so daß ein bestimmter Job ausgeführt wird; und
wobei zumindest eines der Netzwerkprozessorelemente, und zwar ein anderes als die als die Prozessmanager bestimmten Netzwerkprozessorelemente, als Mastermanager (MM) bestimmt ist, um alle Prozeßmanager zu managen.
2. Computersystem nach Anspruch 1, bei dem Kanalprozessoren (ch13, ch23, chm3), und zwar andere als die zur Verbindung mit einem benachbarten Prozessorelement (PE) zum Bilden der Prozessorelementschleife (10) verwendeten, zwischen zumindest zwei Prozessorelemente geschaltet sind, um eine entsprechende Nebenstrecke zwischen diesen Prozessorelementen zu bilden.
3. Computersystem nach Anspruch 2, bei dem ein Crossbarschalter (CBS) zwischen die entsprechenden für die Nebenstrecke verwendeten Kanaiprozessoren (ch13, ch23, chm3) zwischengeschaltet ist, um zwischen beliebigen Prozessorelementen (PE) entsprechend einem Modus, in den der Crossbarschalter geschaltet ist, eine Nebenstrecke zu bilden.
4. Computersystem nach einem der vorhergehenden Ansprüche, bei dem zumindest eines der Prozessorelemente (PE), das einen Teil der Prozessorelementschleife (10) bildet, und zwar ein anderes als der Mastermanager (MM) und die Prozeßmanager (SM&sub1;, SM&sub2;, SMn), als Kominunikationsmanager (CM) bestimmt ist, um mit einem anderen Computersystem zu kommunizieren, wobei die Prozessorelementschleife über den Kommunikationsmanager mit einem anderen Computersystem verbunden ist.
5. Computersystem nach Anspruch 4, bei dem eine Anzahl von Computersystemen (11, 12, 1n) ferner mit dem Kommunikationsmanager als Knoten zu einem Ring verbunden ist.
6. Computersystem nach Anspruch 5, bei dem der Mastermanager (MM) des Computersystems, wenn in den von den Prozeßmanagern in einem Computersystem gemanagten Prozeßblockgruppen (20) kein Prozeßblock existiert, dem ein vorbestimmtes Programm zugeordnet werden kann, über den Kommunikationsmanager (CM) an ein anderes der Computersysteme aus der zu einem Ring verbundenen Anzahl die Anfrage richtet, das vorbestimmte Programm auszuführen, und zwar derart, daß alle oder die erforderlichen der zu einem Ring verbundenen Computersysteme (11, 12, 1n) ihr entsprechendes Programm in einer dispersiven Prozessorweise ausführen.
7. Computersystem nach einem der vorhergehenden Ansprüche, ferner mit:
einer Busleitung (BL); und
einer Anzahl von Pufferspeichern (B&sub1;&sub1;, B&sub1;&sub2;, B1n), wobei jeder zwischen die Busleitung und eine entsprechende der Prozeßblockgruppen (20) zwischengeschaltet ist, um zwischen den Prozeßblöcken (PF&sub1;, PF&sub2;, PFk) in der Prozeßblockgruppe übertragene Daten auf einer FIFO-Basis vorübergehend zu speichern.
8. Computersystem nach einem der vorhergehenden Ansprüche, ferner mit:
einem Pufferspeicher (B&sub2;&sub1;, B&sub2;&sub2;, ...), der zwischen beliebige benachbarte von allen Prozessorelementen (PE), die einen Teil der Prozessorelementschleife (10) bilden, oder in eine vorbestimmte Position bei den Prozessorelementen zwischengeschaltet ist, um zwischen den Prozessorelementen übertragene Daten auf einer FIFO-Basis vorübergehend zu speichern.
9. Computersystem nach Anspruch 8, bei dem die Kommunikation zwischen den Prozessorelementen (PE) durch eine Nachrichtenkommunikation ausgeführt wird, die als Medium ein Paket verwendet, das einen erwünschten verarbeiteten Inhalt (1), Sender(II)- und Empfänger(III)-Elementdeskriptoren für den verarbeiteten Inhalt und Daten (V) enthält; und
die entsprechenden Prozessorelemente, zwischen die der Pufferspeicher zwischengeschaltet ist, so programmiert sind, daß sie am bevorzugtesten einen Prozeß ausführen, der sich auf den Inhalt von in den Pufferspeicher geladenen Paketen bezieht.
10. Computersystem nach einem der vorhergehenden Ansprüche, ferner mit:
einer Schutzeinrichtung (30) zum getrennten Empfangen von von einem Prozeßmanager (SM&sub1;, SM&sub2;, SMn) erzeugten Adressendaten an die entsprechende Prozeßblockgruppe (20), Überprüfen, um zu erkennen, ob die Adressenposition der Adressendaten und der durch die Adressenposition bestimmte Prozeßblockdeskriptor der tatsächlichen Struktur der Prozeßblockgruppe ent sprechen, und Verhindern des Zugriffs des Prozeßmanagers unter Verwendung der Adressendaten, wenn keine Entsprechung besteht.
11. Computersystem nach Anspruch 10, bei dem die Prozeßblockgruppen (20) jeweils die entsprechenden Prozeßblöcke (PF&sub1;, PF&sub2;, PFk) entsprechenden Anzahlen von Seiten (P&sub1; - Pk) zuordnen und sie darin registrieren;
die Adressendaten zumindest Daten zum Bestimmen einer Seite für die entsprechende Prozeßblockgruppe und Daten zum Anzeigen des Deskriptors jedes der entsprechenden Prozeßblöcke beinhalten; und
die Schutzeinrichtung (30) eine Verifiziertabelle zum Ausgeben einen Prozeßblockdeskriptor der entsprechenden Prozeßblockgruppe anzeigender Daten, und zwar auf der Basis der Daten zum Bezeichnen einer Seite in den empfangenen Adressendaten; eine Bestimmungseinrichtung (34) zum Vergleichen der einen Prozeßblockdeskriptor anzeigenden und von der Verifiziertabelle ausgegebenen Daten mit den den Prozeßblock deskriptor der empfangenen Adressendaten anzeigenden Daten, um zu bestimmen, ob sich diese Daten entsprechen; und eine Einrichtung (22) zum Steuern der Freigabe/Verhinderung des Zugriffs des Prozeßmanagers auf der Basis der Resultate der Bestimmung durch die Bestimmungseinrichtung beinhaltet.
DE19883855338 1987-03-11 1988-03-10 Rechnersystem Expired - Fee Related DE3855338T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP62055891A JPS63221452A (ja) 1987-03-11 1987-03-11 Mpu間通信方法
JP62058095A JPS63223948A (ja) 1987-03-13 1987-03-13 マルチプロセツサosに於けるプロセツサ間通信方法
JP62087782A JP2855326B2 (ja) 1987-04-09 1987-04-09 コンピユータ・システム
JP62124930A JPS63289666A (ja) 1987-05-21 1987-05-21 コンピュ−タ・システム
JP62333251A JPH01173243A (ja) 1987-12-28 1987-12-28 記憶保護装置

Publications (2)

Publication Number Publication Date
DE3855338D1 DE3855338D1 (de) 1996-07-11
DE3855338T2 true DE3855338T2 (de) 1997-01-02

Family

ID=27523267

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19883855338 Expired - Fee Related DE3855338T2 (de) 1987-03-11 1988-03-10 Rechnersystem

Country Status (2)

Country Link
EP (1) EP0286240B1 (de)
DE (1) DE3855338T2 (de)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3984819A (en) * 1974-06-03 1976-10-05 Honeywell Inc. Data processing interconnection techniques
GB2077468B (en) * 1980-06-04 1984-10-24 Hitachi Ltd Multi-computer system with plural serial bus loops
US4443850A (en) * 1981-12-01 1984-04-17 Burroughs Corporation Interface circuit for subsystem controller
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
JP2644718B2 (ja) * 1983-12-28 1997-08-25 株式会社日立製作所 コンピュータシステム

Also Published As

Publication number Publication date
DE3855338D1 (de) 1996-07-11
EP0286240B1 (de) 1996-06-05
EP0286240A3 (en) 1990-07-25
EP0286240A2 (de) 1988-10-12

Similar Documents

Publication Publication Date Title
DE3750938T2 (de) Multiprozessorsystem.
DE3114961C2 (de)
DE69028371T2 (de) Verfahren und Vorrichtung zur Ausnutzung der Kommunikationsbandbreite und Zurverfügungstellung eines gemeinsamen Speichers
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
CH634940A5 (en) Channel-adapter arrangement
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE68928316T2 (de) Vorrichtung zur anteiligen nutzung von betriebsmitteln eines hauptrechners zwischen einer vielzahl von entfernten rechnern
DE69108434T2 (de) Mehrgruppen-Signalprozessor.
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
DE2917441A1 (de) Multiprozessoranlage
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE3131341A1 (de) "pufferspeicherorganisation"
DE1299145B (de) Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen
DE69027806T2 (de) Multifunktionskoppler zwischen einer zentralen Verarbeitungseinheit eines Rechners und verschiedenen Peripheriegeräten dieses Rechners
DE3880180T2 (de) Digitales fernsprechvermittlungssystem mit einem nachrichtenverteiler mit adressenumsetzung.
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
EP0184706B1 (de) Schnittstelleneinrichtung
DE69727172T2 (de) Verwendung eines Prozessorbus für die E/A-Verkehrsübertragung
DE19780639C2 (de) Arbeitsübernahmesystem

Legal Events

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