-
Die
vorliegende Erfindung betrifft generell einen Zugriff von Daten
in einem Mehrprozessorsystem. Insbesondere stellt die vorliegende
Erfindung Techniken zur Verbesserung von Verriegelungs- bzw. Sperrungsmechanismen
zur Aufrechterhaltung einer Cachekohärenz bei einem Mehrprozessorsystem
mit einer Mehrclusterarchitektur bereit.
-
Leistungsbegrenzungen
bei einem eine Busarchitektur benutzenden herkömmlichen Computersystem haben
zur Entwicklung einer Punkt-zu-Punkt-Architektur zur Verbindung von Prozessoren
in einem System mit einem einzelnen Speicherraum geführt. Bei
einem Beispiel können
individuelle Prozessoren durch mehrere Punkt-zu-Punkt-Verbindungen
direkt miteinander verbunden sein, um einen Cluster von Prozessoren zu
bilden. Separate Cluster von Prozessoren können auch verbunden sein. Die
Punkt-zu-Punkt-Verbindungen erhöhen
die Bandbreite für
Coprozessorbetriebs- und Mehrprozessorbetriebsfunktionen signifikant.
-
Jedoch
bringt die Benutzung einer Punkt-zu-Punkt-Architektur zur Verbindung
mehrerer Prozessoren in einem einen einzelnen Speicherraum gemeinsam
benutzenden Mehrclustersystem unterschiedliche Probleme mit sich.
Einige dieser Probleme entstehen im Kontext von Koordinierungsprozessen,
bei denen mehrere Knoten an einer gemeinsamen Aufgabe arbeiten und/oder
auf gemeinsame Datenwörter
zuzugreifen versuchen. Jedoch sind Sperrungsmechanismen für Punkt-zu-Punkt-Architekturen begrenzt.
Folglich ist es wünschenswert,
Techniken zur Verbesserung von Sperrungsmechanismen für eine Cachekohärenz in
Systemen, die mehrere Cluster aus mehreren Prozessoren, die unter
Benutzung von Punkt-zu-Punkt-Verbindungen verbunden sind, bereitzustellen.
-
Aus
US-A5633043 gehen Systeme und Verfahren zur Erleichterung einer
Kommunikation zwischen Prozessoren in Mehrclustersystemen hervor. Prozessoren innerhalb
eines Clusters sind über Punkt-zu-Punkt-Verbindungen
mit einem Router/Speicher-Kontroller verbunden. Wenn ein Prozessor
einen Zugriff auf einen Speicher im System benötigt, wird eine Anforderung
zum Router/Speicher-Kontroller gesendet, der dann die Mitteilung
zu Router/Speicher-Kontrollern in anderen Clustern rundsendet. Das
System benutzt ein unidirektionales Kommunikationsschema, und deshalb
wird die Anforderung in nur einer Richtung rundgesendet. Der dem
anfordernden Prozessor zugeordnete Router/Speicher-Kontroller wartet,
bis die rundgesendete Anforderung durch das Netzwerk transferiert
worden ist, das heißt
bis die rundgesendete Anforderung vom Router/Speicher-Kontroller
aus der Richtung, die zu der, in der sie übertragen wurde, entgegengesetzt
ist, empfangen worden ist, bevor bestimmt wird, ob der Prozessor
seine Anforderung ausführen
kann.
-
Aus
EP-A-0447160 gehen generelle Mechanismen zur Steuerung eines Zugriffs
auf Dateneinzelheiten, auf die durch mehrere Prozessoren in einem einzelnen
Cluster zugegriffen werden kann, hervor. Aus diesem Dokument die
Benutzung eines einzelnen globalen Sperrungsverwalters hervor, der
den Zugriff auf gemeinsam benutzte Dateneinzelheiten durch Erzwingung
von gemeinsam benutzten und exklusiven Sperrungen bei Dateneinzelheiten
steuert.
-
Gemäß der vorliegenden
Erfindung werden Verfahren und Einrichtungen zur Erhöhung der
Effizienz von Sperrungsmechanismen in einem Mehrprozessor-Mehrclustersystem
bereitgestellt.
-
Unter
einem ersten Aspekt ist ein Computersystem bereitgestellt, das aufweist:
einen Heimatcluster, der mehrere Heimatknoten mit mehreren Heimatprozessoren
und einen Heimatcachekohärenzkontroller
aufweist, wobei die Heimatknoten in einer ersten Punkt-zu-Punkt-Architektur
miteinander verbunden sind, wobei einer der mehreren Heimatknoten
einen Heimatsperrungsverwalter aufweist, der zum Rundsenden eines
Sperrungsbefehls zu den mehreren Heimatprozessoren und den Heimatcachekohärenzkontroller
ausgebildet ist, und einen ersten Ferncluster, der einen Erstferncachekohärenzkontroller
und mehrere Erstfernprozessoren aufweist, wobei der Erstfernsehcachekohärenzkontroller und
die mehreren Erstfernprozessoren in einer zweiten Punkt-zu-Punkt-Architektur
miteinander verbunden sind und wobei der Erstferncachekohärenzkontroller
zum Empfang des Sperrungsbefehls über den Heimatcachekohärenzkontroller
und Weitersenden des Sperrungsbefehls zu den mehreren Erstfernprozessoren
konfiguriert ist, um von jedem der mehreren Erstfernprozessoren
eine Gesperrtantwort zu empfangen, die anzeigt, dass der Fernprozessor
den Sperrungsbefehl ausgeführt
hat, und dann zum Übertragen
einer Erstfernclustergesperrtantwort zum Heimatcachekohärenzkontroller,
wenn von jedem der mehreren Erstfernprozessoren Gesperrtantworten
empfangen worden sind.
-
Die
Heimatknoten können
beispielsweise einen Heimatspeicherkontroller und eine Heimat-I/O-Brücke (I/O
= input/output (Eingabe/Ausgabe)) aufweisen. Ein Ferncachekohärenzkontroller
jedes Fernclusters agiert als ein lokaler Sperrungsverwalter für den Ferncluster
unter der Steuerung eines Heimatsperrungsverwalters. Jedoch kann
der Heimatsperrungsverwalter von Knoten außerhalb des Heimatclusters
Kenntnis haben oder nicht. Befehle und Antworten werden zwischen
Clustern über
die Cachekohärenzkontroller übertragen.
-
Jeder
Heimatknoten kann ein Heimatkonfigurationsregister aufweisen, das
eine Stelle bzw. Speicherstelle (location) des Heimatsperrungsverwalters
als einen Empfänger
von Heimatsperrungsanforderungen spezifiziert. Jeder der mehreren
Erstfernprozessoren kann ein Erstfernkonfigurationsregister aufweisen,
das eine Stelle bzw. Speicherstelle des Erstferncachekohärenzkontrollers
als einen Empfänger
von Erstfernsperrungsanforderungen spezifiziert.
-
Vorzugsweise
ist der Erstferncachekohärenzkontroller
mit dem Heimatcachekohärenzkontroller verbunden:
Vorzugsweise ist der Erstferncachekohärenzkontroller zum Agieren
als ein Erstfernsperrungsverwalter für den ersten Ferncluster konfiguriert.
-
Es
kann ein zweiter Ferncluster vorhanden sein, der mehrere Zweitfernprozessoren
und einen Zweitferncachekohärenzkontroller
aufweist, die in einer dritten Punkt-zu-Punkt-Architektur miteinander verbunden
sind, wobei der Zweitferncachekohärenzkontroller mit dem Heimatcachekohärenzkontroller verbunden
ist und wobei der Zweitferncachekohärenzkontroller zum Agieren
als ein Zweitfernclustersperrungsverwalter durch Übertragen
von Signalen zum und vom Heimatsperrungsverwalter über den
Heimatcachekohärenzkontroller
konfiguriert ist.
-
Unter
einem zweiten Aspekt ist ein Verfahren zur Steuerung von Sperrungsbefehlen
in einem Computersystem bereitgestellt, wobei das Verfahren aufweist:
Empfangen einer Sperrungsanforderung von einem anfordernden Heimatknoten
von mehreren Heimatknoten in einem Heimatcluster, wobei die mehreren
Heimatknoten mehrere Heimatprozessoren und einen Heimatcachekohärenzkontroller,
die in einer ersten Punkt-zu-Punkt-Architektur miteinander verbunden
sind, aufweisen, Rundsenden eines Sperrungsbefehls zu allen Heimatknoten,
wobei der Sperrungsbefehl auf die Sperrungsanforderung anspricht, Übertragen
des Sperrungsbefehls vom Heimatcachekohärenzkontroller zu einem Erstferncachekohärenzkontroller
eines ersten Fernclusters, der mehrere Erstfernprozessoren aufweist,
die in einer zweiten Punkt-zu-Punkt-Architektur mit dem Erstferncachekohärenzkontroller
verbunden sind, Weitersenden des Sperrungsbefehls vom Erstferncachekohärenzkontroller
zu jedem Erstfernprozessor der mehreren Erstfernprozessoren, Übertragen
einer Erstgesperrtantwort von jedem Erstfernprozessor zum Erstferncachekohärenzkontroller,
wobei die Erstgesperrtantwort anzeigt, dass ein Fernprozessor der
mehreren Erstfernprozessoren den Sperrungsbefehl ausgeführt hat, Übertragen
ein Erstfernclustergesperrtantwort vom Erstferncachekohärenzkontroller
zum Heimatcachekohärenzkontroller,
wenn von jedem Erstfernprozessor Erstgesperrtantworten empfangen worden
sind, wobei die Erstfernclustergesperrtantwort anzeigt, dass jeder
Erstfernprozessor der mehreren Erstfernprozesoren den Sperrungsbefehl
ausgeführt
hat, Übertragen
einer Heimatgesperrtantwort von jedem Heimatprozessor zum Heimatsperrungsverwalter,
wobei die Heimatgesperrtantwort die Ausführung des Sperrungsbefehls
anzeigt, Weiterleiten der Erstfernclustergesperrtantwort vom Heimatcachekohärenzkontroller
zum Heimatsperrungsverwalter und Senden einer Systemgesperrtantwort
zum anfordernden Heimatknoten, nachdem der Heimatsperrungsverwalter
die Heimatgesperrtantwort und die Erstfernclustergesperrtantwort
empfängt.
-
Vorzugsweise
weist ein solches Verfahren auch auf: Empfangen einer Entsperrungsanforderung
vom anfordernden Heimatknoten, Rundsenden eines Entsperrungsbefehls
zu allen Heimatknoten, wobei der Entsperrungsbefehl auf die Entsperrungsanforderung
anspricht, Übertragen
des Entsperrungsbefehls zum Erstferncachekohärenzkontroller, Weitersenden
des Entsperrungsbefehls zu jedem Erstfernprozessor der mehreren
Erstfernprozessoren, Übertragen
einer Erstentsperrtantwort von jedem Erstfernprozessor zum Erstferncachekohärenzkontroller,
wobei die Erstentsperrtantwort anzeigt, dass einer der Erstfernprozessoren
den Entsperrungsbefehl ausgeführt
hat, Übertragen
einer Erstfernclusterentsperrtantwort vom Erstferncachekohärenzkontroller
zum Heimatcachekohärenzkontroller, wobei
die Erstfernclusterentsperrtantwort anzeigt, dass jeder Erstfernprozessor
der mehreren Erstfernprozessoren den Entsperrungsbefehl ausgeführt hat, Übertragen
einer Heimatentsperrtantwort von jedem Heimatprozessor zum Heimatsperrungsverwalter, wobei
die Heimatentsperrungsantwort die Ausführung des Entsperrungsbefehls
anzeigt, Weiterleiten der Erstfernclusterentsperrtantwort vom Heimatcachekohärenzkontroller
zum Heimatsperrungsverwalter und Senden einer Systementsperrtantwort zum
anfordernden Knoten, nachdem der Heimatsperrungsverwalter die Heimatentsperrtantwort
und die Erstfernclusterentsperrtantwort empfängt.
-
Unter
einem dritten Aspekt ist ein Computerprogramm, das in einem computerlesbaren
Speichermedium realisiert ist, bereitgestellt, wobei das Computerprogramm
Instruktionen aufweist, die den Computer veranlassen zum: Senden
einer Sperrungsanforderung zu einem Heimatsperrungsverwalter von
einem anfordernden Heimatknoten von mehreren Heimatknoten in einem
Heimatcluster, wobei die mehreren Heimatknoten mehrere Heimatprozessoren
und einen Heimatcachekohärenzkontroller
aufweisen, die in einer ersten Punkt-zu-Punkt-Architektur miteinander verbunden sind,
Rundsenden eines Sperrungsbefehls vom Heimatsperrungsverwalter zu allen
Heimatknoten, wobei der Sperrungsbefehl auf die Sperrungsanforderung
anspricht, Übertragen
des Sperrungsbefehls vom Heimatcachekohärenzkontroller zu einem Erstferncachekohärenzkontroller
eines ersten Fernclusters, der mehrere Erstfernprozessoren aufweist,
die in einer zweiten Punkt-zu-Punkt-Architektur mit dem Erstferncachekohärenzkontroller
verbunden sind, Weitersenden des Sperrungsbefehls vom Erstferncachekohärenzkontroller
zu jedem Erstfernprozessor der mehreren Erstfernprozessoren, Übertragen
einer Erstgesperrtantwort von jedem Erstfernprozessor zum Erstferncachekohärenzkontroller,
wobei die Erstgesperrtantwort anzeigt, dass ein Fernprozessor der
mehreren Erstfernprozessoren den Sperrungsbefehl ausgeführt hat, Übertragen
einer Erstfernclustergesperrtantwort vom Erstferncachekohärenzkontroller zum Heimatcachekohärenzkontroller,
wenn von jedem Erstfernprozessor Erstgesperrtantworten empfangen worden
sind, wobei die Erstfernclustergesperrtantwort anzeigt, dass jeder
Erstfernprozessor der mehreren Erstfernprozessoren den Sperrungsbefehl
ausgeführt
hat, Übertragen
einer Heimatgesperrtantwort von jedem Heimatprozessor zum Heimatsperrungsverwalter,
wobei die Heimatgesperrtantwort die Ausführung des Sperrungsbefehls
anzeigt, Weiterleiten der Erstfernclustergesperrtantwort vom Heimatcachekohärenzkontroller
zum Heimatgesperrtverwalter und Senden einer Systemgesperrtantwort
vom Heimatsperrungsverwalter zum anfordernden Heimatknoten, nachdem
der Heimatsperrungsverwalter die Heimatgesperrtantwort und die Erstfernclustergesperrtantwort
empfängt.
-
Vorzugsweise
weisen solche Computerprogramme auch Instruktionen auf, die einen
Computer veranlassen zum: Empfangen einer Entsperrungsanforderung
vom anfordernden Heimatknoten, Rundsenden eines Entsperrungsbefehls
zu allen Heimatknoten, wobei der Entsperrungsbefehl auf die Entsperrungsanforderung
anspricht, Übertragen
des Entsperrungsbefehls zum Erstferncachekohärenzkontroller, Weitersenden
des Entsperrungsbefehls zu jedem Erstfernprozssor der mehreren Erstfernprozessoren, Übertragen
einer Erstentsperrtantwort von jedem Erstfernprozessor zum Erstferncachekohärenzkontroller,
wobei die Erstentsperrtantwort anzeigt, dass ein Fernprozessor der
mehreren Erstfernprozessoren den Entsperrungsbefehl ausgeführt hat, Übertragen
einer Erstfernclusterentsperrtantwort vom Erstferncachekohärenzkontroller
zum Heimatcachekohärenzkontroller,
wobei die Erstfernclusterentsperrtantwort anzeigt, dass jeder Fernprozessor der
mehreren Erstfernprozessoren den Entsperrungsbefehl ausgeführt hat, Übertragen
einer Heimatentsperrtantwort von jedem Heimatprozessor zum Heimatsperrungsverwalter,
wobei die Heimatentsperrtantwort die Ausführung des Entsperrungsbefehls
anzeigt, Weiterleiten der Erstfernclusterentsperrtantwort vom Heimatcachekohärenzkontroller vom
Heimatsperrungsverwalter und Senden einer Systementsperrtantwort
zum anfordernden Heimatknoten, nachdem der Heimatsperrungsverwalter
die Heimatentsperrtantwort und die Erstfernclusterentsperrtantwort
empfängt.
-
Ein
weiteres Verständnis
des Wesens und der Vorteile der vorliegenden Erfindung können durch
Bezugsnahme auf die verbleibenden Teile der Beschreibung und die
Zeichnungen realisiert werden.
-
Die
Erfindung kann am Besten aus der folgenden Beschreibung anhand der
beigefügten Zeichnungen,
die spezielle Ausführungsformen
der vorliegenden Erfindung darstellen, verstanden werden.
-
1A und 1B sind
schematische Darstellungen, die ein System zeigen, das mehrere Cluster
aufweist.
-
2 ist
eine schematische Darstellung eines Clusters, der mehrere Prozessoren
aufweist.
-
2A ist
eine schematische Darstellung eines Knotens, der mehrere Subeinheiten
aufweist.
-
3 ist
eine schematische Darstellung eines Cachekohärenzkontrollers.
-
4 ist
eine schematische Darstellung, die einen Transaktionsfluss für eine Datenzugriffsanforderung
von einem Prozessor in einem einzelnen Cluster zeigt.
-
5A bis 5D sind
schematische Darstellungen, die eine Cachekohärenzkontrollerfunktionalität zeigen.
-
6 ist
eine schematische Darstellung, die einen Transaktionsfluss für einen
Ferncluster zeigt, der eine Sondierungsantwort zu einem Heimatcluster sendet.
-
7 ist
eine schematische Darstellung, die einen Transaktionsfluss für eine Sperrung
eines Mehrclustersystems auf Basis einer Sperrungsanforderung von
einem Prozessor in einem Heimatcluster zeigt.
-
8 ist
eine schematische Darstellung, die einen Transaktionsfluss für eine Sperrung
eines Mehrclustersystems auf Basis einer Sperrungsanforderung von
einem Prozessor in einem Ferncluster zeigt.
-
9 ist
eine schematische Darstellung, die einen Transaktionsfluss für eine Entsperrung
eines Mehrclustersystems auf Basis einer Entsperrungsanforderung
von einem Prozessor in einem Heimatcluster zeigt.
-
10 ist
eine schematische Darstellung, die einen Transaktionsfluss für eine Entsperrung
eines Mehrclustersystems auf Basis einer Entsperrungsanforderung
von einem Prozessor in einem Ferncluster zeigt.
-
DETAILLIERTE BESCHREIBUNG
SPEZIFISCHER AUSFÜHRUNGSFORMEN
-
Es
wird nun auf einige spezifische Ausführungsformen der Erfindung,
welche die Ausführungsformen
umfassen, die von den Erfindern als am besten zur Ausführung der
Erfindung geeignet angesehen werden, im Detail Bezug genommen. Beispiele dieser
spezifischen Ausführungsformen
sind in den beigefügten
Zeichnungen dargestellt. Wenn die Erfindung im Zusammenhang mit
diesen spezifischen Ausführungsformen
beschrieben wird, so ist dies so zu verstehen, dass die Erfindung
auf die beschriebenen Ausführungsformen
nicht eingeschränkt
sein soll. Vielmehr sollen Alternativen, Modifikationen und Äquivalente,
die in den durch die beigefügten
Ansprüche
definierten Schutzbereich der Erfindung fallen, abgedeckt sein.
Mehrprozessorarchitekturen, die eine Punkt-zu-Punkt-Kommunikation
zwischen ihren Prozessoren aufweisen, sind zur Implementierung spezifischer
Ausführungsformen
der vorliegenden Erfindung geeignet. In der folgenden Beschreibung sind
zahlreiche spezifische Details dargelegt, um ein gründliches
Verständnis
der vorliegenden Erfindung zu ergeben. Die vorliegende Erfindung
kann ohne manche oder alle diese spezifischen Details in die Praxis
umgesetzt werden. Wohlbekannte Prozessoperationen sind nicht im
Detail beschrieben, um die vorliegende Erfindung nicht unnötig unklar
zu machen. Überdies
umfasst die Bezugnahme auf eine besondere singuläre Entität der vorliegenden Anmeldung
die Möglichkeit,
dass die Verfahren und Einrichtungen der vorliegenden Erfindung
unter Benutzung von mehr als einer Entität implementiert werden können, wenn
es der Kontext nicht klar anders diktiert.
-
Es
werden Techniken zur Erhöhung
der Datenzugriffseffizienz in einen Mehrprozessor-Mehrclustersystem
bereitgestellt. Bei einer Punkt-zu-Punkt-Architektur weist ein Cluster
(eine Anhäufung,
Gruppe) von Prozessoren mehrere Prozessoren auf, die durch Punkt-zu-Punkt-Verbindungen
direkt miteinander verbunden sind. Durch Benutzung von Punkt-zu-Punkt-Verbindungen
anstelle eines herkömmlichen
gemeinsam benutzten Busses oder externen Netzwerks werden mehrere
Prozessoren in einem sich den gleichen Speicherraum teilenden System
effizient benutzt. Verarbeitungs- und Netzwerkeffizienz werden auch
durch Vermeidung vieler der Bandbreiten- und Latenzzeitbeschränkungen
eines herkömmlichen
Busses und externen Netzwerks auf Basis von Mehrprozessorarchitekturen
verbessert. Entsprechend unterschiedlichen Ausführungsformen führt jedoch
eine lineare Zunahme der Anzahl von Prozessoren in einer Punkt-zu-Punkt-Architektur
zu einer exponentiellen Zunahme bei der Anzahl von Verbindungen,
die zum Verbinden der mehreren Prozessoren benutzt werden. Um die
Anzahl von benutzten Verbindungen zu reduzieren und außerdem ein
Mehrprozessorsystem, das eine Punkt-zu-Punkt-Architektur benutzt, zu modularisieren,
werden mehrere Cluster benutzt.
-
Gemäß unterschiedlichen
Ausführungsformen
sind die Mehrprozessorcluster unter Benutzung einer Punkt-zu-Punkt-Architektur
miteinander verbunden. Jeder Cluster aus Prozessoren weist einen Cachekohärenzkontroller
auf, der zur Behandlung von Kommunikationen zwischen Clustern benutzt wird.
Jeder Cluster aus Prozessoren kann irgendeine zweckdienliche Anzahl
von Prozessoren aufweisen. Bei einer Ausführungsform wird die zum Verbinden von
Prozessoren benutzte Punkt-zu-Punkt-Architektur ebensogut zum Verbinden
von Clustern benutzt.
-
Durch
Benutzung eines Cachekohärenzkontrollers
können
Mehrfach- bzw. Mehrclustersysteme unter Benutzung von Prozessoren
gebaut werden, die nicht notwendig mehrfache bzw. mehrere Cluster unterstützen können. Ein
solches Mehrclustersystem kann durch Benutzung eines Cachekohärenzkontrollers
gebaut werden, um nicht lokale Knoten bei lokalen Transaktionen
darzustellen, so dass lokale Knoten nicht Kenntnis von der Existenz
von Knoten außerhalb
des lokalen Clusters haben müssen.
Mehr Detail über
den Cachekohärenzkontroller
wird unten gegeben.
-
Jeder
Mechanismus zum Ordnen von Datenzugriffsanforderungen wird hier
als ein Serialisierungspunkt bezeichnet. In einem Einzelclustersystem
kann Cachekohärenz
durch Senden aller Datenzugriffsanforderungen durch einen oder mehrere
solche Serialisierungspunkte aufrechterhalten werden. Ein Beispiel
eines Serialisierungspunkts ist ein Speicherkontroller, der als
ein Sperrungsverwalter agieren kann. Unterschiedliche Prozessoren
im Einzelclustersystem können
Datenzugriffsanforderungen zu einem Speicherkontroller senden. Bei
einigen Ausführungsformen
weist jeder Prozessor im Cluster einen Speicherkontroller auf. Bei
einem Beispiel ist der Speicherkontroller zum Serialisieren der
Datenzugriffsanforderungen konfiguriert, so dass zu jeder besonderen
Zeit nur eine Datenzugriffsanforderung für eine gegebene Speicherzeile
bzw. -leitung erlaubt ist. Wenn ein anderer Prozessor versucht,
auf die gleiche Speicherleitung zuzugreifen, wird der Datenzugriffsversuch
blockiert. Der Speicherkontroller ermöglicht, dass in einem Mehrprozessor-Einzelclustersystem
Cachekohärenz
aufrechterhalten wird.
-
Serialisierungspunkte
können
auch in einem Mehrprozessor- Mehrclustersystem,
bei dem die Prozessoren in den unterschiedlichen Clustern einen einzelnen
Adressenraum gemeinsam benutzen, benutzt werden. Durch Benutzung
eines einzelnen Adressenraums können
interne Punkt-zu-Punkt-Verbindungen zur signifikaten Verbesserung
der Interclusterkommunikation gegenüber traditionellen externen
Netzwerk-basierten Mehrfachclustersystemen benutzt werden. Bei einigen
Ausführungsformen weist
jeder Prozessor einen Speicherkontroller auf.
-
Unterschiedliche
Prozessoren in unterschiedlichen Clustern senden Datenzugriffsanforderungen
zu einem Speicherkontroller, der einem besonderen Cluster zugeordnet
ist. Bei einigen Ausführungsformen
weist ein Cachekohärenzkontroller
in jedem Cluster ein Cacheverzeichnis auf, das anzeigt, welche Speicherleitungen
in anderen Clustern cachiert (kaschiert) sind. Ein Speicherkontroller,
der Teil des Cachekohärenzkontrollers
sein kann, kann alle Datenanforderungen von unterschiedlichen Clustern serialisieren.
-
Jedoch
braucht ein Serialisierungspunkt in einem Mehrprozessor-Mehrclustersystem
nicht so effizient wie ein Serialisierungspunkt in einem Mehrprozessor-Einzelclustersystem
zu sein. Das heißt eine
aus Faktoren wie beispielsweise Latenzzeit von einer Übertragung
zwischen Clustern resultierende Verzögerung kann die Antwortzeiten
für unterschiedliche
Datenzugriffsanforderungen ungünstig
beeinflussen. Es sei darauf hingewiesen, dass eine Verzögerung auch
aus der Benutzung von Sondierungen (probes) in einer Mehrprozessorumgebung
resultiert.
-
1A ist
eine schematische Darstellung eines Beispiels eines Mehrcluster-Mehrprozessorsystems,
das die Techniken der vorliegenden Erfindung benutzen kann. Wenn
in den 1A und 1B vier Verarbeitungscluster
(hier als „Cluster" bezeichnet) dargestellt
sind, so kann ein Mehrclustersystem jede zweckdienliche Anzahl von
Clustern aufweisen. Überdies
kann jeder der Cluster 101, 103, 105 und 107 mehrere
Prozessoren, Speicherkontroller, I/O-Brücken und Sperrungsverwalter
aufweisen. Die Cluster 101, 103, 105 und 107 sind
durch Punkt-zu-Punkt-Verbindungen 111a-f
miteinander verbunden. Bei einer Ausführungsform benutzen bei der
in 1A gezeigten Mehrclusterarchitektur die mehreren
Prozessoren den gleichen Speicherraum gemeinsam. Bei diesem Beispiel
sind die Punkt-zu-Punkt-Verbindungen 111a-f
interne Systemverbindungen, die anstelle eines traditionellen frontseitigen
Busses zum Verbinden der mehreren Prozessoren in den Clustern 101, 103, 105 und 107 benutzt
werden. Die Punkt-zu-Punkt-Verbindungen 111a-f können jedes
Punkt-zu-Punkt-Kohärenzprotokoll
unterstützen.
-
1B ist
eine schematische Darstellung eines anderen Beispiels eines Mehrcluster-Mehrprozessorsystems,
das die Techniken der vorliegenden Erfindung benutzen kann. Jeder
der Cluster 121, 123, 125 und 127 kann
durch Punkt-zu-Punkt- Verbindungen 141a-d
an den Schalter 131 gekoppelt werden. Es sei darauf hingewiesen,
dass die Benutzung des Schalters 131 und der Punkt-zu-Punkt-Verbindungen 141a-d
eine Implementierung mit weniger Punkt-zu-Punkt-Verbindungen erlaubt, wenn mehrere Cluster
im System verbunden werden. Der Schalter 131 kann einen
Prozessor mit einer Kohärenzprotokollschnittstelle
aufweisen. Entsprechend unterschiedlichen Implementierungen wird
ein in 1A gezeigtes Mehrclustersystem
unter Benutzung eines wie in 1B gezeigten
Schalters 131 erweitert.
-
2 ist
eine schematische Darstellung eines Beispiels eines Mehrprozessorclusters
wie beispielsweise des in 1A gezeigten
Clusters 101. Der Cluster 200 weist Prozessoren 202a-202d,
ein oder mehrere BIOS (Basic I/O systems (Basis-Eingabe/Ausgabe-Systeme)) 204,
ein Speichersubsystem, das Speicherbänke 206-206d aufweist, Punkt-zu-Punkt-Kommunikationsverbindungen 208a-208e und
einen Dienstprozessor 212 auf. Die Punkt-zu-Punkt-Kommunikationsverbindungen 208a-208e sind
zur Ermöglichung
von Verbindungen zwischen Prozessoren 202a-202d, einem
I/O-Schalter 210 und einem Cachekohärenzkontroller 230 konfiguriert.
Der Dienstprozessor 212 ist zur Ermöglichung von Kommunikationen
mit den Prozessoren 202a-202d, dem I/O-Schalter 210 und
dem Cachekohärenzkontroller 230 über eine
JTAG-Schnittstelle, die in 2 durch
die Verbindungen 214a-214f dargestellt ist, konfiguriert.
Es sei darauf hingewiesen, dass andere Schnittstellen unterstützt werden.
Der I/O-Schalter 210 verbindet den Rest des Systems mit I/O-Adaptern 216 und 220.
-
Gemäß spezifischen
Ausführungsformen weist
der Dienstprozessor der vorliegenden Erfindung die Intelligenz zum
Partitionieren von Systemressourcen entsprechend einem vorher spezifizierten Partionierungsschema
auf. Die Partionierung kann durch direkte Manipulation von Routingtabellen
(Leitwegsteuerungstabellen) erreicht werden, die den Systemprozessoren
durch den Dienstprozessor zugeordnet werden, was durch die Punkt-zu-Punkt-Kommunikationsinfrastruktur
möglich
gemacht ist. Die Routingtabellen werden zur Steuerung und Isolierung
unterschiedlicher Systemressourcen benutzt, wobei die Verbindungen
zwischen ihnen darin definiert sind. Ein exemplarischer Dienstprozessor
und eine Computersystempartitionierung sind in der Patentanmeldung
Nr. 09/932 456 mit dem Titel Computer System Partitioning Using Data
Transfer Routing Mechanism, angemeldet am 16. August 2001, beschrieben.
-
Die
Prozessoren 202a-d sind auch durch Punkt-zu-Punkt-Verbindungen 232a-d
an den Cachekohärenzkontroller 230 gekoppelt.
Jeder Mechanismus oder jede Einrichtung, der bzw. die zur Bereitstellung
einer Kommunikation zwischen Mehrprozessorclustern, während eine
Cachekohärenz
aufrechterhalten wird, benutzt werden kann, wird hier als ein Cachekohärenzkontroller
bezeichnet. Der Cachekohärenzkontroller 230 kann
an Cachekohärenzkontroller,
die anderen Mehrprozessorclustern zugeordnet sind, gekoppelt sein.
Es sei darauf hingewiesen, dass in einem Cluster mehr als ein Cachekohärenzkontroller
sein können.
Der Cachekohärenzkontroller 230 kommuniziert
vorzugsweise mit sowohl den Prozessoren 202a-d als auch
Fernclustern unter Benutzung eines Punkt-zu-Punkt-Protokolls.
-
Genereller
ist es so zu verstehen, dass die in 2 gezeigte
spezifische Architektur nur exemplarisch ist und dass Ausführungsformen
der vorliegenden Erfindung so gedacht sind, dass sie unterschiedliche
Konfigurationen und Ressourcenverbindungen und unterschiedliche
Alternativen für
jede gezeigte Systemressource aufweisen. Zum Zweck der Darstellung
seien jedoch spezifische Details des Clusters 200 angenommen.
Beispielsweise sei angenommen, dass die meisten der in 2 gezeigten
Ressourcen sich auf einer einzelnen elektronischen Baugruppe befinden.
Außerdem
können
Speicherbänke 206a-206d einen
DDR-Speicher (DDR
= double data rate (Doppeldatenrate)) aufweisen, der physikalisch als
DIMMs (= dual in-line memory modules (zweireihige Speichermodule))
bereitgestellt ist. Der I/O-Adapter 216 kann beispielsweise
ein UDMA-Kontroller (UDMA = ultra direct memory access (Ultradirektspeicherzugriff))
oder SCSI-Kontroller (SCSI = small computer system interface (Kleincomputersystemschnittstelle))
sein, die einen Zugriff auf eine permanente Speichereinrichtung
bereitstellen. Der I/O-Adapter 220 kann eine zur Bereitstellung
von Kommunikationen mit einem Netzwerk wie beispielsweise einem
LAN (= local area network (lokales Netz)) oder das Internet adaptierte
Ethernet-Karte sein.
-
Gemäß einer
spezifischen Ausführungsform und
wie in 2 gezeigt stellen vom I/O-Adapter 216 und 220 beide
einen symmetrischen I/O-Zugriff bereit. Das heißt jeder stellt einen Zugriff
auf äquivalente
Sätze von
I/O bereit. Wie zu erkennen ist erleichtert eine solche Konfiguration
ein Partionierungsschema, bei dem mehrere Partitionen Zugriff auf
die gleichen Typen von I/O haben. Jedoch ist es so zu verstehen,
dass Ausführungsformen
ins Auge gefasst sind, bei denen Partitionen ohne I/O erzeugt werden.
Beispielsweise kann eine Partition, die einen oder mehrere Prozessoren
und zugeordnete Speicherressourcen, das heißt einen Speicherkomplex umfasst,
zum Zweck eines Testens des Speicherkomplex erzeugt werden.
-
Gemäß einer
Ausführungsform
ist der Dienstprozessor 212 ein Motorola-MPC855T-Mikroprozessor,
der integrierte Chipgruppefunktionen aufweist. Der Cachekohärenzkontroller 230 ist
eine ASIC (= Application Specific Integrated Circuit (anwendungsspezifische
integrierte Schaltung)), die das lokale Punkt-zu-Punkt-Kohärenzprotokoll
unterstützt. Der
Cachekohärenzkontroller 230 kann
auch zum Behandeln eines nichtkohärenten Protokolls zur Ermöglichung
einer Kommunikation mit I/O-Einrichtungen konfiguriert sein. Der
Cachekohärenzkontroller 230 kann
ein speziell konfigurierter programmierbarer Chip wie beispielsweise
eine programmierbare Logikeinrichtung oder ein FPLA (= field programmable
gate array (feldprogrammierbares Gate-Array)) sein.
-
Es
sei darauf hingewiesen, dass bei manchen Implementierungen in den
Mehrprozessorclustern kein Dienstprozessor vorhanden ist. Überdies liegen
im Schutzbereich der vorliegenden Erfindung andere Clusterarchitekturen.
Beispielsweise können andere
Architekturen mehr oder weniger Prozessoren 202 aufweisen.
Es sei außerdem
darauf hingewiesen, dass die Ausdrücke „Knoten" und „Prozessor" hier oft austauschbar benutzt werden.
Jedoch ist es so zu verstehen, dass entsprechend unterschiedlichen
Implementierungen ein Knoten (beispielsweise die Prozessoren 202a-202d)
mehrere Subeinheiten aufweisen kann.
-
2A stellt
einen solchen Knoten dar, der mehrere Subeinheiten aufweist. Der
Knoten 202 weist eine CPU 250, einen Speicherkontroller 260 und
eine I/O-Brücke 270 auf.
Bei dieser Ausführungsform
weist der Speicherkontroller 260 einen Sperrungsverwalter 265 auf.
Der Sperrungsverwalter 265 ist eine Ausführungsform
eines Heimatsperrungsverwalters 720, der unten anhand der 7 bis 10 im
Detail beschrieben wird. Der Sperrungsverwalter 265 kann,
wie in 2A gezeigt, Teil eines Speicherkontrollers
eines Prozessors sein, oder der Sperrungsverwalter 265 kann
eine andere Komponente eines Knotens sein. Alternativ dazu kann
der Sperrungsverwalter 265 Teil eines anderen Knotens sein oder
kann ein separater Knoten wie beispielsweise ein separater Kontroller
sein.
-
3 ist
eine schematische Darstellung eines Beispiels eines Cachekohärenzkontrollers 230. Gemäß unterschiedlichen
Ausführungsformen
weist der Cachekohärenzkontroller
eine Protokollmaschine (protocol engine) 305 auf, die zum
Behandeln von Paketen wie beispielsweise Sondierungen und Anforderungen,
die von Prozessoren in unterschiedlichen Clustern eines Mehrprozessorsystems
empfangen werden, konfiguriert ist. Die Funktionalität der Protokollmaschine 305 kann
zur Verbesserung der Leistung über
mehrere Maschinen partitioniert sein. Bei einem Beispiel wird die
Partitionierung auf Basis eines Pakettyps (Anforderung, Sondierung,
Antwort usw.), einer Richtung (ankommen und ausgehen) oder eines
Transaktionsflusses (Anforderungsfluss, Sondierungsfluss usw.) ausgeführt.
-
Die
Protokollmaschine 305 hat Zugriff auf einen schwebenden
Puffer 309, der dem Cachekohärenzkontroller 230 ermöglicht,
Transaktionen wie beispielsweise neue Anforderungen und Sondierungen zu
verfolgen und die Transaktionen spezifischen Prozessoren zuzuordnen.
Im schwebenden Puffer 309 gehaltene Transaktionsinformation
kann Transaktionsbestimmungsknoten, die Adressen von Anforderungen
für nachfolgende
Kollisionsdetektions- und Protokolloptimierungen Antwortinformation,
Kennzeichen (tags), Zustandsinformation oder andere Information
aufweisen.
-
Der
Cachekohärenzkontroller
weist eine Schnittstelle wie beispielsweise eine Kohärentprotokollschnittstelle 307 auf,
die dem Cachekohärenzkontroller
ermöglicht,
mit anderen Prozessoren im Cluster sowie externen Prozessorclustern
zu kommunizieren. Gemäß unterschiedlichen
Ausführungsformen
ist jede der Schnittstellen 307 und 311 entweder
als volle Kreuzschiene (full crossbar) oder als eine separate Empfangs-
und Übertragungseinheit, die
Komponenten wie beispielsweise Multiplexer und Puffer benutzt, implementiert.
Der Cachekohärenzkontroller
kann auch andere Schnittstellen wie beispielsweise eine Nichtkohärentprotokollschnittstelle 311 zur
Kommunikation mit I/O-Einrichtungen aufweisen. Es sei jedoch darauf
hingewiesen, dass der Cachekohärenzkontroller 230 nicht
notwendigerweise sowohl eine Kohärent-
als auch Nichtkohärentschnittstelle
bereitstellen muss. Es sei auch darauf hingewiesen, dass ein Cachekohärenzkontroller
in einem einzelnen Cluster mit einem Cachekohärenzkontroller in einem anderen
Cluster kommunizieren kann.
-
4 ist
eine schematische Darstellung, welche die Transaktionen für eine Cacheanforderung von
einem Prozessor in einem System zeigt, das einen einzelnen Cluster
ohne Benutzung eines Cachekohärenzkontrollers
aufweist. Wie es hier benutzt wird bezieht sich das Element „XXX-s" auf das Element
XXX bei der Stufe „s". Beispielsweise
bedeutet der Prozessor 401-1 den Prozessor 401 bei
der Stufe 1. Hier sendet der Prozessor 401-1 eine Zugriffsanforderung 450 (beispielsweise
eine Lesespeicherleitungsanforderung) zum Speicherkontroller 403-1. Der
Speicherkontroller 403-1 kann diesem Prozessor oder einem
anderen Knoten im Cluster zugeordnet sein. Alternativ dazu kann
der Speicherkontroller 403-1 eine separate Komponente wie
beispielsweise eine ASIC oder eine speziell konfigurierte PLD (= Programmamble
Logic Device (programmierbare Logikeinrichtung)) sein.
-
Zur
Erhaltung von Cachekohärenz
ist typischerweise nur einem Prozessor erlaubt, zu irgendeiner gegebener
Zeit auf eine mit einem gemeinsam benutzten Adressenraum korrespondierende
Speicherleitung zuzugreifen. Um zu verhindern, dass andere Prozessoren
versuchen, auf die gleiche Speicherleitung zuzugreifen, kann der
Speicherkontroller 403-1 die Speicherleitung sperren. Nachdem
die Speicherleitung gesperrt ist, werden alle anderen Anforderungen
bezüglich
der gleichen Speicherleitung gesperrt oder in eine Warteschlange
gegeben. Ein Zugriff durch einen anderen Prozessor ist typischerweise
nur erlaubt, wenn der Speicherkontroller 403-1 die Speicherleitung
entsperrt.
-
Der
Speicherkontroller 403-1 sendet dann Sondierungen 455, 460 und 465 zu
den lokalen Cachespeichern 405, 407 und 409,
um Cachezustände zu
bestimmen. Die lokalen Cachespeicher 405, 407 und 409 senden
dann Sondierungsantworten 470, 475 und 480 zum
Prozessor 401-2. Der Speicherkantroller 403-1 sendet
auch eine Zugriffsantwort 485 (beispielsweise eine Leseantwort)
zum Prozessor 401-3. Der Prozessor 401-3 kann
dann eine „Getan"-Antwort zum Speicherkontroller 403-2 senden, um
dem Speicherkontroller 403-2 zu ermöglichen, die Speicherleitung
für nachfolgende
Anforderungen zu entsperren. Es sei darauf hingewiesen, dass die CPU 402-1,
CPU 401-2 und CPU 401-3 sich auf den Prozessor 401 bei
den Stufen 1, 2 und 3 beziehen.
-
Die 5A-5D sind
schematische Darstellungen, die eine Cachekohärenzkontrolleroperation zeigen.
Die Benutzung eines Cachekohärenzkontrollers
in Mehrprozessorclustern ermöglichen
die Erzeugung einer Mehrprozessor-Mehrcluster-Kohärentdomäne ohne
Beeinflussung der Funktionalität
lokaler Knoten wie beispielsweise Prozessoren und zugeordneter Speicherkontroller
in jedem Cluster. In manchen Fällen
können
Prozessoren nur ein Protokoll unterstützten, das nur eine begrenzte
Anzahl von Prozessoren in einem einzelnen Cluster ohne Berücksichtigung
mehrerer Cluster berücksichtigt.
Der Cachekohärenzkontroller
kann benutzt werden, um Mehrclustersysteme durch lokalen Prozessoren glauben
machen, dass die nicht lokalen Knoten nur ein im Cachekohärenzkontroller
untergebrachter einzelner lokaler Knoten sind, zu ermöglichen.
In manchen solchen Ausführungsformen
müssen
die Prozessoren nicht Kenntnis von Prozessoren in anderen Clustern
haben. Anstelle dessen kommunizieren die Prozessoren im Cluster
mit dem Cachekohärenzkontroller
wie wenn der Cachekohärenzkontroller
alle nicht lokalen Knoten repräsentieren
würde.
-
Es
sei darauf hingewiesen, dass Knoten in einem Ferncluster hier als „nicht
lokale Knoten" oder als „Fernknoten" bezeichnet werden.
Jedoch bezieht sich der Ausdruck „nicht lokale Knoten" generell auf Knoten
nicht in einem Anforderungscluster, sondern umfasst Knoten sowohl
in einem Ferncluster als auch Knoten in einem Heimatcluster. Ein
Cluster, von dem eine Datenzugriffs- oder Cachezugriffsanforderung ausgeht,
kann hier als ein Anforderungscluster bezeichnet werden. Ein Cluster,
der einen eine Anforderung verarbeitenden Serialisierungspunkt wie
beispielsweise den Speicherkontroller 403 aufweist, wird
hier als Heimatcluster bezeichnet. Im Kontext der Sperrungsverwaltung
entsprechend der vorliegenden Erfindung ist der Heimatcluster der
Cluster, der den Heimatsperrungsverwalter 420, der unten anhand
der 7 bis 10 beschrieben wird, aufweist.
Andere Cluster sind als Ferncluster bezeichnet. Der Heimatcluster
und der Ferncluster werden hier auch als nicht lokale Cluster bezeichnet.
Gemäß unterschiedlichen
Ausführungsformen
befindet sich die Speicheradresse in einem lokalen Speicherkontroller.
-
Es
sei auch darauf hingewiesen, dass ein Kohärenzprotokoll mehrere Typen
von Mitteilungen aufweisen kann. Bei einem Beispiel weist ein Kohärenzprotokoll
unterschiedliche Typen von Mitteilungen auf, welche die folgenden
aufweisen: Daten- oder
Cachezugriffsanforderungen, Sondierungen, Befehle wie beispielsweise „Sperrungs"- oder „Entsperrungs"-Befehle, Antworten
einschließlich
Sondierungsantworten, „Gesperrt"- und „Entsperrt"-Antworten und Datenpakete.
-
„Sperrungs"- und „Entsperrung"-Befehle werden von
einem Sperrungsverwalter ausgegeben, der ein separater Knoten oder
Teil eines anderen Knoten sein kann. Bei manchen Ausführungsformen ist
ein Sperrungsverwalter Teil eines einem Prozessor zugeordneten Speicherkontrollers.
Sperrungsbefehle instruieren einen Knoten, nicht auf irgendwelche
zusätzlichen
Daten aus einem gemeinsam benutzten Speicher bis nach Empfang eines
nachfolgenden Entsperrungsbefehls zuzugreifen. Bei bevorzugten Ausführungsformen
werden Knoten instruiert, eine Erzeugung irgendwelcher Systemtransaktionen bis
nach Empfang eines nachfolgenden Entsperrungsbefehls zu stoppen.
Gemäß unterschiedlichen Ausführungsformen
stellen Befehle der vorliegenden Erfindung einen Mechanismus zur
Sperrung mehrerer Knoten in mehreren Clustern bereit, um zu ermöglichen,
dass Transaktionen elementar bzw. atomar ausführend erscheinen. Das heißt die Sperrungsbefehle
der vorliegenden Erfindung ermöglichen,
dass Transaktionen ohne irgendwelche intervenierenden Transaktionen
ausführen.
Bei einem gewissen Beispiel werden die globalen Sperrungsbefehle
zum Unterbringen von Prozessorspeicherzugriffen, die elementare
bzw. atomare Semantiken wie beispielsweise Lesen-Modifizieren-Schreiben,
Testen- und -Setzen
aufweisen, benutzt. Bei anderen Beispielen werden die globalen Sperrungsbefehle
für Operationen bei
einem nicht cachierbaren (kaschierbaren) Speicher (uncacheable memory)
und für
Operationen bei einem cachierbaren Speicher (cacheable memory), wenn
die Daten mehrere Cachespeicherleitungen überspannen, benutzt. Die Automarität solcher Transaktionen
kann typischerweise nicht vom Cachespeicher bzw. Cache selbst oder
von irgendeinem Serialisierungspunkt behandelt werden. Sperrungsbefehle
instruieren auch einen Knoten, eine Operation bis nach Empfang eines
nachfolgenden Entsperrungsbefehls zu beenden.
-
Es
sei darauf hingewiesen, dass sich die Techniken der vorliegenden
Erfindung auf mehrere Sperrungsmechanismen beziehen. Ein Typ von Sperrung
bezieht sich auf Speicherleitungssperrung. Eine Speicherzeile bzw.
-leitung wird typischerweise durch einen Serialisierungspunkt gesperrt,
um Cachekohärenz
zu erhalten und um Zugriffe auf besondere Speicherleitungen durch
individuelle Knoten zu koordinieren. Die Automarität der Speicherleitungssperrung
wird typischerweise vom Cache selbst behandelt. Beispielsweise ist
eine Schreibtransaktion bezüglich
einer besonderen Speicherleitung durch einen Knoten eine atomare
Transaktion.
-
Wenn
eine besondere Speicherleitung gesperrt ist, können typischerweise keine anderen
Knoten in einer Mehrclusterarchitektur auf die gesperrte Speicherleitung
zugreifen. Jedoch kann auf andere Speicherleitungen beispielsweise
durch andere Knoten im System zugegriffen werden. In einem Fall kann
ein erster Prozessor in eine erste Speicherleitung schreiben, während ein
zweiter Prozessor in eine zweite Speicherleitung schreibt.
-
Jedoch
weisen manche Prozessorarchitekturen Operationen auf, die eine globale
Sperrung anfordern. Manche Operationen, die eine globale Sperrung
zur Folge haben können,
weisen Lese-Modifizieren-Schreib-Operationen, Test-und-Setz-Operationen, Operationen
bei einem nicht cachierbaren Speicher und Operationen bei einem
cachierbaren Speicher, wo die Daten mehrere Cachespeicherleitungen überspannen,
auf. Bei globalen Sperrungstransaktionen wird zu den mehreren Knoten
in einer Mehrclusterarchitektur eine globale Sperrung rundgesendet.
Nach Empfang der Sperrungsrundsendetransaktion gibt jeder Knoten
nicht länger
neue Transaktionen aus. Zu mehreren Knoten in mehreren Clustern
rundgesendete Befehle zur Sperrung von Knoten werden hier als globale
Sperrungsbefehle bezeichnet. In einem Mehrclustersystem, das einen
einzelnen Speicherraum gemeinsam benutzt, muss ein Sperrungsbefehl
typischerweise von allen Knoten im System empfangen werden, bevor
der Befehl effektiv wird. Außerdem
sollte die zu einem eine Sperrung anfordernden Knoten zurückgesendete
finale „Systemgesperrt"-Antwort bis nach
Empfang des Sperrungsbefehls von allen Knoten im System und bis
alle Knoten eine „Gesperrt"-Antwort gesendet
haben blockiert werden.
-
Gemäß manchen
Ausführungsformen
vollendet ein Knoten eine Operation, die laufend unterwegs ist,
nach Empfang eines Sperrungsbefehls, beginnt aber nicht eine andere
Operation. Gemäß noch anderen
Ausführungsformen
vollendet ein Knoten eine Operation, die laufend unterwegs ist,
nach Empfang eines Sperrungsbefehls, aber nur wenn die Operation
innerhalb einer gewissen Zeitperiode vollendet werden kann. Wenn
alle Gesperrtantworten von den unterschiedlichen Knoten empfangen
sind, wird nun das System gesperrt. Typischerweise können, wenn
ein System gesperrt ist, keine anderen Transaktionen auf irgendeiner
anderen Speicherleitung auftreten. Das ganze System ist in einen
Gesperrtzustand gesetzt, um zu ermöglichen, dass Transaktionen
wie Lesen-Modifizieren-Schreiben und Testen-und-Setzen vollendet
werden. „Entsperrungs"-Befehle instruieren
einen Knoten, eine normale Operation wieder aufzunehmen.
-
Daten-
oder Cachezugriffsanforderungen zielen üblicherweise auf einen Heimatknotenspeicherkontroller.
Sondierungen werden zum Abfragen jedes Caches im System benutzt.
Das Sondierungspaket kann Information tragen, die den Caches ermöglicht,
den Cachezustand für
eine spezifizierte Leitung richtig überzuleiten. Antworten werden
zum Übertragen
von Antwortinformation und zum Ermöglichen, dass Knoten andere
Knoten über
den Zustand einer gegebenen Transaktion informieren, benutzt. Beispielsweise
gibt, nachdem ein Knoten einen Sperrungsbefehl ausgeführt hat,
der Knoten eine „Gesperrt"-Antwort aus. Ähnlich gibt,
nachdem ein Knoten einen Entsperrungsbefehl ausgeführt hat,
der Knoten eine „Entsperrt"-Antwort aus. Datenpakete übertragen
Anforderungsdaten für
sowohl Schreibanforderungen als auch Leseantworten.
-
5A zeigt
einen Cachekohärenzkontroller,
der als ein Aggregat-Ferncachespeicher
agiert. Wenn der Prozessor 501-1 eine Datenzugriffsanforderung 505 für den lokalen
Speicherkontroller 503-1 erzeugt, akzeptiert der Cachekohärenzkontroller 509 die
Sondierung 565 vom lokalen Speicherkontroller 503-1 und
sendet die Sondierung 565 zum Nichtlokalknotenabschnitt 511 weiter.
Der Cachekohärenzkontroller 509 akkumuliert
dann Antworten 513 von den nicht lokalen Knoten 511 und
sendet zum Prozessor 501-2 eine einzelne Antwort 570 in
der gleichen Weise, in der Cacheblöcken 505 und 507 zugeordnete
lokale Knoten einzelne Antworten 576 und 580 senden.
Der Speicherkontroller 503-1 sendet eine Zugriffsantwort 517 (wie
beispielsweise eine Leseantwort) zum Prozessor 501-3. Vorzugsweise
sendet der Prozessor 501-3 dann eine „Getan"-Antwort 519 zum lokalen Speicherkontroller 503-2.
Lokale Prozessoren können
eine einzelne Sondierungsantwort für jeden sondierten lokalen
Knoten erwarten. Die Benutzung eines Cachekohärenzkontrollers ermöglicht den
lokalen Prozessoren, ohne Rücksicht darauf
zu arbeiten, ob nicht lokale Knoten existieren.
-
5B zeigt
den Cachekohärenzkontroller als
ein Sondierungsagentenpaar agierend. Wenn der Cachekohärenzkontroller 521-1 eine
Sondierung 581 von nicht lokalen Knoten 531 empfängt, akzeptiert der
Cachekohärenzkontroller 521-1 die
Sondierung 581 und sendet die Sondierung 581 zu
lokalen Knoten weiter, die Cacheblöcken 523, 525 und 527 zugeordnet
sind. Der Cachekohärenzkontroller 521-2 sendet
dann eine finale Antwort 582 zum Nichtlokalknotenabschnitt 531 weiter.
Bei diesem Beispiel ist der Cachekohärenzkontroller sowohl die Quelle
als auch die Bestimmung der Sondierungen. Die den Cacheblöcken 523, 525 und 527 zugeordneten
lokalen Knoten verhalten sich wie wenn der Cachekohärenzkontroller
ein lokaler Prozessor mit einer lokalen Speicheranforderung wäre.
-
5C zeigt
einen Cachekohärenzkontroller,
der als ein Fernspeicher agiert. Wenn der lokale Prozessor 541-1 eine
Zugriffsanforderung 583 erzeugt, die auf den Fernspeicher
zielt, sendet der Cachekohärenzkontroller 543-1 eine
Anforderung 583 zum nicht lokalen Knoten 553.
Wenn die Fernanforderung 584 eine lokale Sondierung spezifiziert,
erzeugt der Cachekohärenzkontroller 543-1 Sondierungen 585, 586, 587 und 588 bezüglich lokaler
Knoten 545, 547, 549 bzw. 551.
Die sondierten Knoten stellen dem Prozessor 541-2 Antworten 589, 590, 591 und 592 bereit.
Wenn der Cachekohärenzkontroller 543-1 Daten
vom Nichtlokalknotenabschnitt 553 empfangen hat, sendet
er eine Leseantwort 593 zum Prozessor 541-3 weiter.
Der Cachekohärenzkontroller 543-2 sendet
eine finale Antwort 594 zum Fernspeicherkontroller weiter,
der den nicht lokalen Knoten 553 zugeordnet ist.
-
5D zeigt
eine Cachekohärenzkontroller, der
als ein Fernprozessor agiert. Wenn der Cachekohärenzkontroller 561-1 beim
ersten Cluster eine Anforderung 595 von einem Prozessor
in einem zweiten Cluster empfängt,
agiert der Cachekohärenzkontroller 561-1 als
ein Erstclusterprozessor im Interesse des Zweitclusterprozessors.
Der Cachekohärenzkontroller 561-1 akzeptiert
die Anforderung 595 von einem Abschnitt 575 und
sendet sie zum Speicherkontroller 563-1 weiter, der Sondierungen 572, 573, 574 und 577 zu
Knoten 565, 567, 569 und 571 sendet.
Der Cachekohärenzkontroller 561-2 akkumuliert Sondierungsantworten 578, 579, 596 und 597 sowie die
abgerufenen Daten. Der Cachekohärenzkontroller 561-3 sendet
eine finale Antwort 598 zum Speicherkontroller 563-2 sowie
zu nicht lokalen Knoten 575.
-
Durch
Ermöglichen
dem Cachekohärenzkontroller
als ein Aggregat-Ferncachespeicher,
Sondierungsagentenpaar, Fernspeicher und Fernprozessor zu agieren,
können
Mehrclustersysteme unter Benutzung von Prozessoren gebaut werden,
die nicht notwendigerweise mehrere Cluster unterstützen müssen. Der
Cachekohärenzkontroller
kann zum Repräsentieren
nicht lokaler Knoten bei lokalen Transaktionen benutzt werden, so
dass lokale Knoten nicht Kenntnis von der Existenz von Knoten außerhalb
des lokalen Clusters haben müssen.
-
6 ist
eine schematische Darstellung, die Transaktionen für eine Datenanforderung
von einem lokalen Prozessor, die zu einem nicht lokalen Cluster unter
Benutzung eines Cachekohärenzkontrollers gesendet
wird. Das Mehrclustersystem weist einen Anforderungscluster 600,
einen Heimatcluster 620 und einen Ferncluster 640 auf.
Wie oben bemerkt sind hier der Heimatcluster 620 und der
Ferncluster 640 sowie jeder andere Cluster mit Ausnahme
des Anforderungsclusters 600 hier als nicht lokale Cluster bezeichnet.
Die Prozessoren und Cachekohärenzkontroller,
die lokalen und nicht lokalen Clustern zugeordnet sind, werden hier ähnlich als
lokale Prozessoren, lokale Cachekohärenzkontroller, nicht lokale Prozessoren
bzw. nicht lokale Cachekohärenzkontroller
bezeichnet.
-
Gemäß unterschiedlichen
Ausführungsformen
sendet der Prozessor 601-1 im lokalen Cluster 600 eine
Datenzugriffsanforderung (beispielsweise eine Leseanforderung) zum
Cachekohärenzkontroller 603-1.
Der Cachekohärenzkontroller 603-1 verfolgt
die Transaktion in einem schwebenden Puffer (beispielsweise der
in 3 dargestellte Puffer) und sendet die Anforderung
zum Cachekohärenzkontroller 621-1 im
Heimatcluster 620 weiter. Der Cachekohärenzkontroller 621-1 des
Heimatclusters 620 empfangt die Zugriffsanforderung und
verfolgt die Anforderung in seinem schwebenden Puffer. Bei einem Beispiel
wird den Anforderungen zugeordnete Information im schwebenden Puffer
gespeichert. Der Cachekohärenzkontroller 621-1 sendet
die Zugriffsanforderung zum Speicherkontroller 623-1 weiter,
der auch dem Heimatcluster 620 zugeordnet ist. An diesem
Punkt sperrt der Speicherkontroller 623-1 die der Anforderung
zugeordnete Speicherleitung. Bei einem Beispiel ist die Speicherleitung
eine eindeutige Adresse in dem von den mehreren Prozessoren im Anforderungscluster 600,
Heimatcluster 620 und Ferncluster 640 gemeinsam
benutzten Speicherraum. Der Speicherkontroller 623-1 erzeugt
eine der Datenzugriffsanforderung zugeordnete Sondierung und sendet
die Sondierung zu den lokalen Knoten weiter, die den Cacheblöcken 625 und 627 zugeordnet
sind, sowie zum Cachekohärenzkontroller 621-2.
-
Es
sei darauf hingewiesen, dass, wenn Anforderungen, Sondierungen,
Antworten und Daten zugeordnete Mitteilungen als von einem Knoten
zu einem anderen weitergesendet beschrieben werden, die Mitteilungen
selbst Variationen enthalten können. Bei
einem Beispiel werden bei den Mitteilungen Änderungen gemacht, um zu ermöglichen,
dass die Mehrclusterarchitektur für unterschiedliche lokale Knoten
transparent ist. Es sei darauf hingewiesen, dass Schreibanforderungen
ebenso behandelt werden können.
Bei Schreibanforderungen sammelt der Speicherkontroller, auf den
gezielt ist, Antworten und sendet die Antworten zum Prozessor, wenn
die Sammlung vollständig
ist.
-
Der
dem Ferncluster 640 zugeordnete Cachekohärenzkontroller 641-1 empfängt vom
Cachekohärenzkontroller 621-2 eine
Sondierung und sondiert lokale Knoten, die Cacheblöcken 645, 647 und 649 zugeordnet
sind. Ähnlich
empfängt
der dem Anforderungscluster 600 zugeordnete Cachekohärenzkontroller 603-2 eine
Sondierung und sendet die Sondierung zu lokalen Knoten weiter, die
Cacheblöcken 605, 607 und 609 zugeordnet
sind, um die Cacheblöcke
im Anforderungscluster 600 zu sondieren. Der Prozessor 601-2 empfängt Sondierungsantworten von
den lokalen Knoten, die den Cacheblöcken 605, 607 und 609 zugeordnet
sind.
-
Gemäß unterschiedlichen
Ausführungsformen
akkumuliert der Cachekohärenzkontroller 621-3 Sondierungsantworten
und sendet die Sondierungsantworten zum Cachekohärenzkontroller 603-3,
der wiederum die Sondierungsantworten zum Prozessor 601-3 weitersendet.
Der Cachekohärenzkontroller 621-4 sendet
auch eine Leseantwort zum Cachekohärenzkontroller 603-4,
der die Leseantwort zum Prozessor 601-4 weitersendet. Während Sondierungen
und Sondierungsantworten Information zur Aufrechterhaltung von Cachekohärenz im
System tragen, können
Leseantworten tatsächlich
abgerufene Daten übertragen.
Nach Empfang der abgerufenen Daten kann der Prozessor 601-4 eine
Quellen-Getanantwort zum Cachekohärenzkontroller 303-5 senden.
Gemäß unterschiedlichen
Ausführungsformen ist
nun die Transaktion beim Anforderungscluster 600 komplett.
Der Cachekohärenzkontroller 603-5 sendet die
Quellen-Getanmitteilung zum Cachekohärenzkontroller 621-5 weiter.
Der Cachekohärenzkontroller 621-5 wiederum
sendet eine Quellen-Getanmitteilung zum Speicherkontroller 623-2.
Beim Empfang der Quellen-Getanmitteilung kann der Speicherkontroller 623-2 die
Speicherleitung entsperren und die Transaktion beim Heimatcluster 620 ist
nun vollendet. Ein anderer Prozessor kann nun auf die entsperrte
Speicherleitung zugreifen.
-
Es
sei darauf hingewiesen, dass, da der Cachekohärenzkontroller 621-3 auf
Fernclustersondierungsantworten wartet, bevor er eine Sondierungsantwort
zum Cachekohärenzkontroller 603-3 sendet, in
das System eine Verzögerung
eingebracht wird. Gemäß unterschiedlichen
Ausführungsformen
werden beim Cachekohärenzkontroller 603-3 Sondierungsantworten
gesammelt. Indem Ferncluster Sondierungsantworten durch einen Heimatcluster
senden, können
sowohl Heimatclustersondierungsantworten als auch Fernclustersondierungsantworten
beim Heimatclustercachekohärenzkontroller
verzögert
werden. Bei einem Beispiel müssen
Fernclustersondierungsantworten eine zusätzliche Teilstrecke durchlaufen,
um einen Anforderungscluster zu erreichen. Die Latenzzeit zur Übertragung
einer Sondierungsantwort zwischen einem Ferncluster und einem Anforderungscluster
kann wesentlich kleiner als die Latenzzeit zur Übertragung einer Sondierungsantwort
zwischen einem Ferncluster und einem Anforderungscluster durch einen
Heimatcluster sein. Heimatclustersondierungsantworten werden als
ein Resultat dieser hinzugefügten
Teilstrecke auch verzögert.
-
Wie
vom Fachmann zu erkennen ist können die
spezifischen Transaktionssequenzen, die Anforderungen, Sondierungen
und Antwortmitteilungen involvieren, abhängig von der spezifischen Implementierung
variieren. Bei einem Beispiel kann der Cachekohärenzkontroller 621-3 auf
einen Empfang einer Leseantwortmitteilung vom Speicherkontroller 623-1 warten,
bevor sowohl eine Sondierungsantwortmitteilung als auch eine Leseantwortmitteilung
zum Cachekohärenzkontroller 603-3 übertragen
wird. Bei anderen Beispielen kann ein Cachekohärenzkontroller der tatsächliche
Prozessor sein, der die Anforderung erzeugt. Gewisse Prozessoren
können
sowohl als Prozessor als auch Cachekohärenzkontroller arbeiten. Außerdem sind
unterschiedliche Datenzugriffsanforderungsmitteilungen, Sondierungen
und Antworten, die beim Lesen und Schreiben mehrfach zugeordnet
werden, ins Auge gefasst. Wie oben bemerkt kann jede Mitteilung
zum Erschnüffeln
eines Caches (Cachespeichers) als eine Sondierung bezeichnet werden. Ähnlich kann
jede Mitteilung zum Anzeigen dem Speicherkontroller, dass eine Speicherleitung
gesperrt werden sollte, als eine Quellen-Getanmitteilung bezeichnet
werden.
-
Es
sei darauf hingewiesen, dass die in 6 gezeigte
Transaktion Beispiele von Cachekohärenzkontrollern zeigt, die
viele unterschiedliche Funktionen einschließlich Funktionen von Fernprozessoren, Aggregat-Lokalcaches,
Sondierungsagentenpaare und Fernspeicher, wie sie in Bezug auf die 5A-5D beschrieben
sind, ausführen.
-
Der
Cachekohärenzkontroller 621-1 des
Heimatclusters 620 agiert als ein Fernprozessor. Wenn der
Cachekohärenzkontroller
eine Anforderung von einem Anforderungsclusterprozessor empfängt, wird der
Cachekohärenzkontroller
gesteuert, um als der anfordernde Prozessor im Interesse des Anforderungsclusterprozessors
zu agieren. In diesem Fall akzeptiert der Cachekohärenzkontroller 621-1 eine vom
Prozessor 601-1 weitergesendete Anforderung und sendet
sie zum Speicherkontroller 623-1, akkumuliert Antworten
von allen lokalen Knoten und dem Speicherkontroller 623-1 und
sendet die akkumulierten Antworten und Daten zum anfordernden Prozessor 601-3 weiter.
Der Cachekohärenzkontroller 621-5 sendet
auch eine Quellen-Getanantwort
zum lokalen Speicherkontroller 623-2 weiter.
-
Der
Cachekohärenzkontroller 603-1 des
Anforderungsclusters 600 agiert als ein Fernspeicher. Als
Fernspeicher ist der Cachekohärenzkontroller
so ausgebildet, dass er von einem Prozessor eine Anforderung zu
einem richtigen Ferncluster weitersendet und sicherstellt, dass
lokale Knoten sondiert werden. In diesem Fall sendet der Cachekohärenzkontroller 603-1 eine
Sondierung zum Cachekohärenzkontroller 621-1 des
Heimatclusters 620. Der Cachekohärenzkontroller 603-2 sondiert
auch die lokalen Knoten 605, 607 und 609.
-
Der
Cachekohärenzkontroller 641-1 des
Anforderungsclusters 640 agiert als Sondierungsagentenpaar.
Wie oben bemerkt akzeptiert, wenn ein Cachekohärenzkontroller, der als ein
Sondierungsagentenpaar agiert, eine Sondierung von einem Ferncluster
empfängt,
der Cachekohärenzkontroller
die Sondierung und sendet sie zu allen lokalen Knoten weiter. Der
Cachekohärenzkontroller
akkumuliert die Antworten und sendet eine finale Antwort zum Anforderungscluster
zurück.
Hier sendet der Cachekohärenzkontroller 641-1 eine
Sondierung zu lokalen Knoten, die den Cacheblöcken 645, 647 und 649 zugeordnet
sind, sammelt Sondierungsantworten und sendet die Sondierungsantworten
zum Cachekohärenzkontroller 621-3 des
Heimatclusters 620. Ähnlich agiert
auch der Cachekohärenzkontroller 603-2 als Sondierungsagentenpaar
beim Anforderungscluster 600. Der Cachekohärenzkontroller 603-2 sendet Sondierungsanforderungen
zu lokalen Knoten einschließlich
lokalen Knoten, die den Cacheblöcken 605, 607 und 609 zugeordnet
sind.
-
Die
Cachekohärenzkontroller 621-2 und 621-3 agieren
auch als ein Aggregat-Ferncachespeicher.
Der Cachekohärenzkontroller 621-2 spricht
auf die Akzeptierung der Sondierung vom Speicherkontroller 623-1 an
und sendet die Sondierung zu den anderen Prozessorclustern 600 und 640.
Insbesondere sendet der Cachekohärenzkontroller 621-2 die
Sondierung zu dem mit dem Anforderungscluster 600 korrespondierenden
Cachekohärenzkontroller 603-2 und
dem mit dem Ferncluster 640 korrespondierenden Cachekohärenzkontroller 641-1 weiter.
Wie oben bemerkt kann die Benutzung einer Mehrclusterarchitektur
eine Verzögerung
sowie andere unerwünschte Elemente
wie beispielsweise einen erhöhten
Verkehr und einen Verarbeitungsüberhang
einbringen.
-
In
den 7 bis 10 ist jeder Cluster so gezeigt,
dass er nur vier Knoten aufweist. Jedoch können die anhand der 7 bis 10 beschriebenen
Cluster jede zweckdienliche Anzahl von Knoten aufweisen. 7 ist
eine schematische Darstellung, die einen Transaktionsfluss zur Sperrung
eines Mehrclustersystems auf Basis einer Sperrungsanforderung von
einem anfordernden Heimatknoten eines Heimatclusters zeigt. Die
Techniken der vorliegenden Erfindung ermöglichen die effiziente Distribution
von Sperrungsbefehlen zu mehreren Knoten in mehreren Clustern, wobei
jeder Prozessorknoten keine Kenntnis von Fernknoten hat. In diesem
Fall ist der anfordernde Heimatknoten der Heimatprozessor 705-1 des
Heimatclusters 710, der eine Sperrungsanforderung 715 zum
Heimatsperrungsverwalter 720-1 sendet. Wie oben bemerkt
kann der Heimatsperrungsverwalter 720-1 Teil eines Speicherkontrollers
oder anderen Prozessors sein, oder der Heimatsperrungsverwalter 720-1 kann
ein separater Kontroller sein.
-
Der
Heimatsperrungsverwalter 720-1 rundsendet einen Sperrungsbefehl 725 zu
allen Heimatknoten einschließlich
den Knoten 730 und 735 und den Heimatcachekohärenzkontroller 740-1.
Die Knoten 730 und 735 können beispielsweise andere
Heimatprozessoren im Heimatcluster 710 sein. Der Heimatcachekohärenzkontroller 740-1 überträgt den Sperrungsbefehl 725 zum
Ferncachekohärenzkontroller 745-1 des
Fernclusters 750. Der Ferncachekohärenzkontroller 745-1 sendet
den Sperrungsbefehl 725 zu den Fernknoten 755, 760 und 765 weiter.
Bei diesem Beispiel sind die Fernknoten 755, 760 und 765 Fernprozessoren,
die Operationen, die vor Empfang des Sperrungsbefehls begonnen hatten,
vollenden, aber keine anderen Operationen beginnen und nicht auf
zusätzliche
Daten aus dem lokalen Speicher oder aus einem von allen Clustern
gemeinsam benutzten Speicher zugreifen.
-
Nach
Ausführung
des Sperrungsbefehls sendet jeder der Fernprozessoren 755, 760 und 765 eine „Gesperrt"-Antwort 770 zurück zum Ferncachekohärenzkontroller 745-2,
was anzeigt, dass jeder der Fernprozessoren 755, 760 und 765 den
Sperrungsbefehl 725 ausgeführt hat. Nach Empfang der Gesperrtantwort 770 von
jedem der Fernprozessoren 755, 760 und 765 überträgt der Ferncachekohärenzkontroller 745-2 eine „Fernclustergesperrt"-Antwort 775 zum
Heimatcachekohärenzkontroller 740-2,
was anzeigt, dass jeder Knoten im Ferncluster 750 den Sperrungsbefehl 725 ausgeführt hat.
Der Heimatcachekohärenzkontroller 740-2 sendet
die Fernclustergesperrtantwort 775 zum Heimatsperrungsverwalter 720-2 weiter.
-
Ähnlich führen die
Heimatknoten 730 und 735 den Sperrungsbefehl 725 aus
und geben eine Heimatgesperrtantwort 780 an den Heimatsperrungsverwalter 720-2 aus.
Der Heimatsperrungsverwalter 720-2 sendet eine Systemgesperrtantwort 785 zum
anfordernden Heimatknoten 705-2 nur nach Empfang einer
Gesperrtantwort von jedem Knoten im Heimatcluster. Bei diesem Beispiel
sendet der Heimatsperrungsverwalter 720-2 eine Systemgesperrtantwort 785 zum
anfordernden Heimatknoten 705-2 nur nach Empfang von Heimatgesperrtantworten 780 von
jedem der Heimatknoten 730 und 735 und nach Empfang
einer Fernclustergesperrtantwort 775 vom Heimatcachekohärenzkontroller 745-2.
Bei diesem Beispiel hat der Heimatsperrungsverwalter 720-2 keine
Kenntnis von der Existenz des Fernclusters 750 und sieht 745-2 als
einen noch anderen lokalen Knoten an.
-
8 ist
eine schematische Darstellung eines Transaktionsflusses zur Sperrung
eines Mehrclustersystems auf Basis einer Sperrungsanforderung von
einem anfordernden Prozessor in einem Ferncluster, der hier auch
als anfordernder Cluster bezeichnet wird. Der Ferncluster 750 und
anfordernde Cluster 810 sind beide Ferncluster und können als ein
erster und zweiter Ferncluster angesehen werden. Bei diesem Beispiel
gibt der Prozessor 805-1 des anfordernden Clusters 810 eine
Sperrungsanforderung 815 an den Anforderndclustercachekohärenzkontroller 820-1 aus,
der die Sperrungsanforderung 815 zum Heimatcachekohärenzkontroller 740-1 des Heimatclusters 710 überträgt. Der
Heimatcachekohärenzkontroller 740-1 sendet
die Sperrungsanforderung zum Heimatsperrungsverwalter 720-1 weiter, der
von der Existenz des anfordernden Clusters 810 oder Fernclusters 750 Kenntnis
haben kann oder nicht. Bei diesem Beispiel hat der Heimatsperrungsverwalter 720-1 keine
Kenntnis von der Existenz des anfordernden Clusters 810 und
Fernclusters 750. Der Heimatsperrungsverwalter 720-1 empfängt einfach
die Sperrungsanforderung 815 vom Heimatcachekohärenzkontroller 740-1 und
behandelt den Heimatcachekohärenzkontroller 740-1 als
einen anfordernden Knoten.
-
Deshalb
rundsendet der Heimatsperrungsverwalter 720-1 einen Sperrungsbefehl 725 zum
Heimatcachekohärenzkontroller 740-1 und
zu den Heimatknoten 730 und 735. Der Heimatcachekohärenzkontroller 740-1 überträgt den Sperrungsbefehl 725 zum
Anforderndclustercachekohärenzkontroller 820-2 und
zum Ferncachekohärenzkontroller 745-1.
-
Der
Ferncachekohärenzkontroller 745-1 sendet
den Sperrungsbefehl 725 zu den Fernknoten 755, 760 und 765 weiter.
Nach Ausführung
des Sperrungsbefehls sendet jeder der Fernprozessoren 755, 760 und 765 Gesperrtantworten 770 zum
Ferncachekohärenzkontroller 745-2 zurück, was
anzeigt, dass jeder der Fernprozessoren 755, 760 und 765 den Sperrungsbefehl 725 ausgeführt hat.
Nach Empfang der Gesperrtantwort 770 von jedem der Fernprozessoren 755, 760 und 765 überträgt der Ferncachekohärenzkontroller 745-2 eine
Fernclustergesperrtantwort 775 zum Heimatcachekohärenzkontroller 740-3, was
anzeigt, dass jeder Knoten im Ferncluster 750 den Sperrungsbefehl 725 ausgeführt hat.
Der Heimatcachekohärenzkontroller 740 sendet
die Fernclustergesperrtantwort 775 zum Heimatsperrungsverwalter 720-2.
-
Ähnlich sendet
der Anforderndclustercachekohärenzkontroller 820-2 den
Sperrungsbefehl 725 zu den Anforderndclusterknoten 825, 830 und 835, was
eine Ausführung
des Sperrungsbefehls 725 durch Ausgabe von Gesperrtantworten 840 zum
Anforderndclustercachekohärenzkontroller 820-3 anzeigt.
Nach Empfang der Gesperrtantworten 840 von jedem der Anforderndclusterknoten 825, 830 und 835 überträgt der Anforderndclustercachekohärenzkontroller 820-3 Anforderndclustergesperrtantworten 850 zum
Heimatcachekohärenzkontroller 740-4.
Bei diesem Beispiel sendet der Heimatcachekohärenzkontroller 740-4 eine
Gesperrtantwort zum Heimatsperrungsverwalter 720-2 nur
nach Empfang der Fernclustergesperrtantwort 775 und der
Anforderndclustergesperrtantwort 850.
-
Die
Heimatknoten 730 und 735 führen den Sperrungsbefehl 725 aus
und geben an den Heimatsperrungsverwalter 720-2 Heimatgesperrtantworten 780 aus.
Der Heimatsperrungsverwalter 720-2 sendet eine Systemgesperrtantwort 785 zum
anfordernden Heimatknoten 740-5 nur nach Empfang einer Gesperrtantwort
von jedem Knoten im Heimatcluster. Hier sendet der Heimatsperrungsverwalter 720-2 eine
Systemgesperrtantwort 785 zum Heimatcachekohärenzkontroller 740-5 nur
nach Empfang einer Heimatgesperrtantwort 780 von jedem
der Heimatknoten 730 und 735 und auch Empfang
einer Gesperrtantwort vom Heimatcachekohärenzkontroller 740-4.
-
9 ist
eine schematische Darstellung, die einen Transaktionsfluss zur Entsperrung
eines Mehrclustersystems auf Basis einer Entsperrungsanforderung
von einem Prozessor in einem Heimatcluster zeigt. Bei diesem Beispiel
sendet der Heimatprozessor 705-1 des Heimatclusters 710 eine
Entsperrungsanforderung 915 zum Heimatsperrungsverwalter 720-1.
Der Heimatsperrungsverwalter 720-1 rundsendet einen Entsperrungsbefehl 925 zu
allen Heimatknoten einschließlich
der Knoten 730 und 735 und des Heimatcachekohärenzkontrollers 740-1.
Der Heimatcachekohärenzkontroller 740-1 überträgt den Entsperrungsbefehl 925 zum
Ferncachekohärenzkontroller 745-1 des
Fernclusters 750.
-
Der
Ferncachekohärenzkontroller 745-1 sendet
den Entsperrungsbefehl 925 zu den Fernknoten 755, 760 und 765 weiter.
Nach Ausführung
des Entsperrungsbefehls sendet jeder der Fernprozessoren 755, 760 und 765 eine
Entsperrtantwort 970 zum Ferncachekohärenzkontroller 745-2 zurück, was
anzeigt, dass jeder der Fernprozessoren 755, 760 und 765 den
Entsperrungsbefehl 925 ausgeführt hat. Nach Empfang der Entsperrtantwort 970 von
jedem der Fernprozessoren 755, 760 und 765 überträgt der Ferncachekohärenzkontroller 745-2 eine
Fernclusterentsperrtantwort 975 zum Heimatcachekohärenzkontroller 740-2,
was anzeigt, dass jeder Knoten im Ferncluster 750 den Entsperrungsbefehl 925 ausgeführt hat.
Der Heimatcachekohärenzkontroller 740-2 sendet
die Fernclusterentsperrtantwort 975 zum Heimatsperrungsverwalter 720-2.
-
Ähnlich führen die
Heimatknoten 730 und 735 den Entsperrungsbefehl 925 aus
und geben an den Heimatsperrungsverwalter 720-2 eine Heimatentsperrtantwort 980 aus.
Der Heimatsperrungsverwalter 720-2 sendet eine Systementsperrtantwort 985 zum
anfordernden Heimatknoten 705-2 nur nach Empfang einer
Entsperrtantwort von jedem Knoten im Heimatcluster. Bei diesem Beispiel
sendet der Heimatsperrungsverwalter 720-2 eine Systementsperrtantwort 985 zum
anfordernden Heimatknoten 705-2 nur nach Empfang von Entsperrtantworten 980 von
jedem der Heimatknoten 730 und 735 nach Empfang
einer Fernclusterentsperrtantwort 975 vom Heimatcachekohärenzkontroller 745-2.
-
10 ist
eine schematische Darstellung, die einen Transaktionsfluss zum Entsperren
eines Mehrclustersystems auf Basis einer Entsperrungsanforderung
von einem Prozessor in einem Ferncluster zeigt. Wie oben bemerkt
sind der Ferncluster 750 und anfordernde Cluster 810 beide
Ferncluster und können
als erster und zweiter Ferncluster angesehen werden.
-
Bei
diesem Beispiel gibt der Prozessor 805-1 des anfordernden
Clusters 810 eine Entsperrungsanforderung 1015 zur
Anforderung eines Clustercachekohärenzkontrollers 820-1 aus,
der die Entsperrungsanforderung 1015 zum Heimatcachekohärenzkontroller 740-1 des
Heimatclusters 110 überträgt. Der
Heimatcachekohärenzkontroller 740-1 sendet die
Entsperrungsanforderung 1015 zum Heimatsperrungsverwalter 720-1 weiter,
der Kenntnis von der Existenz des anfordernden Clusters 810 und
Fernclusters 750 haben kann oder nicht. Bei diesem Beispiel
hat der Heimatsperrungsverwalter 720-1 keine Kenntnis von
der Existenz des anfordernden Clusters 810 oder Fernclusters 750.
Der Heimatsperrungsverwalter 720-1 empfängt die Entsperrungsanforderung 1015 vom
Heimatcachekohärenzkontroller 740-1 und behandelt
den Heimatcachekohärenzkontroller 740-1 als
anfordernden Knoten.
-
Demgemäss rundsendet
der Heimatsperrungsverwalter 720-1 einen Entsperrungsbefehl 925 zum
Heimatcachekohärenzkontroller 740-1 und
zu den Heimatknoten 730 und 735. Der Heimatcachekohärenzkontroller 740-1 überträgt den Entsperrungsbefehl 925 zum
Anforderndclustercachekohärenzkontroller 820-2 und
zum Ferncachekohärenzkontroller 745-1.
-
Der
Ferncachekohärenzkontroller 745-1 sendet
den Entsperrungsbefehl 925 zu den Fernknoten 755, 760 und 775 weiter,
die wie oben beschrieben dem Entsperrungsbefehl 925 gehorchen.
Nach Ausführung
des Entsperrungsbefehls sendet jeder der Fernprozessoren 755, 760 und 765 eine
Entsperrtantwort 970 zum Ferncachekohärenzkontroller 745-2 zurück, was
anzeigt, dass jeder der Fernprozessoren 755, 760 und 765 den
Entsperrungsbefehl 925 ausgeführt hat. Nach Empfang der Entsperrtantwort 970 von
jedem der Fernprozessoren 755, 760 und 765 überträgt der Ferncachekohärenzkontroller 745-2 eine
Fernclusterentsperrtantwort 975 zum Heimatcachekohärenzkontroller 740-3,
was anzeigt, dass jeder Knoten im Ferncluster 750 den Entsperrungsbefehl 925 ausgeführt hat.
-
Ähnlich sendet
der Anforderndclustercachekohärenzkontroller 820-2 einen
Entsperrungsbefehl 925 zu den Anforderndclusterknoten 825, 830 und 835,
was die Ausführung
des Entsperrungsbefehls 925 durch Ausgabe einer Entsperrtantwort 1040 an den
Anforderndclustercachekohärenzkontroller 820-3 anzeigt.
Nach Empfang von Entsperrtantworten 1040 von jedem der
Anforderndclusterknoten 825, 830 und 835 überträgt der Anforderndclustercachekohärenzkontroller 820-3 eine
Anforderndclusterentsperrtantwort 1050 zum Heimatcachekohärenzkontroller 740-4.
Der Heimatcachekohärenzkontroller 740-4 sendet
eine Entsperrtantwort zum Heimatsperrungsverwalter 720-2 nach
Empfang einer Fernclusterentsperrtantwort 975 und Anforderndclusterentsperrtantwort 1050.
-
Die
Heimatknoten 730 und 735 führen den Entsperrungsbefehl 925 aus
und geben Heimatentsperrtantworten 980 an den Heimatsperrungsverwalter 720-2 aus.
Der Heimatsperrungsverwalter 720-2 sendet eine Systementsperrtantwort 985 zum
anfordernden Heimatknoten 705-2 nur nach Empfang einer
Entsperrtantwort von jedem Knoten im Heimatcluster. Hier sendet
der Heimatsperrungsverwalter 720-2 eine Systementsperrtantwort 985 zum
Heimatcachekohärenzkontroller 740-5 nur
nach Empfang einer Entsperrtantwort 980 von jedem der Heimatknoten 730 und 735 und
auch Empfang einer Entsperrtantwort vom Heimatcachekohärenzkontroller 740-4.
-
Wenn
die Erfindung in Bezug auf spezifische Ausführungsformen von ihr besonders
gezeigt und beschrieben worden ist, versteht dies der Fachmann so,
dass Änderungen
in der Form und Details der offenbarten Ausführungsformen ohne Verlassen
des Schutzbereichs der beigefügten
Ansprüche
gemacht werden können.
-
Beispielsweise
können
Ausführungsformen der
vorliegenden Erfindung mit Mehrprozessorclustern, die durch eine
Punkt-zu-Punkt-, Schalt- oder Busarchitektur verbunden sind, angewendet
werden. Nach einem anderen Beispiel können mehrere Cluster von Prozessoren
einen einzelnen Cachekohärenzkontroller
gemeinsam benutzen, oder Cachekohärenzkontroller können in
einem einzelnen Cluster benutzt werden. Deshalb sollte der Schutzbereich
der Erfindung anhand der beigefügten
Ansprüche
bestimmt werden.