DE69616226T2 - Ungültigkeitserklärungsbusoptimierung für Multiprozessoren mit verzeichnisbasierten Kohärenzprotokollen - Google Patents
Ungültigkeitserklärungsbusoptimierung für Multiprozessoren mit verzeichnisbasierten KohärenzprotokollenInfo
- Publication number
- DE69616226T2 DE69616226T2 DE69616226T DE69616226T DE69616226T2 DE 69616226 T2 DE69616226 T2 DE 69616226T2 DE 69616226 T DE69616226 T DE 69616226T DE 69616226 T DE69616226 T DE 69616226T DE 69616226 T2 DE69616226 T2 DE 69616226T2
- Authority
- DE
- Germany
- Prior art keywords
- invalidation
- cache
- global directory
- directory
- bus
- 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
Links
- 238000005457 optimization Methods 0.000 title description 4
- 230000015654 memory Effects 0.000 claims description 49
- 238000012986 modification Methods 0.000 claims description 20
- 230000004048 modification Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 102000020897 Formins Human genes 0.000 description 2
- 108091022623 Formins Proteins 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000001824 photoionisation detection Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0826—Limited pointers directories; State-only directories without pointers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die vorliegende Erfindung bezieht sich im Allgemeinen auf Mehrprozessorsysteme, bei denen eine Vielzahl von Prozessoren mit jeweils einem privaten Cachespeicher unter Verwendung eines Mehrstufen-Kommunikationsnetzwerks mit einem gemeinsam genutzten Speicher verbunden sind, und im Besonderen auf die Verbesserung der Systemleistung anhand einer Ungültigkeitserklärungsbusoptimierung für Mehrprozessorsysteme unter Verwendung von verzeichnisbasierten Cachespeicher- Kohärenzprotokollen.
- Die Einführung von Parallelverarbeitungssystemen eröffnete die Möglichkeit einer höheren Leistung gegenüber herkömmlichen Einprozessorsystemen. Die Bandbreite des Hauptspeichers konnte jedoch bei derartigen Systemen nicht mit den Anforderungen durch die immer schnelleren Prozessoren Schritt halten. Ein Verfahren für die Schließung der Zugriffslücke, die sich aus diesem Problem ergibt, besteht darin, dem Prozessor einen kleinen Hochgeschwindigkeitspufferspeicher beizufügen, der als Cachespeicher bezeichnet wird. Dieser Cachespeicher ist in der Regel um eine ganze Größenordnung schneller als der Hauptspeicher und kommt im Allgemeinen der Geschwindigkeit des Prozessors gleich.
- Mehrprozessorsysteme mit gemeinsam genutztem Speicher bestehen üblicherweise aus einer Anzahl von Prozessoren mit zugehörigen privaten Cachespeichern, einem globalen Speicher und einem Verbindungsnetzwerk zwischen den Prozessoren und einem Teil oder auch dem gesamten globalen Speicher. Der globale Speicher bildet den Hauptspeicher, der von den Prozessoren gemeinsam genutzt wird und häufig als eine Vielzahl von Speichermodulen ausgeführt ist. Die Einführung von mehreren Cachespeichern mit möglicherweise mehreren Kopien von Speicherzeilen in Systemen mit gemeinsam genutztem Speicher kann zu Dateninkonsistenzen führen. Generell gibt es zum gegenwärtigen Zeitpunkt zwei Verfahren für die Lösung dieses Problems: die hardwaregestützte und die softwaregestützte Cachespeicherkohärenz. Die vorliegende Erfindung bezieht sich auf ein in Hardware ausgeführtes Cachespeicher-Kohärenzprotokoll.
- Hardwareprotokolle können in zwei Typen untergliedert werden: Busbasierte (bzw. "mithörende") sowie verzeichnisbasierte Protokolle. Busbasierte Protokolle kommen in der Regel bei Systemen mit einer verhältnismäßig geringen Anzahl von Prozessoren zum Einsatz, während verzeichnisbasierte Protokolle bei größeren Systemen mit einer höheren Skalierbarkeit verwendet werden. Bei verzeichnisbasierten Protokollen wird dem Hauptspeicher zumeist ein globales Verzeichnis zugewiesen, das im Wesentlichen Daten enthält, die den globalen Zustand einer Cachespeicherzeile sowie die Anzahl und/oder die Speicherstelle der Cachespeicher angeben, die über eine Kopie der Zeile verfügen.
- Bei herkömmlichen verzeichnisbasierten Cachespeicher- Kohärenzprotokollen gibt es keinen globalen Mechanismus, der allen Prozessoren gleichzeitig die Übersicht über die Cachespeicher-Kohärenzaktivität ermöglicht. Aus diesem Grund wird ein globales Verzeichnis verwendet, um den globalen Zustand der Zeilen und die Identität bzw. die Anzahl der Prozessoren mit einer Kopie der Zeile zu erfassen. Wenn ein Prozessor versucht, eine Zeile zu modifizieren und nicht über die exklusive Lese/Schreib-Zugriffsberechtigung für die Zeile verfügt, sendet er eine Modifizierungsanforderung an den Eintrag in dem globalen Verzeichnis, der über ein Mehrstufen- Kommunikationsnetzwerk (MIN) der Zeile zugewiesen ist. Das Verzeichnis sendet dann Ungültigkeitserklärungen an die Prozessoren mit einer Kopie der Zeile bzw. überträgt Ungültigkeitserklärungen an alle Prozessoren, wenn die Identitäten der Prozessoren mit einer Kopie der Zeile nicht bekannt sind (ebenfalls über das MIN). Danach werden über das MIN Ungültigkeitsbestätigungen entweder zurück an das Verzeichnis oder aber an den Cachespeicher gesendet, der die Modifizierung der Zeile angefordert hat. Der Mehraufwand für die über das MIN übertragenen Ungültigkeitserklärungen und Ungültigkeitsbestätigungen verursacht eine erhebliche Konkurrenzsituation innerhalb des MIN und damit eine Verringerung der Leistung.
- Zu Cachespeicher-Kohärenzprotokollen auf der Basis globaler Verzeichnisse wurden eine Reihe von Untersuchungen durchgeführt. Dazu zählen z. B. die folgenden Veröffentlichungen:
- A. Agarwal, R. Simoni, J. Hennessy und M. Horowitz: "An Evaluation of Directory Schemes for Cache Coherence", Proceedings of the lSth Annual International Symposium on Computer Architecture, S. 280-289, Honolulu, Hawaii, IEEE Computer Society Press, 1988.
- L. M. Censier und P. Feautrier: "A New Solution to Coherence Problems in Multicache Systems", IEEE Transactions an Computers, Bd. C-27, Nr. 12, S. 1112-1118, Dez. 1978.
- M. Dubois und F. A. Briggs: "Effects of Cache Coherency in Multiprocessors", IEEE Transactions an Computers, Bd. C-31, Nr. 11, Nov. 1982.
- Daniel Lenoski, James Landon, Kourosh Gharachorloo, Anoop Gupta und John Hennessy: "The Directory-Based Cache Coherency Protocol for the DASH Multiprocessor", Proc. of the l7th Annual International Symposium of Computer Architecture, Mai 1990, S. 148-159.
- C. K. Tang: "Cache Systems Design in the Tightly Coupled Multiprocessor System", Proceedings of the 1976 National Computer Conference, S. 749-753, 1976.
- W. C. Yen, D. W. L. Yen und K. 5. Fu: "Data Coherence Problem in a Multicache System", IEEE Transactions an Computers, S. 56- 65, Jan. 1985.
- Keine dieser Untersuchungen berücksichtigt jedoch die Folgen, die sich aus einer Verringerung der Auswirkung von Netzwerklatenzzeiten, die durch Ungültigkeitserklärungen und die darauffolgenden Genehmigungssignalen verursacht werden, auf die Leistungsfähigkeit dieser Protokolle ergeben. Mehrprozessorsysteme mit Mehrstufen-Kommunikationsnetzwerken (MNI) und privaten Cachespeichern verwenden in der Regel ein verzeichnisbasiertes Cachespeicher-Kohärenzprotokoll zur Gewährleistung der Datenkonsistenz, wobei jedoch die Netzwerkverzögerung die Leistung derartiger Systeme begrenzen kann, da Prozessorschreiboperationen, die zu Ungültigkeitserklärungen führen, zwei Netzwerkumläufe benötigen.
- L. N. Bhuyan und I. Ahmed stellten in "Analysis of MIN Based Multiprocessors With Private Cache Memories", Proceedings of the International Conference on Parallel Processing, Bd. I, S. 51-58, 1989, einen Mehrprozessor mit einem den Cachespeichern zugehörigen Snooping-Bus (der Prozessor "hört" bei Speicherzugriffen am Bus mit) sowie einem Verbindungsnetzwerk vor, das die Prozessoren mit den Speichermodulen verbindet. In ihrem System erfolgt sämtliche kohärenzbezogene Aktivität über diesen Bus. Da der Bus als globale Datenübertragungsquelle für das Mehrprozessorsystem dient, benötigt das Cachespeicherkohärenzprotokoll keine Ungültigkeitsbestätigungen. Das MIN wird ausschließlich für Datenübertragungen zwischen den Cachespeichern und dem Speicher verwendet. Bhuyan und Ahmed gehen davon aus, dass diese Architektur auf bis zu 64 Prozessor skaliert werden kann. Dabei besteht jedoch die Möglichkeit, dass mit steigender Anzahl der Prozessoren der Snooping-Bus gesättigt wird, so dass die Skalierbarkeit des Systems begrenzt ist.
- M. 5. Algudady et. al. stellten in "A write-invalidate cache coherence protocol for MIN-Based Multiprocessors", International Journal of Mini and Microcomputers, Bd. 14, Nr. 1, S. 39-44, 1982, ein hardwaregestütztes Cachespeicher- Kohärenzprotokoll für MIN-basierte Mehrprozessorsysteme mit privaten Cachespeichern vor. Das Protokoll verwendet einen Kohärenzsteuerungsbus, der mit allen Cachespeicher- Steuereinheiten verbunden ist, sowie eine zentrale Tabelle mit gemeinsam genutzten Blockstatusdaten. Zeitsteuerungsprobleme aufgrund der unterschiedlich langen Durchlaufverzögerungen durch das MIN werden durch die Einführung von Übergangszuständen in diese Tabelle gelöst. Das Protokoll verursacht eine minimale Datenverkehrslast auf dem Kohärenzbus. Die Maßnahmen für die Systemleistung werden mit einer umfassenden Analysemethodik bewertet und durch Simulation überprüft. Dabei zeigt sich, dass dieses einfache Protokoll für mittelgroße MIN-basierte Systeme mit akzeptabler Busauslastung eingesetzt werden kann.
- Gemäß einem ersten Aspekt stellt die vorliegende Erfindung ein Mehrprozessorsystem mit gemeinsam genutztem Speicher nach Anspruch 1 bereit.
- Gemäß einem zweiten Aspekt stellt die vorliegende Erfindung nach Anspruch 2 ein Ungültigkeitserklärungsprotokoll für die Gewährleistung der Cachespeicherkohärenz in einem Mehrprozessorsystem mit gemeinsam genutzten Speicher bereit.
- Die vorliegende Erfindung stellt eine Optimierungsmethode für die Verwendung in Mehrstufen-Kommunikationsnetzwerken (MIN) zur Verfügung, die in skalierbaren Mehrprozessorsystemen zum Einsatz kommen, die eine Cachespeicherkohärenz ohne die üblicherweise bei derartigen Systemen auftretende Netzwerkverzögerung bereitstellen und dabei die Skalierbarkeit des Systems gewährleisten.
- Genauer gesagt, die vorliegende Erfindung stellt darüber hinaus ein Cachespeicher-Kohärenzprotokoll auf der Basis eines globalen Verzeichnisses für skalierbare Mehrprozessorsysteme bereit, das den Nachteil der Netzwerklatenzzeit verringert und die Systemleistung verbessert.
- Gemäß der vorliegenden Erfindung wird ein Ungültigkeitserklärungsbus ausschließlich für Ungültigkeitserklärungen oder für Ungültigkeitserklärungen und - bestätigungen verwendet. Die praktische Verwertung der bevorzugten Ausführungsform der Erfindung geht von einem Mehrprozessorsystem mit gemeinsam genutztem Speicher und privaten Cachespeichern, einem Mehrstufen- Kommunikationsnetzwerk (MIN) und verschachtelten Speichermodulen aus. Das Cachespeicher-Kohärenzprotokoll soll als ein verzeichnisbasiertes Protokoll ausgeführt werden. Der Gegenstand der Erfindung wurde insbesondere mit Blick auf die Verringerung des MIN-Mehraufwands für Ungültigkeitserklärungen und -bestätigungen bei verzeichnisbasierten Kohärenzprotokollen entworfen.
- Die Optimierungsmethode gemäß der Erfindung beinhaltet einen Ungültigkeitserklärungsbus auf der Prozessorseite des Mehrstufen-Kommunikationsnetzwerks (MIN), um alle Daten in entfernten Cachespeichern ungültig zu setzen, wenn ein Prozessor die Modifizierung gemeinsam genutzter Daten versucht. Der Ungültigkeitserklärungsbus stellt den globalen Mechanismus bereit, der den Prozessoren die gleichzeitige Übersicht über die Ungültigkeitsaktivität des Kohärenzprotokolls ermöglicht. Da von einem verzeichnisbasierten Protokoll ausgegangen wird, muss das Verzeichnis trotzdem Zustandsinformationen über eine Cachespeicherzeile zur Verfügung halten. Der Gegenstand der Erfindung unterscheidet sich jedoch von herkömmlichen verzeichnisbasierten Protokollen insofern, als er die Identitäten der Cachespeicher mit einer Kopie der Zeile nicht kennen muss. Lediglich die tatsächliche Anzahl der Cachespeicher mit einer Kopie der Zeile muss bekannt sein. Aus diesem Grund sind, wenn eine Ungültigkeitserklärung auf den Bus gegeben wird, auch Ungültigkeitsbestätigungen erforderlich, damit das Verzeichnis weiß, dass alle Cachespeicher mit einer Kopie der Zeile ungültig gesetzt wurden.
- Der Unterschied zwischen der Erfindung und der Architektur von Bhuyan und Ahmed besteht in der Tatsache, dass diese ein busbasiertes Cachespeicher-Kohärenzprotokoll verwenden. Die Cachespeicherkohärenz wird vollständig auf dem Bus realisiert. Im Gegensatz dazu verwendet der Gegenstand der Erfindung ein verzeichnisbasiertes Cachespeicher-Kohärenzprotokoll. Der größte Teil des Kohärenzprotokolls wird anhand des Verzeichnisses realisiert. Dies macht die Verwendung von Ungültigkeitserklärungen erforderlich, die für den Snooping- Bus-Ansatz von Bhuyan und Ahmed nicht benötigt werden. Gleichzeitig unterscheidet sich die Erfindung von herkömmlichen verzeichnisbasierten Protokollen dadurch, dass die Prozessoren nicht daraufhin überwacht werden müssen, ob sie eine Kopie der Zeile nicht verfolgt haben und dass ein Ungültigkeitserklärungsbus hinzugefügt wird, der für Ungültigkeitserklärungen verwendet wird. Nur die tatsächliche Anzahl der Prozessoren mit einer Kopie der Zeile ist erforderlich. Aus diesem Grund ist der Größenbedarf des globalen Verzeichnisses geringer und der Ungültigkeitserklärungsbus führt zu einer weniger ausgeprägten MIN-Konkurrenzsituation und damit zu einer verbesserten Leistung.
- Das globale Verzeichnis wird in einer bevorzugten Ausführungsform als eine Vielzahl von globalen Verzeichnismodulen ausgeführt, die den Speichermodulen zugehörig sind und ein verteiltes globales Verzeichnis bilden. Der Ungültigkeitserklärungsbus dient zur Optimierung der Protokollaktion, die erforderlich ist, wenn ein Prozessor versucht, Daten auf eine gemeinsam genutzte Cachespeicherzeile zu schreiben. Ein Prozessor, der die Modifizierung von Daten in seinem Cachespeicher versucht, gibt die Adresse der Daten auf den Ungültigkeitserklärungsbus und sendet gleichzeitig eine Speicheranforderung an das globale Verzeichnis. Da alle Cachespeicher mit dem Ungültigkeitserklärungsbus verbunden sind, erkennen die Cachespeicher mit einer Kopie der Daten, dass die Daten modifiziert werden sollen und machen ihre Kopien daraufhin ungültig. Die Cachespeicher, die ihre Kopien ungültig setzen, senden außerdem Ungültigkeitsbestätigungssignale an das globale Verzeichnis. Gleichzeitig sendet der Prozessor die Speicheranforderung an das globale Verzeichnis. Das globale Verzeichnis wartet auf die Ungültigkeitserklärungen und sendet dann ein Genehmigungssignal an den Prozessor.
- Ohne diesen Ungültigkeitserklärungsbus sind bei dem herkömmlichen verzeichnisbasierten Cachespeicher- Kohärenzprotokoll zwei Netzwerkumläufe erforderlich. Der Ungültigkeitserklärungsbus der Erfindung verbessert die Leistung von skalierbaren Systemen, indem sich Speicheranforderungen und Ungültigkeitserklärungen überlappen und so die Anzahl der Netzwerkumläufe verringert werden. Bhuyan und Ahmed gehen davon aus, dass ihr Ansatz auf bis zu 64 Prozessoren skaliert werden kann. Der Gegenstand der Erfindung verfügt über eine noch bessere Skalierbarkeit. Als Beispiel soll ein Mehrprozessorsystem mit P Prozessoren dienen, wobei die Hälfte der Prozessoren eine Nur-Lese-Kopie einer Cachespeicherzeile enthalten. Ein anderer Prozessor möchte die Zeile modifizieren, und danach versuchen alle P/2 Prozessoren eine Modifizierung der Zeile. Bei der Architektur nach Bhuyan und Ahmed gibt der Cachespeicher des ersten Prozessors ein Ungültigkeitserklärungssignal auf den Bus. Alle P/2 Prozessoren setzen danach ihre jeweiligen Kopien der Zeile ungültig, und die Zeile wird dann an den anfordernden Cachespeicher übertragen. Daraufhin versuchen alle P/2 Prozessoren, die Zeile zu modifizieren, indem sie Zugriff auf den Bus zu erlangen versuchen, um eine Ungültigkeitserklärung zu senden und eine Kopie der Zeile bereitzustellen. Üblicherweise ist ein Buszyklus erforderlich, um eine Ungültigkeitserklärung zu senden, sowie 1s/4 Buszyklen (wobei 1s die Zeilenlänge in Byte ist), um die Zeile über den Bus zu übertragen. Somit lautet die Anzahl der Buszyklen für die vollständige Durchführung der Transaktion wie folgt:
- (P/2 + 1) (1 + 1s/4)
- Die Skalierbarkeit des Mehrprozessorsystems wird durch die an den Bus gestellten Anforderungen begrenzt. In dem System nach Bhuyan und Ahmed stellt die obige Beziehung eine Näherung erster Ordnung der an den Bus gestellten Anforderungen dar.
- Gemäß einer ersten Ausführungsform des Gegenstands der Erfindung werden ausschließlich Ungültigkeitserklärungen auf den Bus gegeben. Aus diesem Grund stellt sich die Gesamtzahl der Buszyklen, die für die vollständige Durchführung der Transaktion erforderlich sind, wie folgt dar:
- P/2 + 1
- In einer zweiten Ausführungsform der Erfindung beinhaltet die Gesamtzahl der erforderlichen Buszyklen die folgenden Ungültigkeitserklärungen und -bestätigungen, wobei die Ungültigkeitsbestätigungen einen Buszyklus in Anspruch nehmen sollen:
- P + P/2 + 1
- Bei einem System mit 64 Prozessoren und einer Zeilenlänge von 128 Byte erfordert die Architektur von Bhuyan und Ahmed 1089 Buszyklen. Im Gegensatz dazu benötigt die erste Ausführungsform des Gegenstands der Erfindung für die gleiche Anzahl an Prozessoren lediglich 33 Buszyklen, und die zweite Ausführungsform der Erfindung benötigt 97 Buszyklen. Als Ergebnis hat die erste Ausführungsform des Gegenstands der Erfindung somit eine um 1089/33 = 33-mal höhere Skalierbarkeit, während die zweite Ausführungsform eine um 1089/96 = 11-mal höhere Skalierbarkeit aufweist. Daher lässt sich die Erfindung bei der gleichen Leistung wie ein 64-Prozessor-System nach Bhuyan und Ahmed bei der ersten und zweiten Ausführungsform auf mindestens 64 · 33 = 2112 bzw. 64 · 11 = 704 Prozessoren skalieren.
- Die oben genannten und weitere Aufgaben, Aspekte und Vorteile werden aus der folgenden detaillierten Beschreibung einer bevorzugten Ausführungsform der Erfindung und mit Blick auf die Zeichnungen besser verständlich, wobei:
- die Fig. 1A, 1B, 1C und 1D Funktionsblock-Darstellungen sind, die ein herkömmliches Ungültigkeitserklärungsprotokoll in einem Mehrprozessorsystem mit verzeichnisbasierter Cachespeicherkohärenz zeigen;
- die Fig. 2A, 2B und 2C Funktionsblock-Darstellungen sind, die ein verbessertes herkömmliches Ungültigkeitserklärungsprotokoll zeigen;
- Fig. 3 ein Funktionsschaltbild eines Systems mit einem Verzeichnis und einem Ungültigkeitserklärungsbus gemäß einer bevorzugten Ausführungsform der Erfindung ist;
- die Fig. 4A, 4B und 4C Funktionsblock-Darstellungen sind, die das Ungültigkeitserklärungsprotokoll gemäß einer ersten Ausführungsform der Erfindung zeigen, bei der der Ungültigkeitserklärungsbus ausschließlich für Ungültigkeitserklärungen verwendet wird;
- die Fig. 5 A und 5B Funktionsblock-Darstellungen sind, die das Ungültigkeitserklärungsprotokoll gemäß einer zweiten Ausführungsform der Erfindung zeigen, bei der der Ungültigkeitserklärungsbus sowohl für Ungültigkeitserklärungen als auch für Ungültigkeitsbestätigungen verwendet wird;
- die Fig. 6A, 6B, 6C und 6D jeweils Zeitablaufdiagramme sind, welche die erforderliche Zeitdauer für die Verarbeitung einer Anforderung für das herkömmliche Ungültigkeitserklärungsprotokoll, das verbesserte herkömmliche Ungültigkeitserklärungsprotokoll und die ersten und zweiten Ausführungsformen der Erfindung zeigen; und
- die Fig. 7A und 7B Hauptspeicherabbilder sind, die jeweils ein verteiltes Verzeichnis mit N Einträgen für die herkömmlichen Ungültigkeitserklärungsansätze und die ersten und zweiten Ausführungsformen gemäß der Erfindung zeigen.
- Die Zeichnungen und hier insbesondere die Fig. 1B bis 1D zeigen das herkömmliche verzeichnisbasierte Ungültigkeitserklärungsprotokoll in einem Mehrprozessorsystem. Dabei wird von einem Mehrprozessorsystem mit einem Mehrstufen- Kommunikationsnetzwerk (MIN) ausgegangen. Sämtliche Datenübertragungen zwischen den Prozessoren und dem Verzeichnis laufen über das MIN (nicht abgebildet). In Fig. 1A gibt ein Prozessor P1 eine Modifizierungsanforderung an das Verzeichnis aus. Jeder der übrigen Prozessoren P2 bis PP soll einen Nur- Lese-Zugriff auf die Zeile(n) haben, für die die Modifizierungsanforderung gestellt wird, und diese Daten sind in dem Verzeichnis gespeichert. In Fig. 1B gibt das Verzeichnis Ungültigkeitserklärungen an jeden der übrigen Prozessoren P2 bis PP aus. Danach setzen die Prozessoren P2 bis PP in Fig. 1C ihre jeweiligen Kopien der Zeilen ungültig und senden Ungültigkeitsbestätigungen an das Verzeichnis. Erst nachdem das Verzeichnis alle Ungültigkeitsbestätigungen von jedem Prozessor mit einer Kopie der zu modifizierenden Zeile(n) empfangen hat, erteilt das Verzeichnis in Fig. 1D eine Genehmigung für die Modifizierungsanforderung durch den Prozessor.
- Das herkömmliche Ungültigkeitserklärungsprotokoll wurde in den Fig. 2A bis 2C verbessert. Wie zuvor sendet der Prozessor in Fig. 2A eine Modifizierungsanforderung an das Verzeichnis, aber zusätzlich zur Sendung von Ungültigkeitserklärungen an jeden Prozessor P2 bis PP sendet das Verzeichnis auch eine vorläufige Genehmigung der Modifizierungsanforderung an den Prozessor P1. Die Genehmigung der Modifizierungsanforderung hat zur Bedingung, dass der Prozessor P1 eine vorgegebene Anzahl von Ungültigkeitsbestätigungen von den anderen Prozessoren empfängt, wobei diese vorgegebene Anzahl dem Prozessor P1 von dem Verzeichnis zusammen mit der vorläufigen Genehmigung der Modifizierungsanforderung übergeben wird. In Fig. 2C empfängt der Prozessor P1 die Ungültigkeitsbestätigungen direkt von jedem Prozessor P2 bis PP, woraufhin dem Prozessor P1 die Modifizierung der Zeile(n) gestattet wird.
- Fig. 3 zeigt ein Funktionsblockschaltbild eines MIN-basierten Mehrprozessorsystems, in dem der Gegenstand der Erfindung ausgeführt ist. Das System beinhaltet ein Mehrstufen- Kommunikationsnetzwerk (MIN) 10, zu dem eine Vielzahl von Speichermodulen (mm) 121 bis 12 m gehört. Mehrstufen- Kommunikationsnetzwerke (MIN) sind in der Technik hinlänglich bekannt. In diesem Zusammenhang wird auf Chuan-Lin Wu und Tse- Yun Feng, "On a Class of Multistage Interconnection Networks", IEEE Transactions on Computers, Bd. C-29, Nr. 8. August 1980, 5. 694-702, verwiesen. Die Speichermodule 121 bis 12 m bilden den gemeinsam genutzten Hauptspeicher des Systems. Zum Hauptspeicher gehört ein globales Verzeichnis mit den Daten, die für die Angabe des globalen Zustands einer Cachespeicherzeile sowie der Anzahl und/oder der Speicherstelle der Cachespeicher mit einer Kopie der Zeile verwendet werden.
- Das globale Verzeichnis des Systems aus Fig. 3 besteht aus einer Vielzahl von globalen Verzeichnismodulen 141 bis 14 m, die so verteilt sind, dass die Speichermodule ein verteiltes globales Verzeichnis (DGD) bilden. Das DGD 14 enthält Daten, mit denen der globale Zustand einer Cachespeicherzeile sowie die Anzahl und/oder Speicherstelle der Cachespeicher, die über eine Kopie der Zeile verfügen, angegeben werden. Außerdem sind eine Vielzahl von Cachespeichern (C) 18&sub1; bis 16p mit dem MIN 10 verbunden, bei denen es sich um die lokalen Cachespeicher für die zugehörigen Prozessoren (P) 18&sub1; bis 18p handelt. Jeder dieser Cachespeicher ist direkt mit einem Ungültigkeitserklärungsbus 20 verbunden, der, wie weiter unten ausführlicher beschrieben wird, die Verarbeitung eines Ungültigkeitserklärungsanforderung verbessert, die von einem der Prozessoren ausgegeben wird, und das Senden von Ungültigkeitserklärungen über das Netzwerk überflüssig macht.
- Das verteilte globale Verzeichnis 14 weiß möglicherweise nicht, welche Cachespeicher über eine Kopie der Zeile verfügen. Für die Identifizierung der Cachespeicher bietet der Entwurf verschiedene Optionen. Bei einer Entwurfsalternative verfügt das Verzeichnis über Daten, die alle Cachespeicher mit einer Kopie der Zeile angeben. Bei einer anderen Entwurfsalternative gibt es pro Verzeichniseintrag eine kleine Anzahl von Bezeichnern für die Cachespeicher. Wenn die Anzahl der Cachespeicher, welche die Zeile gemeinsam nutzen, kleiner oder gleich der Anzahl der Bezeichner für die Cachespeicher ist, weiß das Verzeichnis, welcher Cachespeicher über die Zeile verfügt. Andernfalls kennt das Verzeichnis nur die Anzahl der Cachespeicher mit der Zeile.
- Die Fig. 4A bis 4C zeigen das Ungültigkeitserklärungsprotokoll gemäß einer ersten Ausführungsform der Erfindung. In Fig. 4A gibt der Prozessor P1 eine Modifizierungsanforderung an das Verzeichnis aus und gibt gleichzeitig eine Ungültigkeitserklärungsanforderung auf den Ungültigkeitserklärungsbus. Die Prozessoren mit Kopien der zu modifizierenden Zeile(n), angegeben durch die Adresse(n) auf dem Ungültigkeitserklärungsbus, setzen die betreffenden Zeile(n) ungültig und senden eine Ungültigkeitsbestätigung an das Verzeichnis, wie aus Fig. 4B hervorgeht. Wenn das Verzeichnis alle Ungültigkeitsbestätigungen empfangen hat, erteilt es dem Prozessor P1 in Fig. 4C eine Genehmigung.
- Die Fig. 5A und 5B zeigen das Ungültigkeitserklärungsprotokoll gemäß einer zweiten Ausführungsform der Erfindung. In Fig. 5 A gibt der Prozessor P1 eine Modifizierungsanforderung an das Verzeichnis aus und gibt gleichzeitig eine Ungültigkeitserklärungsanforderung auf den Ungültigkeitserklärungsbus. In Fig. 5B reagiert das Verzeichnis auf den Prozessor P1 mit einer vorläufigen Modifizierungsgenehmigung nach dem Empfang einer Anzahl von Ungültigkeitsbestätigungen, die der Anzahl der Prozessoren mit Kopien der zu modifizierenden Zeile(n) entspricht. Dieses Mal werden die Ungültigkeitsbestätigungen dem Prozessor P1 über den Ungültigkeitserklärungsbus direkt von den anderen Prozessoren bereitgestellt.
- Die Fig. 6A bis 6C sind Zeitablaufdiagramme, welche die Leistungen mehrerer Protokolle einander gegenüberstellen. Die Funktionsweise des herkömmlichen Systems aus den Fig. 1A bis 1D ist in Fig. 6A abgebildet. Dabei soll die Netzwerkverzögerung vier Zeiteinheiten und ein Buszyklus eine Zeiteinheit umfassen. Da die Modifizierungsanforderung über das Netzwerk an das Verzeichnis gestellt werden muss, nimmt die Modifizierungsanforderung in Fig. 6A vier Zeiteinheiten in Anspruch. Entsprechend müssen die Ungültigkeitserklärungen über das Netzwerk von dem Verzeichnis an die übrigen Prozessoren übertragen werden, die eine Kopie der zu modifizierenden Zeile(n) halten, was weitere vier Zeiteinheiten in Anspruch nimmt. Die Ungültigkeitsbestätigungen müssen wiederum über das Netzwerk an das Verzeichnis übertragen werden, wofür weitere vier Zeiteinheiten erforderlich sind. Schließlich überträgt das Verzeichnis über das Netzwerk die Genehmigung der Modifizierungsanforderung an den anfordernden Prozessor, wofür weitere vier Zeiteinheiten benötigt werden. Insgesamt benötigt der Prozess somit 16 Zeiteinheiten.
- Das verbesserte herkömmliche Protokoll aus den Fig. 2A bis 2C ist in Fig. 6B dargestellt. Die ersten beiden Zyklen entsprechen hier denjenigen des herkömmlichen Protokolls. Da die Genehmigung der Modifizierungsanforderung jedoch davon abhängt, dass der anfordernde Prozessor alle Ungültigkeitsbestätigungen direkt von den übrigen Prozessoren empfängt, überlappt sich der Genehmigungszyklus entweder mit dem Ungültigkeitserklärungszyklus oder dem Ungültigkeitsbestätigungszyklus, so dass sich eine Ersparnis von vier Zeiteinheiten ergibt.
- Im Gegensatz zu den herkömmlichen und den verbesserten herkömmlichen Protokollen bringen die Ausführungsformen der Erfindung eine beträchtliche Zeitersparnis mit sich, welche die Leistung größerer Mehrprozessorsystem erheblich steigert. Das in den Fig. 4A bis 4C dargestellte Protokoll der ersten Ausführungsform ist in Fig. 6C abgebildet. Da die Modifizierungsanforderung gleichzeitig auf den Ungültigkeitserklärungsbus gegeben und über das Netzwerk an das Verzeichnis übertragen wird, tritt nur eine Busverzögerung von einem Zyklus auf, bevor die übrigen Prozessoren mit der Übertragung der Ungültigkeitsbestätigungen an das Verzeichnis beginnen. Somit überträgt das Verzeichnis mit einer Verzögerung von einem Buszyklus nach Empfang der Modifizierungsanforderung die Genehmigung über das Netzwerk an den anfordernden Prozessor. Dieser Zyklus ist in nur neun Zeiteinheiten abgeschlossen.
- Das Protokoll gemäß der zweiten Ausführungsform führt zu noch größeren Zeitersparnissen und damit zu einer noch besseren Leistung. Dieses in den Fig. 5A und 5B dargestellte Protokoll ist in Fig. 6D abgebildet. In diesem Fall befinden sich auf dem Ungültigkeitserklärungsbus sowohl die Modifizierungsanforderung als auch die als Folge davon ausgegebenen Ungültigkeitsbestätigungen. Somit gibt das Verzeichnis sofort nach dem Empfang der Modifizierungsanforderung die vorläufige Genehmigung aus, so dass der Zyklus in nur acht Zeiteinheiten abgeschlossen ist.
- Die Hauptspeicherabbilder für ein verteiltes globales Verzeichnis mit N Einträgen für ein herkömmliches verteiltes globales Verzeichnis mit N Einträgen sowie für das globale Verzeichnis mit N Einträgen für die erste und zweite Ausführungsform der Erfindung sind in den Fig. 7A bzw. 7B abgebildet. Bei dem herkömmlichen Verzeichnis aus Fig. 7A besteht ein Eintrag aus einem Verzeichniskennzeichen (dtag), einem globalen Zustand (gstate), einer Prozessorkennung (PID) für jeden der N Prozessoren, einer Ereignismarkierung (WTEVNT), die das Warten auf Rückschreib- oder Ungültigkeitsbestätigungen angibt, sowie einer Ereignismarkierung (RQEVNT) für das angeforderte Ereignis, das die Rückschreib-/ Ungültigkeitsbestätigungen verursacht hat. Für eine höhere Kompaktheit des Eintrags können die PIDs durch einen P-Vektor ersetzt werden, wobei jedes Bit für einen Prozessor steht. Im Gegensatz dazu ist das verteilte globale Verzeichnis mit N Einträgen der Erfindung sehr viel einfacher aufgebaut und benötigt weder PIDs noch P-Vektor. Wie aus Fig. 7B hervorgeht, sind für einen Eintrag in dem globalen Verzeichnis gemäß der praktischen Verwertung der vorliegenden Erfindung lediglich dtag, gstate sowie die Markierungen WTEVNT und RQEVNT erforderlich.
Claims (2)
1. Mehrprozessorsystem mit gemeinsam genutztem Speicher, das
Folgendes umfasst:
eine Vielzahl von Prozessoren (18&sub1; bis 18p) mit jeweils
einem zugehörigen Cachespeicher (16&sub1; bis 16p);
ein Mehrstufen-Kommunikationsnetzwerk (10), das mit dem
Cachespeicher eines jeden Prozessors verbunden ist;
eine Vielzahl von verschachtelten Speichermodulen (121 bis
12m), die mit dem Mehrstufen-Kommunikationsnetzwerk (10)
verbunden sind;
ein globales Verzeichnis mit Daten für die Ermittlung
eines globalen Zustands einer Cachespeicherleitung, wobei
sich das globale Verzeichnis aus einer Vielzahl von
globalen Verzeichnismodulen (14&sub1; bis 14 m) zusammensetzt,
die ein verteiltes globales Verzeichnis (14) bilden, und
wobei jedes Speichermodul ein zugehöriges globales
Verzeichnismodul hat; und
einen Ungültigkeitserklärungsbus (20), der mit jedem
Cachespeicher (161 bis 16p) direkt verbunden ist, einen
Prozessor, der versucht, Daten zu modifizieren, indem er
eine Adresse der zu modifizierenden Daten auf den
Ungültigkeitserklärungsbus (20) gibt und gleichzeitig eine
Speicheranforderung für die Datenmodifizierung an das
globale Verzeichnis sendet, wobei die Speicheranforderung
in das Mehrstufen-Kommunikationsnetzwerk gestellt wird,
wobei alle Cachespeicher (16&sub1; bis 16p) eine Kopie einer
Cachespeicherleitung haben, die durch die Adresse auf dem
Ungültigkeitserklärungsbus (20) angegeben wird, die ihre
Kopien für ungültig erklärt, wobei das globale Verzeichnis
ein Genehmigungssignal an den Prozessor überträgt, das die
Modifizierung der Daten gestattet, wobei das
Genehmigungssignal in das Mehrstufen-
Kommunikationsnetzwerk gestellt wird;
dadurch gekennzeichnet, dass das globale Verzeichnis die
Identitäten der Cachespeicher mit einer Kopie der
Cachespeicherleitung nicht kennt, sondern vielmehr
außerdem die tatsächliche Anzahl der Cachespeicher mit
einer Kopie der Leitung enthält;
wobei ein Cachespeicher bei der Ungültigkeitserklärung
einer Kopie einer Cachespeicherleitung, die durch die
Adresse auf dem Ungültigkeitserklärungsbus (20) angegeben
wird, ein Ungültigkeitsbestätigungssignal an das globale
Verzeichnis sendet, und wobei bei Empfang der
Ungültigkeitsbestätigungssignale das globale Verzeichnis
das Genehmigungssignal an den Prozessor sendet, der
versucht, die Daten zu modifizieren,
oder wobei ein Cachespeicher bei der
Ungültigkeitserklärung einer Kopie einer
Cachespeicherleitung, die durch die Adresse auf dem
Ungültigkeitserklärungsbus (20) angegeben wird, ein
Ungültigkeitsbestätigungssignal direkt an den Prozessor
sendet, der versucht, Daten zu modifizieren, und wobei das
globale Verzeichnis zusätzlich zu dem Genehmigungssignal
einen Zählwert mit der Anzahl der
Ungültigkeitsbestätigungen sendet, die er empfangen
sollte.
2. Ungültigkeitserklärungsprotokoll für die Aufrechterhaltung
der Cachespeicherkohärenz in einem Mehrprozessorsystem mit
gemeinsam genutztem Speicher, in dem eine Vielzahl von
verschachtelten Speichermodulen (12&sub1; bis 12 m) über ein
Mehrstufen-Kommunikationsnetzwerk (10) mit einer Vielzahl
von Prozessoren (16&sub1; bis 16p) verbunden sind, wobei jeder
Prozessor einen zugehörigen Cachespeicher hat, wobei das
Mehrprozessorsystem mit gemeinsam genutztem Speicher ein
globales Verzeichnis mit Daten enthält, anhand derer ein
globaler Zustand einer Cachespeicherleitung ermittelt
wird, wobei sich das globale Verzeichnis aus einer
Vielzahl von globalen Verzeichnismodulen (14&sub1; bis 14 m)
zusammensetzt, die ein verteiltes globales Verzeichnis
(14) bilden, wobei jedes Speichermodul ein zugehöriges
globales Verzeichnismodul und einen
Ungültigkeitserklärungsbus (20) hat, der direkt mit jedem
Cachespeicher verbunden ist, wobei das
Ungültigkeitserklärungsprotokoll die folgenden Schritte
umfasst:
Aufgeben einer Adresse der zu modifizierenden Daten durch
einen Prozessor, der versucht, Daten zu modifizieren, auf
den Ungültigkeitserklärungsbus (20) gleichzeitig mit dem
Senden einer Speicheranforderung für die
Datenmodifizierung an das globale Verzeichnis, wobei die
Speicheranforderung in das Mehrstufen-
Kommunikationsnetzwerk gestellt wird, wobei alle Kopien
aller Cachespeicher (16&sub1; bis 16P) mit einer Kopie einer
Cachespeicherleitung, die durch die Adresse auf dem
Ungültigkeitserklärungsbus (20) angegeben wird, ungültig
gemacht werden; und Senden eines Genehmigungssignals durch
das globale Verzeichnis an den Prozessor, das die
Modifizierung der Daten zulässt, wobei das in das
Mehrstufen-Kommunikationsnetzwerk gestellte
Genehmigungssignal dadurch gekennzeichnet ist, dass das
globale Verzeichnis die Identitäten der Cachespeicher mit
einer Kopie der Cachespeicherleitung nicht kennt, sondern
vielmehr außerdem die tatsächliche Anzahl der
Cachespeicher mit einer Kopie der Leitung enthält;
wobei ein Cachespeicher bei der Ungültigkeitserklärung
einer Kopie einer Cachespeicherleitung, die durch die
Adresse auf dem Ungültigkeitserklärungsbus (20) angegeben
wird, ein Ungültigkeitsbestätigungssignal an das globale
Verzeichnis sendet; und wobei das globale Verzeichnis bei
Empfang der Ungültigkeitsbestätigungssignale das
Genehmigungssignal an den Prozessor sendet, der versucht,
Daten zu modifizieren,
oder wobei ein Cachespeicher bei der
Ungültigkeitserklärung einer Kopie einer
Cachespeicherleitung, die durch die Adresse auf dem
Ungültigkeitserklärungsbus (20) angegeben wird, ein
Ungültigkeitsbestätigungssignal direkt an den Prozessor
sendet, der versucht, Daten zu modifizieren; und wobei das
globale Verzeichnis zusätzlich zu dem Genehmigungssignal
einen Zählwert mit der Anzahl der
Ungültigkeitsbestätigungen sendet, die der Prozessor
empfangen sollte.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/533,044 US5778437A (en) | 1995-09-25 | 1995-09-25 | Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69616226D1 DE69616226D1 (de) | 2001-11-29 |
DE69616226T2 true DE69616226T2 (de) | 2002-06-27 |
Family
ID=24124228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69616226T Expired - Fee Related DE69616226T2 (de) | 1995-09-25 | 1996-08-23 | Ungültigkeitserklärungsbusoptimierung für Multiprozessoren mit verzeichnisbasierten Kohärenzprotokollen |
Country Status (5)
Country | Link |
---|---|
US (1) | US5778437A (de) |
EP (1) | EP0764905B1 (de) |
JP (1) | JP3320312B2 (de) |
KR (1) | KR100234503B1 (de) |
DE (1) | DE69616226T2 (de) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950226A (en) * | 1996-07-01 | 1999-09-07 | Sun Microsystems, Inc. | Multiprocessing system employing a three-hop communication protocol |
US5900015A (en) * | 1996-08-09 | 1999-05-04 | International Business Machines Corporation | System and method for maintaining cache coherency using path directories |
US6094709A (en) * | 1997-07-01 | 2000-07-25 | International Business Machines Corporation | Cache coherence for lazy entry consistency in lockup-free caches |
US6295584B1 (en) * | 1997-08-29 | 2001-09-25 | International Business Machines Corporation | Multiprocessor computer system with memory map translation |
US6633958B1 (en) * | 1997-11-17 | 2003-10-14 | Silicon Graphics, Inc. | Multiprocessor computer system and method for maintaining cache coherence utilizing a multi-dimensional cache coherence directory structure |
US6108721A (en) * | 1998-06-29 | 2000-08-22 | Hewlett-Packard Company | Method and apparatus for ensuring data consistency between an i/o channel and a processor |
US6295598B1 (en) * | 1998-06-30 | 2001-09-25 | Src Computers, Inc. | Split directory-based cache coherency technique for a multi-processor computer system |
US6751698B1 (en) * | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
JP3571616B2 (ja) * | 2000-05-23 | 2004-09-29 | エヌ・ティ・ティ・コムウェア株式会社 | データの共有方法、端末装置および記録媒体 |
US6725334B2 (en) * | 2000-06-09 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and system for exclusive two-level caching in a chip-multiprocessor |
US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
US6738836B1 (en) * | 2000-08-31 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Scalable efficient I/O port protocol |
US6633960B1 (en) * | 2000-08-31 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Scalable directory based cache coherence protocol |
US6763434B2 (en) * | 2000-12-30 | 2004-07-13 | International Business Machines Corporation | Data processing system and method for resolving a conflict between requests to modify a shared cache line |
US6801984B2 (en) * | 2001-06-29 | 2004-10-05 | International Business Machines Corporation | Imprecise snooping based invalidation mechanism |
US7003635B2 (en) * | 2002-10-03 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Generalized active inheritance consistency mechanism having linked writes |
US7082500B2 (en) * | 2003-02-18 | 2006-07-25 | Cray, Inc. | Optimized high bandwidth cache coherence mechanism |
KR100515059B1 (ko) * | 2003-07-22 | 2005-09-14 | 삼성전자주식회사 | 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법 |
US7249224B2 (en) * | 2003-08-05 | 2007-07-24 | Newisys, Inc. | Methods and apparatus for providing early responses from a remote data cache |
US8205046B2 (en) * | 2005-01-31 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | System and method for snooping cache information using a directory crossbar |
GB2538054B (en) * | 2015-04-28 | 2017-09-13 | Advanced Risc Mach Ltd | Data processing apparatus, controller, cache and method |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3845474A (en) * | 1973-11-05 | 1974-10-29 | Honeywell Inf Systems | Cache store clearing operation for multiprocessor mode |
US4142234A (en) * | 1977-11-28 | 1979-02-27 | International Business Machines Corporation | Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system |
US4648030A (en) * | 1983-09-22 | 1987-03-03 | Digital Equipment Corporation | Cache invalidation mechanism for multiprocessor systems |
US4959777A (en) * | 1987-07-27 | 1990-09-25 | Motorola Computer X | Write-shared cache circuit for multiprocessor system |
US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
US5345578A (en) * | 1989-06-30 | 1994-09-06 | Digital Equipment Corporation | Competitive snoopy caching for large-scale multiprocessors |
US5283886A (en) * | 1989-08-11 | 1994-02-01 | Hitachi, Ltd. | Multiprocessor cache system having three states for generating invalidating signals upon write accesses |
US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
CA2045756C (en) * | 1990-06-29 | 1996-08-20 | Gregg Bouchard | Combined queue for invalidates and return data in multiprocessor system |
US5276852A (en) * | 1990-10-01 | 1994-01-04 | Digital Equipment Corporation | Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions |
US5249283A (en) * | 1990-12-24 | 1993-09-28 | Ncr Corporation | Cache coherency method and apparatus for a multiple path interconnection network |
US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
US5398325A (en) * | 1992-05-07 | 1995-03-14 | Sun Microsystems, Inc. | Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems |
US5511224A (en) * | 1993-02-18 | 1996-04-23 | Unisys Corporation | Configurable network using dual system busses with common protocol compatible for store-through and non-store-through cache memories |
-
1995
- 1995-09-25 US US08/533,044 patent/US5778437A/en not_active Expired - Fee Related
-
1996
- 1996-07-22 JP JP19172496A patent/JP3320312B2/ja not_active Expired - Fee Related
- 1996-08-07 KR KR1019960032843A patent/KR100234503B1/ko not_active IP Right Cessation
- 1996-08-23 DE DE69616226T patent/DE69616226T2/de not_active Expired - Fee Related
- 1996-08-23 EP EP96306163A patent/EP0764905B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0764905A1 (de) | 1997-03-26 |
US5778437A (en) | 1998-07-07 |
EP0764905B1 (de) | 2001-10-24 |
KR970016951A (ko) | 1997-04-28 |
DE69616226D1 (de) | 2001-11-29 |
JP3320312B2 (ja) | 2002-09-03 |
KR100234503B1 (ko) | 1999-12-15 |
JPH0991255A (ja) | 1997-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69616226T2 (de) | Ungültigkeitserklärungsbusoptimierung für Multiprozessoren mit verzeichnisbasierten Kohärenzprotokollen | |
DE69621311T2 (de) | Cachespeicherkohärenzverfahren und-system | |
DE102009023898B4 (de) | Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll | |
DE69724354T2 (de) | Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden | |
DE102007030116B4 (de) | Snoop-Filter mit ausschließlicher Inhaberschaft | |
DE3856451T2 (de) | Multiprozessor-Digitaldatenverarbeitungssystem | |
DE69128107T2 (de) | Busanordnung für Speicherzugriff | |
DE69721891T2 (de) | Deterministisches Kohärenzprotokoll für verteilten Multicache-Speicher | |
DE69721394T2 (de) | Verfahren und Vorrichtung für einen Kohärenzumwandler mit begrenztem Speicher zur Verbindung von Rechnersystem-Kohärenzdomänen | |
DE69904758T2 (de) | Flexible sondierungsbefehl/sondierungrespons-leitweglenkung zur aufrechterhaltung der speicherkohärenz | |
DE69130580T2 (de) | Cache-Speicheranordnung | |
DE69031978T2 (de) | Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern | |
DE10394081B4 (de) | Verfahren und Vorrichtung zum Einprägen von Schreibdaten in einen Cache-Speicher | |
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 | |
DE69031086T2 (de) | Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken | |
DE69724353T2 (de) | Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll | |
DE69721643T2 (de) | Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen | |
DE69722079T2 (de) | Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen | |
DE19782177B4 (de) | Verfahren zur Durchführung von TLB-Shootdown-Operationen in einem Multiprozessorsystem | |
DE69722512T2 (de) | Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll | |
DE69701078T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren | |
DE69706934T2 (de) | Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte | |
DE69803478T2 (de) | Ein/ausgabe weiterleitung in einem cachekohärenten rechnersystem mit gemeinsam genutztem plattenspeicher | |
DE69806855T2 (de) | Ersetzungszähler für Maschine mit nichtuniformen Speicherzugriffen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |