DE69421058T2 - Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus - Google Patents
Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter AbhörmechanismusInfo
- Publication number
- DE69421058T2 DE69421058T2 DE69421058T DE69421058T DE69421058T2 DE 69421058 T2 DE69421058 T2 DE 69421058T2 DE 69421058 T DE69421058 T DE 69421058T DE 69421058 T DE69421058 T DE 69421058T DE 69421058 T2 DE69421058 T2 DE 69421058T2
- Authority
- DE
- Germany
- Prior art keywords
- cache
- modules
- read
- check
- coherency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 27
- 238000000034 method Methods 0.000 title claims description 10
- 238000012546 transfer Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000009977 dual effect Effects 0.000 description 6
- 230000001427 coherent effect Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Classifications
-
- 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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf eine Computerarchitektur, die eine Einprozessorarchitektur, die einen Cache und eine Kohärenz-Eingabe/Ausgabe-Struktur aufweist, und eine Mehrprozessorarchitektur aufweist. Insbesondere bezieht sich die vorliegende Erfindung auf das Beibehalten einer Cachekohärenz in einer Einprozessor- oder Mehrprozessor-Computerarchitektur.
- Die Eingabe- und Ausgabe- ("I/O-") von Informationen zu einer Computerarchitektur, die einen Cache aufweist, sollte die Erzeugung von alten Daten vermeiden, d. h. Daten, die älter als und/oder mit verwandten Daten unvereinbar sind, die in einer anderen Cacheposition oder in einem Hauptspeicher gespeichert sind. Folglich sollte eine Cachekohärenz beibehalten werden, während die Störung des Prozessorbetriebs minimiert werden sollte. Bei einer bestimmten Computerarchitektur betrifft die I/O die Übertragung von Daten zwischen einem I/O-Gerät und dem Hauptsystemspeicher, der als ein I/O-Puffer wirkt. Bei einem anderen Computersystem betrifft die I/O Datenübertragungen von entweder dem Cache oder dem Speicher zu und von dem I/O-Gerät. Auf diese Systeme wird als Kohärenz-I/O-Systeme Bezug genommen, da der Prozessorcache bei der Anwesenheit eines I/O-Verkehrs kohärent bleiben muß.
- Caches können entweder als durchschreibend oder zurückschreibend klassifiziert werden. Ein durchschreibender Cache (Write-Through-Cache) wird immer zusammen mit dem Systemspeicher beschrieben, derart, daß der Systemspeicher und der Cache jeweils eine aktuelle Kopie der Informationen beibehalten, die geschrieben werden, und die Möglichkeit von alten Daten vermieden wird. Die Informationseingabe in die Computerarchitektur unter Verwendung eines durchschreibenden Caches erfordert einen wesentlichen Systemmehraufwand.
- Beispielsweise muß das System garantieren, daß sich keiner der Blöcke des I/O-Puffers, die für eine Eingabe bestimmt wurden, in dem Cache befindet.
- Zurückschreibende Caches (Write-Back-Caches) halten modifizierte Daten so lange, bis die Daten ausgestoßen werden und zu dem Speicher zurückgeschrieben werden, um Raum für neue Daten zu schaffen. Da ein zurückschreibender Cache die einzigste Kopie von modifizierten Daten haben kann, muß besonders auf das Cachekohärenzprotokoll zwischen den Caches und den I/O-Systemen derart geachtet werden, daß auf die Cachedaten schnell zugegriffen werden kann und dieselben nie verloren gehen.
- Eine Softwarelösung des Problems von alten Daten markiert eine Pufferseite als nicht im Cache speicherbar, und das Betriebssystem ist konfiguriert, um Informationen lediglich in diese nicht in dem Cache speicherbare Seite einzugeben. Eine weitere Softwarelösung dieses Problems verwendet das Betriebssystem, um die Pufferadressen von dem Cache zu räumen, nachdem eine Informationseingabe auftritt, die wirksam die Caches freimacht. Eine Hardwarelösung des Problems der alten Daten überprüft die I/O-Adressen während der Informationseingabe, um zu bestimmen, ob sich dieselben in dem Cache befinden. Wenn dies der Fall ist, werden die Cacheeinträge ungültig gemacht, um alte Daten zu vermeiden.
- Auf die Protokolle, die verwendet werden, um die Kohärenz für mehrere Prozessoren aufrecht zu erhalten, wird als Cachekohärenzprotokolle Bezug genommen. Es gibt zwei Klassen von Cachekohärenzprotokollen:
- 1. Verzeichnisbasiert: Die Informationen über einen Block von physischem Speicher werden lediglich in einer Position gehalten. Diese Informationen umfassen üblicherweise welcher Cache eine Kopie des Blocks besitzt, und ob diese Kopie als exklusiv für eine zukünftige Modifikation markiert ist. Ein Zugriff auf einen speziellen Block fragt zunächst das Verzeichnis ab, um zu sehen, ob die Speicherdaten alt sind und die echten Daten in einem anderen Cache liegen. Wenn dies der Fall ist, wird der Cache, der den modifizierten Block enthält, dazu gezwungen, die Daten desselben zu dem Speicher zurückzugeben. Dann leitet der Speicher die Daten zu dem neuen Anforderer zurück, was das Verzeichnis mit der neuen Position dieses Datenblocks aktualisiert. Dieses Protokoll minimiert die Zwischenbusmodul- (oder Zwischencache-) Störung, leidet jedoch typischerweise an der hohen Latenz und ist aufgrund der großen erforderlichen Verzeichnisgröße aufwendig aufzubauen.
- 2. Schnüffeln (Snooping): Jeder Cache, der eine Kopie der Daten von einem Block an physischem Speicher besitzt, weist ferner eine Kopie der Informationen über diesen Datenblock auf. Jeder Cache ist typischerweise in einem Gemeinsam-Verwendeter-Speicher-Bus positioniert, und alle Cachesteuerungen überwachen oder Schnüffeln in dem Bus, um zu bestimmen, ob dieselben eine Kopie des gemeinsam verwendeten Blocks besitzen oder nicht.
- Die Schnüffel-Protokolle (Snooping-Protokolle) sind für eine Mehrprozessorsystemarchitektur gut geeignet, die Caches und gemeinsam verwendeten Speicher verwendet, da dieselben in dem Zusammenhang der vorher existierenden physischen Verbindung betrieben werden, die üblicherweise zwischen dem Bus und dem Speicher vorgesehen ist. Das Schnüffeln wird gegenüber den Verzeichnisprotokollen bevorzugt, da die Menge der Kohärenzinformationen proportional zu der Anzahl der Blöcke in einem Cache und nicht proportional zu der Anzahl der Blöcke in dem Hauptspeicher ist.
- Das Kohärenzproblem tritt in einer Mehrprozessorarchitektur auf, wenn ein Prozessor einen ausschließlichen Zugriff besitzen muß, um einen Speicherblock oder ein Objekt zu schreiben, und/oder die neueste Kopie besitzen muß, wenn ein Objekt gelesen wird. Ein Schnüffelprotokoll muß alle Caches lokalisieren, die das Objekt, das geschrieben werden soll, gemeinsam verwenden. Die Konsequenzen eines Schreibens zu gemeinsam verwendeten Daten bestehen entweder darin, daß alle anderen Kopien der Daten ungültig gemacht werden, oder daß das Schreibens zu allen gemeinsam verwendeten Kopien gesendet wird. Aufgrund der Verwendung von zurückschreibenden Caches, müssen Kohärenzprotokolle immer Prüfungen an allen Caches während Speicherlesevorgängen bewirken, um zu bestimmen, welcher Prozessor die aktuellste Datenkopie der Informationen besitzt.
- Daten, die Informationen betreffen, die unter den Prozessoren gemeinsam verwendet werden, werden zu den Statusbits hinzugefügt, die in einem Cacheblock vorgesehen sind, um die Schnüffelprotokolle zu implementieren. Diese Informationen werden verwendet, wenn Busaktivitäten überwacht werden. Bei einem Leseverfehlen prüfen alle Caches, um herauszufinden, ob dieselben eine Kopie des angeforderten Informationsblocks aufweisen, und dieselben nehmen eine geeignete Handlung vor, wie z. B. das Liefern der Informationen zu dem Cache, der verfehlt hat. Ähnlich prüfen bei einem Schreibvorgang alle Caches, um herauszufinden, ob dieselben eine Kopie der Daten aufweisen, und dann wirken dieselben beispielsweise durch Ungültigmachen ihrer Kopie der Daten oder durch Ändern ihrer Kopie der Daten auf den neuesten Wert.
- Da jede kohärente Busübertragung bewirkt, daß die Caches ihre Adreßtags (Adreßetiketten) überprüfen, stört das Schnüffeln den Zugriff der CPU auf den Cache desselben ungeachtet des Schnüffelresultats. Beispielsweise wird, sogar wenn das Schnüffeln ein Verfehlen zurückgibt, die CPU an einem Cachezugriff gehindert, da der Cache nicht verfügbar ist, d. h. der Cache ist damit beschäftigt, die Tags zu überprüfen, um dieselben mit den Schnüffeladressen in Übereinstimmung zu bringen. Folglich kommt die CPU zum Stillstand oder verriegelt sich, wenn dieselbe auf den Cache zugreifen muß, während der Cache mit einer Kohärenzüberprüfung beschäftigt ist.
- Snooping-Protokolle weisen zwei Typen auf:
- Schreiben-Ungültigmachen: Der Schreibprozessor bewirkt, daß alle Kopien in anderen Caches ungültig gemacht werden, bevor die lokale Kopie desselben geändert wird. Der Prozessor ist dann frei, um die Daten so lange zu aktualisieren, bis ein weiterer Prozessor nach den Daten fragt. Der Schreibprozessor gibt ein Ungültigsignal über den Bus aus, und alle Caches prüfen, um nachzusehen, ob dieselben eine Kopie der Daten aufweisen. Wenn dies der Fall ist, müssen dieselben den Block ungültig machen, der die Daten enthält. Dieses Schema ermöglicht mehrere Leser jedoch lediglich einen einzigen Schreiber.
- Schreiben-Senden: Anstatt daß jeder Block, der gemeinsam verwendet wird, ungültig gemacht wird, sendet der Schreibprozessor die neuen Daten über den Bus. Alle Kopien werden dann mit dem neuen Wert aktualisiert. Dieses Schema sendet durchgehend Schreibvorgänge zu den gemeinsam verwendeten Daten, während das Schreiben-Ungültigmachen-Schema, das oben erörtert ist, alle anderen Kopien derart löscht, daß es lediglich eine lokale Kopie für anschließende Schreibvorgänge gibt. Die Schreiben-Senden-Protokolle ermöglichen es üblicherweise, daß die Daten als gemeinsam verwendet (Senden) etikettiert (mit einem Tag versehen) werden, oder die Daten als privat (lokal) etikettiert sein können. Für weitere Informationen bezüglich der Kohärenz siehe J. Hennessy, D. Patterson, Computer Architecture: A quantitative Approach, Morgan Kaufmann Publishers, Inc. (1990).
- Bei einer Schnüffelkohärenz-Mehrprozessorsystemarchitektur wird jede Kohärenzübertragung in dem Systembus zu dem Cacheteilsystem jedes Prozessors weitergeleitet, um eine Kohärenzüberprüfung durchzuführen. Diese Überprüfung stört üblicherweise die Pipeline des Prozessors, da auf den Cache nicht durch den Prozessor zugegriffen werden kann, während die Kohärenzüberprüfung stattfindet.
- Bei einem üblichen Cache mit einem einzigen Eingang ohne doppelte Cachetags wird die Prozessorpipeline bei Cachezugriffsbefehlen stillgelegt, wenn die Cachesteuerung beim Verarbeiten von Cachekohärenzüberprüfungen für andere Prozessoren beschäftigt ist. Für jedes Schnüffeln muß die Cachesteuerung zunächst die Cachetags für die Schnüffel- Adresse überprüfen, und dann muß dieselbe den Cachezustand modifizieren, wenn ein Treffer auftritt. Das Zuordnen der Cachebandbreite für ein atomares (nicht unterscheidbares) Tag-Lesen und -Schreiben (für eine mögliche Modifikation) verriegelt den Cache von dem Prozessor länger als es nötig ist, wenn das Schnüffeln keinen Tagschreibvorgang erfordert. Beispielsweise sind 80% bis 90% der Cacheabfragen Verfehlungen, d. h. ein Tagschreiben ist nicht erforderlich.
- Es ist möglich die Konkurrenz zwischen der Prozessorpipeline und den Busschnüffelvorgängen durch Implementieren eines doppeltorigen Caches zu eliminieren. Diese Lösung erfordert jedoch eine zusätzliche Hardware und Verbindungen und ist daher schwer und aufwendig zu implementieren. Es ist ferner bekannt, einen zweiten Satz von Cachetags zu verwenden, die für Busschnüffelvorgänge zweckgebunden sind. Diese Tags sind nominell Duplikate der regulären Cachetags, ein derartiges System ist jedoch schwer korrekt aufrechtzuerhalten, und dasselbe ist ferner aufwendiger zu implementieren, als ein System, das keine doppelten Cachetags aufweist.
- Das Dokument IEEE MICRO, Band 12, Nr. 2, 1. April 1992, Seiten 40-63, Diefendorff K. u. a., "Organization of the Motorola 88110 Superscalar Risc Microprocessor" offenbart eine Datenchachestruktur unter Verwendung eines Kohärenzprotokolls basierend auf einem Busschnüffeln. Der Cache behält einen getrennten Satz von Adressen und Zustandstags zum Schnüffeln derart bei, daß das Busschnüffeln nicht den Zugriff des Prozessors auf den lokalen Cache desselben stört. Jede beliebige Vorrichtung, die den Betrag der Prozessorstillstandszeit aufgrund von Kohärenzüberprüfungen reduziert, wird die Mehrprozessorleistung verbessern. Ein System, das eine derartige Vorrichtung auf eine einfache und unaufwendige Art implementiert, ist ein wesentlicher Fortschritt bei dem Mehrprozessorarchitekturentwurf.
- Die Erfindung sieht eine Doppelcacheschnüffelvorrichtung vor, d. h. eine Cachevorrichtung, bei der jedes Schnüffeln die Möglichkeit aufweist, daß dasselbe zu dem Cache zweimal gesendet wird. Die Doppelcacheschnüffelvorrichtung, die hierin offenbart ist, reduziert die Durchschnittsanzahl von Zyklen, bei denen ein Prozessor während einer Kohärenzüberprüfung stillgelegt oder verriegelt ist, basierend auf der Erkennung, daß bei bestimmten Prozessorentwürfen der Prozessor für nicht soviele Zyklen als ein Resultat einer Cachekohärenzprüfung stillgelegt werden muß, wenn bekannt ist, daß die Prüfung nicht den Cache modifizieren wird, d. h. daß dabei nicht geschrieben wird. Die Schnüffelvorrichtung teilt jede Kohärenzüberprüfung in eine nicht-Cache-modifizierende leichtgewichtige Überprüfung und eine Cache-modifizierende schwergewichtige Überprüfung ein. Für jede Kohärenzübertragung in dem Systembus wird zuerst eine leichtgewichtige Überprüfung zu dem Cacheteilsystem gesendet. Eine schwergewichtige Überprüfung wird danach lediglich gesendet, wenn es einen Cachetreffer während der leichtgewichtigen Überprüfung gibt, der anzeigt, daß es eine Notwendigkeit geben kann, den Cache zu modifizieren. Da die meisten Kohärenzüberprüfungen nicht zu einem Cachetreffer führen, wird die durchschnittliche Prozessorpipelinestillegungszeit reduziert, selbst wenn jeder Cachetreffer zu einer zusätzlichen Kohärenzüberprüfung führt.
- Diese und andere Ziele werden auf eine vorteilhafte Art und Weise im wesentlichen durch Anwenden der Merkmale erreicht, die in den unabhängigen Ansprüchen dargelegt sind. Weitere Verbesserungen werden durch die Unteransprüche geschaffen.
- Es sei bemerkt, daß ein Cachetreffer nicht automatisch impliziert, daß es notwendig ist, die Cachetags zu modifizieren. Beispielsweise kann während eines Lesezugriffs auf eine Leitung eine gemeinsam verwendete Kopie der Leitung angefordert sein. Wenn sich diese Leitung bereits in einem gemeinsam verwendeten Zustand in zwei anderen Caches befindet, trifft das Schnüffeln beide Caches, es ist jedoch nicht notwendig, den Status der Leitung zu modifizieren, da sich die Leitung bereits in dem gemeinsam verwendeten Zustand befindet.
- Die Doppelschnüffelvorrichtung, die hierin offenbart ist, reduziert die Prozessorpipelinestörung durch Kohärenzüberprüfungen, ohne die Cachekomplexität oder die Cachekosten zu erhöhen. Die Vorrichtung ergibt ferner eine höhere Leistung als eine übliche Einzelschnüffelvorrichtung.
- Fig. 1 ist ein schematisches Blockdiagramm einer Mehrprozessorcomputerarchitektur gemäß der vorliegenden Erfindung;
- Fig. 2 ist ein schematisches Blockdiagramm eines Prozessor in einer Mehrprozessorcomputerarchitektur, das eine Schnüffelfolge gemäß der vorliegenden Erfindung zeigt;
- Fig. 3 ist ein Flußdiagramm einer Schnüffelfolge in einer Mehrprozessorcomputerarchitektur gemäß der vorliegenden Erfindung;
- Fig. 4 ist ein Taktdiagramm eines Schnüffelns, das gemäß der Erfindung verfehlt;
- Fig. 5 ist ein Taktdiagramm eines Schnüffelns, das gemäß der Erfindung sauber trifft; und
- Fig. 6 ist ein Taktdiagramm eines Schnüffelns, das gemäß der Erfindung unsauber trifft.
- Die Erfindung schafft eine Doppelcacheschnüffelvorrichtung, die Cachekohärenzüberprüfungen bei einem Einprozessorcomputersystem, das einen Cache und eine kohärente I/O aufweist, und bei Mehrprozessorcomputersystemen aufweist.
- Fig. 1 ist ein schematisches Blockdiagramm einer beispielhaften Mehrprozessorcomputerarchitektur. Bei einer Mehrprozessorcomputerarchitektur sind eine Mehrzahl von Modulen, wie z. B. Prozessoren 10, 20, 30 mit einem Systembus 23 durch Busverbindungen 16, 22 bzw. 29 gekoppelt. Jede beliebige Anzahl von Prozessoren kann bei einer derartigen Architektur abhängig von der Prozessorgeschwindigkeit und dem Betriebssystementwurf verwendet werden. Jeder Prozessor weist eine innere Struktur auf, die eine zentrale Verarbeitungseinheit ("CPU") 11 umfaßt, die über eine innere Verbindung 12 mit einem Prozessorcachespeicher 13 gekoppelt ist. Der Prozessorcachespeicher umfaßt eine Cacheleitung 40, die aus Adreßtags, dem Status und Datenkomponenten (die detaillierter im folgenden erörtert sind) besteht. Ein Busschnittstellenmodul 15 koppelt den Prozessorcache mit dem Systembus 23 durch eine innere Verbindung 14 und eine Prozessorverbindung 16. Die Prozessoren sind angepaßt, um miteinander mit einem Systemspeicher 18, der mit dem Systembus 23 durch eine Busverbindung 17 gekoppelt ist, und mit einem System-Eingabe/Ausgabe- ("I/O-") Modul 21, das mit dem Systembus 23 durch eine Busverbindung 19 gekoppelt ist, zu kommunizieren.
- Es sollte offensichtlich sein, daß das spezifische System und die Prozessorarchitektur, die hierin beschrieben sind, für Beispielszwecke erörtert sind, und daß es nicht beabsichtigt ist, daß dieselben als eine Begrenzung bezüglich des Schutzbereiches der Erfindung aufgefaßt werden, der durch die folgenden Ansprüche definiert ist. Die Erfindung ist für viele unterschiedliche Prozessorentypen und eine Mehrzprozessorarchitektur gut angepaßt.
- Immer wenn eine Kohärenzübertragung auf den Bus 23 ausgegeben wird, führt jeder Prozessor 10, 20, 24, der als eine dritte Partei wirkt, eine Cachekohärenzüberprüfung unter Verwendung eines virtuellen Index und einer realen Adresse durch. Die Erfindung weist ferner eine Anwendung bei Systemen unter Verwendung von physisch indizierten Caches auf.
- Jeder Prozessor einer dritten Partei ist für das Signalisieren des Cachekohärenzstatus nach dem Adresszyklus verantwortlich. Der Prozessor der dritten Partei signalisiert, daß die Cacheleitung 40 desselben sich in einem von vier Zuständen befindet: gemeinsam verwendet, privat sauber (oder "exklusiv"), privat unsauber (oder "modifiziert"), oder nicht vorhanden (oder "ungültig"). Der anfordernde Prozessor interpretiert den Kohärenzstatus, um zu bestimmen, wie die Cacheleitung zu markieren ist, d. h. privat sauber, privat schmutzig oder gemeinsam verwendet. Die dritte Partei aktualisiert ferner den Cacheleitungszustand desselben, um anzuzeigen: keine Änderung, gemeinsam verwendet oder nicht anwesend.
- Wenn eine dritte Partei signalisiert, daß sich die angeforderte Leitung in dem privaten unsauberen Zustand befindet, dann leitet dieselbe eine Cache-zu-Cache-Übertragung zu einem Zeitpunkt nach dem Adresszyklus ein. Der anfordernde Prozessor wirft die Daten, die von dem Hauptspeicher für die Anfangsanfrage empfangen werden, ab, und akzeptiert stattdessen die Daten, die direkt von der dritten Partei bei einer Cache-zu-Cache-Übertragung kommen. Zu dem gleichen Zeitpunkt werden die Daten von der dritten Partei in den Hauptspeicher geschrieben. Da eine Mehrprozessorsystemarchitektur mehrere unerledigte Pipelineübertragungen ermöglicht, ist es wichtig, daß die Prozessormodule die Pipelinecachekohärenüberprüfungen durchführen können, um einen maximalen Vorteil aus der Busbandbreite zu ziehen. Für eine Erörterung einer Mehrprozessorsystemarchitektur des Typs, bei dem die Erfindung ohne weiteres eine Anwendung findet, siehe K. Chan, T. Alexander, C. Hu, D. Larson, N. Noordeen, Y. Van Atta, T. Wylegala, S. Ziai, Multiprocessor Features of the HP Corporate Business Servers, Compcon Digest of Papers (Februar 1993).
- Fig. 2 ist ein schematisches Blockdiagramm eines Prozessors in einer Mehrprozessorcomputerarchitektur, das eine beispielhafte Schnüffelfolge zeigt. Zu Beginn einer Schnüffelfolge t1 ist eine CPU 11 eines Prozessors 10 vom Durchführen von Cachezugriffen ausgesperrt, wie es durch eine logische "0" an dem Eingang der steuernden Schaltung 30 gezeigt ist, die eine Ausbreitung des CPU-Signals verhindert, während das Busschnittstellensignal zu dem Cache weitergeleitet wird; und der Prozessorcache 13 wird dann, wie es zu einem Zeitpunkt t2 gezeigt ist, zugunsten der Busschnittstelle 15 gelesen.
- Die CPU ist für Cachezugriffe nicht verriegelt, wie es durch eine logische "1" an dem Eingang der steuernden Schaltung 30 zu dem Zeitpunkt t2 gezeigt ist. Wenn das Lesen nicht zu einem Treffer führt, dann wird eine Entscheidung getroffen (wie es durch ein STOP-Zeichen 34 gezeigt ist), um den Prozessor freizugeben, und um einen normalen Prozessorbetrieb zu ermöglichen, um zu dem Schritt in dem Prozeß, der zu einem Zeitpunkt t5 gezeigt ist, fortzuschreiten. Wenn das Lesen zu einem Treffer führt, dann wird eine Entscheidung getroffen (wie es durch das STOP-Zeichen 34 gezeigt ist), um den Prozessor (wie es bei dem Schritt in dem Prozeß zu dem Zeitpunkt t3 gezeigt ist, und wie es durch eine logische "0" an dem Eingang der steuernden Schaltung 30 gezeigt ist) neu zu verriegeln, den Prozessor neu zu lesen, um zu bestätigen, daß sich der Cacheinhalt nicht während des unmittelbar vorhergehenden Intervalls geändert hat, als der Cache zuerst gelesen wurde t1, und um zu dem Cache zu schreiben, wie es bei dem Prozeßschritt des Zeitpunktes t4 gezeigt ist.
- Danach schreitet die Schnüffelvorrichtung fort, um den Prozessor freizugeben, wie es durch eine logische "1" an dem Eingang der steuernden Schaltung 30 (während des Prozeßschrittes, der zu einem Zeitpunkt t5 gezeigt ist) gezeigt ist, und um es zu ermöglichen, daß ein normaler Prozessorbetrieb fortfährt. Anstelle daß ein nicht trennbarer oder atomarer Lese- und Schreib-Betrieb für jede Kohärenzüberprüfung durchgeführt wird, wie es im Stand der Technik Praxis ist, führt die Schnüffelvorrichtung hierin lediglich eine Leseoperation durch. Wenn und nur wenn es einen Treffer gibt, dann liest die Vorrichtung den Cache neu, und schreibt dann, wenn geeignet, zu dem Cache (nicht alle Treffer erfordern eine Modifikation des Caches). Obwohl ein Treffer zu einer zusätzlichen Leseoperation führt, d. h. der Anfangs- Nur-Lese-Operation, und daher die Latenz- und Prozessorstillstands-Zeit für jeden Treffer beeinflußt, da ein Treffer typischerweise nicht zu mehr als etwa 10% der Zeit erwartet wird, reduziert die Vorrichtung wesentlich die Prozessorstillstandszeit während der verbleibenden 90% der Zeit, während der eine Kohärenzüberprüfung durchgeführt wird und eine Schreiboperation nicht erforderlich ist.
- Fig. 3 ist ein Flußdiagramm einer Schnüffelfolge bei einer Mehrprozessorcomputerarchitektur. In der Figur ist zu Beginn einer Schnüffelfolge (300) die CPU verriegelt (301) und der Prozessorcache wird gelesen (302). Die Schnüffelfolge gibt Trefferinformationen (303) zurück, die den Prozessorcache status anzeigen. Die CPU wird dann entriegelt (304). Wenn die Schnüffelfolge einen Treffer (305) zurückgegeben hat, dann verbleibt der Prozessor nicht verriegelt und der Betrieb fährt fort (312). Wenn die Schnüffelfolge einen Treffer (305) zurückgibt, dann wird die CPU neu verriegelt (306) und der Cache wird neu gelesen (307), um zu bestimmen, ob sich der Cachestatus während des kurzen Intervalls geändert hat, währenddessen der Prozessor nach dem Anfangslesen entriegelt war. Das Neulesen gibt Cachetrefferinformationen (308) zurück. Wenn kein Treffer (309) auftritt, dann wird die CPU entriegelt (311) und der Prozessorbetrieb fährt fort (312). Wenn das Neulesen einen Treffer (309) zurückgibt, dann wird der Cache geschrieben (310), wonach die CPU entriegelt (311) wird, und es dem Prozessorbetrieb ermöglicht wird, fortzufahren (312).
- Fig. 4, 5, 6 zeigen die zeitliche Steuerung eines Ausführungsbeispiels der Erfindung einschließlich dem Kohärenzprotokoll des Busses 23 und der Handlungen der Busschnittstelle 15 und des Cache 13 ansprechend auf die Busschnüffelvorgänge.
- Fig. 4 zeigt ein Schnüffeln, das den Cache verfehlt. Zu einem Zeitpunkt 0 wird eine Kohärenzleseübertragung von dem Bus durch die Busschnittstelle empfangen. Zu einem Zeitpunkt 2 alarmiert die Busschnittstelle den Cache, daß ein Nicht- Cache-modifizierendes ABFRAGE-Schnüffeln zu einem Zeitpunkt 3 folgt. Zu dem Zeitpunkt 3 wird die Adresse des Schnüffelns zu dem Cache gesendet. Zu einem Zeitpunkt 4 prüft der Cache die Tags desselben nach der Adresse, die während des Zeitpunktes 3 gesendet wurde. Zu einem Zeitpunkt 5 werden die Tagresultate zurück zu der Busschnittstelle gesendet, was ein Cacheverfehlen in diesem Fall anzeigt. Zu einem Zeitpunkt 7 wird dieses Cacheverfehlen in dem Bus zurück berichtet, und das Schnüffeln ist abgeschlossen.
- Fig. 5 zeigt ein Schnüffeln, das den Cache trifft, wobei sich die Leitung desselben in dem exklusiven jedoch nicht modifizierten (sauberen) Zustand befindet. Zu dem Zeitpunkt 0 wird eine Kohärenzleseübertragung von dem Bus durch die Busschnittstelle empfangen. Zu dem Zeitpunkt 2 alarmiert die Busschnittstellen, daß ein Nicht-Cache-modifizierendes ABFRAGE-Schnüffeln zu dem Zeitpunkt 3 folgt. Zu dem Zeitpunkt 3 wird die Adresse des Schnüffelns zu dem Cache gesendet. Zu dem Zeitpunkt 4 prüft der Cache die Tags desselben nach der Adresse, die während des Zeitpunktes 3 gesendet wurde. Zu dem Zeitpunkt 5 werden die Tagresultate zurück zu der Schnittstelle gesendet, was einen Cachetreffer auf einer sauberen Leitung anzeigt. Zu dem Zeitpunkt 7 alarmiert die Busschnittstelle den Cache, daß ein Cache-modifizierendes Schnüffeln folgt. Zu einem Zeitpunkt 8 wird die Schnüffeladresse zu dem Cache neu gesendet, dieses Mal für eine mögliche Cachemodifikation. Zu einem Zeitpunkt 9 werden die Cachetags wiederum überprüft. Zu einem Zeitpunkt 10 werden die Resultate der Tagüberprüfung zu der Busschnittstelle gesendet, was einen Treffer in einer sauberen Leitung (wiederum) anzeigt. Dann modifiziert der Cache die Tags dieser Leitung zu einem Zeitpunkt 11, was dieselbe von einer sauberen Leitung zu einer gemeinsam verwendeten Leitung ändert. Zu einem Zeitpunkt 12 signalisiert die Busschnittstelle in dem Systembus, daß der Endstatus der Leitung sich auf gemeinsam verwendet geändert hat.
- Fig. 6 zeigt ein Schnüffeln, das den Cache trifft, wobei sich die Leitung in dem exklusiven und modifizierten (unsauberen) Zustand befindet. Zu dem Zeitpunkt 0 wird eine Kohärenzleseübertragung von dem Bus durch die Busschnittstelle empfangen. Zu dem Zeitpunkt 2 alarmiert die Busschnittstelle den Cache, daß ein nicht-Cache-modifizierendes ANFRAGE- Schnüffeln zu dem Zeitpunkt 3 folgt. Zu dem Zeitpunkt 3 wird die Adresse des Schnüffelns zu dem Cache gesendet. Zu dem Zeitpunkt 4 prüft der Cache die Tags desselben nach der Adresse, die während des Zeitpunkts 3 gesendet wurde. Zu dem Zeitpunkt 5 werden die Tagresultate zu der Busschnittstelle zurückgesendet, was einen Cachetreffer in einer unsauberen Leitung anzeigt. Zu dem Zeitpunkt 7 alarmiert die Bus schnittstelle den Cache, daß ein Cache-modifizierendes Schnüffeln folgt. Zu dem Zeitpunkt 8 wird die Schnüffeladresse zu dem Cache neu gesendet, dieses Mal für eine mögliche Cachemodifikation. Zu dem Zeitpunkt 9 werden die Cachetags wiederum überprüft. Zu dem Zeitpunkt 10 werden Resultate der Tagprüfung zu der Busschnittstelle gesendet, was einen Treffer in einer unsauberen Leitung (wiederum) anzeigt. Der Cache überträgt dann den Inhalt der Leitung zu der Busschnittstelle von dem Zeitpunkt 11 zu dem Zeitpunkt 15 und ändert schließlich den Status der Leitung auf ungültig zu dem Zeitpunkt 15. Zu dem Zeitpunkt 12 signalisiert die Busschnittstelle in dem Systembus, daß das Schnüffeln eine unsaubere Leitung getroffen hat, und daß die unsaubere Leitung wieder zu dem Anforderer übertragen wird, was von dem Zeitpunkt 13 bis zu dem Zeitpunkt 17 stattfindet.
- Obwohl die Erfindung hierin unter Bezugnahme auf das bevorzugte Ausführungsbeispiel beschrieben ist, ist es Fachleuten offensichtlich, daß andere Anwendungen und Äquivalente für dieselben eingesetzt werden können, die hierin dargelegt sind, ohne von dem Geist und dem Schutzbereich der vorliegenden Erfindung abzuweichen. Beispielsweise kann die hierin genannte Schnüffelvorrichtung in einem Kohärenzüberprüfungssystem vorgesehen sein, das mehrere Benutzer oder automatisch auswählbare Schnüffelvorrichtungen umfaßt, wobei die Schnüffelvorrichtungsauswahl auf der Systemoptimierung basiert. Zusätzlich kann ein Zustandsbit vorgesehen sein, das beispielsweise durch ein Flip-Flop eingestellt wird, um die Doppelschnüffelvorrichtung zu deaktivieren, wenn die Umgebung, in der die Erfindung verwendet wird, eine Umgebung ist, bei der ein wesentlicher Betrag eines gemeinsamen Datenverwendens erwartet wird, oder bei der die erste Ebene des Schnüffelüberprüfens durch eine Schnittstellenschaltung mit Doppelcachetags durchgeführt wird, derart, daß lediglich Schnüffelvorgänge, die treffen werden, zu der Schaltung weitergeleitet werden, die die Erfindung darstellt. Das Zustandsbit kann Benutzer-ausgewählt, Software-ausgewählt oder basierend auf einer statistischen Bestimmung der Cache aktivität automatisch ausgewählt sein. Dementsprechend sollte die Erfindung lediglich durch die hierin umfaßten Ansprüche begrenzt sein.
Claims (10)
1. Eine Vorrichtung zum Überprüfen der Cachekohärenz in
einer Computerarchitektur, die einen Systemspeicher
(18) aufweist, der durch einen Systembus (23) mit
mindestens zwei Modulen (10) verbunden ist, wobei
mindestens eines der Module einen zugeordneten
Cachespeicher (13) aufweist, der folgende Merkmale aufweist:
ein Tag (40), das jedem Cache (13) zugeordnet ist, zum
Anzeigen des Cacheinhaltstatus; gekennzeichnet durch
folgende Merkmale:
eine Busschnittstelle (15), die jedem Modul zugeordnet
ist, zum Empfangen von Anforderungen von dem Systembus
(23), um die Cachekohärenz zu überprüfen, und zum
Weiterleiten der Anforderungen zu dem Cache (13); wobei
die Anforderungen eine erste Nur-Lese-Anforderung
aufweisen, der eine zweite Lese-Schreib-Anforderung folgt,
wenn und nur wenn die erste Nur-Lese-Anforderung
anzeigt, daß das Cacheadreßtag (40) mit dem der
Anforderung übereinstimmt, und die zweite
Lese-Schreib-Anforderung anfordert, daß der Cache (13) als ein Resultat
entweder einer Ungültigmachung, eines Herauskopierens
oder eines Änderns von einem sauberen zu einem
gemeinsam verwendeten Status modifiziert wird; und
wobei jedes Modul eine Verriegelung (30) zum
Unterbrechen des Zugriffs auf den Cache (13) lediglich während
einer Lese- und Lese-Schreib-Anforderung gemäß einer
Cachekohärenzüberprüfung aufweist.
2. Die Vorrichtung gemäß Anspruch 1, wobei das Cachetag
(40) ferner folgendes Merkmal aufweist:
eine Einrichtung zum Anzeigen, wie geeignet, entweder
eines modifizierten Status, bei dem der Cacheinhalt
aktueller ist als derselbe des Systemspeichers, eines
exklusiven Status, bei dem der Cacheinhalt nicht unter
den Modulen gemeinsam verwendet werden kann, eines
Gemeinsam-Verwendet-Status, bei dem der Cacheinhalt unter
den Modulen gemeinsam verwendet wird, und eines
ungültigen Status, bei dem Kopien des Cacheinhalts nicht
bei beliebigen anderen Modulen beibehalten werden.
3. Die Vorrichtung gemäß Anspruch 1 oder 2, die ferner
folgende Merkmale aufweist:
ein anforderndes Modul (10), wobei das anfordernde
Modul die Cachekohärenzüberprüfung zu den anderen Modulen
(20, 24) weiterleitet;
wobei die anderen Module (20, 24) Module einer dritten
Partei aufweisen, die angepaßt sind, um auf die
Cachekohärenzüberprüfung durch Weiterleiten der zugeordneten
Cachestatusinformationen zu dem anfordernden Modul
anzusprechen, wobei die Modulcachestatusinformationen der
dritten Partei angepaßt sind, um Austauschinformationen
für den anfordernden Modulcache zu liefern, wenn
Informationen, die in dem anfordernden Modulcache (13)
enthalten sind, anzeigen, daß das Cacheadreßtag mit dem
der Anforderung übereinstimmt, und die Anforderung
erfordert, daß der Cache modifiziert wird, und, um
Austauschinformationen von dem anfordernden Modulcache zu
empfangen, wenn Informationen, die in dem Modulcache
der dritten Partei enthalten sind, modifiziert werden
sollen.
4. Die Vorrichtung gemäß einem der Ansprüche 1 bis 3, bei
der die Verriegelung (30) Cachekohärenzüberprüfungen
dort deaktiviert, wo ein wesentlicher Pegel des
gemeinsamen Verwendens von Daten auftritt.
5. Die Vorrichtung gemäß einem beliebigen der Ansprüche 1
bis 3, bei der die Verriegelung (30)
Cachekohärenzüberprüfungen dort deaktiviert, wo eine Kohärenzüberprüfung
eines ersten Pegels durchgeführt wird, und wobei die
Vorrichtung daher lediglich Schnüffelvorgänge empfängt,
die treffen werden.
6. Ein Verfahren zum Überprüfen der Cachekohärenz in einer
Computersystemarchitektur, die einen Systemspeicher
(18) aufweist, der durch einen Systembus (23) mit
mindestens zwei Modulen (10) verbunden ist, wobei jedes
der Module einen zugeordneten Cachespeicher (13)
aufweist, gekennzeichnet durch folgende Schritte:
Verriegeln (301) eines Caches, der einer
Kohärenzprüfung unterworfen werden soll, um zu verhindern, daß ein
Modul während der Kohärenzüberprüfung auf den Cache
zugreift;
Durchführen (302) einer
Nur-Lese-Cachekohärenzüberprüfung, um zu bestimmen, ob der Cache aktuelle oder alte
Daten enthält;
Entriegeln (304) des Caches nach der
Nur-Lese-Kohärenzüberprüfung;
Neu-Verriegeln (306) des Cache;
Durchführen (307, 310) einer
Lese-Schreib-Cachekohärenzüberprüfung, wenn die
Nur-Lese-Cachekohärenzüberprüfung anzeigt, daß der Cache alte Daten enthält,
wobei der Cache neu gelesen wird, um zu bestimmen, ob
sich der Cachestatus während des Intervalls geändert
hat, während dem der Cache nach der
Nur-Lese-Cachekohärenzüberprüfung entriegelt war, und wobei ein
Schreiben zu dem Cache durchgeführt wird, um den Cacheinhalt
zu aktualisieren; und
Entriegeln (311) des Cache nach der
Lese-Schreib-Kohärenzüberprüfung.
7. Das Verfahren gemäß Anspruch 6, das ferner folgenden
Schritt aufweist:
Anzeigen für den Cache mit einem Cachetag, wie
geeignet, entweder eines modifizierten Status, bei dem
der Cacheinhalt aktueller ist als derselbe des
Systemspeichers, eines exklusiven Status, bei dem der
Cacheinhalt nicht unter den Modulen gemeinsam verwendet
werden kann, eines Gemeinsam-Verwendet-Status, bei dem
der Cacheinhalt unter den Modulen gemeinsam verwendet
wird, und eines ungültigen Status, bei dem Kopien des
Cacheinhalts bei beliebigen anderen Modulen nicht
beibehalten werden.
8. Das Verfahren gemäß Anspruch 7, das ferner folgende
Schritte aufweist:
Weiterleiten der Cachekohärenzüberprüfung zu Modulen
einer dritten Partei mit einem anfordernden Modul;
Ansprechen auf die Cachekohärenzüberprüfung durch
Weiterleiten von zugeordneten Cachestatusinformationen zu
dem anfordernden Modul von den Modulen der dritten
Partei, wobei die Modulcachestatusinformationen der
dritten Partei angepaßt sind, um Austauschinformationen
für den anfordernden Modulcache zu liefern, wenn
Informationen, die in dem anfordernden Modulcache enthalten
sind, alt sind, und um Austauschinformationen von dem
anfordernden Modulcache zu empfangen, wenn
Informationen, die in dem Modulcache der dritten Partei
enthalten sind, alt sind.
9. Das Verfahren gemäß Anspruch 6, das ferner folgenden
Schritt aufweist:
Deaktivieren der Cachekohärenzüberprüfungen dort, wo
ein wesentlicher Pegel des gemeinsamen Verwendens von
Daten auftritt.
10. Das Verfahren gemäß Anspruch 6, das ferner folgenden
Schritt aufweist:
Deaktivieren der Cachekohärenzüberprüfungen dort, wo
eine erste Pegelkohärenzüberprüfung durchgeführt wird,
und die Vorrichtung daher lediglich Schnüffelvorgänge
empfängt, die treffen werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/196,618 US6049851A (en) | 1994-02-14 | 1994-02-14 | Method and apparatus for checking cache coherency in a computer architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69421058D1 DE69421058D1 (de) | 1999-11-11 |
DE69421058T2 true DE69421058T2 (de) | 2000-04-27 |
Family
ID=22726139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69421058T Expired - Fee Related DE69421058T2 (de) | 1994-02-14 | 1994-08-25 | Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus |
Country Status (4)
Country | Link |
---|---|
US (1) | US6049851A (de) |
EP (1) | EP0667578B1 (de) |
JP (1) | JP3737834B2 (de) |
DE (1) | DE69421058T2 (de) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662216B1 (en) * | 1997-04-14 | 2003-12-09 | International Business Machines Corporation | Fixed bus tags for SMP buses |
WO1999032976A1 (en) * | 1997-12-18 | 1999-07-01 | Koninklijke Philips Electronics N.V. | Risc processor with concurrent snooping and instruction execution |
US6321307B1 (en) * | 1997-12-31 | 2001-11-20 | Compaq Computer Corporation | Computer system and method employing speculative snooping for optimizing performance |
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 |
US6631401B1 (en) | 1998-12-21 | 2003-10-07 | Advanced Micro Devices, Inc. | Flexible probe/probe response routing for maintaining coherency |
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 |
US6393529B1 (en) | 1998-12-21 | 2002-05-21 | Advanced Micro Devices, Inc. | Conversation of distributed memory bandwidth in multiprocessor system with cache coherency by transmitting cancel subsequent to victim write |
US6857051B2 (en) * | 1998-12-23 | 2005-02-15 | Intel Corporation | Method and apparatus for maintaining cache coherence in a computer system |
US6754779B1 (en) * | 1999-08-23 | 2004-06-22 | Advanced Micro Devices | SDRAM read prefetch from multiple master devices |
US6681320B1 (en) | 1999-12-29 | 2004-01-20 | Intel Corporation | Causality-based memory ordering in a multiprocessing environment |
JP2003524248A (ja) * | 2000-02-25 | 2003-08-12 | サン・マイクロシステムズ・インコーポレイテッド | アトミック操作中のキャッシュ・データ追出し防止及び高スヌープ・トラフイック処理能力を維持する方法およびその装置 |
US6347360B1 (en) * | 2000-02-25 | 2002-02-12 | Sun Microsystems, Inc. | Apparatus and method for preventing cache data eviction during an atomic operation |
US6463506B1 (en) | 2000-04-29 | 2002-10-08 | Hewlett-Packard Company | Arrangement of data within cache lines so that tags are first data received |
US6961825B2 (en) * | 2001-01-24 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Cache coherency mechanism using arbitration masks |
US6918021B2 (en) | 2001-05-10 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | System of and method for flow control within a tag pipeline |
US8055492B2 (en) * | 2002-01-10 | 2011-11-08 | International Business Machines Corporation | Non-unique results in design verification by test programs |
US7103728B2 (en) * | 2002-07-23 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | System and method for memory migration in distributed-memory multi-processor systems |
US8090914B2 (en) * | 2004-01-20 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | System and method for creating ordering points |
US7620696B2 (en) * | 2004-01-20 | 2009-11-17 | Hewlett-Packard Development Company, L.P. | System and method for conflict responses in a cache coherency protocol |
US7818391B2 (en) | 2004-01-20 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration |
US8468308B2 (en) * | 2004-01-20 | 2013-06-18 | Hewlett-Packard Development Company, L.P. | System and method for non-migratory requests in a cache coherency protocol |
US8145847B2 (en) * | 2004-01-20 | 2012-03-27 | Hewlett-Packard Development Company, L.P. | Cache coherency protocol with ordering points |
US8176259B2 (en) | 2004-01-20 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for resolving transactions in a cache coherency protocol |
US7395374B2 (en) * | 2004-01-20 | 2008-07-01 | Hewlett-Packard Company, L.P. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
US7769959B2 (en) | 2004-01-20 | 2010-08-03 | Hewlett-Packard Development Company, L.P. | System and method to facilitate ordering point migration to memory |
US20050160238A1 (en) * | 2004-01-20 | 2005-07-21 | Steely Simon C.Jr. | System and method for conflict responses in a cache coherency protocol with ordering point migration |
EP1782244A4 (de) * | 2004-07-07 | 2010-01-20 | Emc Corp | Systeme und verfahren zur bereitstellung von kohärenz eines verteilten cache |
US20060138830A1 (en) * | 2004-12-23 | 2006-06-29 | Cho-Hsin Liu | Barrel shaped chair of a racing car |
US7941610B2 (en) | 2006-04-27 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Coherency directory updating in a multiprocessor computing system |
US20080270704A1 (en) * | 2007-04-30 | 2008-10-30 | He Dingshan | Cache arrangement for improving raid i/o operations |
JP4878050B2 (ja) * | 2008-11-28 | 2012-02-15 | 富士通株式会社 | コンピュータ及び制御方法 |
US9547596B2 (en) * | 2009-12-24 | 2017-01-17 | Arm Limited | Handling of a wait for event operation within a data processing apparatus |
US20150012711A1 (en) * | 2013-07-04 | 2015-01-08 | Vakul Garg | System and method for atomically updating shared memory in multiprocessor system |
US10346330B2 (en) * | 2014-01-29 | 2019-07-09 | Red Hat Israel, Ltd. | Updating virtual machine memory by interrupt handler |
US9606925B2 (en) * | 2015-03-26 | 2017-03-28 | Intel Corporation | Method, apparatus and system for optimizing cache memory transaction handling in a processor |
US10534598B2 (en) | 2017-01-04 | 2020-01-14 | International Business Machines Corporation | Rolling upgrades in disaggregated systems |
US11153164B2 (en) | 2017-01-04 | 2021-10-19 | International Business Machines Corporation | Live, in-line hardware component upgrades in disaggregated systems |
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 |
CN112559433B (zh) * | 2019-09-25 | 2024-01-02 | 阿里巴巴集团控股有限公司 | 一种多核互联总线、核间通信方法及多核处理器 |
US10949292B1 (en) * | 2019-10-07 | 2021-03-16 | Arm Limited | Memory interface having data signal path and tag signal path |
CN112231403B (zh) * | 2020-10-15 | 2024-01-30 | 北京人大金仓信息技术股份有限公司 | 数据同步的一致性校验方法、装置、设备和存储介质 |
CN115061972B (zh) * | 2022-07-05 | 2023-10-13 | 摩尔线程智能科技(北京)有限责任公司 | 处理器、数据读写方法、装置和存储介质 |
CN115858420B (zh) * | 2023-02-23 | 2023-05-12 | 芯砺智能科技(上海)有限公司 | 用于支持多处理器架构的系统缓存架构和芯片 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091846A (en) * | 1986-10-03 | 1992-02-25 | Intergraph Corporation | Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency |
US4977498A (en) * | 1988-04-01 | 1990-12-11 | Digital Equipment Corporation | Data processing system having a data memory interlock coherency scheme |
US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
US5247648A (en) * | 1990-04-12 | 1993-09-21 | Sun Microsystems, Inc. | Maintaining data coherency between a central cache, an I/O cache and a memory |
US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
US5249284A (en) * | 1990-06-04 | 1993-09-28 | Ncr Corporation | Method and system for maintaining data coherency between main and cache memories |
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 |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
DE69319763T2 (de) * | 1992-03-04 | 1999-03-11 | Motorola, Inc., Schaumburg, Ill. | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem |
US5406504A (en) * | 1993-06-30 | 1995-04-11 | Digital Equipment | Multiprocessor cache examiner and coherency checker |
-
1994
- 1994-02-14 US US08/196,618 patent/US6049851A/en not_active Expired - Lifetime
- 1994-08-25 EP EP94113339A patent/EP0667578B1/de not_active Expired - Lifetime
- 1994-08-25 DE DE69421058T patent/DE69421058T2/de not_active Expired - Fee Related
-
1995
- 1995-01-31 JP JP01335095A patent/JP3737834B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07253928A (ja) | 1995-10-03 |
EP0667578A2 (de) | 1995-08-16 |
US6049851A (en) | 2000-04-11 |
JP3737834B2 (ja) | 2006-01-25 |
EP0667578B1 (de) | 1999-10-06 |
EP0667578A3 (de) | 1995-11-08 |
DE69421058D1 (de) | 1999-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69421058T2 (de) | Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus | |
DE69031978T2 (de) | Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern | |
DE102007030116B4 (de) | Snoop-Filter mit ausschließlicher Inhaberschaft | |
DE69621311T2 (de) | Cachespeicherkohärenzverfahren und-system | |
DE102009022151B4 (de) | Verringern von Invalidierungstransaktionen aus einem Snoop-Filter | |
DE69724354T2 (de) | Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden | |
DE69721643T2 (de) | Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen | |
DE69127111T2 (de) | Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher | |
DE68924306T2 (de) | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern. | |
DE10262164B4 (de) | Computersystem mit einer hierarchischen Cacheanordnung | |
DE69822534T2 (de) | Gemeinsame Speicherbenutzung mit variablen Blockgrössen für symmetrische Multiporzessor-Gruppen | |
DE112008002018B4 (de) | Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern | |
DE68924206T2 (de) | Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen. | |
DE69729243T2 (de) | Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen | |
DE68927172T2 (de) | Multiprozessorsystem mit cache-speichern | |
DE69130086T2 (de) | Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien | |
DE102009023898B4 (de) | Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll | |
DE69722079T2 (de) | Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen | |
DE69724353T2 (de) | Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll | |
DE69727856T2 (de) | Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren | |
DE69130583T2 (de) | Cache-Steuerungsanordnung | |
DE69801842T2 (de) | Verteilte verriegelungsoperation zum exklusiven speicherzugang während nicht elementaren operationen | |
DE69722512T2 (de) | Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll | |
DE102013201079A1 (de) | Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt | |
DE69222060T2 (de) | Semaphore umgehung. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |