DE60311302T2 - Verfahren und vorrichtung zur verriegelung von mehreren clustern - Google Patents

Verfahren und vorrichtung zur verriegelung von mehreren clustern Download PDF

Info

Publication number
DE60311302T2
DE60311302T2 DE60311302T DE60311302T DE60311302T2 DE 60311302 T2 DE60311302 T2 DE 60311302T2 DE 60311302 T DE60311302 T DE 60311302T DE 60311302 T DE60311302 T DE 60311302T DE 60311302 T2 DE60311302 T2 DE 60311302T2
Authority
DE
Germany
Prior art keywords
home
remote
cache coherence
cluster
coherence controller
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 - Lifetime
Application number
DE60311302T
Other languages
English (en)
Other versions
DE60311302D1 (de
Inventor
B. David Austin GLASCO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Newisys Inc
Original Assignee
Newisys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Newisys Inc filed Critical Newisys Inc
Application granted granted Critical
Publication of DE60311302D1 publication Critical patent/DE60311302D1/de
Publication of DE60311302T2 publication Critical patent/DE60311302T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Coupling Device And Connection With Printed Circuit (AREA)
  • Small-Scale Networks (AREA)
  • Surgical Instruments (AREA)

Description

  • 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.

Claims (12)

  1. Computersystem, aufweisend: einen Heimatcluster (101), der mehrere Heimatknoten (202) mit mehreren Heimatprozessoren (202) und einen Heimatcachekohärenzkontroller (230) aufweist, wobei die Heimatknoten in einer ersten Punkt-zu-Punkt-Architektur miteinander verbunden sind, wobei einer der mehreren Heimatknoten einen Heimatsperrungsverwalter (265) aufweist, der zum Rundsenden eines Sperrungsbefehls zu den mehreren Heimatprozessoren (202) und dem Heimatcachekohärenzkontroller (230) ausgebildet ist, und einen ersten Ferncluster (103), der einen Erstferncachekohärenzkontroller und mehrere Erstfernprozessoren aufweist, wobei der Erstferncachekohä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 ersten Fernprozessoren Gesperrtantworten empfangen worden sind.
  2. Computersystem nach Anspruch 1, wobei jeder der mehreren Heimatknoten (202) Zugriff auf ein Konfigurationsregister hat, das eine Sperrungsverwalterstelle anzeigt.
  3. Computersystem nach Anspruch 1, wobei jeder der mehreren Erstfernprozessoren Zugriff auf ein Konfigurationsregister hat, das eine Stelle des Erstferncachekohärenzkontrollers als eine Erstfernsperrungsverwalterstelle anzeigt.
  4. Computersystem nach Anspruch 1, wobei der Heimatcachekohärenzcontroller (230) Zugriff auf ein Heimatkonfigurationsregister hat, das eine Heimatsperrungsverwalterstelle und eine Erstferncachekohärenzkontrollerstelle aufweist.
  5. Computersystem nach Anspruch 1, wobei der Erstferncachekohärenzkontroller Zugriff auf ein Erstfernkonfigurationsregister hat, das eine Heimatsperrungsverwalterstelle aufweist.
  6. Computersystem nach Anspruch 1, wobei jeder Heimatknoten (202) ein Heimatkonfigurationsregister aufweist, das eine Stelle des Heimatsperrungsverwalters (265) als einen Empfänger von Heimatsperrungsanforderungen spezifiziert, und wobei jeder der mehreren Erstfernprozessoren ein Erstfernkonfigurationsregister aufweist, das eine Stelle des Erstferncachekohärenzkontrollers als einen Empfänger von Erstfernsperrungsanforderungen spezifiziert.
  7. Computersystem nach Anspruch 6, wobei der Erstferncachekohärenzkontroller Zugriff auf ein Erstfernkonfigurationsregister hat, das den Heimatcachekohärenzkontroller (230) als einen Empfänger von Erstfernsperrungsanforderungen spezifiziert.
  8. Computersystem nach Anspruch 6, wobei der Heimatcachekohärenzkontroller (230) Zugriff auf ein Heimatkonfigurationsregister hat, das den ersten Ferncachekohärenzkontroller als einen Empfänger von vom Heimatsperrungsverwalter empfangenen Sperrungsbefehlen spezifiziert.
  9. Computersystem nach Anspruch 1, wobei der Erstferncachekohärenzkontroller zum Agieren als ein Erstfernclustersperrungsverwalter durch Weiterleiten von Signalen zum und vom Heimatsperrungsverwalter (265) über den Heimatcachekohärenzkontroller (230) konfiguriert ist, und wobei das Computersystem außerdem einen zweiten Ferncluster (105) aufweist, 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 Weiterleiten von Signalen zum und vom Heimatsperrungsverwalter (265) über den Heimatcachekohärenzkontroller (230) konfiguriert ist.
  10. Verfahren zur Steuerung von Sperrungsbefehlen in einem Computersystem, wobei das Verfahren aufweist: Empfangen einer Sperrungsanforderung von einem anfordernden Heimatknoten (202) von mehreren Heimatknoten (202) in einem Heimatcluster, wobei die mehreren Heimatknoten (202) mehrere Heimatprozessoren (202) und einen Heimatcachekohärenzkontroller (230), 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 (230) zu einem Erstferncachekohärenzkontroller eines ersten Fernclusters, der mehrere Erstfernprozessoren aufweist, die in einer zweiten Punkt-zu-Punkt-Architektur mit dem Erstferncachkohärenzkontroller verbunden sind, Weitersenden des Sperrungsbefehls vom Erstferncachkohä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 (202) zum Heimatsperrungsverwalter (265), wobei die Heimatgesperrtantwort die Ausführung des Sperrungsbefehls anzeigt, Weiterleiten der Erstfernclustergesperrtantwort vom Heimatcachekohärenzkontroller (230) zum Heimatsperrungsverwalter (265), und Senden einer Systemgesperrtantwort zum anfordernden Heimatknoten (202), nachdem der Heimatsperrungsverwalter (265) die Heimatgesperrtantwort und die Erstfernclustergesperrtantwort empfängt.
  11. Computerprogramm, realisiert in einem computerlesbaren Speichermedium, wobei das Computerprogramm Instruktionen aufweist, die den Computer veranlassen zum Senden einer Sperrungsanforderung zu einem Heimatsperrungsverwalter (265) von einem anfordernden Heimatknoten (202) von mehreren Heimatknoten (202) in einem Heimatcluster (101), wobei die mehreren Heimatknoten (202) mehrere Heimatprozessoren (202) und einen Heimatcachekohärenzkontroller (230) aufweisen, die in einer ersten Punkt-zu-Punkt-Architektur miteinander verbunden sind, Rundsenden eines Sperrungsbefehls vom Heimatsperrungsverwalter (265) zu allen Heimatknoten (202), wobei der Sperrungsbefehl auf die Sperrungsanforderung anspricht, Übertragen des Sperrungsbefehls vom Heimatcachekohärenzkontroller (230) zu einem Erstferncachekohärenzkontroller eines ersten Fernclusters (103), der mehrere Erstfernprozessoren aufweist, die in einer zweiten Punkt-zu-Punkt-Architektur mit dem Erstferncachkohä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 Estfernprozessoren den Sperrungsbefehl ausgeführt hat, Übertragen einer Erstfernclustergesperrtantwort vom Erstferncachekohärenzkontroller zum Heimatcachekohärenzkontroller (230), 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 (202) zum Heimatsperrungsverwalter (265), wobei die Heimatgesperrtantwort die Ausführung des Sperrungsbefehls anzeigt, Weiterleiten der Erstfernclustergesperrtantwort vom Heimatcachekohärenzkontroller (230) zum Heimatsperrungsverwalter (265), und Senden einer Systemgesperrtantwort vom Heimatsperrungsverwalter (265) zum anfordernden Heimatknoten (202), nachdem der Heimatsperrungsverwalter die Heimatgesperrtantwort und die Erstfernclustergesperrtantwort empfängt.
  12. Computerprogramm nach Anspruch 11, außerdem mit Instruktionen, die einen Computer veranlassen zum Empfangen einer Entsperrungsanforderung vom anfordernden Heimatknoten (202), Rundsenden eines Entsperrungsbefehls zu allen Heimatknoten (202), 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 Erstentesperrtantwort anzeigt, dass ein Fernprozessor der mehreren Erstfernprozessoren den Entsperrungsbefehl ausgeführt hat, Übertragen einer Erstfernclusterentsperrtantwort vom Erstferncachekohärenzkontroller zum Heimatcachekohärenzkontroller (230), wobei die Erstfernclusterentsperrtantwort anzeigt, dass jeder Fernprozessor der mehreren Erstfernprozessoren den Entsperrungsbefehl ausgeführt hat, Übertragen einer Heimatentsperrtantwort von jedem Heimatprozessor (202) zum Heimatsperrungsverwalter (265), wobei die Heimatentsperrtantwort die Ausführung des Entsperrungsbefehls anzeigt, Weiterleiten der Erstfernclusterentsperrtantwort vom Heimatcachekohärenzkontroller (230) zum Heimatsperrungsverwalter (265), und Senden einer Systementsperrtantwort zum anfordernden Heimatknoten (202), nachdem der Heimatsperrungsverwalter (265) die Heimatentsperrtantwort und die Erstfernclusterentsperrtantwort empfängt.
DE60311302T 2002-11-08 2003-11-04 Verfahren und vorrichtung zur verriegelung von mehreren clustern Expired - Lifetime DE60311302T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US291895 2002-11-08
US10/291,895 US6950913B2 (en) 2002-11-08 2002-11-08 Methods and apparatus for multiple cluster locking
PCT/US2003/035290 WO2004044744A2 (en) 2002-11-08 2003-11-04 Methods and apparatus for multiple cluster locking

Publications (2)

Publication Number Publication Date
DE60311302D1 DE60311302D1 (de) 2007-03-08
DE60311302T2 true DE60311302T2 (de) 2007-08-30

Family

ID=32229306

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60311302T Expired - Lifetime DE60311302T2 (de) 2002-11-08 2003-11-04 Verfahren und vorrichtung zur verriegelung von mehreren clustern

Country Status (8)

Country Link
US (1) US6950913B2 (de)
EP (1) EP1561162B1 (de)
JP (1) JP2006505868A (de)
AT (1) ATE352062T1 (de)
AU (1) AU2003286912A1 (de)
CA (1) CA2505259A1 (de)
DE (1) DE60311302T2 (de)
WO (1) WO2004044744A2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPO489297A0 (en) * 1997-01-31 1997-02-27 Aunty Abha's Electronic Publishing Pty Ltd A system for electronic publishing
US7293228B1 (en) * 1997-01-31 2007-11-06 Timebase Pty Limited Maltweb multi-axis viewing interface and higher level scoping
US20030041305A1 (en) * 2001-07-18 2003-02-27 Christoph Schnelle Resilient data links
US7363310B2 (en) 2001-09-04 2008-04-22 Timebase Pty Limited Mapping of data from XML to SQL
US7281206B2 (en) * 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7089372B2 (en) * 2003-12-01 2006-08-08 International Business Machines Corporation Local region table for storage of information regarding memory access by other nodes
US7877549B1 (en) * 2007-06-12 2011-01-25 Juniper Networks, Inc. Enforcement of cache coherency policies using process synchronization services
WO2009053768A2 (en) * 2007-10-23 2009-04-30 Gecad Technologies Sa System and methods for transactional storage email data
US20120110291A1 (en) * 2009-04-06 2012-05-03 Kaminario Technologies Ltd. System and method for i/o command management
US8402106B2 (en) * 2010-04-14 2013-03-19 Red Hat, Inc. Asynchronous future based API
US8904174B2 (en) * 2011-03-22 2014-12-02 International Business Machines Corporation System, method and computer program product for product license management
EP2880541A4 (de) * 2012-07-31 2016-01-20 Hewlett Packard Development Co Systeme und verfahren zur kontrolle des zugriffs auf eine gemeinsame datenstruktur mit leser-/schreibersperren mit mehreren untersperren
CN104375963B (zh) 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
US20170111286A1 (en) * 2015-10-15 2017-04-20 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
US9940269B2 (en) * 2016-01-22 2018-04-10 International Business Machines Corporation Conditionally releasing locks in response to requests
US10402218B2 (en) * 2016-08-30 2019-09-03 Intel Corporation Detecting bus locking conditions and avoiding bus locks
US11347712B2 (en) 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
FR3086426B1 (fr) * 2018-09-26 2021-10-29 Commissariat Energie Atomique Gestionnaire de verrous pour architecture multicoeurs
US11467962B2 (en) 2020-09-02 2022-10-11 SiFive, Inc. Method for executing atomic memory operations when contested

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
US5226143A (en) 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
US5634043A (en) * 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5946710A (en) * 1996-11-14 1999-08-31 Unisys Corporation Selectable two-way, four-way double cache interleave scheme
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
US6490661B1 (en) 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6167492A (en) 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6473849B1 (en) * 1999-09-17 2002-10-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US6738870B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment

Also Published As

Publication number Publication date
EP1561162A2 (de) 2005-08-10
ATE352062T1 (de) 2007-02-15
AU2003286912A1 (en) 2004-06-03
DE60311302D1 (de) 2007-03-08
WO2004044744A3 (en) 2004-08-12
CA2505259A1 (en) 2004-05-27
JP2006505868A (ja) 2006-02-16
US6950913B2 (en) 2005-09-27
EP1561162B1 (de) 2007-01-17
US20040093469A1 (en) 2004-05-13
WO2004044744A2 (en) 2004-05-27

Similar Documents

Publication Publication Date Title
DE60311302T2 (de) Verfahren und vorrichtung zur verriegelung von mehreren clustern
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69729243T2 (de) Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen
DE112015004336B4 (de) Konfigurationsbasierte Auswahl eines Cachekohärenz-Protokolls
DE69721891T2 (de) Deterministisches Kohärenzprotokoll für verteilten Multicache-Speicher
DE69832943T2 (de) Sequenzsteuerungsmechanismus für ein switch-basiertes Mehrprozessorsystem
DE69822534T2 (de) Gemeinsame Speicherbenutzung mit variablen Blockgrössen für symmetrische Multiporzessor-Gruppen
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE112008002018B4 (de) Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern
DE60219436T2 (de) System mit adressbasierter Intraknotenkohärenz und datenbasierter Interknotenkohärenz
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE69724353T2 (de) Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE102009032076B4 (de) Erfüllung von Speicherordnungsanforderungen zwischen Teillesevorgängen und Nicht-Snoop-Zugriffen
DE112005002180T5 (de) Lösen von Cachekonflikten
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE112013000889T5 (de) Weiterleitungsfortschritts-Mechanismus für Speichervorgänge bei Vorhandensein von Ladekonflikten in einem Ladevorgänge begünstigenden System
DE3724730A1 (de) Cache-steuereinrichtung
DE112005003243T5 (de) System und Verfahren für die Cache-Kohärenz bei einem Cache mit unterschiedlichen Längen für die Cache-Orte

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R082 Change of representative

Ref document number: 1561162

Country of ref document: EP

Representative=s name: MITSCHERLICH & PARTNER PATENT- UND RECHTSANWAE, DE