DE69628127T2 - Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen - Google Patents

Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen Download PDF

Info

Publication number
DE69628127T2
DE69628127T2 DE69628127T DE69628127T DE69628127T2 DE 69628127 T2 DE69628127 T2 DE 69628127T2 DE 69628127 T DE69628127 T DE 69628127T DE 69628127 T DE69628127 T DE 69628127T DE 69628127 T2 DE69628127 T2 DE 69628127T2
Authority
DE
Germany
Prior art keywords
bus
response
coherence
coherency
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69628127T
Other languages
English (en)
Other versions
DE69628127D1 (de
Inventor
Sanjay R. Austin Deshpande
John M. Cedar Park Kaiser
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69628127D1 publication Critical patent/DE69628127D1/de
Publication of DE69628127T2 publication Critical patent/DE69628127T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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

Description

  • Die Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere ein System und ein Verfahren zum Bereitstellen von Kohärenzinformationen in einem Multiprozessorsystem.
  • Bei einem Multiprozessorsystem mit einer Vielzahl von Buseinheiten, die über einen gemeinsam genutzten Bus mit einem Speichersystem verbunden sind, gibt eine Buseinheit eine Operation wie beispielsweise eine Leseoperation aus und fordert einen bestimmten Teil der in dem Speichersystem gespeicherten Daten an. In Systemen, die „überwachende" Buseinheiten verwenden, überwacht eine mit dem gemeinsam genutzten Bus verbundene Buseinheit die Operation, um festzustellen, ob sich die Operation auf Daten bezieht, die sich in dem Cachespeicher dieser Buseinheit befinden. Dies wird oft als „Kohärenzprüfung" bezeichnet. Durch eine solche Kohärenzprüfung wird sichergestellt, dass die neueste und gültige Version der angeforderten Daten zu der anfordernden Einheit gesendet werden, unabhängig davon, ob in dem Speichersystem oder einer der Buseinheiten gerade eine Kopie der neuesten Version vorliegt.
  • Wenn eine Buseinheit über den gemeinsam genutzten Bus eine Busanforderung sendet, können an die anfordernde Einheit mehrere Arten von Berichten zurückgesendet werden. Eine an die anfordernde Buseinheit zurückgesendete Information teilt die Kohärenz der angeforderten Daten mit, d. h., wer im Besitz einer gültigen Version der angeforderten Daten ist. Für die Kohärenzmitteilung kann ein bestimmtes Kohärenzfenster (das „Adressantwortfenster") verwendet werden, das in der entsprechenden US-Patentschrift 5 608 878 unter dem Titel DUAL LATENCY STATUS AND COHERENCY REPORTING FOR A MULTIPROCESSING SYSTEM beschrieben wird. Dieses auch als Kohärenzantwortfenster bezeichnete Fenster wird eine einstellbare Anzahl von Taktzyklen nach dem Adress- und Anforderungscode angezeigt, wodurch eine längere Latenzzeit ermöglicht wird, die wegen der Suche in den Cachespeicherverzeichnissen in jeder der anderen Buseinheiten benötigt wird.
  • Wenn die Kohärenzinformationen nicht sofort erhalten werden können, um sie innerhalb des Adressantwortfensters zurückzugeben, muss das Fenster für die Antwortzwecke erweitert werden. Dies ist beispielsweise in einem System mit einem ungleichmäßigen Speicherzugriff (non-uniform memory access, NUMA) oder in einem System mit einem geschalteten Speicherverzeichnis erforderlich, da in einem derartigen System die Kohärenzinformationen in dem überwachten lokalen Bus nicht immer zur Verfügung stehen und die Leseanforderung an einen anderes Bus- oder Speicherverzeichnissystem weitergeleitet werden muss. (Bei der NUMA-Architektur weist das Verarbeitungssystem nur einen lokalen Busspeicher auf. Bei der Speicherverzeichnisarchitektur weist das Verarbeitungssystem nur einen globalen Speicher auf, der zu keinem lokalen Bus gehört.) Ein Protokoll für eine bestimmte Erweiterung des Kohärenzantwortfensters wird in der entsprechenden US-Patentschrift 5 745 698 unter dem Titel SYSTEM AND METHOD FOR COMMUNICATING BETWEEN DEVICES beschrieben.
  • In der Patentanmeldung des Vereinigten Königreichs GB-A-2 287 161, der Intel Corporation zugewiesen, wird ein Verfahren beschrieben, welches das Senden einer Anforderung nach Daten- und Kohärenzinformationen, das Überwachen der Kohärenzinformationen während eines bestimmten Kohärenzantwortintervalls und das Empfangen der Kohärenzinformationen und eines Antwortindikators umfasst. Es werden jedoch Situationen nicht berücksichtigt, in denen auf dem Bus durch Mehrfachversuche übermäßiger Datenverkehr erzeugt wird, wenn die Kohärenzinformationen nicht während des Kohärenzantwortintervalls zurückgesendet werden können.
  • Gemäß der vorliegenden Erfindung werden ein Verfahren nach Anspruch 1 und ein System nach Anspruch 12 bereitgestellt.
  • Bei einem Beispiel der vorliegenden Erfindung wird eine Leistungsverbesserung beim Liefern von Kohärenzberichten bereitgestellt, wenn Daten von einem Bus gelesen werden, der für den anfordernden Prozessor nicht der lokale Bus ist, wie es bei NUMA-Systemen oder bei auf Speicherverzeichnissen basierenden Systemen üblicherweise der Fall ist.
  • Bei einem anderen Beispiel der vorliegenden Erfindung wird eine Verbesserung der Leistung solcher Leseoperationen bereitgestellt, ohne dem vorher definierten Protokoll Hardwaresignale hinzuzufügen.
  • Bei einer bevorzugten Ausführungsart der vorliegenden Erfindung wird als Antwort auf eine Leseanforderung nach Daten in einer nichtlokalen Quelle eine bestimmte Kohärenzantwort zurückgegeben, wenn die Leseanforderung angenommen wurde (d. h., wenn als Antwort auf die Leseoperation keine Antwort für einen Neuversuch (Retry) gesendet wurde), werden die angeforderten Daten von der nichtlokalen Quelle empfangen, und wenn die Daten an den Anfordernden geliefert wurden, zeigt ein bestimmtes Signal den Kohärenzstatus der Daten an.
  • Bei einer anderen Ausführungsart der vorliegenden Erfindung wird der Kohärenzstatus entweder als „gemeinsam genutzt" (shared) oder als „exklusiv" (exclusive) angezeigt.
  • Die vorliegende Erfindung gestattet vorteilhaft die Erweiterung eines Kohärenzantwortfensters, ohne dass eine anfordernde Einheit auf eine Wiederhol-Operation (ReRun) warten und erneut eine Leseoperation senden muss. Dadurch wird die Latenzzeit von Leseoperationen für nichtlokale Daten in NUMA-Systemen oder Speicherverzeichnissystemen deutlich verringert. Da Leseoperationen einen großen Teil aller Busoperationen ausmachen, kann dadurch die Systemleistung deutlich erhöht werden.
  • Oben wurden die Merkmale und technischen Vorteile der vorliegenden Erfindung ziemlich einfach dargestellt, damit die folgende detaillierte Beschreibung der Erfindung besser verstanden werden kann. Im Folgenden werden weitere Merkmale und Vorteile der Erfindung beschrieben, die den Gegenstand der Ansprüche der Erfindung bilden.
  • Im Folgenden werden bevorzugte Ausführungsarten der vorliegenden Erfindung lediglich als Beispiel unter Bezug auf die beiliegenden Zeichnungen beschrieben, in denen:
  • 1 ein Blockschaltbild ist, das mehrere gemeinsam genutzte lokale Busse zeigt;
  • 2 ein Blockschaltbild ist, das einen lokalen Bus in dem System zeigt;
  • 3 Operationen unter Verwendung eines Flusssteuerungsstatus-Antwortintervalls und eines Kohärenzinformations-Antwortintervalls allgemein veranschaulicht;
  • 4 eine Wiederhol-Operation (ReRun) veranschaulicht, die ein Mittel zur Erweiterung eines Kohärenzinformations-Antwortintervalls bereitstellt;
  • 5 eine RemStat-Operation veranschaulicht, die ein Mittel zur Erweiterung eines Kohärenzinformations-Antwortintervalls bereitstellt; und die 6a, 6b und 6c Flussdiagramme sind, die die Operationen unter Verwendung des erweiterten Kohärenzinformations-Antwortintervalls veranschaulichen.
  • Zur verständlicheren Darstellung werden bei der folgenden Erörterung herkömmliche Merkmale von Informationsverarbeitungssystemen, die dem Fachmann geläufig sind, weggelassen oder nur kurz beschrieben. Es wird davon ausgegangen, dass der Fachmann mit einem Mehrbenutzer- und Multiprozessor-Betriebssystem und insbesondere mit den Anforderungen eines solchen Betriebssystems an die Speicherverwaltung einschließlich des virtuellen Speichers, der Prozessor-Ablaufsteuerung, der Synchronisierungseinrichtungen für die Prozesse und die Prozessoren, des Nachrichtenaustauschs, der normalen Einheitentreiber, der Terminal- und Netzwerkunterstützung, der Systeminitialisierung, der Interruptverwaltung, der Systemaufrufeinrichtungen und der Verwaltungseinrichtungen vertraut ist.
  • Es wird ein Datenverarbeitungssystem gemäß 1 beschrieben, das vorteilhaft die vorliegende Erfindung realisiert. Das Multiprozessorsystem 100 enthält eine Anzahl lokaler Systembusse 108.1, 108.2 usw., wobei ein lokaler Systembus wie beispielsweise der Bus 108.1 eine Anzahl von Verarbeitungseinheiten 102.1, 104.1, 106.1 usw. und eine Prozessorknotensteuereinheit (oder „Busadapter") 130.1 aufweist, der mit diesem funktionell verbunden ist. (Sofern im Folgenden eine Anzahl gleicher durchnummerierter Elemente angegeben oder gezeigt werden, wie zum Beispiel die Systembusse 108.1, 108.2 usw., können diese Elemente gemeinsam oder einzeln ohne die Erweiterung genannt werden, wie beispielsweise „Systembusse 108) oder „Systembus 108".) Eine Prozessoreinheit 102, 104, 106 usw. kann einen Prozessor und einen Cachespeicher enthalten, kann im Folgenden aber einfach als „Prozessor" bezeichnet werden. Eine Knotensteuereinheit 130 enthält ein Verzeichnis für den Systemspeicher 110 auf dem lokalen Bus, wenn es einen lokalen Speicher gibt. Ein Systembus 108 ist über eine Knotensteuereinheit 130, der den Bus 108 mit den anderen Bussen 108 in der NUMA-Architektur und mit den Speicherelementen 150 mit deren gespeicherten Verzeichnissen in der Speicherverzeichnis-Architektur verbindet, funktionell mit einem Verbindungselement verbunden.
  • In 2 ist ein lokaler Systembus 108 gezeigt, der funktionell mit einer Anzahl von Verarbeitungseinheiten 102, 104, 106 usw. bis zur Verarbeitungseinheit n verbunden ist. Ebenso ist der Systemspeicher 110 mit dem Systembus 108 verbunden. Bei dieser anschaulichen Ausführungsart enthält der Systembus 108 unter Anderem einen 5-Bit-Übertragungsbus („TT") 221, einen 64-Bit-Adressbus 222, einen 128-Bit-Datenbus 224, einen 8-Bit-Datenkennungsbus („DTag") 226, einen 6-Bit-Adressantwortbus („AResp") 227 und einen 1-Bit-Cachespeicherdatenbus („DCache") 228. Die Systemelemente 102 bis 110 arbeiten unter der Steuerung der Knotensteuereinheit 130, die Daten mit den Elementen 102 bis 110 austauscht, die über (nicht gezeigte) Punkt-zu-Punkt-Leitungen mit dem Systembus 108 verbunden ist. Eine Knotensteuereinheit 130 ist bei 132 mit anderen Bussen und Einheiten (siehe 1) verbunden. Somit kann ein lokal mit dem Bus 108.1 verbundener Prozessor 102.1 in 1 über die Knotensteuereinheit 130.1 mit den Einheiten außerhalb des lokalen Busses 108.1 wie zum Beispiel mit dem Prozessor 102.2 an dessen lokalem Bus 108.2 oder mit dem Speicher 110.3 an dessen lokalem Bus 108.3 bzw. mit dem Speicher 150.1 an dem Verbindungselement 140 in Verbindung treten.
  • Sämtliche Anforderungen und Berechtigungen für den Zugriff auf den Bus 108 werden durch die Knotensteuereinheit 130 gesteuert. Eine der Buseinheiten wie zum Beispiel der Prozessor 102 kann über eine (nicht gezeigte) Punkt-zu-Punkt-Verbindung von der Knotensteuereinheit 130 anfordern, dass er auf dem Bus 108 eine Operation ausführen kann. Nachdem er von der Steuereinheit 130 eine Berechtigung für den Bus empfangen hat, ist der Prozessor 102 in der Lage, an den Bus 108 eine Adresse einschließlich einer Transaktionskennung zu senden, die den Prozessor 102 als anfordernde Einheit kennzeichnet.
  • Um eine möglichst große Anzahl an den Bus angeschlossener Einheiten und eine hohe Busfrequenz zu ermöglichen und den Anschluss trotzdem mittels CMOS-Logikbauelementen direkt an den Bus 108 zu ermöglichen, werden die verschiedenen Status- und Kohärenzantworten von den Buseinheiten von jedem Busteilnehmer in einer Richtung zu einem gemeinsamen Sammelpunkt wie etwa der Knotensteuereinheit 130 geleitet, die alle Antworten zusammenfasst und dann die zusammengefassten Antworten an jede anfordernde Buseinheit zurücksendet. Die Knotensteuereinheit 130 erfasst auch Kohärenzinformationen für den fernen Speicher 150 oder den Speicher 110, d. h. an den fern von dem Bus 108 der anfordernden Einheit 102 gelegenen Speicher 150 oder den Speicher 110. Die Zusammenfassungslogik der Knotensteuereinheit 130 legt für die Antworten auch Prioritäten fest, da die Buseinheiten unterschiedliche Antworten senden können. Diese festgelegten Prioritäten sind in den hier beschriebenen Tabellen angegeben.
  • In 3 kann die Adresse A durch den Prozessor 102 auf den Bus 108 freigegeben werden. Eine bestimmte Zeitspanne danach werden Statusinformationen, d. h. der Flusssteuerungsstatus und der Fehlerstatus, während des Flusssteuerungsstatus-Antwortfensters A (als „Status A" gezeigt) zum Prozessor 102 zurückgesendet. Der Prozessor 102 kann auch noch eine weitere feste, aber einstellbare Zeitspanne auf Kohärenzinformationen warten, die während des Adressantwortfensters A (als „Überwachung A" gezeigt) durch die Knotensteuereinheit 130 auf dem AResp-Bus 227 von den verschiedenen anderen Buseinheiten in dem System 100 zurückgesendet werden können. Diese Kohärenzinformationen, die als Ergebnis einer typischen Überwachungsoperation durch die anderen Buseinheiten erzeugt werden, zeigen dem Prozessor 102 an, wo sich die neueste Version der angeforderten Daten befindet. Wenn zum Beispiel der Prozessor 104 feststellt, dass er die angeforderten Daten in einer abgeänderten Form enthält, informiert er den Prozessor 102 darüber, dass er die neueste Version der angeforderten Daten besitzt und dass der Systemspeicher 110 nicht die neueste Version enthält. Durch das Erstellen des Adressantwortfensters eine einstellbare Anzahl von Taktzyklen nach dem Adress- und Anforderungscode wird es ermöglicht, während unterschiedlicher und längerer Zeiträume in den Cachespeicherverzeichnissen der verschiedenen Buseinheiten in dem System 110 zu suchen.
  • Tabelle A zeigt ein Beispiel von Kohärenznachrichten, die nach einer bevorzugten Ausführungsart codiert sind:
    Figure 00090001
  • Man beachte, dass die Tabelle eine Festlegung der Priorität der zurückgesendeten Kohärenznachrichten enthält. Diese Prioritätenfolge kann durch die Systemsteuereinheit 130 benutzt werden, die die zurückgesendeten Nachrichten zuerst empfängt, um zu ermitteln, welche der empfangenen Nachrichten von verschiedenen Buseinheiten an den Prozessor 102 gesendet werden sollen. Wenn zum Beispiel die Buseinheit 104 eine Nachricht „Geändert" mit einer Priorität 2 (siehe Tabelle A) und eine Buseinheit 106 eine Nachricht „Wiederholung" mit einer Priorität 3 zurücksendet, kann die Steuereinheit 130 so eingerichtet sein, dass sie die Nachricht „Geändert" als Kohärenzantwort sendet.
  • Drei der in Tabelle A gezeigten Antworten liefern eine rasche Kohärenzklärung während eines nicht erweiterten Adressantwortfensters. Die Antwort „Geändert" dient dazu, einer anfordernden Einheit, z. B. der Prozessoreinheit 102, anzuzeigen, dass es in einem Cachespeicher in einer der anderen, lokalen Prozessoreinheiten 104, 106 usw. eine geänderte Cachespeicherleitung gibt. Die Antwort „Gemeinsam genutzt" zeigt an, dass die Daten in einem oder mehreren lokalen Cachespeichern vorliegen, aber nicht geändert sind. Die Antwort „Null" zeigt an, dass sich die Daten weder in einem lokalen noch in einem fernen Cachespeicher, sondern in einem lokalen Speicher befinden.
  • Drei der in Tabelle A gezeigten Antworten erweitern das Adressantwortfenster. Die Antwort „Neuversuch" dient dazu anzuzeigen, dass eine Kohärenzüberschneidung vorliegt und dass die Operation durch die anfordernde Einheit später noch einmal gesendet werden soll. Die Antworten „Wiederholung" und „RemStat" werden verwendet, wenn der lokale Bus verlassen wird.
  • Die 4 und 5 zeigen verschiedene Signale, die während der Zeitintervalle T1, T2 usw. auf den zum Systembus 108 gehörenden Bussen gültig sind. In beiden 4 und 5 sind die Zeitintervalle nicht notwendigerweise gezeigt, um ihre Länge bzw. die Zeit zwischen den Intervallen darzustellen.
  • 4 veranschaulicht die Realisierung eines erweiterten Adressantwortfensters, das durch eine Antwort „Wiederholung" erstellt wurde. Zum Zeitpunkt T1 sendet ein Prozessor, z. B. der Prozessor 102, eine Leseoperation, die eine Kohärenzinformation anfordert, wobei der Prozessor 102 auf dem TT-Bus 221 ein Lesesignal und auf dem Adressbus 222 eine Adresse und eine Kennung ausgibt. Während des Adressantwortfensters (Zeitintervall T2), welches eine bestimmte eingestellte Zeitspanne nach der Leseanforderung folgt, gibt die Steuereinheit 130 auf dem AResp-Bus 227 ein Signal „Wiederholung" aus. Die Antwort „Wiederholung" zeigt an, dass die Knotensteuereinheit 130 später eine Anforderung „Wiederholung" auslösen wird, wodurch sie die anfordernde Einheit 102 deutlich davon entlastet, vorläufig weitere Maßnahmen zur Gewinnung von Kohärenzinformationen einzuleiten. Sobald die Kohärenzinformationen von der nichtlokalen Quelle eingetroffen sind, richtet die Steuereinheit 130 zum Zeitpunkt T3 eine Anforderung „Wiederholung" an die anfordernde Einheit 102, indem sie auf dem DTag-Bus 226 die ursprünglich durch die anfordernde Einheit 102 erzeugte Transaktionskennung und auf dem TT-Bus 221 die Anforderung „Wiederholung" ausgibt. Als Antwort darauf sendet der Prozessor 102 zum Zeitpunkt T4 die Leseoperation zurück und gibt zu demselben Zeitpunkt auf dem Adressbus 222 auch ein bestimmtes Bit (das „R-Bit") aus, und die Steuereinheit 130 gibt während des eingestellten Adressantwortfensters (Zeitintervall T5) auf dem AResp-Bus 227 die Kohärenzinformation aus. Wenn die angeforderten Daten eingetroffen sind, werden während eines Leseintervalls (Zeitintervall T6) auf dem DTag-Bus 226 die Transaktionskennung und auf dem Datenbus 224 die Daten ausgegeben.
  • 5 veranschaulicht die Realisierung eines erweiterten Adressantwortfensters, das durch das Aussenden einer Antwort RemStat eingerichtet wird. Zum Zeitpunkt T1 sendet ein Prozessor, z. B. der Prozessor 102, eine Leseoperation, die Kohärenzinformationen erfordert, wobei der Prozessor 102 auf dem TT-Bus 221 ein Lesesignal und auf dem Adressbus 222 eine Adresse und eine Kennung ausgibt. Während des Adressantwortfensters (Zeitintervall T2), das auf einen bestimmten Zeitpunkt nach der Leseanforderung eingestellt ist, gibt die Knotensteuereinheit 130 auf dem AResp-Bus 227 ein Signal „RemStat" aus. Die Antwort „RemStat" zeigt an, dass die Systemsteuereinheit 130 die angeforderten Daten später zusammen mit den Kohärenzinformationen für die Daten an den anfordernden Prozessor 102 zurücksenden wird, wodurch sie die anfordernde Einheit 102 deutlich davon entlastet, weitere Maßnahmen zur Gewinnung von Kohärenzinformationen einzuleiten, sowie die Latenzzeit deutlich verkürzt.
  • Wie in der der vorliegenden Erfindung vorangehenden verwandten US-Patentschrift 5 659 708 unter dem Titel SYSTEM AND METHOD FOR DETERMINING SOURCE OF DATA IN A SYSTEM WITH INTERVENING CACHES beschrieben, ist der DCache-Bus für DCache-Signale verwendet worden, um anzuzeigen, dass eine Datenübertragung nicht vom Systemspeicher, sondern von einem eingreifenden Cachespeicher erfolgt und unter diesen Bedingungen durch den Cachespeicher gesteuert wird. Da das Signal DCache bei einem solchen Cachespeichereingriff während nichtlokaler Busleseoperationen nicht ausgegeben wird, steht es zur Übertragung der Kohärenzinformationen gemäß der vorliegenden Erfindung zur Verfügung.
  • wenn in einem Prozessor 102 eine Anforderung anhängig ist, wie beispielsweise diese Anforderung zum Lesen bestimmter Daten, sucht der Prozessor 102 während jedes Taktzyklus den DTag-Bus ab. Sobald die Knotensteuereinheit 130 die angeforderten Daten und die Kohärenzinformationen für die Daten erhalten hat, gibt die Knotensteuereinheit 130 auf dem DTag-Bus 226 Transaktionskennungssignale, die die anfordernde Einheit kennzeichnen, auf dem Datenbus 224 Datensignale und auf dem DCache-Bus 228 Signale der Kohärenzinformationen aus. Bei der bevorzugten Ausführungsart werden die Kennung, die Daten und die Kohärenzinformationen während desselben Taktzyklus (als Zeitintervall T3 gezeigt) gemeinsam ausgegeben. Während des Zyklus, in dem die Transaktionskennung ausgesandt wird (d. h.
  • im Zeitintervall T3), und als Antwort auf das Erkennen der Kennung auf dem DTag-Bus, liest der Prozessor 102 sowohl die Datensignale auf dem Datenbus 224 als auch die Kohärenzsignale auf dem DCache-Bus 228, ohne zusätzliche Latenzzeit in Anspruch zu nehmen, die mit dem Warten auf die Wiederholungs-Operation von der Knotensteuereinheit 130 und dem Auslösen einer weiteren Anforderung und dem Warten auf ein Adressantwortfenster zum Lesen der angeforderten Informationen verbunden ist.
  • In den 6a und 6b sind Flussdiagramme von Operationen gezeigt, die durch das Informationsverarbeitungssystem 100 ausgeführt werden. Insbesondere zeigen die Flussdiagramme der 6a und 6b Operationen, die durch eine Buseinheit wie die Prozessor-Knotensteuereinheiten 130 der bevorzugten Ausführungsart ausgeführt werden. Die in den 6a und 6b gezeigten Operationen brauchen nicht unbedingt in der angezeigten Reihenfolge ausgeführt zu werden. In 6a beginnt die Ausführung in Block 400 und geht weiter zu Block 402, wo die Steuereinheit 130 diejenigen Busoperationen untersucht, die vom lokalen Bus 108 nach außen gerichtet werden. Zum Beispiel ist der Bus 108.1 für den Prozessor 102.1 der lokale Bus, sodass eine auf den Speicher 110.2 auf dem Bus 108.2 oder auf den Speicher 150 zugreifende Leseoperation durch den Prozessor 102.1 eine Busoperation wäre, die vom lokalen Bus 108.1 nach außen gerichtet ist.
  • Die Ausführung geht dann für solche Busoperationen weiter zum Entscheidungsblock 404, wo die Steuereinheit 130 zu Block 406 verzweigt, falls keine Kohärenzantwort erforderlich ist (wobei die Prüfung für die Zwecke der vorliegenden Erfindung wie durch Block 408 angezeigt abgeschlossen ist), oder zu Block 410, falls eine Kohärenzantwort erforderlich ist.
  • Gemäß der Entscheidung in Block 410 verzweigt die Steuereinheitenlogik 130 für Leseoperationen nach Block 412 oder für andere Operationen nach Block 418. Für Leseoperationen sendet die Steuereinheit 130 während des normalen Adressantwortfensters (Block 412) eine Antwort „RemStat" an den Anfordernden zurück. Für Nicht-Leseanforderungen sendet die Steuereinheit 130 während des normalen Adressantwortfensters (Block 414) eine Antwort „wiederholung" zurück. Dann speichert die Steuereinheit 130 die durch den Anfordernden für die Operation erzeugte Kennung (Block 416), schließt die Prüfung (Block 418) bei diesem Bearbeitungsstand der Operation ab und leitet die Operation an einen nichtlokalen Bus oder an den Speicher weiter.
  • Wenn die Steuereinheit 130 wie in 6b gezeigt einen Hinweis empfängt, dass eine ferne Operation beendet wurde (Block 430), ermittelt die Steuereinheitenlogik 130 anschließend, ob die Operation eine Leseoperation (Block 432) war und verzweigt entsprechend. Wenn die Operation eine Leseoperation war (Block 434), sendet die Steuereinheit 130 die Daten mit der ursprünglichen Kennung zurück. Während die Steuereinheit die Daten- und die DTag-Signale ausgibt, gibt sie auch ein Signal auf dem DCache-Bus aus, wenn der Kohärenzstatus der Daten „Gemeinsam genutzt" ist. Um einen Kohärenzstatus „Null" anzuzeigen, wird kein Signal auf dem DCache-Bus ausgegeben. Bei dieser Ausführungsart wird damit die Antwort (Block 436) durch die Steuereinheit zum Zurücksenden der fernen Leseoperation abgeschlossen. Für das Zurücksenden einer fernen Operation, die keine Leseoperation war, sendet die Steuereinheit 130 eine Anforderung „Wiederholung" und gibt die DTag-Signale (Block 438) aus. Wenn der Anfordernde die Nicht-Leseoperation erneut sendet und gleichzeitig auf dem Adressbus das R-Bit ausgibt, um anzuzeigen, dass es sich um eine wiederholte Rücksendeoperation handelt, sendet die Steuereinheit 130 die Kohärenzantwort (Block 440) während des normalen Adressantwortfensters zurück. Wenn es sich bei der Operation um eine Leseoperation mit Änderungsabsicht (Block 442) handelte, gibt die Steuereinheit 130 auf dem Datenbus 224 Datensignale für die Daten und auf dem DTag-Bus 226 die Kennung aus, wodurch die Operation aus Sicht der vorliegenden Erfindung abgeschlossen ist.
  • In 6c ist ein Flussdiagramm von weiteren durch das Datenverarbeitungssystem 100 ausgeführten Operationen gezeigt. Insbesondere zeigt das Flussdiagramm von 6c durch eine Hauptbuseinheit (Master), wie beispielsweise einen Prozessor 102 der bevorzugten Ausführungsart, ausgeführte Operationen. Die in 6c gezeigten Operationen brauchen nicht unbedingt in der angegebenen Reihenfolge ausgeführt zu werden.
  • Der Master 102 sendet in Block 460 eine Leseoperation und empfängt eine Kohärenzantwort. Dann ermittelt der Master 102 die Art der empfangenen Antwort. Wenn die Antwort zeigt, dass die angeforderten Daten einen Status „Gemeinsam genutzt" (Block 462) aufweisen, bedeutet dies, dass sich die Daten im Speicher 110 auf dem lokalen Bus 108 sowie in dem Cachespeicher eines anderen Prozessors 104, 106 usw. auf dem Bus 108 befinden, aber in dem Cachespeicher nicht verändert worden sind. Demzufolge wartet der Master 102 auf die für ihn gekennzeichneten Daten und kennzeichnet im Cachespeicher (Block 464) die Daten als „Gemeinsam genutzt". In diesem Fall endet damit im Rahmen der vorliegenden Erörterung die Bearbeitung des Masters (Block 466).
  • Wenn die Antwort den Status „Geändert" (Block 468) anzeigt, bedeutet dies, dass sich die Daten in dem Speicher 110 auf dem lokalen Bus 108 sowie im Cachespeicher eines anderen Prozessors 104, 106 usw. auf dem Bus 108 befinden und im Cachespeicher geändert worden sind. Demzufolge wartet der Master 102 auf die gekennzeichneten Daten (Block 470). In diesem Fall kommt eine Antwort auf die Leseanforderung sowohl von einem Cachespeicher als auch von einem anderen Speicher 110; welche Daten zuerst eintreffen, hängt davon ab, ob der Speicher 110 oder der Cachespeicher schneller ist. Um sicherzustellen, dass die richtigen Daten verwendet werden, wartet der Master 102 deshalb auf die Cachespeicherversion der gekennzeichneten Daten, die zusammen mit dem ausgegebenen DCache-Signal zurückgesendet werden. Dann kennzeichnet der Master 102 die Daten im Cachespeicher als „Gemeinsam genutzt" (Block 470) und hat damit seine Arbeit im Rahmen der vorliegenden Erörterung erledigt.
  • wenn durch die Antwort der Status „Null" angezeigt wird (Block 472), bedeutet dies, dass sich die Daten nur im Speicher 110 auf dem lokalen Bus 108 befinden. Demzufolge wartet der Master 102 auf die gekennzeichneten Daten und kennzeichnet die Daten im Cachespeicher als „Exklusiv" (Block 474) und hat damit seine Arbeit im Rahmen der vorliegenden Erörterung erledigt.
  • Wenn durch die Antwort der Status „Remstat" angezeigt wird (Block 476), bedeutet dies, dass sich die Daten weder im Speicher 110 noch in einem Cachespeicher auf dem lokalen Bus 108 befinden. In diesem Fall empfängt der Anfordernde 102 nur von der Prozessor-Knotensteuereinheit 130 eine Antwort, und der Wettlauf zwischen dem lokalen Speicher 110 und einem lokalen Cachespeicher entfällt. Daher entfällt auch die Notwendigkeit, einen Kohärenzstatus „Geändert" zurückzusenden, sodass als notwendige Kohärenzantworten nur die Status „Exklusiv" oder „Gemeinsam genutzt" übrig bleiben und somit die Kohärenzantwort als ein digitales Logiksignal auf einer einzigen Leitung ausgegeben werden kann. Demzufolge wartet der Master 102 auf die gekennzeichneten Daten, und wenn die gekennzeichneten Daten zusammen mit dem ausgegebenen DCache- Signal zurückgesendet werden, kennzeichnet der Master 102 die Daten im Cachespeicher als „Gemeinsam genutzt"; ansonsten kennzeichnet der Master die Daten als „Exklusiv" (Block 478) und hat damit seine Arbeit in diesem Rahmen erledigt.
  • Wenn der Master 102 feststellt, dass die Antwort keinen Status „RemStat" anzeigt, ermittelt er, ob der Status „Wiederholung" lautet (Block 480). Wenn dies zutrifft, setzt der Master 102 das R-Bit und die Kennung und sendet die Leseoperation erneut (Block 482), ansonsten sendet der Master 102 die Leseoperation erneut, ohne das R-Bit zu setzen (Block 484).
  • Obwohl die vorliegende Erfindung und deren Vorteile ausführlich beschrieben wurden, ist klar, das daran verschiedene Veränderungen, Austauschmaßnahmen und Abwandlungen vorgenommen werden können, ohne von dem in den beiliegenden Ansprüchen Geltungsbereich der Erfindung abzuweichen.

Claims (20)

  1. Verfahren zur Datenverarbeitung in einem Datenverarbeitungssystem mit einer Vielzahl von Buseinheiten (102, 104, 106, ... N), die über eine Gruppe von Bussen (108) mit mindestens einer Speichereinheit (150) verbunden sind, wobei das Verfahren den Schritt der Ausgabe einer Anforderung (460) von Daten und Kohärenzinformationen auf einem Bus (1080 durch eine erste Einheit (den „Anfordernden") und den Schritt der Überwachung der angeforderten Kohärenzinformationen während eines bestimmten Zeitraums für die Kohärenzantwort enthält und durch die folgenden Schritte gekennzeichnet ist. Senden eines ersten Signals (414, 412) durch eine zweite Einheit (130) während des bestimmten Zeitraums für die Kohärenzantwort, um anzuzeigen, dass die Kohärenzinformationen während eines zweiten Zeitraums zurückgesendet werden; und Senden eines zweiten Signals (440), um dem Anfordernden die Kohärenzinformationen während des zweiten Zeitraums bereitzustellen.
  2. Verfahren nach Anspruch 1, bei dem für das Senden des zweiten Signals auf dem Bus weniger Leitungen benutzt werden als für das Senden des ersten Signals.
  3. Verfahren nach Anspruch 2, bei dem der zweite Zeitraum durch Bestätigen einer Kennung und der angeforderten Daten zumindest teilweise gekennzeichnet ist.
  4. Verfahren nach Anspruch 3, bei dem das zweite Signal ausschließlich auf einer einzigen Leitung gesendet wird.
  5. Verfahren nach Anspruch 4, bei dem das erste Signal auf einem ersten Bus und das zweite Signal auf einem zweiten Bus übertragen wird.
  6. Verfahren nach Anspruch 1, bei dem durch die zweite Einheit zumindest eine mögliche Kohärenzantwort beseitigt wird.
  7. Verfahren nach Anspruch 6, bei dem eine geänderte Kohärenzantwort beseitigt wird.
  8. Verfahren nach Anspruch 6, bei dem eine wiederholt angeforderte Kohärenzantwort beseitigt wird.
  9. Verfahren nach Anspruch 6, bei dem eine erneut angeforderte Kohärenzantwort beseitigt wird.
  10. Verfahren nach Anspruch 1, welches das Verringern der möglichen Kohärenzantworten auf zwei verbleibende Kohärenzantworten durch die zweite Einheit umfasst, und bei dem das Senden des zweiten Signals ferner das Senden einer der beiden verbleibenden Kohärenzantworten umfasst.
  11. Verfahren nach Anspruch 1, welches ferner durch die folgenden Schritte gekennzeichnet ist: Ausgeben einer Busoperation durch eine mit einer Gruppe von Bussen (den „Bus des Anforderers") verbundenen ersten Einheit (den „Anforderer") an mindestens eine Einheit (eine „ferne Einheit"), die nicht direkt mit dem Bus des Anforderers verbunden ist, wobei die Busoperation eine durch den Anforderer erzeugte Kennung enthält; Prüfen der Busoperationen durch eine zweite Einheit durch Ausgeben einer ersten Kohärenzantwort auf einem bestimmten der Busse des Anforderers während eines bestimmten Zeitraums für die Kohärenzantwort durch die Antworteinheit als Reaktion auf eine Leseanforderung, welche sich auf Daten bezieht, die sich in einer fernen Einheit befinden; Senden der Leseanforderung an die ferne Einheit; Empfangen der angeforderten Daten von der fernen Einheit; Bestätigen der Kennung, der angeforderten Daten und einer zweiten Kohärenzantwort auf einen bestimmten der Busse des Anforderers; und Lesen der angeforderten Daten und der Kohärenzinformationen durch den Anfordernden während eines bestimmten Zeitraums (des „Leseintervalls").
  12. Datenverarbeitungssystem mit einer Vielzahl von Buseinheiten (102, 104, 106, ... N), die über eine Gruppe von Bussen (108) mit mindestens einer Speichereinheit (150) verbunden sind, mit einem Mittel zum Ausgeben einer Anforderung (460) von Daten und von Kohärenzinformationen durch eine erste Einheit (den „Anfordernden") auf einem Bus; und mit einem Mittel zum Überwachen durch den Anfordernden der Kohärenzinformationen während eines bestimmten Zeitraums für die Kohärenzantwort; dadurch gekennzeichnet, dass es Folgendes umfasst: ein Mittel zum Senden einer ersten Kohärenzantwort (414, 412) durch eine zweite Einheit während des bestimmten Zeitraums für die Kohärenzantwort, um anzuzeigen, dass die Kohärenzinformationen während eines zweiten Zeitraums zurückgegeben werden; und ein Mittel zum Senden einer zweiten Kohärenzantwort (440), um dem Anfragenden während des zweiten Zeitraums die Kohärenzinformation bereitzustellen.
  13. System nach Anspruch 12, bei dem die erste Kohärenzantwort über bestimmte Leitungen eines Busses und die zweite Kohärenzantwort über weniger Leitungen eines Busses übertragen wird als die erste Kohärenzantwort.
  14. System nach Anspruch 13, bei dem der zweite Zeitraum durch Bestätigen der angeforderten Daten und einer mit der Anforderung verbundenen Kennung zumindest teilweise gekennzeichnet ist.
  15. System nach Anspruch 14, bei dem die zweite Kohärenzantwort ausschließlich auf einer einzigen Leitung übertragen wird.
  16. System nach Anspruch 12, welches ein Mittel zum Verringern der möglichen Kohärenzantworten um mindestens eine mögliche Antwort auf die zweite Kohärenzantwort umfasst.
  17. System nach Anspruch 18, bei dem durch das Mittel zum Verringern der Antworten eine geänderte Kohärenzantwort beseitigt wird.
  18. System nach Anspruch 16, bei dem durch das Mittel zum Verringern der Antworten eine wiederholt angeforderte Kohärenzantwort beseitigt wird.
  19. System nach Anspruch 16, bei dem durch das Mittel zum Verringern der Antworten eine erneut angeforderte Kohärenzantwort beseitigt wird.
  20. System nach Anspruch 12, welches ein Mittel zum Verringern der möglichen Kohärenzantworten durch die zweite Einheit auf zwei verbleibende Kohärenzantworten umfasst, und bei dem das Mittel zum Senden der zweiten Kohärenzantwort eine der verbleibenden Kohärenzantworten sendet.
DE69628127T 1995-12-15 1996-11-22 Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen Expired - Fee Related DE69628127T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/573,092 US5673413A (en) 1995-12-15 1995-12-15 Method and apparatus for coherency reporting in a multiprocessing system
US573092 1995-12-15

Publications (2)

Publication Number Publication Date
DE69628127D1 DE69628127D1 (de) 2003-06-18
DE69628127T2 true DE69628127T2 (de) 2004-04-08

Family

ID=24290613

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69628127T Expired - Fee Related DE69628127T2 (de) 1995-12-15 1996-11-22 Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen

Country Status (7)

Country Link
US (1) US5673413A (de)
EP (1) EP0779583B1 (de)
JP (2) JP3529566B2 (de)
KR (1) KR100241644B1 (de)
CN (1) CN1099644C (de)
DE (1) DE69628127T2 (de)
TW (1) TW401542B (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860120A (en) * 1996-12-09 1999-01-12 Intel Corporation Directory-based coherency system using two bits to maintain coherency on a dual ported memory system
US6055608A (en) * 1997-04-14 2000-04-25 International Business Machines Corporation Method and system for speculatively sourcing cache memory data within a multiprocessor data-processing system
US5996049A (en) * 1997-04-14 1999-11-30 International Business Machines Corporation Cache-coherency protocol with recently read state for data and instructions
US6026448A (en) * 1997-08-27 2000-02-15 International Business Machines Corporation Method and means for exchanging messages, responses and data between different computer systems that require a plurality of communication paths between them
US6067611A (en) * 1998-06-30 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency
DE19981441D2 (de) * 1998-07-30 2001-07-12 Siemens Ag Bus-Steuereinheit zur Unterstützung einer Programmablauf-Überwachung in Sternstrukturen, dazugehöriges Programmablauf-Überwachungssystem sowie Verfahren zur Programmablauf-Überwachung
US6085293A (en) * 1998-08-17 2000-07-04 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US6546429B1 (en) * 1998-09-21 2003-04-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that holds and reissues requests at a target processing node in response to a retry
US6145032A (en) * 1998-09-21 2000-11-07 International Business Machines Corporation System for recirculation of communication transactions in data processing in the event of communication stall
US6081874A (en) * 1998-09-29 2000-06-27 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6067603A (en) * 1998-10-01 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6108764A (en) * 1998-12-17 2000-08-22 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system with multiple caches concurrently holding data in a recent state from which data can be sourced by shared intervention
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6275905B1 (en) * 1998-12-21 2001-08-14 Advanced Micro Devices, Inc. Messaging scheme to maintain cache coherency and conserve system memory bandwidth during a memory read operation in a multiprocessing computer system
US6490661B1 (en) 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6631401B1 (en) 1998-12-21 2003-10-07 Advanced Micro Devices, Inc. Flexible probe/probe response routing for maintaining coherency
US6115804A (en) * 1999-02-10 2000-09-05 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US6269428B1 (en) * 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US6467012B1 (en) * 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6442597B1 (en) * 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6480973B1 (en) * 1999-09-30 2002-11-12 Bull Information Systems Inc. Gate close failure notification for fair gating in a nonuniform memory architecture data processing system
US6654837B1 (en) * 1999-12-28 2003-11-25 Intel Corporation Dynamic priority external transaction system
US6757793B1 (en) 2000-03-29 2004-06-29 Advanced Micro Devices, Inc. Reducing probe traffic in multiprocessor systems using a victim record table
FR2832859B1 (fr) * 2001-11-28 2004-01-09 Commissariat Energie Atomique Generateur electrochimique au lithium comprenant au moins une electrode bipolaire avec substrats conducteurs en aluminium ou alliage d'aluminium
US8055492B2 (en) * 2002-01-10 2011-11-08 International Business Machines Corporation Non-unique results in design verification by test programs
US6988173B2 (en) * 2003-05-12 2006-01-17 International Business Machines Corporation Bus protocol for a switchless distributed shared memory computer system
US7085898B2 (en) 2003-05-12 2006-08-01 International Business Machines Corporation Coherency management for a “switchless” distributed shared memory computer system
JP2005057738A (ja) * 2003-07-18 2005-03-03 Canon Inc 信号処理装置、信号処理方法及びプログラム
JP4507563B2 (ja) * 2003-11-10 2010-07-21 株式会社日立製作所 マルチプロセッサシステム
US20070233932A1 (en) * 2005-09-30 2007-10-04 Collier Josh D Dynamic presence vector scaling in a coherency directory
WO2007096978A1 (ja) 2006-02-24 2007-08-30 Fujitsu Limited スヌープ制御方法および情報処理装置
JP4609521B2 (ja) 2008-04-21 2011-01-12 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN103795770B (zh) * 2012-10-26 2017-07-04 伊姆西公司 在网络基础设施中提供高速缓存服务的方法和装置
CN103631534B (zh) * 2013-11-12 2017-01-11 北京兆芯电子科技有限公司 数据存储系统以及其管理方法
US10747298B2 (en) 2017-11-29 2020-08-18 Advanced Micro Devices, Inc. Dynamic interrupt rate control in computing system
US10503648B2 (en) 2017-12-12 2019-12-10 Advanced Micro Devices, Inc. Cache to cache data transfer acceleration techniques
US11210246B2 (en) 2018-08-24 2021-12-28 Advanced Micro Devices, Inc. Probe interrupt delivery

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
EP0748481B1 (de) * 1994-03-01 2003-10-15 Intel Corporation Busarchitektur in hochgradiger pipeline-ausführung
US5682516A (en) * 1994-03-01 1997-10-28 Intel Corporation Computer system that maintains system wide cache coherency during deferred communication transactions
US5557769A (en) * 1994-06-17 1996-09-17 Advanced Micro Devices Mechanism and protocol for maintaining cache coherency within an integrated processor
US5548797A (en) * 1994-10-03 1996-08-20 International Business Machines Corporation Digital clock pulse positioning circuit for delaying a signal input by a fist time duration and a second time duration to provide a positioned clock signal

Also Published As

Publication number Publication date
JP2004005657A (ja) 2004-01-08
JPH09204405A (ja) 1997-08-05
KR970049647A (ko) 1997-07-29
EP0779583B1 (de) 2003-05-14
TW401542B (en) 2000-08-11
US5673413A (en) 1997-09-30
EP0779583A2 (de) 1997-06-18
EP0779583A3 (de) 1999-03-24
KR100241644B1 (ko) 2000-02-01
DE69628127D1 (de) 2003-06-18
JP3832833B2 (ja) 2006-10-11
JP3529566B2 (ja) 2004-05-24
CN1099644C (zh) 2003-01-22
CN1157440A (zh) 1997-08-20

Similar Documents

Publication Publication Date Title
DE69628127T2 (de) Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE4223600C2 (de) Mehrprozessor-Computersystem und Verfahren zum Übertragen von Steuerinformationen und Dateninformation zwischen wenigstens zwei Prozessoreinheiten eines Computersystems
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE69732938T2 (de) Hybrides Speicherzugangsprotokoll in einem Datenverarbeitungssystem mit verteiltem, gemeinsamem Speicher
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE69628493T2 (de) Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
DE69725687T2 (de) Transaktionsübertragung zwischen Datenbussen in einem Rechnersystem
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE3238532C3 (de) Datenübertragungseinrichtung
DE60212142T2 (de) Verfahren und vorrichtung zur übertragung von paketen in einem symmetrischen mehrprozessorsystem
DE10296791T5 (de) Auswahl einer Ressource in einem verteilten Rechnersystem
DE112011104329T5 (de) Mehrkernsystem und Verfahren zum Lesen der Kerndaten
DE112014001621T5 (de) Bus-Master, Bussystem und Bussteuerungsverfahren
DE10393919T5 (de) Spekulative verteilte Konfliktauflösung für ein Cache-Kohärenzprotokoll
DE69822866T2 (de) System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem
DE60311302T2 (de) Verfahren und vorrichtung zur verriegelung von mehreren clustern
DE69724879T2 (de) Verfahren und Vorrichtung für einen Kohärenzumwandler zur Verbindung von Rechnersystemkohärenzdomänen
DE19882975B4 (de) Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus
DE69721641T2 (de) Verfahren und Vorrichtung für ein verzeichnisloses Speicherzugriffsprotokoll in einem Rechnersystem mit verteiltem gemeinsamen Speicher
DE60036923T2 (de) Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung
DE10045916A1 (de) Methode und System zum Implementieren eines Remstat-Protokolls und Einbeziehung und Nicht-Einbeziehung von L1-Daten im L2-Cache zur Verhinderung einer gegenseitigen Lesesperre
DE60009817T2 (de) Gemeinsamen Speicher verteilende Multiprozessorvorrichtung
DE102021108294B4 (de) System und verfahren für skalierbare hardware-kohärente speicherknoten
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee