[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69526751T2 - Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen - Google Patents

Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen

Info

Publication number
DE69526751T2
DE69526751T2 DE69526751T DE69526751T DE69526751T2 DE 69526751 T2 DE69526751 T2 DE 69526751T2 DE 69526751 T DE69526751 T DE 69526751T DE 69526751 T DE69526751 T DE 69526751T DE 69526751 T2 DE69526751 T2 DE 69526751T2
Authority
DE
Germany
Prior art keywords
cluster
address
physical
access request
logical
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
DE69526751T
Other languages
English (en)
Other versions
DE69526751D1 (de
Inventor
Takeshi Yamazaki
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE69526751D1 publication Critical patent/DE69526751D1/de
Application granted granted Critical
Publication of DE69526751T2 publication Critical patent/DE69526751T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein ein Mehrprozessorsystem und insbesondere ein Mehrprozessorsystem zum Verwalten eines Prozessors in jedem Cluster.
  • Falls ein Speicherzugriffsvorgang in einem Mehrprozessorsystem dieser Art ausgeführt wird, kann jeder dieser Prozessoren eigene Adressenübersetzungstabellen bezüglich aller Adressenräume aufweisen und die Adressenübersetzungen getrennt ausführen. In diesem Fall kann jedoch das folgende Problem hinsichtlich der Speicherkapazität auftreten. Die Gesamtspeicherkapazität der Adressenübersetzungstabellen, die für das ganze Mehrprozessorsystem erforderlich wäre, würde proportional zum Quadrat der Anzahl der im Mehrprozessorsystem verwendeten Prozessoren ansteigen.
  • Falls mehrere Prozessoren auf denselben Datenraum zugreifen, ist die diesem Datenraum entsprechende Adressenübersetzungstabelle verteilt in mehreren Prozessoren gespeichert. Daher werden diese verteilten Adressenübersetzungstabellen über mehrere Prozessoren aktualisiert, und das Aktualisieren der Tabellen wird daher komplex.
  • Kai Li und Paul Hudak haben das Speicherkohärenzproblem beim Entwickeln und Verwirklichen eines geteilten virtuellen Speichers bei lose gekoppelten Mehrfachprozessoren untersucht. Die Untersuchung ist auf den Seiten 321-359 von ACM (Association for Computing Machinery) Transactions on Computer Systems, Band 7, Nr. 4, November 1989 beschrieben. Der geteilte virtuelle Speicher ist ein von einer Anzahl von Prozessoren geteilt verwendeter einzelner Adressenraum. Der geteilte virtuelle Speicher bildet einen virtuellen Adressenraum, der zwischen allen Prozessoren in einem lose gekoppelten Mehrprozessorsystem mit einem verteilten Speicher geteilt verwendet wird. Jeder Prozessor kann direkt auf jeden Speicherort im Adressenraum zugreifen. Der geteilte virtuelle Speicher teilt nicht nur Daten zwischen physikalischen Speichern und Platten, wie es bei einem herkömmlichen virtuellen Speichersystem der Fall ist, sondern er teilt auch Daten zwischen den physikalischen Speichern der einzelnen Prozessoren. Jeder Prozessor hat eine Abbildungsverwaltungseinrichtung zum Abbilden zwischen lokalen Speichern und dem geteilten virtuellen Speicheradressenraum. Weil der geteilte Speicher selbst ebenso wie der traditionelle virtuelle Speicher nur virtuell existiert, ruft ein Speicherabruf einen Seitenfehler hervor, wenn die den Speicherort enthaltende Seite nicht im aktuellen physikalischen Speicher eines Prozessors liegt. Daher besitzt die Abbildungsverwaltungseinrichtung die Adressenübersetzungstabelle im ganzen Speicherplatz im System.
  • In JP-A-05-181751 ist ein ursprungsseitiges Prozessorelement (PE) mit einem Systemadressenregister und einer PE- Umwandlungstabelle zum Umwandeln logischer PE-Nummern in allen PEs in reale PE-Nummern offenbart. Ein empfangsseitiges PE ist mit einem realen Adressenregister zum Laden der realen Adressen des eigenen Hauptspeichers und einer Seitentabelle zum Umwandeln von Seitennummern nur seines eigenen Hauptspeichers in reale Seitenadressen versehen. Eine Anforderungsausgabeschaltung in einem Netzwerk empfängt eine reale PE-Nummer von der Ursprungsseite, das PE gibt ein Anforderungssignal an das der Nummer entsprechende PE aus, und das die Anforderung empfangende PE wandelt eine virtuelle Zwischen-PE-Adresse in eine reale Zwischen-PE-Adresse um.
  • Die vorliegende Erfindung wurde gemacht, um das oben beschriebene Problem der Speicherkapazität bezüglich der Adressenübersetzungstabelle zu lösen, und sie hat daher die Aufgabe, ein Mehrprozessorsystem bereitzustellen, das eine kleine Speicherkapazität aufweist.
  • Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, das oben erwähnte Problem zu lösen, daß die komplexe Operation zum Aktualisieren der Adressenübersetzungstabellen erforderlich ist, und demgemäß ein Mehrprozessorsystem bereitzustellen, das in der Lage ist, Adressenübersetzungstabellen einfach zu aktualisieren.
  • Diese Aufgaben werden mit den Merkmalen aus den Ansprüchen gelöst.
  • Verschiedene Ausführungsformen der vorliegenden Erfindung werden beim Lesen der folgenden Beschreibung mit Bezug auf die anliegende Zeichnung besser verständlich werden, wobei:
  • Fig. 1 schematisch einen Gesamtaufbau eines Mehrprozessorsystems gemäß einer Ausführungsform der vorliegenden Erfindung darstellt,
  • Fig. 2 schematisch einen Aufbau eines beim Mehrprozessorsystem gemäß der Ausführungsform der vorliegenden Erfindung verwendeten Clusters zeigt,
  • Fig. 3 ein Beispiel einer Auftragszuordnung zeigt, die in dem Mehrprozessorsystem gemäß der Ausführungsform der vorliegenden Erfindung ausgeführt wird,
  • die Fig. 4A und 4B schematisch Strukturen von beim Mehrprozessorsystem gemäß der Ausführungsform der vorliegenden Erfindung verwendeten Adressen zeigt,
  • Fig. 5 schematisch einen Aufbau einer beim Mehrprozessorsystem gemäß der Ausführungsform der vorliegenden Erfindung verwendeten Clusterübersetzungstabelle zeigt,
  • Fig. 6 schematisch einen Aufbau einer beim Mehrprozessorsystem gemäß der Ausführungsform der vorliegenden Erfindung verwendeten Adressenübersetzungstabelle zeigt, und
  • Fig. 7 ein Flußdiagramm zum Erklären von Operationen des Mehrprozessorsystems gemäß der Ausführungsform der vorliegenden Erfindung ist.
  • Ein Mehrprozessorsystem gemäß einer Ausführungsform der vorliegenden Erfindung wird nun detailliert beschrieben.
  • Wie in Fig. 1 dargestellt ist, weist das Mehrprozessorsystem gemäß einer Ausführungsform der vorliegenden Erfindung einen Aufbau auf, bei dem N Clusterelemente 100 über ein Netzwerk 200 miteinander verbunden sind, und das Symbol N gibt eine ganze Zahl an, die größer als 1 ist. Jeder der Cluster 100 weist mindestens einen Prozessor auf. Das Netzwerk 200 überträgt entsprechend dem von einem anderen Cluster 100 angegebenen Bestimmungsort solche Informationen wie eine Speicherzugriffsanforderung zu einem Cluster 100.
  • Zu dem inneren Aufbau des in Fig. 2 dargestellten Clusters sei bemerkt, daß ein Cluster 100 M Prozessorelemente 110 (wobei "M" eine ganze Zahl ist, die größer als 1 ist), einen Clusterübersetzer 120 zum Übersetzen einer Clusternummer, eine Clusterübersetzungstabelle 130 zum Speichern einer Entsprechungsbeziehung zwischen einer logischen Clusternummer und einer physikalischen Clusternummer, einen Adressenübersetzer 140 zum Übersetzen einer Adresse und eine Adressenübersetzungstabelle 150 zum Speichern einer Entsprechungsbeziehung zwischen einer logischen Adresse und einer physikalischen Adresse aufweist.
  • Der Prozessor 110 gibt eine Zugriffsanforderung an einen Speicher aus und führt einen Berechnungsprozeß und dergleichen aus. Nach dem Empfang einer vom Prozessor 110 gesendeten virtuellen Adresse übersetzt der Clusterübersetzer 120 auf der Grundlage einer Clusterübersetzungstabelle 130 eine in dieser virtuellen Adresse enthaltene logische Clusternummer in eine dieser entsprechende physikalische Clusternummer, wodurch eine Zwischenadresse erzeugt wird. Der Clusterübersetzer 120 bestimmt, ob ein Speicher, auf den zuzugreifen ist, in einem Cluster enthalten ist. Wenn der Speicher, auf den zuzugreifen ist, außerhalb des Clusters vorhanden ist, wird über das Netzwerk 200 eine Speicherzugriffsanforderung zu diesem Cluster gesendet. Wenn der Speicher, auf den zuzugreifen ist, innerhalb des Clusters vorhanden ist, wird eine Speicherzugriffsanforderung zu diesem Adressenübersetzer 140 gesendet. Der Adressenübersetzer 140 erzeugt anhand einer logischen Adresse, die eine Zwischenadresse enthält, eine physikalische Adresse und überträgt die Zugriffsanforderung zum Speicher 160.
  • Jeder der Cluster kann alleine einen einzigen Auftrag ausführen, und er kann weiterhin denselben Auftrag zusammen mit anderen Clustern parallel ausführen. In jedem der Cluster kann jeder Prozessor allein einen einzigen Auftrag ausführen, und er kann gleichzeitig denselben Auftrag zusammen mit anderen Prozessoren innerhalb dieses Clusters ausführen. Daher besteht die Möglichkeit, daß mehrere Aufträge gleichzeitig von einem einzigen Cluster ausgeführt werden.
  • Wenn ein bestimmter Auftrag ausgeführt wird, werden den jeweiligen Clustern, die denselben Auftrag ausführen, logische Clusternummern zugeordnet, die voneinander verschieden sind. Diese logische Clusternummer wird jedem der Aufträge individuell zugeordnet. Dementsprechend können mehrere verschiedene logische Clusternummern einer bestimmten physikalischen Clusternummer zugeordnet werden.
  • Wie in Fig. 3 als ein konkretes Beispiel der Auftragszuordnung dargestellt ist, wird ein Auftrag 1 drei physikalischen Clustern zugeordnet, nämlich einem ersten, einem zweiten und einem dritten Cluster. Diese physikalische Clusternummer wird nachfolgend als "#0" und dergleichen angegeben. Die erste und die zweite logische Clusternummer werden an jeden der Cluster angefügt, dem dieser Auftrag 1 zugeordnet wurde. Diese logische Clusternummer wird nachfolgend als "$0" und dergleichen dargestellt. In ähnlicher Weise wird ein Auftrag 2 physikalischen Clustern #1 bis #7 zugeordnet und als logische Cluster $0 bis $6 behandelt. Ein Auftrag 3 wird nur einem einzigen physikalischen Cluster #1 zugeordnet.
  • Wie in Fig. 3 dargestellt ist, werden die den jeweiligen Aufträgen entsprechenden logischen Clusternummern individuell anderen Aufträgen in demselben physikalischen Cluster zugeordnet. Dementsprechend werden beim physikalischen Cluster #3 dieselben logischen Cluster "$1" an denselben physikalischen Cluster #3 übergeben. Beim physikalischen Cluster #1 werden die verschiedenen logischen Clusternummern $0, $2 und $3 an denselben physikalischen Cluster #1 angefügt.
  • In den jeweiligen Clustern werden zu Verwaltungszwecken lokale Auftragsnummern an die innerhalb dieses Clusters ausgeführten jeweiligen Aufträge angefügt. Diese lokale Auftragsnunmer wird nachfolgend als "%0" und dergleichen bezeichnet. Diese lokale Auftragsnummer wird jedem der Cluster individuell zugeordnet. Folglich können die verschiedenen lokalen Auftragsnummern selbst beim selben Auftrag in anderen Clustern daran angefügt sein. Beispielsweise sind in Fig. 3 als die lokalen Auftragsnummern des Auftrags 2 an diesen Auftrag 2 %0, %1, %2 oder %4 angefügt.
  • Mit Bezug auf die Fig. 2 und 4 sei bemerkt, daß eine virtuelle Adresse als eine Zugriffsadresse zugewiesen wird, wenn der Prozessor 110 den Speicherzugriffsvorgang ausführt. Diese virtuelle Adresse besteht, wie in Fig. 4A dargestellt ist, aus einer eigenen lokalen Auftragsnummer 31, einer logischen Clusternummer 32 für den Bestimmungsort und einer inneren Clusteradresse 33. Der Prozessor 110 weist ein Register (in den Figuren nicht dargestellt) zum Aufnehmen einer lokalen Auftragsnummer, die einem von diesem Prozessor 110 ausgeführten Auftrag entspricht, auf und erzeugt auf der Grundlage dieser lokalen Auftragsnummer die eigene lokale Auftragsnummer 31. Wie zuvor beschrieben wurde, kann die logische Clusternummer 32 für den Bestimmungsort ausschließlich diesen vorgegebenen Cluster innerhalb desselben Auftrags identifizieren, weil die logische Clusternummer ausschließlich einem vorgegebenen Cluster innerhalb desselben Auftrags zugeordnet ist. Die innere Clusteradresse 33 stellt eine solche innere Clusteradresse in dem durch die eigene lokale Auftragsnummer 31 und die logische Clusternummer 32 für den Bestimmungsort identifizierten Cluster dar.
  • Wie in den Fig. 2 und 5 dargestellt ist, ruft der Clusterübersetzer 120 die Clusterübersetzungstabelle 130 unter Verwendung der eigenen lokalen Auftragsnummer 31 und der logischen Clusternummer 32 für den Bestimmungsort innerhalb der vom Prozessor 110 empfangenen virtuellen Adresse auf. Wie in Fig. 5 dargestellt ist, sind in der Clusterübersetzungstabelle 130 mehrere Einträge gespeichert, die jeweils eine lokale Auftragsnummer für den Bestimmungsort und eine physikalische Clusternummer für den Bestimmungsort enthalten. Eine physikalische Clusternummer für den Bestimmungsort stellt eine physikalische Clusternummer dar, die einen Speicher aufweist, der sich auf diesen Speicherzugriffsvorgang bezieht. Eine lokale Auftragsnummer für den Bestimmungsort gibt eine lokale Auftragsnummer in einem Bestimmungscluster an.
  • Wiederum mit Bezug auf die Fig. 4 und 5 sei bemerkt, daß die lokale Auftragsnunmer für den Bestimmungsort und die physikalische Clusternummer für den Bestimmungsort, die auf der Grundlage einer Adresse zum Kombinieren der eigenen lokalen Auftragsnummer 31 mit der logischen Clusternummer 32 für den Bestimmungsort abgerufen werden, eine Zwischenadresse bilden, die in Fig. 4B als eine lokale Auftragsnummer 41 für den Bestimmungsort und eine physikalische Clusternummer 42 für den Bestimmungsort dargestellt ist. Die innere Clusteradresse 43 ist mit einer inneren Clusteradresse 33 der virtuellen Adresse identisch.
  • Wiederum mit Bezug auf Fig. 2 sei bemerkt, daß der Clusterübersetzer 120 auf der Grundlage der auf diese Weise erzeugten Zwischenadresse eine Speicherzugriffsanforderung ausgibt. Falls zu dieser Zeit die physikalische Clusternummer 42 für den Bestimmungsort einen anderen Cluster angibt, wird diese Speicherzugriffsanforderung zum Netzwerk 200 gesendet. Wenn die physikalische Clusternummer 42 für den Bestimmungsort den eigenen Cluster angibt, wird diese Speicherzugriffsanforderung zum im eigenen Cluster verwendeten Adressenübersetzer 140 gesendet.
  • Nach dem Empfang der an einen anderen Cluster gerichteten Speicherzugriffsanforderung überträgt das Netzwerk 200 diese Speicherzugriffsanforderung entsprechend der in der Zwischenadresse enthaltenen physikalischen Clusternummer 42 für den Bestimmungsort zum relevanten Cluster. Daher empfängt der Adressenübersetzer 140 des Bestimmungsclusters die Speicherzugriffsanforderung. Diese Speicherzugriffsanforderung enthält die lokale Auftragsnummer 41 für den Bestimmungsort und die innere Clusteradresse 43 bei der Zwischenadresse.
  • Wiederum mit Bezug auf die Fig. 2 und 6 sei bemerkt, daß der Adressenübersetzer 140 nach dem Empfang der Speicherzugriffsanforderung über das Netzwerk 200 oder vom im Cluster verwendeten Clusterübersetzer 120 eine Adressenübersetzungstabelle 150 unter Verwendung der logischen Auftragsnummer 41 für den Bestimmungsort und der inneren Clusteradresse 43 aufruft. Die Adressenübersetzungstabelle 150 besteht aus mehreren Tabellen, die jeweils jedem der lokalen Aufträge in dem relevanten Cluster entsprechen. Daraufhin wird in jedem der durch die logische Adresse innerhalb des Speichers lokalisierten Einträge die dieser logischen Adresse entsprechende physikalische Adresse gespeichert.
  • Der Adressenübersetzer 140 liest die physikalische Adresse aus dem Eintrag, der durch die innere Clusteradresse 43 in der durch die lokale Auftragsnummer 41 für den Bestimmungsort identifizierten Adressenübersetzungstabelle lokalisiert wird. Daraufhin wird die Speicherzugriffsanforderung unter Verwendung dieser physikalischen Adresse an den Speicher 160 ausgegeben.
  • In Fig. 7 ist ein Flußdiagramm zur Darstellung von Operationen des Mehrprozessorsystems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Dieser Betrieb des Mehrfachprozessors wird nun anhand der Fig. 2 und 7 beschrieben. In den Fig. 2 und 7 wird eine Speicherzugriffsanforderung von einem Prozessor 110 in einem bestimmten Cluster 100 an den Clusterübersetzer 120 ausgegeben (Schritt 501). Bei dieser Speicherzugriffsanforderung wird eine virtuelle Adresse als eine Adresse, auf die zuzugreifen ist, festgelegt. Diese virtuelle Adresse wird auf der Grundlage der Clusterübersetzungstabelle 130 in eine Zwischenadresse übersetzt (Schritt 502). Wenn die in der Zwischenadresse enthaltene physikalische Clusternummer andere Cluster darstellt, sendet der Clusterübersetzer 120 die Speicherzugriffsanforderung zum Netzwerk 200 (Schritt 503).
  • Nach dem Empfang der Speicherzugriffsanforderung über das Netzwerk 200 oder von dem im Cluster verwendeten Clusterübersetzer 120 ruft der Adressenübersetzer 140 die Adressenübersetzungstabelle 150 auf, wodurch die diese Zwischenadresse enthaltende logische Adresse in die physikalische Adresse übersetzt wird (Schritt 504). Diese physikalische Adresse wird zum Zugreifen auf den Speicher 160 verwendet (Schritt 505).
  • Wie oben beschrieben wurde, kann die Gesamtspeicherkapazität der Adressenübersetzungstabelle 150, die für das ganze Mehrprozessorsystem erforderlich ist, beim Mehrprozessorsystem gemäß einer Ausführungsform der vorliegenden Erfindung verringert werden, weil die Adressenübersetzungstabelle 150 nur in dem Cluster 100 bereitgestellt ist, in dem der Speicher 160, auf den zuzugreifen ist, vorhanden ist. Weiterhin ist eine solche herkömmliche komplexe Operation zum Aktualisieren mehrerer Adressenübersetzungstabellen unnötig, weil die Adressenübersetzungstabelle 150 ausschließlich auf der Grundlage der eigenen lokalen Auftragsnummer 31 und der logischen Clusternummer 32 für den Bestimmungsort oder auf der Grundlage der lokalen Auftragsnummer 41 für den Bestimmungsort und des physikalischen Clusters 42 für den Bestimmungsort identifiziert werden kann.
  • Wie anhand der vorhergehenden Beschreibungen ersichtlich geworden ist, wird gemäß der vorliegenden Erfindung die Adressenübersetzungstabelle nur in dem Cluster verwendet, in dem sich der Speicher, auf den zuzugreifen ist, befindet. Dementsprechend ergibt sich die Wirkung, daß die Gesamtspeicherkapazität der Adressenübersetzungstabelle verringert ist.
  • Weil die Adressenübersetzungstabelle weiterhin ausschließlich anhand der lokalen Auftragsnummer und der Clusternummer identifiziert wird, ergibt sich die weitere Wirkung, daß der Vorgang des Aktualisierens der Adressenübersetzungstabelle vereinfacht ist.
  • Weiterhin kann die Gesamtspeicherkapazität der Adressenübersetzungstabelle konstant gehalten werden, selbst wenn die Anzahl der im Mehrfachprozessor verwendeten Cluster erhöht ist.

Claims (5)

1. Mehrprozessorsystem mit mehreren Clustern (100), die jeweils einen Speicher (160) und mindestens einen Prozessor (110) aufweisen, und einem Netzwerk (200) zum Verbinden der mehreren Cluster miteinander, wobei
ein erster Cluster eine Clusterübersetzungseinrichtung (120, 130) zum Übersetzen einer virtuellen Adresse, die sich auf eine von dem Prozessor ausgegebene Speicherzugriffsanforderung bezieht, in eine Zwischenadresse, und zum Senden der Speicherzugriffsanforderung über das Netzwerk zum zweiten Cluster, wenn die Speicherzugriffsanforderung bezüglich des zweiten Clusters ausgegeben wird, aufweist, und
wobei der zweite Cluster eine Adressenübersetzungseinrichtung (140, 150) zum Erzeugen einer physikalischen Adresse anhand der Zwischenadresse, die sich auf die vom ersten Cluster ausgegebene Speicherzugriffsanforderung bezieht, wodurch auf den Speicher zugegriffen wird, der durch die, erzeugte physikalische Adresse festgelegt ist, aufweist, wobei das Mehrprozessorsystem dadurch gekennzeichnet ist, daß die virtuelle Adresse eine lokale Auftragsnummer (31),
die einem von dem Prozessor in dem ersten Cluster ausgeführten Auftrag zugeordnet ist, eine logische Clusternummer (32) von dem zweiten Cluster und eine logische Adresse (33) in dem zweiten Cluster aufweist,
die Zwischenadresse eine lokale Auftragsnummer (41) in dem zweiten Cluster, eine physikalische Clusternummer (42) von dem zweiten Cluster und eine logische Adresse (43) innerhalb des zweiten Clusters aufweist,
die Clusterübersetzungseinrichtung (120, 130) eine lokale Auftragsnummer in dem zweiten Cluster und eine physikalische Clusternummer des zweiten Clusters anhand der lokalen Auftragsnummer in dem ersten Cluster und der logischen Clusternummer des zweiten Clusters erzeugt, wodurch eine Speicherzugriffsanforderung zu dem zweiten Cluster gesendet wird, wenn ein durch die physikalische Clusternummer des zweiten Clusters festgelegter Cluster nicht mit dem ersten Cluster übereinstimmt,
das Netzwerk (200) die von der Clusterübersetzungseinrichtung ausgegebene Speicherzugriffsanforderung entsprechend der physikalischen Clusternummer des physikalischen Clusters zum zweiten Cluster überträgt, und
die Adressenübersetzungseinrichtung (140, 150) eine physikalische Adresse anhand der lokalen Auftragsnummer in dem zweiten Cluster und der logischen Adresse in dem Cluster erzeugt, wodurch auf den durch die erzeugte physikalische Adresse festgelegten Speicher zugegriffen wird.
2. Mehrprozessorsystem nach Anspruch 1, wobei jeder der Cluster (100) eine logische Adresse nur mit Bezug auf den zum eigenen Cluster gehörenden Speicher in eine physikalische Adresse übersetzt.
3. Mehrprozessorsystem nach Anspruch 1 oder 2, wobei die Clusterübersetzungseinrichtung (120, 130) die Speicherzugriffsanforderung nicht über das Netzwerk zur Adressenübersetzungseinrichtung überträgt, wenn der erste Cluster mit dem zweiten Cluster übereinstimmt.
4. Mehrprozessorsystem nach Anspruch 3, wobei die Adressenübersetzungseinrichtung (140, 150) mehrere Adressenübersetzungstabellen (150) aufweist, bei denen die physikalischen Adressen in jedem der Einträge gespeichert sind, wobei eine der Adressenübersetzungstabellen anhand der lokalen Auftragsnummer identifiziert wird und wobei die identifizierte Adressenübersetzungstabelle auf der Grundlage der logischen Adresse innerhalb des zweiten Clusters aufgerufen wird.
5. Verfahren zum Übersetzen, von Adressen für ein System mit einem ersten Cluster, der über ein Netzwerk mit einem zweiten Cluster verbunden ist, wobei der erste Cluster und der zweite Cluster jeweils einen Prozessor und einen Speicher aufweisen, wobei das Verfahren die folgenden Schritte aufweist:
(A) Ausgeben einer ersten Speicherzugriffsanforderung in dem ersten Cluster, wobei die erste Speicherzugriffsanforderung einer virtuellen Adresse entspricht, die eine lokale Auftragsnummer für die Quelle, die einem von dem Prozessor im ersten Cluster ausgeführten Auftrag zugeordnet ist, eine logische Clusternummer für den Bestimmungsort und eine logische Adresse aufweist,
(B) Übersetzen der virtuellen Adresse in eine Zwischenadresse, die eine lokale Auftragsnummer für den Bestimmungsort, eine physikalische Clusternummer für den Bestimmungsart und die logische Adresse aufweist, in dem ersten Cluster, wobei das Übersetzen im Schritt (B) auf der lokalen Auftragsnummer für die Quelle und der logischen Clusternummer für den Bestimmungsort beruht,
(C) Senden einer zweiten Speicherzugriffsanforderung vom ersten Cluster über das Netzwerk zum zweiten Cluster, falls die physikalische Clusternummer für den Bestimmungsort von der Zwischenadresse dem zweiten Cluster entspricht, wobei die zweite Speicherzugriffsanforderung der Zwischenadresse entspricht, und
(D) Übersetzen der Zwischenadresse in eine physikalische Adresse des im zweiten Cluster vorhandenen Speichers im zweiten Cluster, wobei das Übersetzen im Schritt (D) auf der lokalen Auftragsnummer für den Bestimmungsort und der logischen Adresse beruht.
DE69526751T 1994-06-30 1995-06-28 Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen Expired - Fee Related DE69526751T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6149440A JP2625385B2 (ja) 1994-06-30 1994-06-30 マルチプロセッサシステム

Publications (2)

Publication Number Publication Date
DE69526751D1 DE69526751D1 (de) 2002-06-27
DE69526751T2 true DE69526751T2 (de) 2002-10-02

Family

ID=15475169

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69526751T Expired - Fee Related DE69526751T2 (de) 1994-06-30 1995-06-28 Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen

Country Status (6)

Country Link
US (1) US5649141A (de)
EP (1) EP0690384B1 (de)
JP (1) JP2625385B2 (de)
AU (1) AU697464B2 (de)
CA (1) CA2152752C (de)
DE (1) DE69526751T2 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2974526B2 (ja) * 1992-12-18 1999-11-10 富士通株式会社 データ転送処理方法及びデータ転送処理装置
US6240065B1 (en) 1996-01-08 2001-05-29 Galileo Technologies Ltd. Bit clearing mechanism for an empty list
IL116989A (en) * 1996-01-31 1999-10-28 Galileo Technology Ltd Switching ethernet controller
IL116988A (en) 1996-01-31 1999-12-31 Galileo Technology Ltd Bus protocol
US5833964A (en) * 1996-03-20 1998-11-10 Colgate-Palmolive Company Antiperspirant stick composition
US5860146A (en) * 1996-06-25 1999-01-12 Sun Microsystems, Inc. Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US5857080A (en) * 1996-09-10 1999-01-05 Lsi Logic Corporation Apparatus and method for address translation in bus bridge devices
FR2774788B1 (fr) * 1998-02-12 2000-03-24 Bull Sa Procede de controle d'acces memoire sur une machine avec memoire a acces non uniforme et machine pour mettre en oeuvre ce procede
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
GB2348979A (en) * 1999-04-09 2000-10-18 Pixelfusion Ltd Parallel data processing system with shared memory
US7506136B2 (en) 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
US6725264B1 (en) * 2000-02-17 2004-04-20 Cisco Technology, Inc. Apparatus and method for redirection of network management messages in a cluster of network devices
US6920519B1 (en) * 2000-05-10 2005-07-19 International Business Machines Corporation System and method for supporting access to multiple I/O hub nodes in a host bridge
US7185076B1 (en) 2000-05-31 2007-02-27 International Business Machines Corporation Method, system and program products for managing a clustered computing environment
US7487152B1 (en) 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US6925547B2 (en) * 2000-12-14 2005-08-02 Silicon Graphics, Inc. Remote address translation in a multiprocessor system
US7356026B2 (en) * 2000-12-14 2008-04-08 Silicon Graphics, Inc. Node translation and protection in a clustered multiprocessor system
US6782464B2 (en) * 2001-07-17 2004-08-24 International Business Machines Corporation Mapping a logical address to a plurality on non-logical addresses
DE10163342A1 (de) * 2001-12-21 2003-07-10 Elektro Beckhoff Gmbh Unterneh Datenübertragungsverfahren, serielles Bussystem und Anschalteinheit für einen passiven Busteilnehmer
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7529906B2 (en) * 2003-08-18 2009-05-05 Cray Incorporated Sharing memory within an application using scalable hardware resources
US6922766B2 (en) * 2002-09-04 2005-07-26 Cray Inc. Remote translation mechanism for a multi-node system
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7543133B1 (en) 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7421565B1 (en) * 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US20050246502A1 (en) * 2004-04-28 2005-11-03 Texas Instruments Incorporated Dynamic memory mapping
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US7814166B2 (en) * 2006-01-27 2010-10-12 Sony Computer Entertainment Inc. Methods and apparatus for virtualizing an address space
US7822841B2 (en) * 2007-10-30 2010-10-26 Modern Grids, Inc. Method and system for hosting multiple, customized computing clusters
US8270194B2 (en) * 2009-04-07 2012-09-18 Marvell World Trade Ltd. Distributed flash memory storage manager systems
CN102110072B (zh) * 2009-12-29 2013-06-05 中兴通讯股份有限公司 一种多处理器完全互访的方法及系统
KR20160083762A (ko) * 2015-01-02 2016-07-12 삼성전자주식회사 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648035A (en) * 1982-12-06 1987-03-03 Digital Equipment Corporation Address conversion unit for multiprocessor system
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
JP2738674B2 (ja) * 1986-05-23 1998-04-08 株式会社日立製作所 並列計算機及び並列計算機のデータ転送方法
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
IT1228728B (it) * 1989-03-15 1991-07-03 Bull Hn Information Syst Sistema multiprocessore con replicazione di dati globali e due livelli di unita' di traduzione indirizzi.
US5497480A (en) * 1990-12-31 1996-03-05 Sun Microsystems, Inc. Broadcast demap for deallocating memory pages in a multiprocessor system
JPH04246745A (ja) * 1991-02-01 1992-09-02 Canon Inc 情報処理装置及びその方法
JP3169624B2 (ja) * 1991-03-20 2001-05-28 株式会社日立製作所 プロセッサ間通信方法およびそのための並列プロセッサ
JP3080457B2 (ja) * 1991-12-26 2000-08-28 富士通株式会社 分散アドレス変換方式
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system

Also Published As

Publication number Publication date
CA2152752A1 (en) 1995-12-31
CA2152752C (en) 1999-09-28
JPH0816536A (ja) 1996-01-19
AU697464B2 (en) 1998-10-08
DE69526751D1 (de) 2002-06-27
EP0690384B1 (de) 2002-05-22
US5649141A (en) 1997-07-15
AU2333195A (en) 1996-01-18
JP2625385B2 (ja) 1997-07-02
EP0690384A3 (de) 1997-08-06
EP0690384A2 (de) 1996-01-03

Similar Documents

Publication Publication Date Title
DE69526751T2 (de) Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen
DE69022716T2 (de) Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
DE3751645T2 (de) Anteilige Nutzung von Kopie-beim-Schreiben-Segmenten in einer Datenverarbeitungsanlage mit virtuellen Maschinen und virtuellem Speicher
DE69019925T2 (de) Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Vervielfältigung von globalen Daten.
DE69033064T2 (de) Verfahren zur Zuordnung von reellen Seiten zu virtuellen Seiten mit davon verschiedenen Seitengrössen
DE69737709T2 (de) Verfahren und Vorrichtung für Informationsverarbeitung und Speicherzuordnungsanordnung
DE3586389T2 (de) Dynamisch zugeordnete lokale/globale speicheranordnung.
DE3151745C2 (de)
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE69802437T2 (de) Feinkörniger übereinstimmungsmechanismus für optimistische parallelsteuerung mit verriegelungsgruppen
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE69715203T2 (de) Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
DE69127011T2 (de) Speicherverwaltungsverfahren mit Hilfe einer Baumstruktur
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE2226382A1 (de) Datenverarbeitungsanlage
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE3280414T2 (de) Methode fuer den betrieb eines virtuellen speicherorganisationssystems.
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE69527634T2 (de) Rechner-Cachespeichersystem
DE112013006646T5 (de) Identifizieren von Arbeitslast und Dimensionierung von Puffern zum Zweck der Volumenreplikation
DE69808628T2 (de) Mikroprozessorcachespeicherübereinstimmung
DE3887843T2 (de) Verfahren zur Bedienung einer Mehrprozessoranordnung zur Datenübertragung zwischen Prozessoreinheiten.
DE2710477A1 (de) Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie

Legal Events

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