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örmechanismus

Info

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
Application number
DE69421058T
Other languages
English (en)
Other versions
DE69421058D1 (de
Inventor
William R. Bryg
Kenneth K. Chan
Eric Delano
John F. Shelton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69421058D1 publication Critical patent/DE69421058D1/de
Publication of DE69421058T2 publication Critical patent/DE69421058T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache 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

    Hintergrund der Erfindung Technisches Gebiet
  • 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.
  • Beschreibung Stand der Technik
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Detaillierte Beschreibung der Erfindung
  • 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.
DE69421058T 1994-02-14 1994-08-25 Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus Expired - Fee Related DE69421058T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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