DE69526751T2 - Multiprozessorsystem zur lokalen Verwaltung von Adressenübersetzungstabellen - Google Patents
Multiprozessorsystem zur lokalen Verwaltung von AdressenübersetzungstabellenInfo
- 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
Links
- 238000013519 translation Methods 0.000 title claims description 39
- 230000015654 memory Effects 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 4
- 230000014616 translation Effects 0.000 description 29
- 230000000694 effects Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple 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.
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)
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)
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 |
-
1994
- 1994-06-30 JP JP6149440A patent/JP2625385B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-27 CA CA002152752A patent/CA2152752C/en not_active Expired - Fee Related
- 1995-06-28 EP EP95110076A patent/EP0690384B1/de not_active Expired - Lifetime
- 1995-06-28 DE DE69526751T patent/DE69526751T2/de not_active Expired - Fee Related
- 1995-06-29 AU AU23331/95A patent/AU697464B2/en not_active Ceased
- 1995-06-30 US US08/497,447 patent/US5649141A/en not_active Expired - Lifetime
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 |