DE10316725A1 - Datenverwaltungsverfahren für ein Distributed Shared Memory-System - Google Patents

Datenverwaltungsverfahren für ein Distributed Shared Memory-System Download PDF

Info

Publication number
DE10316725A1
DE10316725A1 DE10316725A DE10316725A DE10316725A1 DE 10316725 A1 DE10316725 A1 DE 10316725A1 DE 10316725 A DE10316725 A DE 10316725A DE 10316725 A DE10316725 A DE 10316725A DE 10316725 A1 DE10316725 A1 DE 10316725A1
Authority
DE
Germany
Prior art keywords
data
state
node
modified
cache line
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
DE10316725A
Other languages
English (en)
Other versions
DE10316725B4 (de
Inventor
Wei-Long Rochester Chen
Wayne Tseng
Jiin Lai
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.)
Via Technologies Inc
Original Assignee
Via Technologies 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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of DE10316725A1 publication Critical patent/DE10316725A1/de
Application granted granted Critical
Publication of DE10316725B4 publication Critical patent/DE10316725B4/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
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

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)

Abstract

Ein Distributed Shared Memory(DSM)-System enthält mindestens einen ersten und einen zweiten Knoten. Der erste Knoten enthält einen externen Cache zum Speichern von Daten von einem lokalen Speicher des zweiten Knotens und mindestens zwei Prozessoren, die optional auf die Daten von dem externen Cache zugreifen. Als erstes wird bestimmt, ob die Daten in modifizierte Daten von einem ersten bestimmten, einen der mindestens zwei Prozessoren modifiziert worden sind. Falls ja, wird außerdem bestimmt, ob ein zweiter bestimmter, einer der mindestens zwei Prozessoren die modifizierten Daten gemeinsam nutzen darf. Wenn der zweite bestimmte Prozessor die modifizierten Daten gemeinsam nutzen darf, kann er die modifizierten Daten von dem ersten bestimmten Prozessor über einen Bus innerhalb des ersten Knotens direkt abrufen.

Description

  • Die vorliegende Erfindung betrifft ein Datenverwaltungsverfahren für ein Distributed Shared Memory(DSM)-System und insbesondere ein Datenverwaltungsverfahren für ein Distributed Shared Memory(DSM)-System mit einem externen Cache (L3-Cache).
  • Aufgrund des zunehmenden Fortschritts von Wissenschaft und Technologie spielen Mittel zur Verarbeitung von digitalisierten Informationen eine zunehmend wichtigere Rolle in unseren täglichen Leben und Geschäftstätigkeiten. Demzufolge ist die Datenverarbeitungsmenge zu riesig, um unter Verwendung eines einfachen Datenverarbeitungsgerätes, wie zum Beispiel eines Computersystems mit einem einzigen Prozessor und einem lokalen Speicher, durchgeführt zu werden. Zur effizienten Handhabung von großen Datenmengen ist ein Mehrprozessorsystem zur Lösung dieses Problems entwickelt worden.
  • Bisher sind zwei Typen von Paralleldatenverarbeitungssystemen verwendet worden. Einer ist das fest gekoppelte Paralleldatenverarbeitungssystem und das andere ist das lose gekoppelte Paralleldatenverarbeitungssytem.
  • Das fest gekoppelte Paralleldatenverarbeitungssystem enthält mehrere Zentralverarbeitungseinheiten (Central Processing Units (CPU)) und einen von allen CPUs zugänglichen Speicher. Diese Architektur ist aus einem Einzel-CPU-System derart erweitert worden, daß sie ein relativ einfaches Design aufweist. Ein derartiges System weist jedoch eine innewohnende Beschränkung auf. Da die Vielzahl von CPUs auf den Speicher über einen einzigen gemeinsamen Bus zugreifen, kann die gesamte Größenordnung des Systems nicht zu groß sein. Abgesehen davon, wird die große Anzahl von CPUs dem Bus eine schwere Last auferlegen.
  • Andererseits stellt das lose gekoppelte Paralleldatenverarbeitungssystem ein System dar, das aus mehreren über ein Hochgeschwindigkeitsnetzwerk untereinander verbundenen Computern besteht. Über eine feingestaltete topologische Architektur kann das lose gekoppelte Paralleldatenverarbeitungssystem, im Vergleich mit dem fest gekoppelten Paralleldatenverarbeitungssystem, recht erweiterbar sein. Mit anderen Worten kann eine große Anzahl von Prozessoren in dem System enthalten sein. Da die Kommunikation des gesamten Systems über ein Netzwerk durchgeführt wird, würde die Komplexität der Architektur viel schwieriger als das fest gekoppelte Paralleldatenverarbeitungssytem zum Erzielen von Höchstleistung sein.
  • Zur Lösung der Probleme der obengenannten Systeme ist ein Verarbeitungssystem, umfassend einen Distributed Shared Memory (DSM) für den Zweck der parallelen Datenverarbeitung und schnellen gemeinsamen Datennutzung für einen fernen Knoten zum Zugreifen auf einen lokalen Speicher entwickelt worden. Das DSM-System weist die Vorteile sowohl des fest als auch des lose gekoppelten Paralleldatenverarbeitungssystems auf. Das heißt, daß das DSM-System einfach und erweiterbar ist. Seit 1980 sind mehrere DSM-Systeme genutzt worden. Ein Beispiel stellt die cache coherency Non-Uniform Memory Access (ccNUMA)-Architektur dar.
  • Es soll auf 1 Bezug genommen werden, die ein Blockdiagramm zeigt, das ein herkömmliches DSM-System vom ccNUMA-Typ darstellt. Das DSM-System 10 enthält vier durch ein Netzwerk 15 miteinander verbundene Knoten 11–14. Wie gezeigt, enthalten die Knoten 11–14 jeweilige Prozessoren 111, 112, 121, 122, 131, 132, 141, 142, Speichersteuerchips 113, 123, 133, 143 zur I/O-Steuerung und zum Speicherzugriff, lokale Speicher 1131, 1231, 1331, 1431, DSM-Controller 114, 124, 134, 144, externe Caches oder L3-Caches 1141, 1241, 1341, 1441, Systembusse 115, 125, 135, 145 und interne Busse 116, 126, 136, 146. Jeder lokale Speicher 1131, 1231, 1331, 1431 ist in mehrere lokale Memory-Lines zur separaten Speicherung von Daten unterteilt, die lokale Primärdaten sind, die zu seinem eigenen Knoten gehören. In ähnlicher Weise ist jeder Cache 1141, 1241, 1341, 1441. in mehrere Cache-Lines zur separaten Speicherung von Cachedaten unterteilt, die fremde Daten darstellen, die zu lokalen Speichern von anderen Knoten gehören. Das Vorhandensein der Caches dient dazu, Zeit für den Zugriff auf Daten aus den lokalen Speichern von anderen Knoten zu sparen.
  • Jeder DSM-Controller 114, 124, 134, 144 verwaltet ein darin gespeichertes Memory coherency Directory (nicht gezeigt), um die Zustände aller lokaler Memory-Lines zu erfassen. Wenn irgendeiner der Knoten Daten aus einer speziellen lokalen Memory-Line lesen will, wird der Lesevorgang von dem DSM-Controller entsprechend dem Memory coherency Directory geleitet. Der DSM-Controller verwaltet auch ein darin gespeichertes cache coherency directory (nicht gezeigt), um die Zustände aller Cache-Lines zu erfassen. Wenn irgendeiner der Knoten Daten aus einer speziellen Cache-Line lesen will, wird der Lesevorgang von dem DSM-Controller entsprechend dem cache coherency directory geleitet.
  • Da die DSM-Controller aller Knoten miteinander über das Netzwerk 15 kommunizieren, würde ein Netzwerkkommunikationsprotokoll, wie zum Beispiel TCP/IP, als Datenübertragungsformat für Zwischenkommunikation verwendet werden.
  • Die Zustände jeder L3-Cache-Line, die von dem cache coherency directory angezeigt werden, enthalten CLEAN-, FRESH-, DIRTY-, VOID-, IDLE- und STALE-Zustände. Die Bedeutungen dieser Zustände werden wie folgt beschrieben:
    CLEAN: Die Daten in der Cache-Line des lokalen Knotens existieren auch in einem fernen Knoten, der als ein Home-Knoten bezeichnet wird, und die Daten sind nicht von einem bestimmten Prozessor des lokalen Knotens modifiziert worden, obwohl der bestimmte Prozessor die Daten ausschließlich hält;
    FRESH: Die Daten in der Cache-Line sind von keinem der Knoten modifiziert worden und werden von allen Knoten gemeinsam genutzt;
    DIRTY: Die Daten in der Cache-Line sind modifiziert worden und werden exklusiv von einem bestimmten Prozessor des lokalen Knotens gehalten und sind somit anders als die vorhandenen in dem Home-Knoten geworden;
    VOID: Die Daten in der Cache-Line sind ungültig gemacht worden und neue Daten dürfen in dieselbe Position des L3-Cache geschrieben werden;
    IDLE: Die Cache-Line befindet sich in einem Übergangszustand und wartet auf den Empfang von neuen Daten; und
    STALE: Die Cache-Line befindet sich in einem Übergangszustand und wartet auf das Herauslöschen von gespeicherten Daten.
  • Die Datenwartung des L3-Cache ist, obwohl sie normalerweise entsprechend den obengenannten Zuständen betrieben wird, möglicherweise ineffizient, speziell wenn sich die Cache-Line in dem DIRTY-Zustand befindet. Wie bekannt, werden die Daten in der Cache-Line exklusiv von einem bestimmten Prozessor des lokalen Knotens in dem DIRTY-Zustand ge halten. Wenn ein anderer Prozessor des lokalen Knotens auf die Daten in der Cache-Line zugreifen soll, muß er somit eine weitere Systembustransaktionsanfrage vorbringen, um auf die Daten von dem bestimmten Prozessor desselben Knotens zuzugreifen. Demzufolge wird die Belastung des Systembusses innerhalb des Knotens erhöht und somit die Systemeffizienz ungünstig beeinflußt.
  • Weiterhin wird das Zugangsverklemmungsproblem, das wahrscheinlich zwischen irgendwelchen zwei Knoten zur Verarbeitung von Paralleldaten auftritt, im allgemeinen durch das Betriebssystem (Operation System (OS)) gelöst. Wenn sich das Betriebssystem nicht rechtzeitig mit dem Zugangsverklemmungsproblem aufgrund eines instabilen Zustands desselben oder irgendeines anderen Faktors befassen kann, hält das DSM-System möglicherweise an und beeinflußt es die Zuverlässigkeit des DSM-System ungünstig.
  • Somit besteht eine Aufgabe der vorliegenden Erfindung darin, ein Datenverwaltungsverfahren für ein DSM-System bereitzustellen, um den Systembustransaktionszweck mit reduzierten Transaktionsanfragen zu erzielen.
  • Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, ein Datenverwaltungsverfahen für ein DSM-System bereitzustellen, um das Zugangsverklemmungsproblem effizient zu lösen.
  • Die vorliegende Erfindung betrifft ein Datenverwaltungsverfahren für ein Distributed Shared Memory DSM)-System. Das DSM-System enthält mindestens einen ersten und einen zweiten Knoten. Der erste Knoten enthält einen externen Cache zum Speichern von Daten aus einem lokalen Speicher des zweiten Knotens und mindestens zwei Prozessoren, die optional auf die Daten aus dem externen Cache zugreifen.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung umfaßt das Datenverwaltungsverfahren die Schritte: Entscheiden, ob die Daten, von dem anderen Knoten stammend, von einem ersten bestimmten einen der mindestens zwei Prozessoren in modifizierte Daten modifiziert worden sind; Entscheiden, ob ein zweiter bestimmter einer der mindestens zwei Prozessoren die modifizierten Daten gemeinsam nutzen darf, wenn die Daten von dem bestimmten Prozessor modifiziert worden sind; und direktes Abrufen der modifizierten Daten von dem zweiten bestimmten Prozessor über einen Bus innerhalb des ersten Knotens, wenn der zweite bestimmte Prozessor die modifizierten Daten gemeinsam nutzen darf.
  • In einem Beispiel ist jeder der mindestens zwei Prozessoren mit dem Bus elektrisch verbunden, der vorzugsweise ein Systembus des ersten Knotens ist, und ruft der zweite bestimmte Prozessor die modifizierten Daten direkt ab, ohne irgendeine Netzwerktransaktionsanfrage vorzubringen.
  • In einem Beispiel sind die ersten und zweiten Knoten über ein Netzwerk, das unter einem Netzwerkkommunikationsprotokoll, wie zum Beispiel TCP/IP arbeitet, miteinander verbunden.
  • In einer Ausführungsform wird auf die modifizierten Daten ausschließlich von dem ersten bestimmten Prozessor zugegriffen, wenn der zweite bestimmte Prozessor nicht die modifizierten Daten gemeinsam nutzen darf.
  • In einer Ausführungsform werden die Entscheideschritte entsprechend einem cache coherency directory durchgeführt, das den Zustand einer Cache-Line des externen Cache, wo die Daten gespeichert sind, aufzeichnet.
  • Vorzugsweise umfaßt das Verfahren außerdem die Schritte: Entscheiden, ob sich eine Memory-Line des lokalen Speichers des zweiten Knotens, wo die Daten gespeichert werden, in einem Übergangszustand befindet, wobei die Daten von dem ersten bestimmten Prozessor modifiziert werden oder davon darauf zugegriffen wird, um die Cache-Line von einem ersten Zustand in einen zweiten Zustand umzuschalten; und Zurückbringen des Zustands der Cache- Line von dem zweiten Zustand zum ersten Zustand, wenn sich die Memory-Line in dem Übergangszustand befindet.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung umfaßt das Datenverwaltungsverfahren die Schritte: Entscheiden, ob die Daten von einem ersten bestimmten einen der mindestens zwei Prozessoren unter der Bedingung, daß sich eine Cache-Line des externen Cache, wo die Daten gespeichert sind, in einem CLEAN-Zustand befindet, modifiziert worden ist; Umschalten des Zustands der Cache-Line vom CLEAN-Zustand zu entweder DIRTY-SHARED- oder DIRTY-ONLY-Zustand, wenn die Daten in modifizierte Daten modifiziert worden sind; und gestatten, daß ein zweiter bestimmter einer der mindestens zwei Prozessoren die modifizierten Daten über einen Bus innerhalb des ersten Knotens direkt abruft, wenn sich die Cache-Line in dem DIRTY-SHARED-Zustand befindet. Zum Beispiel werden die CLEAN-, DIRTY-SHARED- und DIRTY-ONLY-Zustände der Cache-Line in einem cache coherency directory aufgezeichnet.
  • In einer Ausführungsform wird auf die modifizierten Daten exklusiv von dem ersten bestimmten Prozessor zugegriffen, wenn sich die Cache-Line in dem DIRTY-ONLY-Zustand befindet.
  • Vorzugsweise umfaßt das Verfahren außerdem die Schritte: Entscheiden, ob sich eine Memory-Line des lokalen Speichers des zweiten Knotens, wo die Daten gespeichert sind, in einem Übergangszustand befindet, wobei die Daten von dem ersten bestimmten Prozessor modifiziert werden oder davon darauf zugegriffen wird, um die Cache-Line von einem ersten Zustand zu einem zweiten Zustand umzuschalten; und Zurückbringen des Zustands der Cache-Line vom zweiten Zustand zum ersten Zustand, wenn sich die Memory-Line in dem Übergangszustand befindet.
  • Zum Beispiel ist der erste Zustand ein VOID-Zustand und ist der zweite Zustand ein IDLE-Zustand.
  • Alternativ ist der erste Zustand ein FRESH-Zustand und ist der zweite Zustand ein IDLE-Zustand.
  • In einer Ausführungsform wird der Zustand der Cache-Line vom zweiten Zustand zum ersten Zustand als Antwort auf einen von dem zweiten Knoten vorgebrachten Wiederholbefehl zurückgebracht.
  • In einer Ausführungsform wird der Schritt des Entscheidens über den Zustand der Memory-Line entsprechend einem local memory cherency directory durchgeführt.
  • Die vorliegende Erfindung kann am besten durch die folgende Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen verstanden werden, in denen:
  • 1 ein schematisches Schaltungsblockdiagramm ist, das ein herkömmliches Distributed Shared Memory(DSM)-System zeigt;
  • 2 ein Schemadiagramm ist, das zahlreiche Zustände einer L3-Cache-Line als Antwort auf einen Ortszugriffsbefehl zeigt;
  • 3 ein Schemadiagramm ist, das zahlreiche Zustände einer L3-Cache-Line als Antwort auf einen Fernzugriffsbefehl zeigt; und
  • 4 ein Schemadiagramm ist, das zahlreiche Zustände einer lokalen Memory-Line und einer korrespondierenden L3-Cache-Line als Antwort auf einen Ortszugriffsbefehl, einen Rollout-Befehl und ein mit dem Rollout-Befehl verbundenes Bestätigungssignal zeigt; und
  • 5 ein Flußdiagramm einer Ausführungsform eines Datenverwaltungsverfahrens gemäß der vorliegenden Erfindung ist.
  • Die vorliegende Erfindung wird nunmehr spezieller unter Bezugnahme auf die folgenden Ausführungsformen beschrieben. Es wird angemerkt, daß die folgenden Beschreibungen von bevorzugten Ausführungsformen der vorliegenden Erfindung nur zu Darstellungs- und Beschreibungszwecken präsentiert werden; sie sollen nicht als vollständig oder auf die offenbarte genaue Ausführungsform beschränkt gedacht sein.
  • Das in 1 gezeigte DSM-System wird zur Darstellung einer Ausführungsform der vorliegenden Erfindung verwendet. Die von einem cache coherency directory angezeigten Zustände der Cache-Line sind jedoch modifiziert, um die im Stand der Technik angetroffenen Probleme zu lösen.
  • Zum Demonstrieren der Datenübertragung des vorliegenden DSM-Systems. Der Cache-Zustands-Übergang ist unter Bezugnahme auf die 2 und 3 als Antwort auf einen jeweiligen Ortszugriffsbefehl und einen Fernzugriffsbefehl dargestellt.
  • Entsprechend der vorliegenden Erfindung gibt es sieben mögliche von dem cache coherency directory angezeigte Zustände für jede der L3-Cache-Lines, die CLEAN-, FRESH-, DIRTY-ONLY-, DIRTY-SHARED-, VOID-, IDLE- und STALE-Zustände einschließen. Die Bedeutungen dieser Zustände werden wie folgt beschrieben:
    CLEAN: Die Daten in der Cache-Line des lokalen Knotens existieren auch in einem fernen Knoten, der als ein Home-Knoten bezeichnet wird, und die Daten sind nicht von einem bestimmten Prozessor des lokalen Knotens modifiziert worden, obwohl der bestimmte Prozessor die Daten ausschließlich hält;
    FRESH: Die Daten in der Cache-Line sind von keinem der Knoten modifiziert worden und werden von allen Knoten gemeinsam genutzt;
    DIRTY-ONLY: Die Daten in der Cache-Line sind modifiziert worden und werden exklusiv von einem bestimmten Prozessor des lokalen Knotens gehalten und sind somit anders als die vorhandenen in dem Home-Knoten geworden;
    DIRTY-SHARED: Die Daten in der Cache-Line sind von einem bestimmten Prozessor des lokalen Knotens modifiziert worden und sind somit anders als die vorhandenen in dem Home-Knoten geworden, und die anderen Prozessoren des lokalen Knotens können auf die modifizierten Daten zugreifen;
    VOID: Die Daten in der Cache-Line sind ungültig gemacht worden und neue Daten dürfen in dieselbe Position des L3-Cache geschrieben werden;
    IDLE: Die Cache-Line befindet sich in einem Übergangszustand und wartet auf den Empfang von neuen Daten; und
    STALE: Die Cache-Line befindet sich in einem Übergangszustand und wartet auf das Herauslöschen von gespeicherten Daten.
  • Der von einem lokalen Prozessor über den Systembus vorgebrachte Ortszugriffsbefehl lautet:
    BRL: Der Befehl wird ausgegeben, um eine gemeinsam genutzte Kopie von speziellen Daten zu lesen;
    BFL(hit#): Der Befehl wird ausgegeben, um eine gemeinsam genutzte Kopie der speziellen Daten, die in dem lokalen Knoten gespeichert sind und nicht modifiziert worden sind, zu lesen;
    BRL(hitm#): Der Befehl wird ausgegeben, um eine gemeinsam genutzte Kopie der speziellen Daten, die in dem lokalen Knoten gespeichert sind und modifiziert worden sind, zu lesen,
    BRIL: Der Befehl wird ausgegeben, um eine exklusive Kopie der speziellen Daten zu lesen;
    BRIL(hit#): Der Befehl wird ausgegeben, um eine exklusive Kopie der speziellen Daten, die in dem lokalen Knoten gespeichert sind und nicht modifiziert worden sind, zu lesen;
    BRIL(hitm#): Der Befehl wird ausgegeben, um eine exklusive Kopie der speziellen Daten, die in dem lokalen Knoten gespeichert sind und modifiziert worden sind, zu lesen.
  • BIL: Der Befehl wird ausgegeben, um eine gemeinsam genutzte Kopie der speziellen Daten zu modifizieren und die speziellen Daten exklusiv zu halten; oder
    BWL: Der Befehl wird ausgegeben, um die speziellen Daten in den Cache zurückzuschreiben.
  • Der von einem fernen Prozessor über den Systembus vorgebrachte Fernzugriffsbefehl lautet:
    LRL: Der Befehl wird ausgegeben, um eine gemeinsam genutzte Kopie der speziellen Daten zu lesen;
    LRIL: Der Befehl wird ausgegeben, um eine exklusive Kopie der speziellen Daten zu lesen;
    LIL: Der Befehl wird ausgegeben, um eine gemeinsam genutzte Kopie der speziellen Daten zu modifizieren und die speziellen Daten exklusiv zu halten;
    RTY BOP (BIL): Der Befehl wird ausgegeben, um den als Antwort auf den BIL-Befehl erstellten Zustand der Cache-Line in den früheren Zustand zurückzubringen; oder
    RTY BOP (BRL, BRIL): Der Befehl wird ausgegeben, um den als Antwort auf den BRL- oder BRIL-Befehl erstellten Zustand der Cache-Line in den früheren Zustand zurückzubringen.
  • Zusätzlich könnte ein von einem lokalen Prozessor vorgebrachter Fernzugriffsbefehl an einen fernen Knoten beteiligt sein. Der Fernzugriffsbefehl lautet:
    ROD (Rollout DIRTY): Der Befehl wird ausgegeben, um den Zustand der lokalen Memory-Line des fernen Knotens, wo die speziellen Daten gespeichert werden, von GONE in HOME unter der Bedingung umzuschalten, daß der Zustand der Cache-Line des lokalen Knotens, wo die Daten gespeichert werden, sich von CLEAN, DIRTY-SHARED oder DIRTY-ONLY zu STALE geändert hat; oder
    ROF (Rollout FRESH): Der Befehl wird ausgegeben, um den Zustand der lokalen Memory-Line des fernen Knotens, wo die speziellen Daten gespeichert werden, von SHARED in HOME unter der Bedingung umzuschalten, daß sich der Zustand der Cache-Line des lokalen Knotens, wo die Daten gespeichert werden, von FRESH zu STALE geändert hat.
  • Die SHARED- und HOME- sowie GONE- und WASH-Zustände stellen Zustände der lokalen Memory-Line des fernen Knotens auf, die in einem memory coherency directory aufgezeichnet sind. Die Bedeutungen dieser Zustände werden wie folgt beschrieben:
    HOME: Die Daten aus der lokalen Memory-Line werden von keinem fernen Knoten gelesen und die letzten Daten in der lokalen Memory-Line werden in dem lokalen Speicher gespeichert;
    SHARED: Auf den lokalen Speicher wurde von einem fernen Knoten zugegriffen und die Daten in der lokalen Memory-Line sind von dem fernen Knoten nicht modifiziert;
    GONE: Auf den lokalen Speicher wurde von einem fernen Knoten zugegriffen und die Daten in der lokalen Memory-Line wurden von dem fernen Knoten modifiziert; und
    WASH: Die Daten in dem lokalen Speicher wurden von einem fernen Knoten modifiziert und an den lokalen Knoten gesendet.
  • Nachfolgend wird der Übergang der Zustände unter der Annahme, daß der Knoten 11 ein lokaler Knoten ist und der Knoten 12 ein ferner Knoten ist, beschrieben. Diesbezüglich ist auf 2 Bezug zu nehmen, die ein Zustandsdiagramm darstellt, das zahlreiche Zustände einer L3-Cache-Live als Antwort auf die obengenannten Ortszugriffsbefehle zeigt. Nehmen wir an, daß spezielle Daten in dem lokalen Speicher 1231 des fernen Knotens 12 ursprünglich gespeichert werden und die speziellen Daten in einer Cache-Line des Cache 1141 des lokalen Knotens 11 über das Netzwerk 15 als Antwort auf die Anfrage eines speziellen Prozessors, z. B. 112, des lokalen Knotens zum Zugreifen auf die Daten gespeichert werden. Der Knoten 12 wird auch als ein Home-Knoten der Daten bezeichnet.
  • Wenn der Prozessor 112 einen BRL-Befehl zum Abrufen einer gemeinsam genutzten Kopie der speziellen Daten vorbringt, ist der BRL-Befehl ein BRL(hit#)-Befehl, wenn die speziellen Daten bereits in dem Cache 1141 gespeichert worden sind. Das heißt, daß sie sich in einem Cache-hit-Zustand befindet. Somit können die Daten in der Cache-Line von dem Prozessor 112 direkt gelesen werden. Wenn die Daten von dem Prozessor 112 exklusiv gehalten werden, würde der Zustand der Cache-Line CLEAN sein.
  • Im CLEAN-Zustand, wenn der Prozessor 112 die exklusive Kopie der Daten in der Cache-Line lesen, aber nicht modifizieren will, sollte er einen BRIL-Befehl an den Systembus 115 vorbringen. Da sich die unmodifizierten Daten weiterhin in dem Cache 1141 befinden, wird ein Cache-hit-Zustand weiterhin angezeigt, und ist der BRIL-Befehl ein BRIL(hit#)-Befehl. Die Daten in der Cache-Line werden von dem Prozessor 112 direkt gelesen und exklusiv gehalten, und somit bleibt der Zustand der Cache-Line in CLEAN.
  • Im CLEAN-Zustand, wenn der Prozessor 112 die exklusive Kopie der Daten der Cache-Line lesen und modifizieren will, sollte er einen BRIL-Befehl an den Systembus 115 vorbringen. Wenn sich die Daten in dem Cache 1141 (cache hit) befinden, aber modifiziert worden sind, ist der BRIL-Befehl ein BRIL(hitm#)-Befehl. Die modifizierten Daten in der Cache-Line, die anders als die in dem lokalen Speicher 1231 des Home-Knotens 12 gespeicherten Daten werden, werden direkt von dem Bus 115 abgelesen und exklusiv von dem Prozessor 112 gehalten, und somit ändert sich der Zustand der Cache-Line von CLEAN zu DIRTY-ONLY.
  • Im CLEAN-Zustand, wenn der Prozessor 112 eine gemeinsam genutzte Kopie der Daten in der Cache-Line erhalten will und einem weiteren Prozessor, z. B. 111, erlaubt, die Daten gemeinsam zu nutzen, sollte er einen BRL-Befehl an den Systembus 115 vorbringen. Wenn sich die Daten in dem Cache 1141 (cache hit) befinden, aber modifiziert worden sind, ist der BRL-Befehl ein BRL (hitm#)-Befehl. Die modifizierten Daten in der Cache-Line, die anders als die in dem lokalen Speicher 1231 des Home-Knotens 12 gespeicherten Daten werden, werden von dem Prozessor 112 direkt von dem Bus 115 abgelesen und gemeinsam mit anderen Prozessoren benutzt, und somit ändert sich der Zustand der Cache-Line von CLEAN zu DIRTY-SHARED. Im DIRTY-SHARED-Zustand kann ein anderer Prozessor 111 auf die Daten in der Cache-Line aus dem Cache 1141 direkt zugreifen. Mit anderen Worten kann, im DIRTY-SHARED-Zustand, irgendeiner der anderen Prozessoren des lokalen Knotens auf die modifizierten Daten über den Systembus direkt zugreifen, ohne irgendeine Netzwerktransaktionsanfrage vorzubringen. Somit kann die Belastung des Netzwerkes auf ein bestimmtes Ausmaß reduziert werden.
  • Wenn der Prozessor 111, im DIRTY-ONLY-Zustand, Daten in der Cache-Line gemeinsam nutzen möchte, sollte er einen BRL-Befehl vorbringen, um den Zustand der Cache-Line von DIRTY-ONLY auf DIRTY-SHARED umzuschalten.
  • Wenn im Gegensatz dazu irgendeiner der Prozessoren, z. B. 111 oder 112, im DIRTY-SHARED-Zustand, die Daten in der Cache-Line exklusiv halten möchte, muß er einen BRIL- oder BIL-Befehl vorbringen, um den Zustand der Cache-Line von DIRTY-SHARED auf DIRTY-ONLY umzuschalten.
  • Zusätzlich zu den obengenannten Orts- und Fernzugriffsbefehlen ist ein Bestätigungssignal B_ACK bei der Datenübertragung des DSM-Systems gemäß der vorliegenden Erfindung auch beteiligt. Vom VOID-Zustand wird ein Übergangszustand IDLE der Cache-Line als Antwort auf einen BRL-Befehl angenommen werden. Wenn der BRL-Befehl fertig ist, wird ein Bestätigungssignal B_ACK (BRL) vorgebracht, um den Zustand der Cache-Line in FRESH umzuschalten. Wenn sich die Cache-Line in dem FRESH-Zustand befindet, wird in gleicher Weise danach in einen Übergangszustand IDLE als Antwort auf einen BRIL- oder BIL-Befehl eingetreten. Wenn der BRIL- oder BIL-Befehl beendet ist, wird ein Bestätigungssignal B_ACK (BRIL, BIL) vorgebracht, um den Zustand der Cache-Line in CLEAN umzuschalten. Wenn sich die Cache-Line im CLEAN- oder DIRTY-ONLY-Zustand befindet, wird außerdem danach in einen Übergangszustand STALE als Antwort auf ein BWL-Befehl getreten. Wenn der BWL-Befehl beendet ist, wird ein Bestätigungssignal B_ACK (BRIL, BIL) vorgebracht, um den Zustand der Cache-Line in VOID umzuschalten.
  • Die weiteren Zustandsübergänge können anhand der obigen Beschreibung von Fachleuten auf dem Gebiet abgeleitet werden und sind somit hierin nicht redundant beschrieben.
  • Als nächstes wird auf 3 Bezug genommen, die ein Zustandsdiagramm ist, das zahlreiche Zustände einer L3-Cache-Line als Antwort auf die obengenannten Fernzugriffsbefehle zeigt. Außerdem wird der Übergang der Zustände unter der Annahme beschrieben, daß der Knoten 11 ein lokaler Knoten ist und daß der Knoten 12 ein ferner Knoten ist. Spezielle Daten werden ursprünglich in dem lokalen Speicher 1231 des fernen Knotens oder Home-Knotens 12 gespeichert, und die speziellen Daten werden in einer Cache-Line des Cache 1141 des lokalen Knotens 11 über das Netzwerk 15 als Antwort auf die Anfrage eines speziellen Prozesses, z. B. 112, des lokalen Knotens 11 zum Zugreifen auf die Daten gespeichert.
  • Im DIRTY-ONLY- oder DIRTY-SHARED-Zustand zeigt der Empfang des LRL-Befehls an, daß die Daten in der Cache-Line nicht länger exklusiv von dem lokalen Knoten 11 gehalten werden. Statt dessen können alle Knoten die Daten gemeinsam nutzen. Somit verändert sich der Zustand der Cache-Line von DIRTY-ONLY oder DIRTY-SHARED zu FRESH.
  • Im DIRTY-ONLY oder DIRTY-SHARED-Zustand zeigt der Empfang des LRIL- oder LIL-Befehls an, daß die Daten in der Cache-Line exklusiv von dem Prozessor 112 gehalten werden und die Daten in dem Cache 1141 ungültig gemacht werden müssen. Somit stellt die Cache-Line, wo die speziellen Daten früher gespeichert wurden, keine gültigen Daten dar. Der Zustand der Cache-Line ändert sich von DIRTY-ONLY oder DIRTY-SHARED zu VOID.
  • Im VOID-Zustand sind die speziellen Daten in der Cache-Line ungültig und dürfen neue Daten in die Cache-Line geschrieben werden. Wenn unterdessen irgendeiner der Prozessoren, z. B. 111 oder 112, einen BRL- oder BRIL-Befehl vorbringt, um eine gemeinsam genutzte oder eine exklusive Kopie der speziellen Daten abzurufen, muß der lokale Knoten 11, da es nicht die speziellen Daten in der Cache-Line gibt, die speziellen Daten von dem Home-Knoten 12 erneut abrufen und in der Cache-Line erneut speichern. Somit ändert sich der Zustand der Cache-Line von VOID zu IDLE (2).
  • Wenn andererseits auf die speziellen Daten in der lokalen Memory-Line des Home-Knotens 12 von einem Prozessor des Knotens 12, z. B. 121 oder 122, zugegriffen wird, wird sich die lokale Memory-Line in einem Übergangszustand, z. B. WASH-Zustand, befinden. Unterdessen wird der Knoten 12 einen RTY-BOP (BRL, BRIL)-Befehl an den Knoten 11 vorbringen, um die Übertragung der speziellen Daten an den Knoten 11 zurückzuweisen. Zur Verbesserung der Effizienz des Systems wird der Knoten 11 nicht auf die Daten warten, wenn er den RTY-BOP (BRL, BRIL)-Befehl empfängt. Statt dessen wird der Zustand der Cache-Line von IDLE zu VOID als Antwort auf RTY-BOP (BRL, BRIL)-Befehl wieder zurückgehen.
  • Im FRESH-Zustand können die speziellen Daten in der Cache-Line von allen Knoten gemeinsam genutzt werden. Wenn unterdessen ein Prozessor des Knotens 11, z. B. 111 oder 112, eine gemeinsam genutzte Kopie der speziellen Daten modifizieren und die speziellen Daten durch Vorbringen eines BIL-Befehls exklusiv halten will, ändert sich der Zustand der Cache-Line von FRESH zu IDLE. Wenn auf die speziellen Daten von einem anderen Knoten, z. B. 12, zugegriffen wird, wird sich die lokale Memory-Line, wo die speziellen Daten gespeichert sind, in einem Übergangszustand, z. B. WASH-Zustand, befinden. Danach wird der Knoten 12 einen RTY-BOP (BIL)-Befehl an den Knoten 11 zum Rückweisen des Ungültigmachens der speziellen Daten in dem Knoten 12 vorbringen. Zur Verbesserung der Effizienz des Systems wird der Knoten 11 nicht auf die Invalidierung der Daten warten, wenn er den RTY-BOP (BIL)-Befehl empfängt. Statt dessen wird der Zustand der Cache-Line von IDLE zu FRESH als Antwort auf RTY-BOP(BIL)-Befehl zurückkehren.
  • Zusammengefaßt wird der ferne Knoten 11 oder 12 in einem Fall, in dem zwei Knoten, z. B. 11 und 12, die Daten voneinander zum selben Zeitpunkt anfordern und auf die angeforderten Daten von dem fernen Knoten 11 oder 12 zugegriffen wird, einen RTY BOP-Befehl zum Zurückbringen des anderen in den früheren Zugriffszustand vorbringen, um das Verklemmungsproblem zu verhindern. Somit ist es für das Betriebssystem nicht notwendig, sich in dem vorliegenden Verfahren mit dem Verklemmungsproblem zu befassen.
  • Die anderen Zustandsübergänge können von Fachleuten auf dem Gebiet anhand der obigen Beschreibung abgeleitet werden und werden somit hierin nicht redundant beschrieben.
  • Es wird auf 4 Bezug genommen, die ein Zustandsdiagramm ist, das zahlreiche Zustände einer lokalen Memory-Line und einer korrespondierenden L3-Cache-Line als Antwort auf einen Ortszugriffsbefehl, einen Rollout-Befehl und ein mit dem Rollout-Befehl verbundenes Bestätigungssignal zeigt. Die Ortszugriffsbefehle sind oben erörtert worden. Der Rollout-Befehl ist ein ROD- oder ROF-Befehl. Das Bestätigungssignal ist ein L_ACK (ROD)- oder L_ACK (ROF)-Signal. Das Symbol „A" kennzeichnet einen lokalen Knoten, und das Symbol „B" kennzeichnet einen fernen oder Home-Knoten. Spezielle Daten sind aus einer lokalen Memory-Line des Knotens „B" gelesen und in einer Cache-Line des Knotens A gespeichert worden.
  • In einem Fall, in dem der Zustand der Cache-Line des Knotens A CLEAN, DIRTY-SHARED oder DIRTY-ONLY ist, und der Zustand der lokalen Memory-Line des Knotens B GONE ist, wird der Zustand der Cache-Line in STALE als Antwort auf den BIL- oder BRIL-Befehl umgeschaltet werden. Das heißt, daß die Daten in der Cache-Line des Knotens A darauf warten, gelöscht zu werden. Danach bringt der Knoten A einen ROD-Befehl an den Knoten B zum Schreiben der Daten in der Cache-Line in den Knoten B zurück vor. Unterdessen wird sich der Zustand der lokalen Memory-Line des Knotens B von GONE zu HOME aufgrund des ROD-Befehls ändern. Nachdem die Daten in der Cache-Line des Knotens A in den Knoten B vollständig zurückgeschrieben worden sind, bringt der Knoten B ein Bestätigungssignal L_ACK (ROD) an den Knoten vor und ändert sich der Zustand der Cache-Line des Knotens A von STALE zu VOID. Mit anderen Worten werden die Daten in der Cache-Line des Knotens A ungültig gemacht und können neue Daten in die Cache-Line geschrieben werden.
  • In einem anderen Fall, in dem der Zustand der Cache-Line des Knotens A FRESH ist und der Zustand der lokalen Memory-Line des Knotens B SHARED ist, wird der Zustand der Cache-Line in STALE als Antwort auf den BIL-Befehl umgeschaltet werden. Das heißt, daß die Daten in der Cache-Line des Knotens A darauf warten, gelöscht zu werden. Danach bringt der Knoten A einen ROF-Befehl an den Knoten B zum Verwerfen der Daten in der Cache-Line desselben vor. Unterdessen wird sich der Zustand der lokalen Memory-Line des Knotens B von SHARED zu HOME aufgrund des ROF-Befehls ändern. Nachdem der Knoten B den ROF-Befehl empfängt, wird der Knoten B ein Bestätigungssignal L_ACK (ROF) an den Knoten A vorbringen und ändert sich der Zustand der Cache-Line des Knotens A von STALE zu VOID. Mit anderen Worten werden die Daten in der Cache-Line des Knotens ungültig gemacht und können neue Daten in die Cache-Line geschrieben werden.
  • Das Datenverwaltungsverfahren gemäß der vorliegenden Erfindung wird durch das Flußdiagramm von 5 zusammengefaßt. Als erstes wird bestimmt, ob die Daten in modifizierte Daten von einem Prozessor eines lokalen Knotens modifiziert worden sind. Falls ja, wird außerdem bestimmt, ob ein anderer Prozessor des lokalen Knotens die modifizierten Daten gemeinsam nutzen darf/dürfen. Wenn der andere Prozessor die modifizierten Daten gemeinsam nutzen darf, kann er die modifizierten Daten über einen Bus innerhalb des lokalen Knotens direkt abrufen. Andererseits wird auf die modifizierten Daten von dem Prozessor exklusiv zugegriffen werden, wenn der/die andere(n) Prozessoren) nicht die modifizierten Daten gemeinsam nutzen darf/dürfen. Wenn die Daten von dem Prozessor modifiziert oder darauf von selbigem zugegriffen wird, um die Cache-Line von einem ersten Zustand auf einen zweiten Zustand umzuschalten, wird danach bestimmt, ob sich eine Memory-Line des lokalen Speichers des fernen Knotens, wo die Daten gespeichert werden, einem Übergangszustand befindet. Der Zustand der Cache-Line wird vom zweiten Zustand zum ersten Zustand umgeschaltet werden, wenn sich die Memory-Line in dem Übergangszustand befindet.

Claims (18)

  1. Datenverwaltungsverfahren für ein Distributed Shared Memory (DSM)-System, wobei das DSM-System mindestens einen ersten und einen zweiten Knoten enthält, wobei der erste Knoten einen externen Cache zum Speichern von Daten von einem lokalen Speicher des zweiten Knotens und mindestens zwei Prozessoren enthält, die optional auf die Daten von dem externen Cache zugreifen, dadurch gekennzeichnet, daß das Datenverwaltungsverfahren die Schritte umfaßt: Entscheiden, ob die Daten in modifizierte Daten von einem ersten bestimmten einen der mindestens zwei Prozessoren modifiziert worden sind; Entscheiden, ob ein zweiter bestimmter einer der mindestens zwei Prozessoren die modifizierten Daten gemeinsam nutzen darf, wenn die Daten von dem bestimmten Prozessor modifiziert worden sind; und direktes Abrufen der modifizierten Daten von dem zweiten bestimmten Prozessor über einen Bus innerhalb des ersten Knotens, wenn der zweite bestimmte Prozessor die modifzierten Daten gemeinsam nutzen darf.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jeder der mindestens zwei Prozessoren mit dem Bus elektrisch verbunden ist.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Bus ein Systembus des ersten Knotens ist und der zweite bestimmte Prozessor die modifizierten Daten direkt abruft, ohne irgendeine Netzwerktransaktionsanfrage vorzubringen.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der erste und der zweite Knoten über ein Netzwerk miteinander verbunden sind.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß auf die modifizierten Daten von dem ersten bestimmten Prozessor exklusiv zugegriffen wird, wenn der zweite bestimmte Prozessor nicht die modifizierten Daten gemeinsam nutzen darf.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Entscheideschritte entsprechend einem cache coherency directory durchgeführt werden, das den Zustand einer Cache-Line des externen Cache, wo die Daten gespeichert werden, aufzeichnet.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß das Verfahren außerdem die Schritte umfaßt: Entscheiden, ob sich eine Memory-Line des lokalen Speichers des zweiten Knotens, wo die Daten gespeichert werden, in einem Übergangszustand befindet, wobei die Daten von dem ersten bestimmten Prozessor modiziert werden oder davon darauf zugegriffen wird, um die Cache-Line von einem ersten Zustand auf einem zweiten Zustand umzuschalten; und Zurückbringen des Zustands der Cache-Line vom zweiten Zustand zum ersten Zustand, wenn sich die Memory-Line im Übergangszustand befindet.
  8. Datenverwaltungsverfahren für ein Distributed Shared Memory (DSM)-System, wobei das DSM-System mindestens einen ersten und einen zweiten Knoten enthält, wobei der erste Knoten einen externen Cache zum Speichern von Daten von einem lokalen Speicher des zweiten Knotens und mindestens zwei Prozessoren enthält, die optional auf die Daten von dem externen Cache zugreifen, dadurch gekennzeichnet, daß das Datenverwaltungsverfahren die Schritte umfaßt: Entscheiden, ob die Daten von einem ersten bestimmten einen der mindestens zwei Prozessoren unter der Bedingung, daß sich eine Cache-Line des externen Cache, wo die Daten gespeichert werden, in einem CLEAN-Zustand befindet, modifiziert worden ist; Umschalten des Zustands der Cache-Line vom CLEAN-Zustand zu entweder DIRTY-SHARED- oder DIRTY-ONLY-Zustand, wenn die Daten in modifizierte Daten modifiziert worden sind; und Zulassen, daß ein zweiter bestimmter einer der mindestens zwei Prozessoren die modifizierten Daten über einen Bus innerhalb des ersten Knotens direkt abruft, wenn sich die Cache-Line im DIRTY-SHARED-Zustand befindet.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß jeder der mindestens zwei Prozessoren mit dem Bus elektrisch verbunden ist.
  10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der Bus ein Systembus des ersten Knotens ist.
  11. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der erste und der zweite Knoten über ein Netzwerk miteinander verbunden sind.
  12. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß auf die modifizierten Daten von dem ersten bestimmten Prozessor exklusiv zugegriffen wird, wenn sich die Cache-Line im DIRTY-ONLY-Zustand befindet.
  13. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß der CLEAN-, DIRTY-SHARED- und DIRTY-ONLY-Zustand der Cache-Line in einem cache coherency directory aufgezeichnet werden.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß das Verfahren außerdem die Schritte umfaßt: Entscheiden, ob sich eine Memory-Line des lokalen Speichers des zweiten Knotens, wo die Daten gespeichert werden, in einem Übergangszustand befindet, wobei die Daten von dem ersten bestimmten Prozessor modifiziert werden oder darauf davon zugegriffen wird, um die Cache-Line vom ersten Zustand auf den zweiten Zustand umzuschalten; und Zurückbringen des Zustands der Cache-Line vom zweiten Zustand zum ersten Zustand, wenn sich die Memory-Line im Übergangszustand befindet.
  15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß der erste Zustand ein VOID-Zustand ist und der zweite Zustand ein IDLE-Zustand ist.
  16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß der erste Zustand ein FRESH-Zustand ist und der zweite Zustand ein IDLE-Zustand ist.
  17. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß der Zustand der Cache-Line vom zweiten Zustand zum ersten Zustand als Antwort auf einen von dem zweiten Knoten vorgebrachten Wiederholbefehl zurückgebracht wird.
  18. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß der Schritt des Entscheidens über den Zustand der Memory-Line entsprechend einem lokalen memory coherency directory durchgeführt wird.
DE10316725A 2002-04-09 2003-04-09 Datenverwaltungsverfahren für ein Distributed Shared Memory-System Expired - Lifetime DE10316725B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37120602P 2002-04-09 2002-04-09
US60/371,206 2002-04-09
US60-371,206-09 2002-04-09

Publications (2)

Publication Number Publication Date
DE10316725A1 true DE10316725A1 (de) 2004-01-08
DE10316725B4 DE10316725B4 (de) 2008-05-08

Family

ID=23462965

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10316725A Expired - Lifetime DE10316725B4 (de) 2002-04-09 2003-04-09 Datenverwaltungsverfahren für ein Distributed Shared Memory-System

Country Status (5)

Country Link
US (1) US6931496B2 (de)
CN (1) CN1277226C (de)
DE (1) DE10316725B4 (de)
GB (1) GB2390710B (de)
TW (1) TW591526B (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565399B1 (en) * 2002-08-26 2009-07-21 Netapp, Inc. Caching web objects transformed by a pipeline of adaptation services
US20050010615A1 (en) * 2003-04-11 2005-01-13 Sun Microsystems, Inc. Multi-node computer system implementing memory-correctable speculative proxy transactions
WO2004092968A2 (en) * 2003-04-11 2004-10-28 Sun Microsystems, Inc. Multi-node system with global access states
US7620696B2 (en) * 2004-01-20 2009-11-17 Hewlett-Packard Development Company, L.P. System and method for conflict responses in a cache coherency protocol
US8145847B2 (en) * 2004-01-20 2012-03-27 Hewlett-Packard Development Company, L.P. Cache coherency protocol with ordering points
US20050160238A1 (en) * 2004-01-20 2005-07-21 Steely Simon C.Jr. System and method for conflict responses in a cache coherency protocol with ordering point migration
US8468308B2 (en) * 2004-01-20 2013-06-18 Hewlett-Packard Development Company, L.P. System and method for non-migratory requests in a cache coherency protocol
US7818391B2 (en) 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration
US8176259B2 (en) * 2004-01-20 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for resolving transactions in a cache coherency protocol
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US7769959B2 (en) 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
US7395375B2 (en) * 2004-11-08 2008-07-01 International Business Machines Corporation Prefetch miss indicator for cache coherence directory misses on external caches
CN100414515C (zh) * 2004-11-12 2008-08-27 中国科学院计算技术研究所 一种网络内存服务系统及其构建方法
CN100486178C (zh) * 2006-12-06 2009-05-06 中国科学院计算技术研究所 一种远程内存共享系统及其实现方法
CN100498740C (zh) * 2007-09-11 2009-06-10 腾讯科技(深圳)有限公司 一种数据缓存处理方法、系统及数据缓存装置
US8566533B1 (en) * 2009-09-30 2013-10-22 Netlogic Microsystems, Inc. System, method, and computer program product for conditionally sending a request for data to a node based on a determination
CN102265277B (zh) * 2011-06-01 2014-03-05 华为技术有限公司 数据存储系统的操作方法和装置
CN102436366B (zh) 2011-08-22 2014-07-16 华为技术有限公司 数据同步方法和装置
FR2989489B1 (fr) * 2012-04-16 2015-11-27 Commissariat Energie Atomique Systeme et procede de gestion d'une coherence de caches dans un reseau de processeurs munis de memoires caches.
US9372752B2 (en) * 2013-12-27 2016-06-21 Intel Corporation Assisted coherent shared memory
CN106462360B (zh) * 2014-12-23 2019-10-25 华为技术有限公司 一种资源调度方法以及相关装置
CN105743803B (zh) * 2016-01-21 2019-01-25 华为技术有限公司 一种共享缓存的数据处理装置
GB2547189A (en) * 2016-02-03 2017-08-16 Swarm64 As Cache and method
CN106647412B (zh) * 2017-01-17 2018-12-18 爱普(福建)科技有限公司 一种基于组态元件的分布式控制器之间的数据共享方法
CN109491587B (zh) 2017-09-11 2021-03-23 华为技术有限公司 数据访问的方法及装置
TWI824847B (zh) * 2022-11-24 2023-12-01 新唐科技股份有限公司 記憶體分享裝置、方法、可分享記憶體以及其使用之電子設備

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
JPH0625984B2 (ja) * 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
US5479630A (en) * 1991-04-03 1995-12-26 Silicon Graphics Inc. Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
US6279084B1 (en) * 1997-10-24 2001-08-21 Compaq Computer Corporation Shadow commands to optimize sequencing of requests in a switch-based multi-processor system
US6081806A (en) * 1998-01-15 2000-06-27 Inventec Corporation Computer database synchronization method
TW378303B (en) * 1998-02-17 2000-01-01 Ibm Cache coherency protocol with tagged state and historical information

Also Published As

Publication number Publication date
US6931496B2 (en) 2005-08-16
GB0308101D0 (en) 2003-05-14
TW200305103A (en) 2003-10-16
GB2390710A (en) 2004-01-14
DE10316725B4 (de) 2008-05-08
CN1277226C (zh) 2006-09-27
US20030191906A1 (en) 2003-10-09
CN1447257A (zh) 2003-10-08
TW591526B (en) 2004-06-11
GB2390710B (en) 2004-07-14

Similar Documents

Publication Publication Date Title
DE10316725B4 (de) Datenverwaltungsverfahren für ein Distributed Shared Memory-System
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE69900797T2 (de) Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen
DE68902193T2 (de) Datenspeicheranordnung.
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE69721891T2 (de) Deterministisches Kohärenzprotokoll für verteilten Multicache-Speicher
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69715203T2 (de) Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
DE69323790T2 (de) Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE69031967T2 (de) Informationsverarbeitungsanordnung
DE69524564T2 (de) Kohärenz- und synchronisationsmechanismus für ein-/ausgangkanalsteuereinheiten in einem datenverarbeitungssystem
DE69709483T2 (de) Ein Computersystem mit auf Anforderungstyp der CPU basierender Cache-Vorausladefähigkeit
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69721394T2 (de) Verfahren und Vorrichtung für einen Kohärenzumwandler mit begrenztem Speicher zur Verbindung von Rechnersystem-Kohärenzdomänen
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE68924313T2 (de) Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern.
DE102007052853B4 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter
DE69706934T2 (de) Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R071 Expiry of right