DE102021108294A1 - System und verfahren für skalierbare hardware-kohärente speicherknoten - Google Patents

System und verfahren für skalierbare hardware-kohärente speicherknoten Download PDF

Info

Publication number
DE102021108294A1
DE102021108294A1 DE102021108294.3A DE102021108294A DE102021108294A1 DE 102021108294 A1 DE102021108294 A1 DE 102021108294A1 DE 102021108294 A DE102021108294 A DE 102021108294A DE 102021108294 A1 DE102021108294 A1 DE 102021108294A1
Authority
DE
Germany
Prior art keywords
interface
node controller
memory
processor
cache coherency
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.)
Granted
Application number
DE102021108294.3A
Other languages
English (en)
Other versions
DE102021108294B4 (de
Inventor
Derek Schumacher
Randy Passint
Thomas McGee
Michael Malewicki
Michael Woodacre
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102021108294A1 publication Critical patent/DE102021108294A1/de
Application granted granted Critical
Publication of DE102021108294B4 publication Critical patent/DE102021108294B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Eine Ausführungsform kann einen Knoten-Controller in einem Multiprozessorsystem bereitstellen. Der Knoten-Controller kann eine Prozessorschnittstelle zur Verbindung mit einem Prozessor, eine Speicherschnittstelle zur Verbindung mit einem Fabric-Attached Memory, eine Knoten-Controller-Schnittstelle zur Verbindung mit einem entfernten Knoten-Controller und eine Cache-Kohärenzlogik zum Betrieb in einem ersten Modus oder einem zweiten Modus umfassen. Die Cache-Kohärenzlogik verwaltet die Cache-Kohärenz für einen lokalen Speicher des Prozessors, der mit der Prozessorschnittstelle verbunden ist, wenn er im ersten Modus arbeitet, und die Cache-Kohärenzlogik verwaltet die Cache-Kohärenz für den mit der Speicherschnittstelle verbundenen Speicher, wenn er im zweiten Modus arbeitet.

Description

  • HINTERGRUND
  • Feld
  • Diese Offenbarung bezieht sich allgemein auf skalierbare Speicherknoten in Multiprozessorsystemen. Genauer gesagt bezieht sich diese Offenbarung auf ein System und ein Verfahren, das Dual-Mode-Knoten-Controller implementiert, um ein hybrides Speichersystem zu ermöglichen, das verschiedene Speichertypen enthält.
  • Stand der Technik
  • In einem Multiprozessorsystem ist es wünschenswert, den Speicher in einer Hardware-Cache-Kohärenz skalieren zu können. Hardware-verwaltete Cache-Kohärenzschemata sind vorteilhaft gegenüber software-verwalteten Cache-Kohärenzschemata, die erhebliche Softwareanpassungen erfordern. Die Skalierung des Speichers auf hardwarekohärente Weise ermöglicht es der unveränderten Software, den zusätzlichen Speicher nahtlos zu nutzen. Aktuelle Prozessor-Speicher-zentrierte Rechnerarchitekturen erfordern jedoch eine gleichzeitige Skalierung der Prozessoren, wenn Speicher skaliert werden. In Situationen, in denen nur zusätzliche Speicher benötigt werden, kann das Hinzufügen von Prozessoren zu unerwünschten Kostensteigerungen führen.
  • Figurenliste
    • zeigt ein beispielhaftes hybrides System mit uneinheitlichem Speicherzugriff (NUMA), gemäß einer Ausführungsform.
    • zeigt eine Teilansicht eines cache-kohärenten NUMA-Systems (ccNUMA) gemäß einer Ausführungsform.
    • zeigt ein beispielhaftes Blockdiagramm eines Knoten-Controllers gemäß einer Ausführungsform.
    • zeigt beispielhafte Interaktionen zwischen einer lokalen Knotensteuerung und einer entfernten Knotensteuerung während eines Fernspeicherzugriffs, gemäß einer Ausführungsform.
    • zeigt ein Flussdiagramm, das einen beispielhaften Prozess eines Knoten-Controllers veranschaulicht, der auf einen entfernten Speicherzugriff reagiert, gemäß einer Ausführungsform.
  • In den Abbildungen beziehen sich gleiche Referenznummern auf die gleichen Abbildungselemente.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung soll es dem Fachmann ermöglichen, die Ausführungsformen herzustellen und zu verwenden, und wird im Zusammenhang mit einer bestimmten Anwendung und deren Anforderungen gegeben. Verschiedene Modifikationen der offengelegten Ausführungsformen werden für den Fachmann leicht ersichtlich sein, und die hier definierten allgemeinen Prinzipien können auf andere Ausführungsformen und Anwendungen angewendet werden, ohne vom Geist und Umfang der vorliegenden Offenbarung abzuweichen. Daher ist der Umfang der vorliegenden Offenbarung nicht auf die gezeigten Ausführungsformen beschränkt, sondern es ist ihr der weitestgehende Geltungsbereich zuzuerkennen, der mit den hier offengelegten Prinzipien und Merkmalen vereinbar ist.
  • Die hier beschriebenen Ausführungsformen erleichtern die Implementierung eines hybriden Speichersystems (z. B. eines Systems mit cachekohärentem nicht-einheitlichem Speicherzugriff (ccNUMA)). Das hybride Speichersystem kann innerhalb der gleichen hardwaregesteuerten Cache-Kohärenz-Domäne sowohl prozessorverbundene Speicher als auch fabrikverbundene Speicher enthalten. Die Einbeziehung der Fabric-attached Memories ermöglicht eine unabhängige Skalierung von Prozessoren und Speichern. Das hybride System kann auch einen einheitlichen Knoten-Controller enthalten, der die Cache-Kohärenz beider Speichertypen steuern kann. Genauer gesagt kann der Node-Controller in zwei Modi arbeiten. Wenn der Knoten-Controller über einen direkt angeschlossenen Prozessorsockel verfügt, arbeitet der Knoten-Controller im ersten Modus und verwaltet die Hardware-Kohärenz der an den Prozessor angeschlossenen Speicher. Wenn kein Prozessor an den Knoten-Controller angeschlossen ist, arbeitet der Knoten-Controller im zweiten Modus und verwaltet die Hardware-Kohärenz der an die Struktur angeschlossenen Speicher. Der Knoten-Controller kann eine Prozessorschnittstelle zur Verbindung mit einem Prozessor und eine Speicherschnittstelle zur Verbindung mit einem Fabric-verbundenen Speicher (z. B. ein Gen-Z-Speichermodul) enthalten. Der Knoten-Controller kann auch eine Reihe von Logikblöcken enthalten, die hardwaregesteuerte Cache-Kohärenz implementieren, einschließlich eines Local-Home (LH)-Logikblocks, der lokale Speicherzugriffe steuert, und eines Remote-Home (RH)-Logikblocks, der entfernte Speicherzugriffe steuert. Beim Betrieb im ersten Modus kann der LH-Logikblock eine empfangene Speicherzugriffsanforderung an den Prozessor weiterleiten, der dann den Speicherzugriff erleichtern und die Speicherzugriffsantwort zurück an den LH-Logikblock senden kann. Im zweiten Modus hingegen ist kein Prozessor an den Node Controller angeschlossen, so dass der LH-Logikblock die Speicherzugriffsanforderung über einen speziellen Pfad (z. B. eine Abkürzung oder einen Loopback-Pfad) an den RH-Logikblock weiterleiten kann. Der RH-Logikblock muss nicht unterscheiden, ob er die Speicherzugriffsanforderung vom Prozessor oder vom Loopback-Pfad erhält, und kann die Speicherzugriffsanforderung basierend auf der Speicheradresse verarbeiten
  • In den letzten Jahren ersetzen speicherzentrierte Rechentechnologien allmählich die traditionellen prozessorzentrierten Rechentechnologien, um die ständig steigende Nachfrage nach Rechengeschwindigkeit und Speicherkapazität zu erfüllen. Darüber hinaus hat die Implementierung von Fabric-attached-Speichern (d. h. Speicher, auf die über eine Switch-Fabric zugegriffen werden kann) die Erweiterung des Speichers in einem cache-kohärenten System ermöglicht, ohne dass zusätzliche Prozessoren erforderlich sind. In einigen Ausführungsformen kann ein ccNUMA-System hybride Speicher enthalten, wobei einige Speicher prozessorgebundene Speicher und einige fabrikgebundene Speicher sind.
  • zeigt ein beispielhaftes hybrides System mit uneinheitlichem Speicherzugriff (NUMA) gemäß einer Ausführungsform. In kann das NUMA-System 100 eine Vielzahl von Knoten (oder Hubs) enthalten, z. B. die Knoten 102 und 104. Jeder Knoten kann einen oder mehrere Knoten-Controller enthalten, die so konfiguriert sind, dass sie die Kommunikation zwischen den Knoten erleichtern und die Cache-Kohärenz verwalten. In dem in gezeigten Beispiel sind einige Knoten-Controller mit Prozessoren verbunden und so konfiguriert, dass sie die Cache-Kohärenz für die mit den Prozessoren verbundenen Speicher verwalten. Andere Knoten-Controller haben keine direkt an sie angeschlossenen Prozessoren und können so konfiguriert werden, dass sie die Cache-Kohärenz für an die Fabric angeschlossene Speicher über eine Switch-Fabric verwalten. Knoten 102 kann beispielsweise ein Paar von Knoten-Controllern umfassen, wobei an jedem Knoten-Controller ein Prozessor und an jedem Prozessor ein Speichermodul (z. B. ein DDR-Speichermodul (Double-Data-Rate)) angeschlossen ist. Ein prozessorverbundener Speicher kann sich auf ein Speichermodul beziehen, das lokal zu einem bestimmten Prozessor gehört, und der Zugriff auf den Speicher erfolgt über diesen Prozessor. Andererseits enthält der Knoten 104 nur ein Paar von Knoten-Controllern, wobei ein Fabric-attached-Speichermodul mit jedem Knoten-Controller verbunden ist (z. B. über eine Gen-Z-Fabric). Beachten Sie, dass zur Vereinfachung der Darstellung jeder der Knoten-Controller in so dargestellt ist, dass er mit einer einzelnen CPU oder einem einzelnen Speichermodul gekoppelt ist. In der Praxis kann ein Knoten-Controller mit mehreren Prozessoren und/oder mehreren Speichermodulen gekoppelt sein. Beispielsweise kann der Knoten-Controller 102 mit einer Reihe von Prozessoren gekoppelt sein, wobei jeder Prozessor mit einem oder mehreren Speichermodulen verbunden ist. In ähnlicher Weise kann der Knoten-Controller 104 über eine Switching Fabric mit einer Vielzahl von Speichermodulen verbunden sein.
  • zeigt auch, dass alle Knoten-Controller miteinander verbunden sind, um eine logische gemeinsame Nutzung von physisch getrennten Speichern zu ermöglichen, unabhängig davon, ob ein Speicher an einen Prozessor oder an eine Switching Fabric angeschlossen ist. Mit anderen Worten: Speicherzugriffsanforderungen können von einem Knoten-Controller an einen anderen gesendet werden, um auf Speicher zuzugreifen, die an einen anderen Knoten-Controller angeschlossen sind. Beispielsweise kann der Knoten-Controller innerhalb des Knotens 102 eine Speicheranforderung, die von einem Prozessor innerhalb des Knotens 102 stammen kann, an den Knoten-Controller innerhalb des Knotens 104 senden, um auf den mit der Fabric verbundenen Speicher innerhalb des Knotens 104 zuzugreifen. Die Cache-Kohärenz des NUMA-Systems 100 kann von der Hardware innerhalb jedes Knoten-Controllers verwaltet werden. Die Software der oberen Schicht muss die Cache-Kohärenz zwischen den verteilten Speichermodulen im NUMA-System 100 nicht verwalten.
  • zeigt eine Teilansicht eines ccNUMA-Systems gemäß einer Ausführungsform. Genauer gesagt zeigt eine Nahansicht eines Knotenpaares (d. h. Knoten 210 und Knoten 220), die den in dargestellten Knoten 102 bzw. 104 ähneln. In einem Multiprozessorsystem umfasst ein Knoten eine Vielzahl von Ressourcen (z. B. Prozessoren, Speicher, Controller usw.), die sich in unmittelbarer physischer Nähe befinden (z. B. in einem Computergehäuse). Ein Knoten-Controller (der auch als Hub bezeichnet werden kann) kann ein elektronisches Gerät sein, z. B. ein integrierter Schaltkreis, der die Kommunikation und den Nachrichtenaustausch innerhalb eines Knotens und zwischen verschiedenen Knoten steuert. Darüber hinaus kann ein Knoten-Controller eine Logik enthalten, die ein Cache-Kohärenzprotokoll implementiert (z. B. ein verzeichnisbasiertes Cache-Kohärenzprotokoll), um die Cache-Kohärenz innerhalb des ccNUMA-Systems 200 sicherzustellen. In dem in dargestellten Beispiel kann der Knoten 210 die Knotensteuerungen 212 und 214 und der Knoten 220 die Knotensteuerungen 222 und 224 enthalten. Alle Knoten-Controller sind über Knoten-Controller-Schnittstellen miteinander verbunden, um den Speicherzugriff von einem Knoten-Controller auf jeden anderen Knoten-Controller zu ermöglichen.
  • Der Knoten 210 kann auch mehrere miteinander verbundene Prozessorsockel (z. B. die Sockel 202-208) enthalten, die eine Sockelgruppe bilden. Ein Prozessorsockel kann einen oder mehrere Prozessoren enthalten, und jeder Prozessor kann mindestens einen lokalen Speicher haben. In dieser Offenlegung können die Begriffe „Prozessorsockel“ und „Sockel“ austauschbar sein. Sockel innerhalb eines Knotens (z. B. die Sockel 202-208) können als lokal zueinander betrachtet werden. Ein Knotencontroller kann direkt mit einem oder mehreren Prozessorsockeln gekoppelt sein (z. B. über eine oder mehrere Prozessorschnittstellen). In dem in dargestellten Beispiel kann jeder Node Controller direkt mit zwei Prozessorsockeln gekoppelt sein. Beispielsweise ist der Node Controller (NC) 212 direkt mit den Sockeln 202 und 204 gekoppelt, und der Node Controller 214 ist direkt mit den Sockeln 206 und 208 gekoppelt. In einer Ausführungsform kann die Prozessorschnittstelle einen UltraPath Interconnect (UPI) enthalten.
  • Andererseits enthält der Knoten 220 keine Prozessorsockel (d. h., es gibt keinen Prozessor oder Sockel, der direkt mit seinen Knoten-Controllern verbunden ist). Im Gegensatz dazu kann jeder Knoten-Controller mit einem oder mehreren Fabric-verbundenen Speichern gekoppelt sein. Zum Beispiel ist der Knoten-Controller 222 mit den Speichern 232 und 234 gekoppelt, und der Knoten-Controller 224 ist mit den Speichern 236 und 238 gekoppelt. In einigen Ausführungsformen kann ein Knoten-Controller eine Speicherschnittstelle enthalten, die die Kopplung zwischen dem Knoten-Controller und dem Fabric-Attached Memory erleichtert. Es können verschiedene Arten von Speicherschnittstellen verwendet werden, einschließlich, aber nicht beschränkt auf: eine DDR-Schnittstelle, eine Grafik-DDR-Schnittstelle (GDDR), eine HBM-Schnittstelle (High Bandwidth Memory), eine PCIe-Schnittstelle (Peripheral Component Interconnect Express), eine CXL-Schnittstelle (Compute Express Link), eine Gen-Z-Schnittstelle, eine Infiniband-Schnittstelle®, eine Ethernet-Schnittstelle, eine Fibre Channel-Schnittstelle usw.
  • Wie in BILD 1 und BILD 2 zu sehen ist, kann ein hybrides NUMA-System verschiedene Knotentypen umfassen, wobei einige Knoten Sockel enthalten und andere nicht. Um die Kosten zu reduzieren, ist es wünschenswert, einen modularen Ansatz zu verwenden. Genauer gesagt, können die Controller innerhalb jedes Knotens Standardkomponenten sein, unabhängig davon, in welchem Knotentyp sie sich befinden. Mit anderen Worten: Ein und derselbe Knoten-Controller sollte in der Lage sein, die Cache-Kohärenz für prozessorangeschlossene Speicher zu verwalten, wenn er in einem Knoten mit Sockeln eingesetzt wird, und die Cache-Kohärenz für fabrikangeschlossene Speicher zu verwalten, wenn er in einem Knoten ohne Sockel eingesetzt wird. In einigen Ausführungsformen kann der Knoten-Controller sowohl Prozessorschnittstellen als auch Speicherschnittstellen enthalten. Über die Prozessorschnittstellen kann der Knoten-Controller mit Prozessoren und prozessorverbundenen Speichern gekoppelt werden, und über die Speicherschnittstellen kann der Knoten-Controller mit Fabric-verbundenen Speichern gekoppelt werden. Je nach Art der zu verwaltenden Speicher kann ein Knoten-Controller für den Betrieb in zwei verschiedenen Knoten konfiguriert werden. Genauer gesagt, wenn er mit einem Prozessor gekoppelt ist, kann der Knoten-Controller entfernte Speicherzugriffsanforderungen an den Prozessor weiterleiten, um den Prozessor bei der Durchführung entsprechender Speicherzugriffsoperationen zu unterstützen. Andererseits kann der Knoten-Controller, wenn er mit einem Fabric-Attached Memory gekoppelt ist, die Speicherzugriffsanforderung in einer Schleife an die Hardware-Logikblöcke weiterleiten, die die Cache-Kohärenz verwalten, so dass die Hardware-Logikblöcke die entsprechenden Speicherzugriffsoperationen durchführen können.
  • zeigt ein beispielhaftes Blockdiagramm eines Knoten-Controllers gemäß einer Ausführungsform. Der Knoten-Controller 300 kann eine Reihe von Schnittstellenmodulen enthalten, die die Kommunikation zwischen dem Knoten-Controller 300 und anderen Modulen außerhalb des Knoten-Controllers 300 erleichtern, wie z. B. Prozessoren, Speicher, Knoten-Controller usw. Genauer gesagt kann der Knoten-Controller 300 ein Prozessor-Schnittstellenmodul 302 enthalten, das die Kommunikation zwischen dem Knoten-Controller 300 und einer Reihe von Prozessoren und Speichern, die an diese Prozessoren angeschlossen sind, erleichtert. Der Knoten-Controller 300 kann auch ein Speicherschnittstellenmodul 304 enthalten, das die Kommunikation zwischen dem Knoten-Controller 300 und den mit der Struktur verbundenen Speichern erleichtert. Das Speicherschnittstellenmodul 304 kann verschiedene Arten von Speicherschnittstellen enthalten, z. B. eine DDR-Schnittstelle, eine GDDR-Schnittstelle, eine HBM-Schnittstelle, eine PCIe-Schnittstelle, eine CXL-Schnittstelle, eine Gen-Z-Schnittstelle, eine Infiniband-Schnittstelle®, eine Ethernet-Schnittstelle, eine Fibre Channel-Schnittstelle usw.
  • Je nach Einsatz des Knoten-Controllers 300 kann in bestimmten Szenarien das Speicherschnittstellenmodul 304 unbenutzt bleiben, und der Knoten-Controller 300 kann so konfiguriert werden, dass er Speicher verwaltet, die über das Prozessorschnittstellenmodul 302 an die Prozessoren angeschlossen sind. In anderen Einsatzszenarien kann das Prozessor-Schnittstellenmodul 302 unbenutzt bleiben, was bedeutet, dass der Node Controller 300 keinen direkt angeschlossenen Prozessor hat. Der Knoten-Controller 300 kann dann so konfiguriert werden, dass er Speicher verwaltet, die über das Speicherschnittstellenmodul 304 mit dem Knoten-Controller 300 verbunden sind.
  • Der Knoten-Controller 300 kann auch ein Knoten-Controller-Schnittstellenmodul 306 enthalten, das die Kommunikation zwischen dem Knoten-Controller 300 und anderen entfernten Knoten-Controllern ermöglicht. Die Kommunikationsverbindung zwischen Knoten-Controllern kann verschiedene Arten von Kommunikationsprotokollen implementieren, einschließlich Ethernet, Infiniband, Fibre Channel usw. In einer Ausführungsform kann das Knotensteuerungs-Schnittstellenmodul 306 eine kundenspezifisch entwickelte Kommunikationsschnittstelle enthalten. Um die Querverbindungen zwischen allen Knoten-Controllern innerhalb des NUMA-Systems zu erleichtern, kann das Knoten-Controller-Schnittstellenmodul 306 mit einem Schaltmechanismus, z. B. einer Kreuzschiene, gekoppelt sein.
  • Der Knoten-Controller 300 kann auch einen Cache-Kohärenz-Logikblock 310 enthalten, der so konfiguriert ist, dass er die Cache-Kohärenz für mit dem Knoten-Controller 300 verbundene Speicher verwaltet. Insbesondere kann der Cache-Kohärenz-Logikblock 310 ein Cache-Kohärenzprotokoll implementieren (z. B. ein verzeichnisbasiertes Cache-Kohärenzprotokoll). Das Cache-Kohärenzprotokoll kann einen Satz von Prozeduren oder Regeln enthalten (die als Zustandsmaschinen oder einen Mikrocontroller implementiert werden können), die vorschreiben, wie der Knoten-Controller 300 mit einem zugehörigen Prozessorsockel oder Speicher in Abhängigkeit vom aktuellen Kohärenzstatus für einen bestimmten Speicherblock, der durch eine Speicherzugriffsanforderung spezifiziert wurde, interagieren soll. Das Kohärenzprotokoll kann auch vorschreiben, wie die Eigentümerschaft einer Cache-Zeile verfolgt werden soll.
  • In einigen Ausführungsformen kann der Cache-Kohärenz-Logikblock 310 einen Local-Home- (LH) Logikblock 312 und einen Remote-Home- (RH) Logikblock 314 enthalten. Sowohl der LH-Logikblock 312 als auch der RH-Logikblock 314 können in verschiedenen Arten von Hardwaremodulen implementiert werden, einschließlich, aber nicht beschränkt auf anwendungsspezifische integrierte Schaltungen (ASIC-Chips), feldprogrammierbare Gate-Arrays (FPGAs), komplexe programmierbare Logikbausteine (CPLDs) oder andere programmierbare Logikbausteine.
  • LH-Block 312 kann so konfiguriert werden, dass er lokale Speicherzugriffsanforderungen verarbeitet. Eine typische lokale Speicherzugriffsanforderung kann vom LH-Logikblock 312 an einen Prozessor weitergeleitet werden, wenn dieser an die Knotensteuerung 300 angeschlossen ist, und der Prozessor kann die entsprechende Speicherzugriffsanforderung ausführen. Auf der anderen Seite kann der RH-Block 314 so konfiguriert werden, dass er entfernte Speicherzugriffsanforderungen bearbeitet. Insbesondere kann der RH-Block 314 aus der Sicht des Node-Controllers 300 ein Proxy für einen entfernten Speicherplatz sein. Eine Speicherzugriffsanforderung an einen entfernten Speicherplatz wird (typischerweise von einem Prozessor) an den RH-Block 314 gesendet.
  • In einem herkömmlichen Knoten-Controller, der nur die Cache-Kohärenz für prozessorverbundene Speicher verwaltet, behandeln die LH- und RH-Blöcke lokale und entfernte Speicherzugriffsanforderungen getrennt und haben keine Schnittstelle zueinander. Insbesondere können Speicheranforderungen vom lokalen Prozessor an den RH-Block und Speicheranforderungen von einem entfernten Knoten-Controller an den LH-Block gesendet werden. Der LH-Block kann so konfiguriert sein, dass er die lokale Anforderung an den Prozessor sendet, um dem Prozessor den direkten Zugriff auf seinen lokalen Speicher zu erleichtern. Der LH-Block ist so konfiguriert, dass er die Eigentümerschaft bestimmt und die Cache-Kohärenz für den lokalen Speicher aufrechterhält. Bei einer entfernten Anforderung kann der RH-Block als Proxy eines entfernten Speichers fungieren. Genauer gesagt kann der RH-Block die Fernspeicherzugriffsanforderung vom Prozessor empfangen (wie durch den gestrichelten Pfeil angedeutet) und leitet die Speicherzugriffsanforderung seinerseits an einen entsprechenden Remote-Node-Controller weiter, insbesondere an den LH-Block des Remote-Node-Controllers.
  • Wenn der entfernte Knoten-Controller über einen angeschlossenen Prozessor und einen Speicher verfügt, der lokal zum Prozessor ist, kann der LH-Block des entfernten Knoten-Controllers über den Prozessor auf den Speicher zugreifen. Wenn der entfernte Knoten-Controller jedoch keinen direkt angeschlossenen Prozessor hat und Fabric-Attached-Memories verwaltet, kann der Zugriff auf die Speicher nicht mehr durch den Prozessor erleichtert werden. In einem solchen Szenario sind Änderungen an den Konfigurationen und Operationen des Node Controllers erforderlich. Insbesondere kann ein spezieller Pfad zwischen dem LH-Block und dem RH-Block auf demselben Node Controller eingerichtet werden. Ein solcher spezieller Pfad kann ein direkter Pfad zwischen dem LH- und dem RH-Block sein oder ein Loopback-Pfad über die Prozessorschnittstelle (d. h., das Signal wird zur Prozessorschnittstelle geleitet und dann direkt zurückgeschleift), an den der LH- und der RH-Block gekoppelt sind. Auf diese Weise kann der LH-Block des Remote Node Controllers, wenn er die Speicherzugriffsanforderung erhält, die Anforderung an den RH-Block weiterleiten, anstatt sie an einen angeschlossenen Prozessor zu senden. Der RH-Block empfängt die Speicherzugriffsanforderung auf die gleiche Weise wie eine Anforderung von einem lokalen Prozessor, auch wenn kein Prozessor an den Node Controller angeschlossen ist. Basierend auf dem Adressbereich kann der RH-Block die Speicherzugriffsanforderung an die Speicherschnittstelle weiterleiten, um auf den mit demselben Knoten-Controller gekoppelten Fabric-verbundenen Speicher zuzugreifen.
  • Indem derselbe Node-Controller in zwei verschiedenen Modi betrieben werden kann, ermöglichen die vorgestellten Ausführungsformen eine hardwarebasierte Kohärenzverfolgung für zwei verschiedene Speichertypen. Mit anderen Worten: Dieselbe Kohärenz-Engine, die für die Verfolgung der Cache-Kohärenz der prozessorangeschlossenen Speicher entwickelt wurde, kann nun auch für die Verfolgung der Cache-Kohärenz der fabrikangeschlossenen Speicher verwendet werden. Es besteht keine Notwendigkeit für eine dedizierte Kohärenz-Engine für die Fabric-verbundenen Speicher. Beachten Sie, dass, wenn ein Knoten-Controller keinen direkt angeschlossenen Prozessor hat, das Betriebssystem von einem anderen Knoten-Controller ausgeführt werden kann, der einen direkt angeschlossenen Prozessor hat.
  • Zusätzlich zu den in gezeigten Modulen kann der Node Controller 300 weitere Module enthalten, einschließlich Hardware- und Softwaremodule, die die verschiedenen oben genannten Vorgänge sowie andere noch nicht erwähnte Vorgänge unterstützen können. Darüber hinaus kann der Node Controller 300 duplizierte Module enthalten (z. B. duplizierte Schnittstellen und duplizierte Logikblöcke), damit der Node Controller 300 mit mehreren Modulen desselben Typs interagieren kann. Zum Beispiel können mehrere UPI-Schnittstellen es dem Knoten-Controller 300 ermöglichen, mit mehreren Prozessoren zu kommunizieren. In ähnlicher Weise können mehrere Speicherschnittstellen es dem Node Controller 300 ermöglichen, mit mehreren Fabric-Attached-Speichermodulen zu kommunizieren. Außerdem können mehrere LH- und RH-Logikblöcke die parallele Verarbeitung und Weiterleitung einer Vielzahl von Speicherzugriffsanforderungen erleichtern.
  • zeigt beispielhafte Interaktionen zwischen einem lokalen Knoten-Controller und einem entfernten Knoten-Controller während eines Fernspeicherzugriffs gemäß einer Ausführungsform. Während des Betriebs sendet der Socket, der an einen lokalen Knoten-Controller 402 angeschlossen ist, eine Anforderung zum Zugriff auf den Fabric-Attached Memory, der von einem entfernten Knoten-Controller 404 über die Prozessorschnittstelle des Knoten-Controllers 404 gesteuert wird, wie durch einen Pfeil 406 angezeigt. Diese Fernspeicherzugriffsanforderung (z. B. eine Leseanforderung, eine Schreibanforderung, eine Leseanforderung usw.) kommt am RH-Block des lokalen Knoten-Controllers 402 an, wie durch einen Pfeil 408 angezeigt. Die Fernspeicherzugriffsanforderung kann in einem Prozessor-Interconnect-Format, z. B. dem UPI-Format, erfolgen.
  • Der RH-Block des lokalen Knoten-Controllers 402 führt verschiedene Operationen durch, einschließlich Operationen, die zur Aufrechterhaltung der Cache-Kohärenz erforderlich sind. Zu diesen Operationen gehören die Zuweisung einer Verfolgungsressource, die Dekodierung der in der Anforderung enthaltenen globalen Adresse und die Neuformatierung der Anforderungsnachricht vom Prozessor-Verbindungsformat in ein Knoten-Controller-Verbindungsformat, das entsprechend der Art der Kommunikationsverbindung zwischen dem lokalen Knoten-Controller 402 und dem entfernten Knoten-Controller 404 bestimmt werden kann.
  • Der RH-Block des lokalen Knoten-Controllers 402 kann dann die Speicherzugriffsanforderung an den entfernten Knoten-Controller 404 über die Controller-Schnittstelle jedes Knoten-Controllers weiterleiten, wie durch die Pfeile 410 und 412 angezeigt. Nach dem Empfang der Anforderung sendet die Controller-Schnittstelle des entfernten Knoten-Controllers 404 die Anforderung an ihren eigenen LH-Block, wie durch Pfeil 414 angezeigt. Der LH-Block des entfernten Knoten-Controllers 404 kann eine Reihe von Operationen durchführen, einschließlich der Operationen, die erforderlich sind, um die Cache-Kohärenz sicherzustellen. Die verschiedenen Operationen können die Zuweisung einer Verfolgungsressource, die Rückübersetzung des Formats der Nachricht vom Knoten-Controller-Interconnect-Format in das Prozessor-Interconnect-Format, die Überprüfung des Verzeichniszustands des entsprechenden Speicherblocks, um die Eigentümerschaft zu bestimmen, usw. umfassen.
  • Beachten Sie, dass der LH-Block die empfangene Speicherzugriffsanforderung an den Prozessor weiterleitet, wenn der entfernte Knoten-Controller 404 einen angeschlossenen Prozessor hat, der dann direkt auf seinen lokalen Speicher zugreifen kann. In dem in dargestellten Beispiel verfügt der entfernte Knoten-Controller 404 jedoch nicht über einen direkt angeschlossenen Prozessor oder Sockel. Stattdessen ist der Remote-Node-Controller 404 mit einem oder mehreren Fabric-verbundenen Speichermodulen gekoppelt. In einem solchen Szenario kann der LH-Block des entfernten Knoten-Controllers 404 so konfiguriert werden, dass er die Speicherzugriffsanforderung an den RH-Block sendet, der sich ebenfalls auf dem entfernten Speicher-Controller 404 befindet, wie durch einen Pfeil 416 angezeigt. Mit anderen Worten: Der Fabric-Attached Memory wird so behandelt, als wäre er ein entfernter Speicher, und Zugriffe auf einen solchen Speicher werden vom RH-Block abgewickelt. Der spezielle Pfad kann ein direkter Signalpfad (z. B. eine oder mehrere Signalverbindungen innerhalb der integrierten Schaltungen) zwischen dem LH-Block und dem RH-Block sein. Alternativ kann der spezielle Pfad ein Loopback-Pfad über die Prozessorschnittstelle (z. B. ein UPI-Loopback-Pfad) auf dem Node Controller 404 sein.
  • Aus der Sicht des RH-Blocks auf dem entfernten Knoten-Controller 404 besteht kein Unterschied zwischen der vom LH-Block über den speziellen Pfad empfangenen Speicherzugriffsanforderung und einer von einem lokal angeschlossenen Prozessor empfangenen Speicherzugriffsanforderung. In dem in gezeigten Beispiel kann der RH-Block auf dem entfernten Knoten-Controller 404 die Speicherzugriffsanforderung so verarbeiten, als ob er eine solche Anforderung von einem Prozessor empfängt, und führt verschiedene Vorgänge aus, die denen ähnlich sind, die vom RH-Block auf dem lokalen Knoten-Controller 402 ausgeführt werden, einschließlich der Zuweisung einer Verfolgungsressource, der Dekodierung der in der Anforderung enthaltenen globalen Adresse und der Neuformatierung der Anforderungsnachricht vom Prozessor-Verbindungsformat zum Knoten-Controller-Verbindungsformat.
  • Der RH-Block des entfernten Knoten-Controllers 404 kann anhand des Adressbereichs der Speicherzugriffsanforderung feststellen, dass sich der Speicherblock, auf den zugegriffen werden soll, auf dem mit dem entfernten Knoten-Controller 404 über dessen Speicherschnittstelle gekoppelten Fabric-Attached Memory befindet. Der RH-Block kann dann die Speicherzugriffsanforderung an die Speicherschnittstelle weiterleiten, wie durch einen Pfeil 418 angezeigt. Die Speicherschnittstelle kann eine Steuerlogik enthalten, die die Speicherzugriffsanforderung über die Switching-Fabric (z. B. eine Gen-Z-Fabric) verarbeiten kann, wie durch einen Doppelpfeil 420 angezeigt. Wenn es sich bei der Speicherzugriffsanforderung um eine Leseanforderung handelt, werden Daten aus dem mit der Fabric verbundenen Speicher zurückgegeben. Handelt es sich um eine Schreibanforderung, werden die zu schreibenden Daten an den Fabric-verbundenen Speicher gesendet. Die Speicherschnittstelle kann dann eine Antwortnachricht zusammenstellen und die Antwortnachricht zurück an den RH-Block des dezentralen Knoten-Controllers 404 senden, wie durch einen Pfeil 422 angezeigt. Bei einer Leseanforderung kann die Antwortnachricht die angeforderten Daten enthalten; und bei einer Schreibanforderung kann die Antwortnachricht eine Schreibbestätigungsnachricht enthalten. Die Antwortnachricht kann im Node-Controller-Interconnect-Format sein.
  • Nach dem Empfang der Antwortnachricht kann der RH-Block des entfernten Knoten-Controllers 404 eine Reihe von Operationen durchführen, einschließlich der Bestätigung der Korrektheit der Antwort und der Umformatierung der Antwort vom Knoten-Controller-Interconnect-Format in das Prozessor-Interconnect-Format. Der RH-Block kann dann die Antwort an den LH-Block auf demselben Knoten-Controller über denselben speziellen Pfad zurücksenden, wie durch einen Pfeil 424 angezeigt. Wie zuvor besprochen, kann der spezielle Pfad ein direkter Pfad oder ein Loopback-Pfad über die Prozessorschnittstelle sein. Beachten Sie, dass aus Sicht des LH-Blocks kein Unterschied zwischen dem Empfang der Antwortnachricht von einem lokal angeschlossenen Prozessor und dem Empfang der Antwortnachricht vom RH-Block über den speziellen Pfad besteht. Im Anschluss an das Senden der Antwort kann der RH-Block die Tracking-Ressource freigeben.
  • Nach dem Empfang der Antwortnachricht über den speziellen Pfad bestätigt der LH-Block des entfernten Knoten-Controllers 404 die Korrektheit der Antwort und aktualisiert den Verzeichnisstatus des Speicherblocks, um den neuen Eigentümer zu verfolgen. Dieser Vorgang kann für die Gewährleistung der Cache-Kohärenz wesentlich sein. Der LH-Block des entfernten Knoten-Controllers 404 kann außerdem die Antwortnachricht vom Prozessor-Verbindungsformat in das Knoten-Controller-Verbindungsformat umformatieren und die Antwortnachricht über die Controller-Schnittstellen an den lokalen Knoten-Controller 402 zurücksenden, von dem die Anfrage stammt, wie durch die Pfeile 426 und 428 angezeigt. Der LH-Block des entfernten Knoten-Controllers 404 gibt daraufhin seine Tracking-Ressource frei.
  • Die Controller-Schnittstelle des lokalen Knoten-Controllers 402 sendet die Antwortnachricht an seinen RH-Block, wie durch einen Pfeil 430 angezeigt. Dieser RH-Block bestätigt die Korrektheit der Antwort und formatiert die Antwort vom Knoten-Controller-Interconnect-Format in das Prozessor-Interconnect-Format um. Der RH-Block des lokalen Knoten-Controllers 402 kann die Antwort an den Prozessor zurücksenden, wie durch einen Pfeil 432 angezeigt, und gibt anschließend seine Tracking-Ressource frei.
  • Gemäß der obigen Diskussion können die Speicherzugriffsanforderung und die Antwortnachricht von einem Hardwaremodul zum nächsten Hardwaremodul in zwei verschiedenen Formaten übertragen werden: dem Prozessor-Interconnect-Format und dem Node-Controller-Interconnect-Format. Dies liegt daran, dass die verschiedenen Module über unterschiedliche Arten von Kommunikationsverbindungen verbunden sind. In BILD 4 werden diese beiden Arten von Verbindungen durch Pfeile mit unterschiedlicher Breite dargestellt. Pfeile mit dickeren Linien stellen Knoten-Controller-Verbindungen dar und Pfeile mit dünneren Linien stellen Prozessor-Verbindungen dar. Aus BILD 4 ist ersichtlich, dass die Verbindungen zwischen LH- und RH-Blöcken und die Verbindungen zwischen einem RH-Block und der Prozessorschnittstelle Prozessor-Verbindungsglieder sind, während alle anderen Verbindungen Knoten-Controller-Verbindungsglieder sind. Eine Prozessor-Interconnect-Verbindung kann eine UPI-Verbindung sein. Eine Node-Controller-Interconnect-Verbindung kann eine der folgenden sein: eine benutzerdefinierte Verbindung, eine Ethernet-Verbindung, eine Infiniband-Verbindung, eine CXL-Verbindung, eine Gen-Z-Verbindung, eine Fibre Channel-Verbindung usw.
  • zeigt ein Flussdiagramm, das einen beispielhaften Prozess eines Knoten-Controllers veranschaulicht, der auf einen entfernten Speicherzugriff reagiert, gemäß einer Ausführungsform. Während des Betriebs empfängt ein Knoten-Controller eine Speicherzugriffsanforderung von einem entfernten Knoten-Controller (Vorgang 502). Die Speicherzugriffsanforderung kann eine Leseanforderung, eine Schreibanforderung, eine Lesezugriffsanforderung, usw. sein. Der Knoten-Controller kann eine ähnliche Struktur haben wie die in und . Wie in gezeigt, ist der LH-Logikblock des Knoten-Controllers so konfiguriert, dass er von der Knoten-Controller-Schnittstelle die Fernspeicherzugriffsanforderung empfängt. Der LH-Logikblock kann verschiedene Operationen durchführen, die für die Kohärenzverfolgung erforderlich sind, einschließlich der Zuweisung einer Verfolgungsressource und der Bestimmung der Eigentümerschaft des mit der Anforderung verbundenen Speicherblocks. In einigen Ausführungsformen wird ein verzeichnisbasiertes Cache-Kohärenzprotokoll verwendet, und der LH-Logikblock kann den Verzeichnisstatus des mit der Anforderung verbundenen Speicherblocks überprüfen. Der LH-Logikblock kann ferner die empfangene Anforderung vom Node-Controller-Interconnect-Format in das Prozessor-Interconnect-Format konvertieren.
  • Der Knoten-Controller ermittelt, ob er einen direkt angeschlossenen Prozessor hat (Vorgang 504). Wenn ja, leitet der LH-Logikblock des Node Controllers die Speicherzugriffsanforderung an den Prozessor weiter (Vorgang 506). Der Prozessor greift auf seinen lokalen Speicher zu, um eine Antwort zu erzeugen, und sendet die Antwort zurück an den LH-Logikblock (Vorgang 508). Der LH-Logikblock des Knoten-Controllers kann dann die Antwort an den anfragenden Knoten-Controller zurücksenden (Vorgang 510).
  • Wenn der Knoten-Controller dagegen keinen direkt angeschlossenen Prozessor hat, leitet der LH-Logikblock des Knoten-Controllers die Speicherzugriffsanforderung, jetzt im Prozessor-Interconnect-Format, über einen speziellen Pfad (Vorgang 512) an den RH-Logikblock auf demselben Knoten-Controller weiter. Der Spezialpfad kann in Form eines direkten Pfads zwischen dem LH- und dem RH-Logikblock oder eines Loopback-Pfads über die Prozessorschnittstelle erfolgen. Ein solcher spezieller Pfad existiert nicht auf einem konventionellen Knoten-Controller, der nur die Cache-Kohärenz für prozessorangeschlossene Speicher verwalten muss, da die LH-Logik und die RH-Logik in konventionellen Situationen nicht kommunizieren müssen, da sie lokale und entfernte Speicherzugriffsanforderungen getrennt verwalten.
  • Der RH-Block des Knoten-Controllers kann die Anforderung verarbeiten und die Anforderung über die Speicherschnittstelle an den Fabric-attached Memory senden (Vorgang 514). Die vom RH-Logikblock durchgeführten Operationen können die Zuweisung einer Verfolgungsressource, die Dekodierung der Adressen und die Neuformatierung der Anforderungsnachricht umfassen. Die Anforderung liegt nun im Knoten-Controller-Interconnect-Format vor. Der RH-Block des Knoten-Controllers erzeugt anschließend eine Antwort (z. B. Lesedaten oder Schreibbestätigung) basierend auf den vom Fabric-Attached Memory zurückgegebenen Daten und sendet die Antwort an den LH-Block (Vorgang 516). Der LH-Block sendet die Antwort an den anfordernden Knoten-Controller zurück (Vorgang 510).
  • Im Allgemeinen bieten die offengelegten Ausführungsformen einen einheitlichen Knoten-Controller, der hardwareverwaltete Cache-Kohärenz in einem Hybridsystem ermöglicht, das sowohl prozessorgebundene Speicher als auch fabrikgebundene Speicher umfasst. Genauer gesagt kann der Knoten-Controller eine Speicherschnittstelle enthalten, um mit Fabric-verbundenen Speichermodulen zu kommunizieren, und Hardwaremodule (z. B. ASICs) innerhalb des Knoten-Controllers können so konfiguriert werden, dass sie in zwei verschiedenen Modi arbeiten, je nachdem, ob der Knoten-Controller einen direkt angeschlossenen Prozessor hat. Wenn ein Prozessor an den Node-Controller angeschlossen ist, verwaltet der Node-Controller die Cache-Kohärenz für Speicher, die sich lokal auf dem Prozessor befinden. Wenn der Netzwerk-Controller nicht über einen direkt angeschlossenen Prozessor verfügt, verwaltet der Knoten-Controller die Cache-Kohärenz für an die Struktur angeschlossene Speicher, indem er das an die Struktur angeschlossene Speichermodul als entfernten Speicher behandelt und seinen Steuerblock für den entfernten Speicher (z. B. den RH-Logikblock) verwendet, um den Zugriff zu verwalten. Genauer gesagt kann die Anforderung für den entfernten Speicherzugriff vom Steuerblock des lokalen Speichers (z. B. dem LH-Logikblock) über einen direkten Pfad oder einen Loopback-Pfad an den Steuerblock des entfernten Speichers weitergeleitet werden. Der speicherferne Steuerblock behandelt eine Anforderung des Prozessors und eine Anforderung des speicherlokalen Steuerblocks auf die gleiche Weise. In ähnlicher Weise sendet der Steuerblock des externen Speichers nach Erhalt einer Antwort vom Fabric-attached Memory die Antwort über denselben speziellen Pfad an den Steuerblock des lokalen Speichers zurück. Der Steuerblock des lokalen Speichers behandelt eine Antwort vom Prozessor und eine Antwort vom Steuerblock des lokalen Speichers auf die gleiche Weise. Dieser Ansatz ermöglicht es derselben Cache-Kohärenz-Engine, die Cache-Kohärenz für beide Speichertypen zu verwalten, und erleichtert so die unabhängige Skalierung der Prozessoren und Speicher in einem Multiprozessorsystem, das hardwarebasierte Cache-Kohärenz-Engines implementiert.
  • Eine Ausführungsform kann einen Knoten-Controller in einem Multiprozessorsystem bereitstellen. Der Knoten-Controller kann eine Prozessorschnittstelle zur Verbindung mit einem Prozessor, eine Speicherschnittstelle zur Verbindung mit einem Fabric-Attached Memory, eine Knoten-Controller-Schnittstelle zur Verbindung mit einem entfernten Knoten-Controller und eine Cache-Kohärenzlogik zum Betrieb in einem ersten Modus oder einem zweiten Modus umfassen. Die Cache-Kohärenzlogik verwaltet die Cache-Kohärenz für einen lokalen Speicher des Prozessors, der mit der Prozessorschnittstelle verbunden ist, wenn er im ersten Modus arbeitet, und die Cache-Kohärenzlogik verwaltet die Cache-Kohärenz für den mit der Speicherschnittstelle verbundenen Speicher, wenn er im zweiten Modus arbeitet.
  • In einer Variante dieser Ausführungsform soll die Cache-Kohärenzlogik im ersten Modus arbeiten, wenn festgestellt wird, dass der Prozessor über die Prozessorschnittstelle direkt mit dem Knoten-Controller verbunden ist, und die Cache-Kohärenzlogik soll im zweiten Modus arbeiten, wenn festgestellt wird, dass der Knoten-Controller nicht direkt mit einem Prozessor verbunden ist.
  • In einer Variante dieser Ausführungsform kann die Cache-Kohärenzlogik eine Logik zur Steuerung des lokalen Speichers enthalten, um lokale Speicherzugriffsanforderungen zu verwalten, und eine Logik zur Steuerung des entfernten Speichers, um entfernte Speicherzugriffsanforderungen zu verwalten. Wenn die Cache-Kohärenzlogik in der ersten Betriebsart arbeitet, leitet die Logik zur Steuerung des lokalen Speichers eine von einer entfernten Knotensteuerung empfangene Speicherzugriffsanforderung über die Prozessorschnittstelle an den Prozessor weiter, um dem Prozessor den Zugriff auf seinen lokalen Speicher zu erleichtern. Wenn die Cache-Kohärenzlogik im zweiten Modus arbeitet, leitet die lokale Speichersteuerungslogik die von der entfernten Knotensteuerung empfangene Speicherzugriffsanforderung über einen speziellen Signalpfad zwischen der lokalen Speichersteuerungslogik und der entfernten Speichersteuerungslogik an die entfernte Speichersteuerungslogik weiter.
  • In einer weiteren Variante kann der spezielle Signalpfad einen der folgenden Pfade umfassen: einen direkten Pfad zwischen der Logik für die Steuerung des lokalen Speichers und der Logik für die Steuerung des entfernten Speichers und einen Loopback-Pfad über die Prozessorschnittstelle.
  • In einer weiteren Variante, wenn die Cache-Kohärenzlogik in der zweiten Betriebsart arbeitet, soll die Speicherfernsteuerungslogik: über die Speicherschnittstelle auf den mit der Struktur verbundenen Speicher zugreifen, eine Speicherzugriffsantwort erzeugen und die Speicherzugriffsantwort über den speziellen Signalpfad an die lokale Speichersteuerungslogik senden .
  • In einer Variante dieser Ausführungsform kann die Prozessorschnittstelle eine UltraPath Interconnect (UPI)-Schnittstelle und die Speicherschnittstelle eine der folgenden Schnittstellen umfassen: eine Double-Data-Rate (DDR)-Schnittstelle, eine Grafik-DDR (GDDR)-Schnittstelle, eine High-Bandwidth-Memory (HBM)-Schnittstelle, eine Peripheral Component Interconnect Express (PCIe)-Schnittstelle, eine Compute Express Link (CXL)-Schnittstelle, eine Gen-Z-Schnittstelle, eine Infiniband-Schnittstelle, eine Ethernet-Schnittstelle und eine Fibre-Channel-Schnittstelle.
  • In einer Variante dieser Ausführungsform kann die Cache-Kohärenzlogik ein verzeichnisbasiertes Cache-Kohärenzprotokoll implementieren.
  • In einer Variante dieser Ausführungsform kann die Cache-Kohärenzlogik ein oder mehrere Hardwaremodule enthalten, um eine hardwarebasierte Kohärenzverfolgung zu ermöglichen.
  • Eine Ausführungsform kann ein Multiprozessorsystem bereitstellen. Das Multiprozessorsystem kann einen ersten Knoten-Controller enthalten, der direkt mit einem Prozessor gekoppelt ist, und einen zweiten identischen Knoten-Controller, der nicht direkt mit einem Prozessor gekoppelt ist und mit einem Fabric-Attached Memory verbunden ist. Der erste Knoten-Controller soll in einem ersten Modus arbeiten, um die Cache-Kohärenz für einen lokalen Speicher des Prozessors zu verwalten; und der zweite Knoten-Controller soll in einem zweiten Modus arbeiten, um die Cache-Kohärenz für den mit der Struktur verbundenen Speicher zu verwalten.
  • Eine Ausführungsform kann ein System und Verfahren zur Verwaltung der Cache-Kohärenz in einem Multiprozessorsystem bereitstellen. Während des Betriebs kann ein Knoten-Controller eine Speicherzugriffsanforderung von einem entfernten Knoten-Controller in dem Multiprozessorsystem empfangen. Als Reaktion auf die Feststellung, dass ein Prozessor direkt mit dem Knoten-Controller verbunden ist, kann das System den Knoten-Controller so konfigurieren, dass er in einem ersten Modus arbeitet, so dass der Knoten-Controller die Cache-Kohärenz für einen lokalen Speicher des Prozessors verwaltet. Als Reaktion auf die Feststellung, dass der Knoten-Controller nicht direkt mit einem Prozessor gekoppelt ist und mit einem Fabric-verbundenen Speicher gekoppelt ist, kann das System den Knoten-Controller so konfigurieren, dass er in einem zweiten Modus arbeitet, so dass der Knoten-Controller Cache-Kohärenz für den Fabric-verbundenen Speicher verwaltet.
  • Die im Abschnitt „Detaillierte Beschreibung“ beschriebenen Methoden und Prozesse können als Code und/oder Daten verkörpert werden, die wie oben beschrieben in einem computerlesbaren Speichermedium gespeichert werden können. Wenn ein Computersystem den auf dem computerlesbaren Speichermedium gespeicherten Code und/oder die Daten liest und ausführt, führt das Computersystem die Methoden und Prozesse aus, die als Datenstrukturen und Code verkörpert und in dem computerlesbaren Speichermedium gespeichert sind.
  • Darüber hinaus können die oben beschriebenen Methoden und Prozesse in Hardwaremodulen oder -geräten enthalten sein. Zu den HardwareModulen oder -Vorrichtungen können unter anderem anwendungsspezifische integrierte Schaltungen (ASIC-Chips), feldprogrammierbare Gate-Arrays (FPGAs), dedizierte oder gemeinsam genutzte Prozessoren, die ein bestimmtes Softwaremodul oder ein Stück Code zu einem bestimmten Zeitpunkt ausführen, sowie andere heute bekannte oder später entwickelte programmierbare Logikgeräte gehören. Wenn die Hardware-Module oder -Geräte aktiviert werden, führen sie die darin enthaltenen Methoden und Prozesse aus.
  • Die vorstehenden Beschreibungen von Ausführungsformen wurden nur zum Zweck der Veranschaulichung und Beschreibung dargestellt. Sie sollen nicht erschöpfend sein oder den Umfang dieser Offenbarung auf die offengelegten Formen beschränken. Dementsprechend werden viele Modifikationen und Variationen für Fachleute auf dem Gebiet der Technik offensichtlich sein.

Claims (20)

  1. Knoten-Controller in einem Multiprozessorsystem, wobei der Knoten-Controller Folgendes umfasst: eine Prozessorschnittstelle zum Anschluss an einen Prozessor; eine Speicherschnittstelle, um eine Schnittstelle mit einem an die Struktur angeschlossenen Speicher zu bilden; eine Knoten-Controller-Schnittstelle, um eine Schnittstelle mit einem entfernten Knoten-Controller zu bilden; und eine Cache-Kohärenzlogik, um in einem ersten Modus oder einem zweiten Modus zu arbeiten, wobei die Cache-Kohärenzlogik die Cache-Kohärenz für einen lokalen Speicher des Prozessors verwaltet, der mit der Prozessorschnittstelle verbunden ist, wenn er in dem ersten Modus arbeitet, und wobei die Cache-Kohärenzlogik die Cache-Kohärenz für den an die Struktur angeschlossenen Speicher verwaltet, der mit der Speicherschnittstelle verbunden ist, wenn er in dem zweiten Modus arbeitet.
  2. Knoten-Controller nach Anspruch 1, wobei die Cache-Kohärenzlogik in Reaktion auf die Feststellung, dass der Prozessor über die Prozessorschnittstelle direkt mit dem Knoten-Controller gekoppelt ist, im ersten Modus arbeiten soll, und wobei die Cache-Kohärenzlogik in Reaktion auf die Feststellung, dass der Knoten-Controller nicht direkt mit einem Prozessor gekoppelt ist, im zweiten Modus arbeiten soll.
  3. Knoten-Controller nach Anspruch 1, wobei die Cache-Kohärenz-Logik eine Lokal-Speicher-Steuerlogik umfasst, um lokale Speicherzugriffsanforderungen zu verwalten, und eine Fern-Speicher-Steuerlogik, um Fern-Speicherzugriffsanforderungen zu verwalten; wobei, wenn die Cache-Kohärenz-Logik in der ersten Betriebsart arbeitet, die Lokal-Speicher-Steuerlogik dazu dient, eine von einem Fern-Knoten-Controller empfangene Speicherzugriffsanforderung über die Prozessorschnittstelle an den Prozessor weiterzuleiten, um den Prozessor beim Zugriff auf seinen lokalen Speicher zu unterstützen; und wobei, wenn die Cache-Kohärenzlogik im zweiten Modus arbeitet, die Lokalspeicher-Steuerlogik die von der entfernten Knotensteuerung empfangene Speicherzugriffsanforderung über einen speziellen Signalpfad zwischen der Lokalspeicher-Steuerlogik und der Fernspeicher-Steuerlogik an die Fernspeicher-Steuerlogik weiterleitet.
  4. Knoten-Controller nach Anspruch 3, wobei der spezielle Signalpfad einen der folgenden Pfade umfasst: einen direkten Pfad zwischen der Logik zur Steuerung des lokalen Speichers und der Logik zur Steuerung des entfernten Speichers; und einen Rückschleifenpfad durch die Prozessorschnittstelle.
  5. Knoten-Controller nach Anspruch 3, wobei, wenn die Cache-Kohärenzlogik in der zweiten Betriebsart arbeitet, die Speicherfernsteuerungslogik dazu dient: über die Speicherschnittstelle auf den an die Struktur angeschlossenen Speicher zuzugreifen; eine Speicherzugriffsantwort zu erzeugen; und die Speicherzugriffsantwort über den speziellen Signalpfad an die lokale Speichersteuerungslogik zu senden.
  6. Knoten-Controller nach Anspruch 1, wobei die Prozessorschnittstelle eine UltraPath Interconnect (UPI)-Schnittstelle umfasst und wobei die Speicherschnittstelle eine der folgenden Schnittstellen umfasst: eine Double-Data-Rate (DDR)-Schnittstelle, eine Grafik-DDR (GDDR)-Schnittstelle, eine High-Bandwidth-Memory (HBM)-Schnittstelle, eine Peripheral Component Interconnect Express (PCIe)-Schnittstelle, eine Compute Express Link (CXL)-Schnittstelle, eine Gen-Z-Schnittstelle, eine Infiniband-Schnittstelle, eine Ethernet-Schnittstelle und eine Fibre-Channel-Schnittstelle.
  7. Knoten-Controller nach Anspruch 1, wobei die Cache-Kohärenzlogik ein verzeichnisbasiertes Cache-Kohärenzprotokoll implementiert.
  8. Knoten-Controller nach Anspruch 1, wobei die Cache-Kohärenzlogik ein oder mehrere Hardwaremodule umfasst, um die hardwarebasierte Kohärenzverfolgung zu erleichtern.
  9. Multiprozessorsystem, umfassend: einen ersten Knoten-Controller, der direkt mit einem Prozessor gekoppelt ist; und einen zweiten identischen Knoten-Controller, der nicht direkt mit irgendeinem Prozessor gekoppelt ist und mit einem an die Struktur angeschlossenen Speicher gekoppelt ist, wobei der erste Knoten-Controller in einem ersten Modus arbeiten soll, um die Cache-Kohärenz für einen lokalen Speicher des Prozessors zu verwalten; und wobei der zweite Knoten-Controller in einem zweiten Modus arbeiten soll, um die Cache-Kohärenz für den an die Struktur angeschlossenen Speicher zu verwalten.
  10. Multiprozessorsystem nach Anspruch 9, wobei jeder der ersten und zweiten Knoten-Controller umfasst: eine Prozessorschnittstelle; eine Speicherschnittstelle; eine Knoten-Controller-Schnittstelle; und eine Cache-Kohärenzlogik, um im ersten Modus oder im zweiten Modus zu arbeiten.
  11. Multiprozessorsystem nach Anspruch 10, wobei die Cache-Kohärenzlogik eine Lokal-Speicher-Steuerlogik zum Verwalten von lokalen Speicherzugriffsanforderungen und eine Fern-Speicher-Steuerlogik zum Verwalten von Fern-Speicherzugriffsanforderungen umfasst; wobei, wenn die Cache-Kohärenzlogik in der ersten Betriebsart arbeitet, die Lokal-Speicher-Steuerlogik dazu dient, eine von einer Fern-Knotensteuerung empfangene Speicherzugriffsanforderung über die Prozessorschnittstelle an den Prozessor weiterzuleiten, um den Prozessor beim Zugriff auf seinen lokalen Speicher zu unterstützen; und wobei, wenn die Cache-Kohärenzlogik im zweiten Modus arbeitet, die Lokalspeicher-Steuerlogik die von der entfernten Knotensteuerung empfangene Speicherzugriffsanforderung über einen speziellen Signalpfad zwischen der Lokalspeicher-Steuerlogik und der Fernspeicher-Steuerlogik an die Fernspeicher-Steuerlogik weiterleitet.
  12. Multiprozessorsystem nach Anspruch 11, wobei der spezielle Signalpfad einen der folgenden Pfade umfasst: einen direkten Pfad zwischen der Logik zur Steuerung des lokalen Speichers und der Logik zur Steuerung des entfernten Speichers; und einen Loopback-Pfad durch die Prozessorschnittstelle.
  13. Multiprozessorsystem nach Anspruch 11, wobei, wenn die Cache-Kohärenzlogik in der zweiten Betriebsart arbeitet, die Speicherfernsteuerungslogik dazu dient auf den strukturnahen Speicher über die Speicherschnittstelle zugreifen eine Speicherzugriffsantwort zu erzeugen; und die Speicherzugriffsantwort über den speziellen Signalpfad an die Logik zur Steuerung des lokalen Speichers zu senden.
  14. Multiprozessorsystem nach Anspruch 10, wobei die Prozessorschnittstelle eine UltraPath Interconnect (UPI)-Schnittstelle umfasst und wobei die Speicherschnittstelle eine der folgenden Schnittstellen umfasst: eine Double-Data-Rate (DDR)-Schnittstelle, eine Grafik-DDR (GDDR)-Schnittstelle, eine High-Bandwidth-Memory (HBM)-Schnittstelle, eine Peripheral Component Interconnect Express (PCIe)-Schnittstelle, eine Compute Express Link (CXL)-Schnittstelle, eine Gen-Z-Schnittstelle, eine Infiniband-Schnittstelle, eine Ethernet-Schnittstelle und eine Fibre-Channel-Schnittstelle.
  15. Multiprozessorsystem nach Anspruch 9, wobei der erste und der zweite Knoten-Controller ein verzeichnisbasiertes Cache-Kohärenzprotokoll implementieren.
  16. Multiprozessorsystem nach Anspruch 9, wobei jeder der ersten und zweiten Knoten-Controller ein oder mehrere Hardware-Module umfasst, um die hardwarebasierte Kohärenzverfolgung zu erleichtern .
  17. Verfahren zum Verwalten der Cache-Kohärenz in einem Multiprozessorsystem, wobei das Verfahren Folgendes umfasst: Empfangen einer Speicherzugriffsanforderung von einem entfernten Knoten-Controller in dem Multiprozessorsystem durch einen Knoten-Controller; Konfigurieren des Knoten-Controllers als Reaktion auf die Feststellung, dass ein Prozessor direkt mit dem Knoten-Controller gekoppelt ist, um in einem ersten Modus zu arbeiten, so dass der Knoten-Controller die Cache-Kohärenz für einen lokalen Speicher des Prozessors verwaltet; und Konfigurieren des Knoten-Controllers als Reaktion auf die Feststellung, dass der Knoten-Controller nicht direkt mit einem Prozessor gekoppelt ist und mit einem an die Struktur angeschlossenen Speicher gekoppelt ist, um in einem zweiten Modus zu arbeiten, so dass der Knoten-Controller die Cache-Kohärenz für den an die Struktur angeschlossenen Speicher verwaltet.
  18. Verfahren nach Anspruch 17, wobei der Knoten-Controller umfasst: eine Prozessorschnittstelle; eine Speicherschnittstelle; eine Knoten-Controller-Schnittstelle; und eine Cache-Kohärenzlogik, um in dem ersten Modus oder dem zweiten Modus zu arbeiten.
  19. Verfahren nach Anspruch 18, wobei die Cache-Kohärenzlogik eine Lokalspeicher-Steuerlogik umfasst, um lokale Speicherzugriffsanforderungen zu verwalten, und eine Fernspeicher-Steuerlogik, um Fernspeicherzugriffsanforderungen zu verwalten; wobei das Konfigurieren der Knotensteuerung für den Betrieb in der ersten Betriebsart das Konfigurieren der Lokalspeicher-Steuerlogik umfasst, um eine von einer Fernknotensteuerung empfangene Speicherzugriffsanforderung über die Prozessorschnittstelle an den Prozessor weiterzuleiten, um dem Prozessor den Zugriff auf seinen lokalen Speicher zu erleichtern; und wobei das Konfigurieren der Knotensteuerung für den Betrieb im zweiten Modus das Konfigurieren der Lokalspeicher-Steuerlogik umfasst, um die von der entfernten Knotensteuerung empfangene Speicherzugriffsanforderung über einen speziellen Signalpfad zwischen der Lokalspeicher-Steuerlogik und der Fernspeicher-Steuerlogik an die Fernspeicher-Steuerlogik weiterzuleiten.
  20. Verfahren nach Anspruch 19, wobei der spezielle Signalpfad einen der folgenden Pfade umfasst: einen direkten Pfad zwischen der Logik zur Steuerung des lokalen Speichers und der Logik zur Steuerung des entfernten Speichers; und einen Loopback-Pfad durch die Prozessorschnittstelle.
DE102021108294.3A 2020-07-31 2021-03-31 System und verfahren für skalierbare hardware-kohärente speicherknoten Active DE102021108294B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/944,905 US11714755B2 (en) 2020-07-31 2020-07-31 System and method for scalable hardware-coherent memory nodes
US16/944,905 2020-07-31

Publications (2)

Publication Number Publication Date
DE102021108294A1 true DE102021108294A1 (de) 2022-02-03
DE102021108294B4 DE102021108294B4 (de) 2023-09-07

Family

ID=79300563

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021108294.3A Active DE102021108294B4 (de) 2020-07-31 2021-03-31 System und verfahren für skalierbare hardware-kohärente speicherknoten

Country Status (3)

Country Link
US (1) US11714755B2 (de)
CN (1) CN114064552B (de)
DE (1) DE102021108294B4 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714755B2 (en) 2020-07-31 2023-08-01 Hewlett Packard Enterprise Development Lp System and method for scalable hardware-coherent memory nodes
US11573898B2 (en) 2020-08-17 2023-02-07 Hewlett Packard Enterprise Development Lp System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710907A (en) 1995-12-22 1998-01-20 Sun Microsystems, Inc. Hybrid NUMA COMA caching system and methods for selecting between the caching modes
US5860146A (en) 1996-06-25 1999-01-12 Sun Microsystems, Inc. Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces
US6631448B2 (en) 1998-03-12 2003-10-07 Fujitsu Limited Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
US20020002659A1 (en) 1998-05-29 2002-01-03 Maged Milad Michael System and method for improving directory lookup speed
US6275900B1 (en) 1999-01-27 2001-08-14 International Business Machines Company Hybrid NUMA/S-COMA system and method
US6944719B2 (en) 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US6898687B2 (en) 2002-12-13 2005-05-24 Sun Microsystems, Inc. System and method for synchronizing access to shared resources
US7774551B2 (en) 2006-10-06 2010-08-10 Hewlett-Packard Development Company, L.P. Hierarchical cache coherence directory structure
US20110004732A1 (en) 2007-06-06 2011-01-06 3Leaf Networks, Inc. DMA in Distributed Shared Memory System
US7895400B2 (en) 2007-09-28 2011-02-22 Oracle America, Inc. Hybrid cache coherence using fine-grained hardware message passing
US8719547B2 (en) 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8793442B2 (en) * 2012-02-08 2014-07-29 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads
US8799588B2 (en) 2012-02-08 2014-08-05 International Business Machines Corporation Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration
US9383932B2 (en) * 2013-12-27 2016-07-05 Intel Corporation Data coherency model and protocol at cluster level
US9684597B1 (en) * 2014-08-07 2017-06-20 Chelsio Communications, Inc. Distributed cache coherent shared memory controller integrated with a protocol offload network interface card
US10417128B2 (en) 2015-05-06 2019-09-17 Oracle International Corporation Memory coherence in a multi-core, multi-level, heterogeneous computer architecture implementing hardware-managed and software managed caches
CN106603355B (zh) * 2015-10-15 2019-10-18 华为技术有限公司 一种计算装置、节点设备和服务器
CN105718242B (zh) 2016-01-15 2018-08-17 中国人民解放军国防科学技术大学 多核dsp中支持软硬件数据一致性的处理方法及系统
US9916247B2 (en) 2016-02-04 2018-03-13 International Business Machines Corporation Cache management directory where hardware manages cache write requests and software manages cache read requests
US10404800B2 (en) * 2016-07-15 2019-09-03 Hewlett Packard Enterprise Development Lp Caching network fabric for high performance computing
NO342930B1 (en) * 2016-10-18 2018-09-03 Numascale As Cache Coherent node controller
US10929174B2 (en) * 2016-12-15 2021-02-23 Ecole Polytechnique Federale De Lausanne (Epfl) Atomic object reads for in-memory rack-scale computing
NO343359B1 (en) * 2017-05-02 2019-02-11 Numascale As Interconnect switch in multiprocessor systems
US10423530B2 (en) 2017-05-08 2019-09-24 Hewlett Packard Enterprise Development Lp Partial cache coherence
US10489310B2 (en) * 2017-10-20 2019-11-26 Hewlett Packard Enterprise Development Lp Determining cache value currency using persistent markers
US10268630B1 (en) * 2017-10-24 2019-04-23 Hewlett Packard Enterprise Development Lp Noncoherent interprocessor communication remapping node controller
US10592465B2 (en) * 2017-10-26 2020-03-17 Hewlett Packard Enterprise Development Lp Node controller direct socket group memory access
US10725927B2 (en) 2017-12-04 2020-07-28 Beijing Panyi Technology Co., Ltd. Method and apparatus for co-managed cache system
US10402330B2 (en) * 2018-04-03 2019-09-03 Intel Corporation Adaptive coherence for latency-bandwidth tradeoffs in emerging memory technologies
US20200034146A1 (en) * 2018-07-30 2020-01-30 International Business Machines Corporation Synchronized access to data in shared memory by protecting the load target address of a fronting load
US11586369B2 (en) 2019-05-29 2023-02-21 Xilinx, Inc. Hybrid hardware-software coherent framework
US11379236B2 (en) 2019-12-27 2022-07-05 Intel Corporation Coherency tracking apparatus and method for an attached coprocessor or accelerator
US11755501B2 (en) * 2020-03-27 2023-09-12 Intel Corporation Efficient data sharing for graphics data processing operations
US11714755B2 (en) 2020-07-31 2023-08-01 Hewlett Packard Enterprise Development Lp System and method for scalable hardware-coherent memory nodes
US20210092069A1 (en) * 2020-12-10 2021-03-25 Intel Corporation Accelerating multi-node performance of machine learning workloads

Also Published As

Publication number Publication date
DE102021108294B4 (de) 2023-09-07
CN114064552A (zh) 2022-02-18
US20220035742A1 (en) 2022-02-03
CN114064552B (zh) 2024-03-26
US11714755B2 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69732938T2 (de) Hybrides Speicherzugangsprotokoll in einem Datenverarbeitungssystem mit verteiltem, gemeinsamem Speicher
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE112015004336B4 (de) Konfigurationsbasierte Auswahl eines Cachekohärenz-Protokolls
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE69628127T2 (de) Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
EP0951682B1 (de) IO- UND SPEICHERBUSSYSTEM FÜR DFPs SOWIE BAUSTEINE MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
DE112008002018B4 (de) Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern
DE102014117463A1 (de) Datenkohärenzmodell und Protokoll auf Cluster-Ebene
DE102021108294B4 (de) System und verfahren für skalierbare hardware-kohärente speicherknoten
DE69736872T2 (de) Datenverarbeitungssystem
DE112017001959T5 (de) Cachespeicher-Zugriff
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE102009031870B4 (de) Dynamisches Aktualisieren der Routing-Tabelle
DE102005014727A1 (de) Hardwarekoordination von Power Management-Aktivitäten
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen
DE112014003287T5 (de) Dynamische Bildung von symmetrischen Multiprozessordomänen (SMP-Domänen)
DE102007048601A1 (de) Datenspeicherung in einem Schaltsystem, das mehrere Prozessoren eines Computersystems koppelt
DE112005003243T5 (de) System und Verfahren für die Cache-Kohärenz bei einem Cache mit unterschiedlichen Längen für die Cache-Orte
DE10236179A1 (de) Speichersystem und Verfahren zur Verwendung desselben

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, SPR, US

Free format text: FORMER OWNER: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, HOUSTON, TX, US

R016 Response to examination communication
R018 Grant decision by examination section/examining division