DE69636452T2 - Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus - Google Patents

Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus Download PDF

Info

Publication number
DE69636452T2
DE69636452T2 DE69636452T DE69636452T DE69636452T2 DE 69636452 T2 DE69636452 T2 DE 69636452T2 DE 69636452 T DE69636452 T DE 69636452T DE 69636452 T DE69636452 T DE 69636452T DE 69636452 T2 DE69636452 T2 DE 69636452T2
Authority
DE
Germany
Prior art keywords
cache
signal
data item
local bus
caches
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
DE69636452T
Other languages
English (en)
Other versions
DE69636452D1 (de
Inventor
S. Ketan Mountain View BHAT
S. Gregory Santa Clara MATHEWS
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69636452D1 publication Critical patent/DE69636452D1/de
Application granted granted Critical
Publication of DE69636452T2 publication Critical patent/DE69636452T2/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

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Gebiet der Computerbusse. Insbesondere betrifft die vorliegende Erfindung ein Multiprocessing-Cache-Kohärenz-Protokoll zur Verwendung auf einem lokalen Prozessorbus.
  • HINTERGRUND DER ERFINDUNG
  • In vielen Computersystemen ist ein Prozessor über einen Hochgeschwindigkeitsspeicherbus mit einem internen oder externen Cache und möglicherweise einer zusätzlichen externen Speichereinrichtung gekoppelt. Dieses lokale Konglomerat wird manchmal Prozessor/Cache/Speicher-„Komplex" genannt (im folgenden als „Cache-Komplex" bezeichnet). 1 zeigt ein bekanntes Computersystem mit einem derartigen Cache-Komplex 140.
  • Die Peripherieeinrichtungen, beispielsweise Grafik-Controller, Plattenlaufwerke und Zusatzplatinen kommunizieren über einen lokalen Peripheriebus 100, wie in 1 gezeigt. Eine Busbrücke 130 kann zur Erleichterung der Kommunikation zwischen dem lokalen Peripheriebus 100 und dem Prozessor 110 und dem Cache 120 verwendet werden.
  • In vielen Computersystemen kann ein Teil oder der ganze Systemspeicher mit dem lokalen Peripheriebus gekoppelt sein. In diesen Computersystemen fordern Peripherieeinrichtungen oder „Busagenten" Transaktionen mit dem Speicher 150 über den lokalen Peripheriebus an. Während die Busagenten eine Lese- oder Schreibtransaktion mit dem Speicher 150 initiieren, werden sie als Bus-Master bezeichnet. Einer dieser Bus-Master 160 ist in 1 dargestellt.
  • Wenn der Bus-Master eine Transaktionsanforderung mit dem Speicher initiiert hat, können die anderen Cache-Komplexe die Transaktion überwachen oder „snoopen". Der Grund ist, daß ein Cache-Komplex eine Teilmenge von Datenelementen aus dem Speicher enthält, die durch die Transaktion geändert werden können. Während des Snooping-Prozesses durchsucht der Cache-Komplex seinen Cache nach dem von dem Bus-Master angeforderten Datenelement.
  • Der Cache-Komplex hält die Kohärenz aufrecht, indem er eines von verschiedenen bekannten Protokollen verwendet. Ein derartiges Protokoll ist das Durchschreibprotokoll, wobei ein Schreibzyklus immer zum Speicher durchschreibt, so daß der Speicher immer die letzte Kopie des Datenelementes enthält. Ein anderes Protokoll ist ein Rückschreibprotokoll. Das Rückschreibprotokoll ist ein verzögerter Schreibprozeß, wobei jedem Datenelement in dem Cache ein Invalid-, Exklusiv- oder Modifiziert-Zustand zugewiesen wird. Der Modifiziert-Zustand zeigt an, daß das Datenelement in dem Cache „dirty" ist, oder sich von der in dem Speicher gespeicherten Kopie unterscheidet (aktueller als diese ist). Der Exklusiv-Zustand zeigt an, daß das Datenelement im Cache „clean" ist bzw. gleich der in dem Speicher gespeicherten Kopie ist. Der Invalid-Zustand zeigt an, daß die Zuordnung für das Datenelement in dem Cache aufgehoben wurde. Eine weitere Ausführungsform eines verzögerten Schreibprotokolls wird manchmal als „MESI"-Protokoll bezeichnet, wobei den Datenelementen in dem Cache vier Zustände zugewiesen werden: modifiziert, exklusiv, shared oder invalid. Ähnlich wie bei dem Rückschreibprotokoll gibt der Modifiziert-Zustand an, daß das Datenelement dirty ist und der Exklusiv-Zustand gibt an, daß das Datenelement clean ist. Der Shared-Zustand gibt an, daß das Datenelement clean ist und es in mehr als einem Cache zu finden ist. Diese Cache-Kohärenz-Protokolle und Variationen von diesen werden in dem US-Patent Nr. 4 755 930 erörtert.
  • Für einen Typ des Bus-Cache-Kohärenz-Protokolls, der für von der Intel Corporation hergestellte moderne Prozessorsysteme spezifisch ist, werden drei Signale verwendet. Das erste Signal wird von dem Cache-Komplex angelegt, wenn ein Cache-Hit auf eine Dirty-Zeile auftritt. Dieses Signal ist in 1 als SBO# (Snoop back off) dargestellt. Das zweite Signal wird von dem Cache-Komplex angelegt, wenn der Cache-Komplex die Snoop-Operation beendet. Dieses Signal ist als SDONE (Snoop Done bzw. Snoop Erledigt) dargestellt. Das dritte Signal wird von dem Speicher angelegt, wenn der Speicher einen Cache-Hit bzw. Cache-Treffer auf eine Dirty-Zeile erfaßt. Der Speicher überwacht sowohl das SBO#-Signal als auch das SDONE-Signal, und wenn beide gleichzeitig angelegt sind, legt der Speicher das dritte Signal an, STOP#. Der Bus-Master 160 erfaßt das STOP#-Signal und hält die Speicher-Transaktion an, so daß die Dirty-Zeile aus dem Cache 120 in dem Speicher 150 aktualisiert werden kann.
  • Ein Beispiel für ein die obigen drei Signale verwendendes Busprotokoll ist der Peripheral Component Interconnect (PCI) Bus. Das PCI-Speichertransaktionsprotokoll und die Cache-Kohärenz-Signale sind beschrieben in der PCI Local Bus Specification, Rev. 2.0, veröffentlicht von der PCI Special Interest Group (SIG), Hillsboro, Oregon.
  • Da SBO#, SDONE und STOP# für Ein-Cache-Systeme definiert sind, wird dieses Dreisignalprotokoll üblicherweise nicht zur Kommunikation zwischen Cache-speichernden Prozessoren und Systemspeichern in einem Mehrprozessorsystem verwendet.
  • Ein weiteres Beispiel einer bekannten Anordnung ist in der US 5 335 335 Jackson et al. beschrieben.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Computersystem bereitgestellt, aufweisend:
    einen lokalen Bus;
    eine Mehrzahl von mit dem lokalen Bus gekoppelten Caches, von denen wenigstens einer ein Rückschreib-Cache ist;
    einen mit dem lokalen Bus gekoppelten Hauptspeicher; wenigstens einen mit dem lokalen Bus gekoppelten Prozessor;
    einen mit dem lokalen Bus gekoppelten Bus-Master zum Ausgeben einer Transaktionsanforderung an den Hauptspeicher, wobei jeder Cache der Mehrzahl von Caches eine Snoop-Operation an dem lokalen Bus durchführt und eine Mehrzahl von Signalen auf dem lokalen Bus anlegen kann, wobei die Mehrzahl von Signalen einschließt:
    ein Shared-Signal, das dann erzeugt wird, wenn ein Datenelement auf einem Cache gefunden wird, und
    ein Snoop-Busy-Signal, das aktiv ist, wenn der jeweilige Cache der Mehrzahl von Caches nach dem auf dem lokalen Bus angeforderten Datenelement sucht; und
    eine direkt mit jedem der mehreren Caches gekoppelte Schaltung, die das Snoop-Busy-Signal von jedem der mehreren Caches empfängt und in Erwiderung ein Erledigt-Signal auf dem lokalen Bus an den Hauptspeicher sendet.
  • Ferner wird gemäß der vorliegenden Erfindung ein Verfahren bereitgestellt zum Betreiben mehrerer mit einem lokalen Bus in einem Computersystem gekoppelter Caches, die wenigstens einen Rückschreib-Cache einschließen, umfassend:
    Durchführen einer Snoop-Operation, wobei eine Bus-Master-Komponente eine Transaktionsanforderung für ein Datenelement in jedem der mehreren Caches initiiert;
    Senden eines Shared-Signals aus jedem der mehrern Caches an den Bus-Master in Erwiderung des Auffindens des Datenelements in dem Cache;
    Anlegen eines Snoop-Busy-Signals für jeden der mehreren Caches, der nach einem Datenelement sucht;
    Abtasten eines Snoop-Busy-Signals aus mehreren Caches; und Senden eines Erledigt-Signals auf dem lokalen Bus an einen Hauptspeicher in Abhängigkeit von den Zuständen der Snoop-Busy-Signale.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist zur Veranschaulichung und nicht zur Beschränkung in den Figuren der zugehörigen Zeichnung dargestellt, in denen gleiche Bezugszeichen auf ähnliche Elemente hinweisen und in denen:
  • 1 ein Blockschaltbild eines bekannten Computersystems zeigt.
  • 2 ein Blockschaltbild eines Computersystems zeigt, das ein Mehrprozessor-Cache-Prozessor-Protokoll gemäß einem Ausführungsbeispiel der vorliegenden Erfindung verwendet.
  • 3 zeigt ein Prinzipschaltbild einer Snoop-Busy-Detektionsschaltung.
  • 4 zeigt ein Ablaufdiagramm eines Speicher-Lesens mit einem Treffer auf eine modifizierte Cache-Zeile.
  • 5 zeigt ein Ablaufdiagramm für ein Speicher-Lesen mit einem Treffer auf eine Shared- bzw. gemeinsam genutzte oder Exklusiv-Cache-Zeile.
  • DETAILLIERTE BESCHREIBUNG
  • Es wird ein Mehrprozessor-Lokalbus-Cache-Kohärenz-Protokoll und eine Implementierung für ein Computersystem beschrieben. Das Cache-Kohärenz-Protokoll stellt ein Verfahren zur Verfügung, mit dem mehrere mit einem lokalen Bus gekoppelte Cache-Einrichtungen während Speicher-Lese- und -Schreiboperationen ihre Kohärenz beibehalten können.
  • Das unten beschriebene Cache-Kohärenz-Protokoll ist integriert in ein Mehrprozessorcomputersystem. Das Computersystem enthält einen mit einer Mehrzahl von Cache-speichernden Prozessoren und einer Systemspeichereinrichtung gekoppelten lokalen Bus. Bei einem Ausführungsbeispiel des Computersystems ist der lokale Bus ein PCI-Bus.
  • Mit dem lokalen Bus kann eine beliebige Anzahl von Cachespeichernden Prozessoren und von Systemspeichereinrichtungen gekoppelt sein: Bei einem Ausführungsbeispiel ist der Cachespeichernde Prozessor ein interner Cache. Bei einem alternativen Ausführungsbeispiel ist der Cache speichernde Prozessor mit einem externen Cache gekoppelt.
  • Das Computersystem und das Verfahren zur Verwendung des Cache-Kohärenz-Protokolls werden hier im folgenden detaillierter beschrieben.
  • 2 zeigt ein Blockschaltbild eines Ausführungsbeispiel eines Computersystems. Das in 2 dargestellte System enthält Cache-Komplexe 210 und 220, die mit einem PCI- Bus 200 gekoppelt sind. Bei einem Ausführungsbeispiel enthalten die Cache-Komplexe 210 und 220 jeweils einen mit einem Cache und einer PCI-Brücke gekoppelten Prozessor, wie es in dem Cache-Komplex 140 in 1 dargestellt ist. Alternative Ausführungsbeispiele des Cache-Komplexes umfassen lokal miteinander gekoppelte Dualprozessoren mit nur einer Schnittstelle zu dem PCI-Bus 200, einen einzelnen Prozessor mit einem internen Cache und einfach einen Cache mit einem Cache-Controller und einer PCI-Schnittstellenlogik.
  • Bei einem Ausführungsbeispiel des Computersystems hält der Cache in jedem Cache-Komplex 210 und 220 die Kohärenz aufrecht, indem er das MESI-Protokoll verwendet. Alternative Ausführungsformen umfassen Durchschreib-Caches, Rückschreib-Caches und Schreiben-Verzögert- bzw. Write-Deferred-Caches, die vielfältige Kohärenzprotokolle verwenden.
  • Der in 2 dargestellte Bus-Master 270 repräsentiert jeden beliebigen mit dem PCI-Bus 200 gekoppelten Busagenten, der in der Lage ist, ein Lesen aus einem Speicher 250 oder ein Schreiben in diesen zu initiieren. Eine Ausführungsform des Bus-Masters 270 ist ein zu den Cache-Komplexen 210 und 220 ähnlicher Cache-Komplex. Alternative Ausführungsformen können Prozessoren, Grafik-Controller, LAN-Controller oder andere Peripherieeinrichtungen umfassen, die im Speicher gespeicherte Daten verarbeiten können.
  • Von dem Bus-Master 270 wird eine Speichertransaktion initiiert, wenn der Bus-Master 270 eine Operation an einem in dem Speicher 250 gespeicherten Datenelement ausführen möchte. Der Bus-Master 270 initiiert die Transaktion, indem er eine dem Datenelement zugeordnete Adresse an dem PCI-Bus 200 anlegt. Jeder der Cache-Komplexe 210 und 220 führt eine Snoop-Operation der Transaktion durch, indem er das Datenelement in seinem Cache sucht. Von dem Zeitpunkt, wenn der Cache-Komplex 210 die Adresse für die Snoop-Operation empfängt, bis er seine Snoop-Operation beendet und bestimmt, ob er einen „Treffer"-anzeigt oder nicht, legt er ein aktives Signal auf der SBSY(1)#-Leitung 272 an. Außerhalb dieses Zeitrahmens wird SBSY(1)# inaktiv gesteuert. In ähnlicher Weise legt der Cache- Komplex 220 ein aktives Signal auf der SBSY(2)#-Leitung 274 an. Wenn einer der Cache-Komplexe 210 oder 220 eine Kopie des Datenelements enthält, hat es einen Cache-„Treffer" gegeben.
  • Wenn ein Cache-Treffer verursacht wurde und das Datenelement in dem Cache im Modifiziert-Zustand ist, legt der Cache-Komplex ein aktives Signal auf der (SBO# bezeichneten) Leitung 266 an. Der Cache-Komplex muß das SBO#-Signal anlegen, bis er erfaßt, daß der Snoop-Zyklus beendet ist (SDONE ist aktiv). Bei einem Ausführungsbeispiel der Erfindung ist SBO# 266 eine STS-Leitung (Sustained-Tristate-Leitung). Eine STS-Leitung darf zu jeder Zeit nur von einer Einrichtung gesteuert werden. Die Leitung wird erst in ihren aktiven Zustand gesteuert, und dann für wenigstens einen Taktzyklus in ihren inaktiven Zustand gesteuert. Ein Pull-up-Widerstand ermöglicht der Leitung, den inaktiven Wert aufrecht zu erhalten, bis die Leitung wieder angesteuert wird. Einer der Cache-Komplexe 210 oder 220 kann ein Signal auf der SBO# 266-Leitung anlegen, das den aufrechterhaltenen Wert der Leitung aufhebt. Ein Cache-Komplex, der keinen Treffer auf eine modifizierte Leitung anzeigt, steuert die SBO# 266-Leitung weder auf den aktiven noch auf den inaktiven Zustand. Bei einem anderen Ausführungsbeispiel ist die SBO#-Leitung 266 eine herkömmliche Tristate-Leitung. Alternative Ausführungsformen umfassen andere Arten der gemeinsam genutzten Signalleitungen, welche so konzipiert sind, daß sie von mehreren Einrichtungen angesteuert werden können. Der Modifiziert-Zustand ist derart definiert, daß nur ein Cache die letzte Kopie des Datenelements enthält. Daher legt nur ein Cache-Komplex 210 oder 220 während einer vorgegebenen Transaktion ein Signal auf der SBO#-Leitung 266 an.
  • Bei einem anderen Ausführungsbeispiel der Erfindung verwenden ein oder mehrere Cache-Komplexe 210 und 220 ein Durchschreib-Cache-Kohärenz-Protokoll. Da ein Durchschreib-Cache immer die letzte Version eines Datenelements in dem Speicher 250 enthält, steuert ein Durchschreib-Cache die SBO#-Leitung 266 nicht an.
  • Der Speicher 250 ist mit dem PCI-Bus 200 gekoppelt. Eine Ausführungsform des Speichers 250 umfaßt einen dynamischer RAM (DRAM) und einen Speicher-Controller als Schnittstelle mit dem PCI-Bus. Bei einer alternativen Ausführungsform ist der Speicher-Controller in das Speicher-Array auf dem gleichen Siliziumchip integriert. Alternative Ausführungsbeispiele des Speichers 250 umfassen jedes beliebige bekannte Speicherdesign, das zum Speichern von Datenelementen verwendet wird.
  • Der Speicher 250 erfaßt das Anlegen des aktiven Signals auf der SBO#-Leitung 266 und der SDONE-Leitung 262. Da das SBO#-Signal 266 aktiv niedrig ist, zeigt eine logische Null (0) an, daß ein Cache-Treffer auf eine modifizierte Leitung aufgetreten ist. Das SDONE-Signal 226 ist ein logisch hohes Signal, so daß eine logische Eins (1) anzeigt, daß die Cache-Komplexe 210 und 220 die Snoop-Operation beendet haben. Die folgende Tabelle gibt die von dem Speicher 250 erfaßten möglichen Zustände an:
  • Tabelle 1
    Figure 00080001
  • Der Standby-Modus zeigt an, daß die Cache-Komplexe 210 und 220 derzeit eine Snoop-Operation durchführen und noch nicht beendet haben. Wenn der Speicher 250 den Standby-Modus erfaßt, wartet er auf die Snoop-Ergebnisse.
  • Der Clean-Zustand zeigt an, daß es keinen Cache-Treffer auf einen modifizierten Eintrag gibt und die Speicher-Lese- oder -Schreib-Transaktion kann fortfahren. Der Clean-Zustand kann auf verschiedene Weisen auftreten. Erstens, wenn es in beiden Cache-Komplexen 210 und 220 keinen Cache-Treffer gibt. Die andere Möglichkeit ist, wenn es in einem oder beiden Cache-Komplexen 210 und 220 einen Cache-Treffer gibt, aber das Treffer-Datenelement nicht in dem Modifiziert-Zustand war. Statt dessen war das Datenelement in einem Clean-, Exklusiv- oder Shared-Zustand.
  • Der Dirty-Zustand zeigt an, daß es einen Cache-Treffer in einem der Cache-Komplexe 210 und 220 gab, und daß das Treffer-Datenelement modifiziert ist bzw. jünger ist als dasjenige im Speicher 250. Wenn der Speicher 250 den Dirty-Zustand über die SBO# 266- und SDONE 262-Signale erfaßt, legt er das STOP#-Signal auf der Leitung 264 an. Das STOP#-Signal wird von dem Bus-Master 270 erfaßt und die Speichertransaktion wird angehalten, um zu ermöglichen, daß das Dirty-Datenelement in den Speicher 250 rückgeschrieben wird.
  • Bei einem Ausführungsbeispiel verwendet einer oder mehrere der Cache-Komplexe 210 und 220 ein Durchschreibprotokoll. Da ein Durchschreib-Cache immer die letzte Version des im Speicher gehaltenen Datenelements enthält, gibt es keinen Grund, eine Speichertransaktion anzuhalten, indem das STOP# auf der Leitung 264 angelegt wird.
  • Bei der Ausführungsform, bei der die Cache-Komplexe 210 und 220 ein Rückschreiben- oder MESI-Cache-Kohärenz-Protokoll verwenden, können die Cache-Komplexe 210 und 220 das SH#-Signal während Speiche-Lese-Operationen auf die Leitung 268 steuern. Wenn eine Snoop-Operation auf einem der Cache-Komplexe 210 oder 220 zu einem Treffer auf ein Datenelement in dem Shared- oder Exklusiv-Zustand führt, dann legt der Cache-Komplex ein aktives Signal auf der SH#-Leitung 268 an. Bei einem Ausführungsbeispiel ist SH# ein aktiv niedriges Signal, so daß eine logische Null (0) einen Cache-Treffer auf eine Shared- oder Exklusiv-Leitung anzeigt. Es gibt die Möglichkeit, daß mehrere der Cache-Komplexe 210 und 220 das Datenelement in dem Shared-Zustand enthalten, so daß die SH#-Leitung 268 von mehr als einer Quelle gesteuert werden kann. Bei einem Ausführungsbeispiel ist die SH#-Leitung 268 eine Sustained-Tristate-Signal, wie unter Bezug auf die obige SBO#-Signalleitung 266 oben erläutert wurde. Bei alternativen Ausführungsbeispielen wird die SH#-Signalleitung 268 unter Verwendung einer der anderen wohlbekannten Designs implementiert, welche mehreren Einrichtungen ermöglichen, ein Shared-Signal zu steuern.
  • Eine Ausführungsform des Bus-Masters 270 enthält einen ein Rückschreib- oder MESI-Protokoll verwendenden Cache, und ist ähnlich zu den Cache-Komplexen 210 und 220 aufgebaut. Bei dieser Ausführungsform überwacht der Bus-Master 270 den Zustand der SH#-Leitung 268 während Speicher-Lese-Transaktionen. Wenn der Bus-Master 270 ein aktives Anlegen auf der SH#-Leitung 268 und der SDONE-Leitung 262 erfaßt, weiß der Bus-Master 270, daß das aus dem Speicher 250 gelesene Datenelement auch in wenigstens einem Cache-Komplex 210 oder 220 angeordnet ist. Der Bus-Master 270 versetzt das Datenelement daher in den Shared-Zustand in seinem Cache, wenn es aus dem Speicher 250 empfangen wird, oder verursacht, daß der Cache-Komplex, der die Zeile enthält, in den Ungültig- bzw. Invalid-Zustand übergeht. Da der Bus-Master 270 die SH#-Leitung 268 nur während Schreib-Lese-Operationen überwacht, ist die Möglichkeit optional, während Speicher-Schreib-Operationen ein Signal auf die SH#-Leitung 268 steuern zu können. Bei einer alternativen Ausführungsform legt ein Cache-Komplex daher ein Signal auf SH# 268 während Speicher-Schreib-Operationen an.
  • Bei einer Ausführungsform verwenden die in den Cache-Komplexen 210 und 220 enthaltenen Caches ein Durchschreib-Cache-Kohärenz-Protokoll. Wenn der Durchschreib-Cache ein Datenelement in dem Shared- bzw. Exklusiv-Zustand enthält, steuert er das SH#-Signal 268 in ähnlicher Weise wie der Rückschreib-Cache-Komplex.
  • Wie oben erwähnt, legen die Cache-Komplexe 210 und 220 die Signale SBSY(1)# auf Leitung 272 und SBSY(2)# auf Leitung 274 an. Diese Signale werden in die Detektionsschaltung 260 eingespeist, welche erfaßt, wenn beide Signale auf den Leitungen 272 und 274 weggenommen bzw. unterbrochen wurden. 3 enthält ein Prinzipschaltbild der Detektionsschaltung 260. Die SBSY(1)#-Leitung 272 und die SBSY(2)#-Leitung 274 sind zugeführt zu einem UND-Gatter 300. Da SBSY(1)# und SBSY(2)# beide aktiv niedrig sind, zeigt ein Wert einer logischen Null (0) an, daß die Cache-Komplexe 210 bzw 220 noch belegt sind. Wenn beide Leitungen 272 und 274 eine logische Eins (1) sind, wobei dies anzeigt, daß die Snoop-Operation von beiden Cache-Komple xen 210 und 220 beendet wurde, dann legt das UND-Gatter 300 ein Signal auf der Leitung 322 an. Dieses Signal wiederum wird in das Latch 310 eingespeist, das von dem PCI-Takt 324 getaktet wird. Das Latch 310 wird zur Synchronisation verwendet, da das PCI-Bus-Protokoll mit der ansteigenden Flanke jedes PCI-Taktes synchronisiert ist. Wenn das Signal 322 latch-gespeichert ist, wird es auf der SDONE-Leitung 262 angelegt. Das Signal auf der SDONE-Leitung 262 wird dann an die Cache-Komplexe 210 und 220, den Speicher 250 und den Bus-Master 270 gesendet, um anzuzeigen, daß die Snoop-Operation beendet wurde.
  • 4 zeigt ein Zeitdiagramm, das ein Beispiel einer Speicher-Lese-Operation mit einem Cache-Treffer auf eine modifizierte Zeile darstellt. Jedes der Signale in 4 ist auf der ansteigenden Flanke des PCI-Taktes 400 aktiv. Daher wird jede Taktperiode separat analysiert, um die Zeitsteuerung und die Synchronisation der relevanten Signale zu veranschaulichen.
  • Das Zeitdiagramm von 4 wird unter Bezugnahme auf das Computersystem gemäß 2 erläutert.
  • Während des ersten PCI-Taktzyklus 401 wird das FRAME#-Signal 410 von dem Bus-Master 270 für einen Taktzyklus in seinen aktiven Zustand heruntergezogen. Dies initiiert die Lesetransaktion mit dem Speicher 250. Gleichzeitig wird die Adresse 421 auf AD 420 von dem Bus-Master 270 angelegt.
  • Im nächsten Takt 402, wird die Adresse 421 von den Cache-Komplexen 210 und 220 und dem Speicher 250 empfangen.
  • Während des Taktes 403 snoopen die Cache-Komplexe die Lese-Transaktionsanforderung, indem sie in ihren Caches nach der Adresse 421 suchen. Bei dem in 4 gezeigten Ausführungsbeispiel verwenden die Cache-Komplexe ein Rückschreib- oder MESI-Kohärenz-Protokoll. Der Cache-Komplex 210 legt SBSY(1)# 440 an, indem er es während des Taktes 403 herunterzieht. Zur gleichen Zeit legt der Cache-Komplex 220 SBSY(2)# 450 an. Während des Taktes 403 wird das Signal IRDY# 430 auch heruntergezogen, wobei dies anzeigt, daß der Bus-Master nun bereit ist, um die angeforderten Daten aus dem Speicher 250 zu akzeptieren.
  • Bei dem in 4 dargestellten Ausführungsbeispiel beendet der Cache-Komplex 210 die Snoop-Operation in einem Takt. Somit wird SBSY(1)# 440 in dem Takt 404 nach oben gezogen. Dagegen benötigt der Cache-Komplex 220 zwei Takte für die Snoop-Operation, so daß SBSY(2)# 450 im Takt 405 hoch gezogen wird.
  • Die Detektionsschaltung 260 erfaßt, wenn SBSY(1)# 440 und SBSY(2)# 450 beide hoch gezogen wurden, und legt in dem Takt 406 SDONE 470 an. Bei dem in 4 dargestellten speziellen Ausführungsbeispiel enthält der Cache-Komplex 220 das der Adresse 421 zugeordnete Datenelement und es befindet sich im Modifiziert-Zustand. Folglich legt der Cache-Komplex 220 im Takt 406 ein niedriges Signal auf SBO# 480 an, und zwar im Taktzyklus, nachdem SBSY(2)# weggenommen wurde. Das Signal SBO# 480 kann von einem der Cache-Komplexe 210 oder 220 auf niedrig gezogen werden, jedoch sei daran erinnert, daß nur ein Cache-Komplex 210 oder 220, die Daten in dem „Modifiziert"- oder Dirty-Zustand haben kann und folglich nur ein Cache-Komplex das SBO#-Signal 480 zu einem Zeitpunkt ansteuern kann. Im Takt 406 erfaßt der Speicher 250 auch das Anlegen des SBO#-Signals 480 und des SDONE-Signals 470 zur gleichen Zeit.
  • Da das SBO#-Signal 480 anzeigt, daß der Speicher 250 nicht die letzte Kopie des Datenelementes enthält, wird die Lese-Transaktion zwischen dem Bus-Master 270 und dem Speicher nicht wie geplant beendet. Der Bus-Master 270 erwirbt statt dessen die letzte Version des Datenelements.
  • Der Speicher 250 legt daher das STOP#-Signal 490 im Takt 407 an, um die Speicher-Lese-Anforderung von dem Bus-Master 270 anzuhalten. Wenn die Lese-Transaktion angehalten wurde, wird das modifizierte Datenelement aus dem Cache-Komplex 220 bei einer Ausführungsform in den Speicher 250 geschrieben, und anschließend initialisiert der Bus-Master 270 erneut die Lese-Anforderung aus dem Speicher 250. Alternative Ausführungsformen verwenden andere Verfahren zur Weiterleitung der letzten Kopie des Datenelementes aus dem Cache-Komplex 220 an den Bus-Master 270 und zur Aktualisierung des Speichers 250.
  • 5 zeigt ein Zeitdiagramm einer Speicher-Lese-Transaktionsanforderung mit einem Treffer auf eine Exklusiv- oder Shared-Zeile. Das Diagramm von 5 wird unter Bezugnahme auf das Computersystem gemäß 2 erläutert.
  • Der Bus-Master 270 fordert ein Speicher-Lesen unter Verwendung der gleichen Schritte wie in 4 an. Daher ist das Zeitdiagramm gemäß 5 für die Takte 501 bis 505 identisch mit dem Zeitdiagramm gemäß 4 für die Schritte 401 bis 405.
  • Bei dem in 5 dargestellten Ausführungsbeispiel enthält der Cache-Komplex 220 das der Adresse 521 zugeordnete Datenelement in dem Exklusiv-Zustand. Der Exklusiv-Zustand zeigt an, daß das Datenelement im Cache-Komplex 220 das gleiche ist, wie die in dem Speicher 250 gehaltene Kopie. Das Zeitdiagramm gemäß 5 sieht für den Fall genauso aus, in dem das Datenelement in dem Cache-Komplex 220 im Shared-Zustand ist.
  • Im Takt 506 wird das SDONE-Signal 570 angelegt, um anzuzeigen, daß die Cache-Komplexe 210 und 220 die Snoop-Operation beendet haben. Gleichzeitig wird SH# 560 vom Cache-Komplex 220 angelegt oder auf niedrig gezogen.
  • Der Bus-Master 270 erfaßt das gleichzeitige Anlegen von SH# 560 und SDONE 570 im Takt 507. Bei einer Ausführungsform der Erfindung enthält der Bus-Master 270 einen ein Rückschreib- oder MESI-Kohärenz-Protokoll verwendenden Cache. Bei dieser Ausführungsform fordert das gleichzeitige Anlegen von SH# 560 und SDONE 570 dem Bus-Master 270 auf, das aus dem Speicher 250 gelesene Datenelement in dem Shared-Zustand in den Cache des Bus-Masters zu bringen.
  • In der in 5 gezeigten Transaktion muß die Lese-Anforderung nicht angehalten werden, wie in der in 4 gezeigten Transaktion. Daher sind das SBO#-Signal 580 und das STOP#-Signal 590 nicht angelegt.
  • Bei einer alternativen Ausführungsform der Erfindung hat der Bus-Master 270 keinen Cache. Daher wird das SH#-Signal 560 von dem Bus-Master 270 nicht überwacht. Bei noch einer anderen Ausführungsform enthält der Bus-Master 270 einen Cache, der ein Kohärenz-Protokoll verwendet, welches keinen Shared-Zustand umfaßt. Wiederum muß der Bus-Master 270 das SH#-Signal 560 nicht überwachen.
  • In der vorangegangenen detaillierten Beschreibung wurde somit ein Computersystem und ein Verfahren zum Aufrechterhalten der Cache-Kohärenz in einem Mehrprozessorsystem über einen lokalen Peripheriebus beschrieben. Das beschriebene Computersystem kann einen PCI-Bus oder andere typische lokale Busse zur Kommunikation zwischen Cache-Komplexen verwenden. Das Computersystem kann eine unbegrenzte Mehrzahl von Cache-Komplexen enthalten, die verschiedene Cache-Kohärenz-Protokolle verwenden. Außerdem kann das beschriebene Computersystem eine Mehrzahl von mit dem lokalen Bus gekoppelten Systemspeichereinrichtungen verwenden.
  • Das beschriebene Verfahren ermöglicht Cache-Komplexen, eine Cache-Kohärenz zwischen der Mehrzahl von Cache-Komplexen und den mit dem lokalen Bus gekoppelten Systemspeichereinrichtungen aufrecht zu erhalten.
  • In der vorangegangenen Beschreibung wurde die Erfindung unter Bezugnahme auf spezielle beispielhafte Ausführungsformen von dieser beschrieben. Es wird jedoch klar sein, daß verschiedene Modifikationen und Änderungen an dieser vorgenommen werden können, ohne den Schutzbereich der Erfindung zu verlassen, der in den beigefügten Ansprüchen definiert ist. Die Beschreibung und die Zeichnungen sollen daher der Veranschaulichung und nicht der Beschränkung dienen.

Claims (12)

  1. Ein Computersystem, aufweisend: einen lokalen Bus (200); eine Mehrzahl von mit dem lokalen Bus (200) gekoppelten Caches (210, 220), von denen wenigstens einer ein Rückschreib-Cache ist; einen mit dem lokalen Bus (200) gekoppelten Hauptspeicher (250); wenigstens einen mit dem lokalen Bus (200) gekoppelten Prozessor; einen mit dem lokalen Bus (220) gekoppelten Bus-Master (270) zum Ausgeben einer Transaktionsanforderung an den Hauptspeicher, wobei jeder Cache der Mehrzahl von Caches eine Snoop-Operation an dem lokalen Bus durchführt und eine Mehrzahl von Signalen auf dem lokalen Bus anlegen kann, wobei die Mehrzahl von Signalen einschließt: ein Shared-Signal (268), das dann erzeugt wird, wenn ein Datenelement auf einem Cache gefunden wird, und ein Snoop-Busy-Signal (272, 274), das aktiv ist, wenn der jeweilige Cache der Mehrzahl von Caches nach dem auf dem lokalen Bus (200) angeforderten Datenelement sucht; und eine direkt mit jedem der mehreren Caches gekoppelte Schaltung (260), die das Snoop-Busy-Signal von jedem der mehreren Caches empfängt und in Erwiderung ein Erledigt-Signal (262) auf dem lokalen Bus (200) an den Hauptspeicher (250) sendet.
  2. Das Computersystem nach Anspruch 1, wobei der lokale Bus (200) ein Peripheriekomponentenschnittstellen(PCI)-Bus ist, der gemäß einem Protokoll betrieben wird.
  3. Das Computersystem nach Anspruch 2, wobei das Erledigt-Signal (262) ein Snoop-Erledigt(SDONE)-Signal ist, das an jeden der mehreren Caches und an den Hauptspeicher gesendet wird.
  4. Das Computersystem nach Anspruch 1, wobei der Cache (210, 220) einen Satz von Status-Bits für jedes Datenelement in dem Cache speichert, wobei der Satz ein Modifiziert-Bit, ein Exklusiv-Bit, ein Shared-Bit und ein Invalid-Bit einschließt.
  5. Das Computersystem nach Anspruch 4, wobei dann, wenn das Datenelement in einem Exklusiv-Status vorgefunden wird, der Cache über den lokalen Bus (200) das Shared-Signal an einen Bus-Master angelegt, der die Transaktionsanforderung initiierte, und einen zugehörigen Satz von Status-Bits derart ändert, daß er anzeigt, daß das Datenelement einen Shared-Status aufweist.
  6. Das Computersystem nach Anspruch 1, wobei dann, wenn das Datenelement während eines Snoop in einem Modifiziert-Zustand vorgefunden wird, der Cache ein Snoop-Back-Off(SBO)-Signal (266) gemäß einem Protokoll an den Hauptspeicher anlegt und ein Rückschreiben des Datenelements zu dem Hauptspeicher initiiert.
  7. Ein Verfahren zum Betreiben mehrerer mit einem lokalen Bus in einem Computersystem gekoppelter Caches, die wenigstens einen Rückschreib-Cache einschließen, umfassend: Durchführen einer Snoop-Operation, wobei eine Bus-Master-Komponente eine Transaktionsanforderung für ein Datenelement in jedem der mehreren Caches initiiert; Senden eines Shared-Signals aus jedem der mehreren Caches an den Bus-Master in Erwiderung des Auffindens des Datenelements in dem Cache; Anlegen eines Snoop-Busy-Signals für jeden der mehreren Caches, der nach einem Datenelement sucht; Abtasten eines Snoop-Busy-Signals aus den mehreren Caches; und Senden eines Erledigt-Signals (262) auf dem lokalen Bus an einen Hauptspeicher in Abhängigkeit von den Zuständen der Snoop-Busy-Signale.
  8. Das Verfahren nach Anspruch 7, wobei das Shared-Signal aus mehr als einem Cache gleichzeitig über ein einzige Leitung gesendet wird.
  9. Das Verfahren nach Anspruch 7, ferner umfassend: Speichern einer Mehrzahl von Datenelementen in den mehreren Caches mit einem Satz von Status-Bits für jedes Datenelement; Ändern des Zustands eines einem Datenelement zugeordneten Satzes von Status-Bits gemäß dem Shared-Signal; Anlegen des Shared-Signals dann, wenn die Status-Bits anzeigen, daß das Datenelement in den mehreren Caches in einem nicht-modifizierten Zustand vorhanden ist; und Anlegen eines Signals zum Initiieren eines Rückschreibens des Datenelements in den Hauptspeicher dann, wenn die Status-Bits anzeigen, daß das Datenelement in den mehreren Caches in einem modifizierten Zustand vorhanden ist.
  10. Das Verfahren nach Anspruch 9, wobei der Satz von Status-Bits Modifiziert-, Exklusiv-, Shared-, Invalid-Bits (MESI-Bits) aufweist, und wobei der lokale Bus ein Peripheriekomponentenschnittstellen(PCI)-Bus ist.
  11. Das Verfahren nach Anspruch 9, wobei das Signal zum Initiieren eines Rückschreibens ein Snoop-Back-Off(SBO)-Signal ist.
  12. Das Verfahren nach Anspruch 9, wobei dann, wenn das Datenelement in den mehreren Caches in einem Exklusiv-Zustand vorgefunden wird, das Shared-Signal angelegt wird und der Zustand des Satzes von Status-Bits derart geändert wird, daß er anzeigt, daß das Datenelement geteilt (shared) ist.
DE69636452T 1995-03-17 1996-03-15 Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus Expired - Fee Related DE69636452T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US40615395A 1995-03-17 1995-03-17
US406153 1995-03-17
PCT/US1996/003614 WO1996029653A1 (en) 1995-03-17 1996-03-15 Multi-processing cache coherency protocol on a local bus

Publications (2)

Publication Number Publication Date
DE69636452D1 DE69636452D1 (de) 2006-09-28
DE69636452T2 true DE69636452T2 (de) 2007-03-29

Family

ID=23606754

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69636452T Expired - Fee Related DE69636452T2 (de) 1995-03-17 1996-03-15 Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus

Country Status (7)

Country Link
US (1) US5802577A (de)
EP (1) EP0815513B1 (de)
JP (1) JP3787155B2 (de)
AU (1) AU693334B2 (de)
DE (1) DE69636452T2 (de)
MX (1) MX9706592A (de)
WO (1) WO1996029653A1 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875469A (en) * 1996-08-26 1999-02-23 International Business Machines Corporation Apparatus and method of snooping processors and look-aside caches
JP3288261B2 (ja) * 1997-06-19 2002-06-04 甲府日本電気株式会社 キャッシュシステム
US6081876A (en) * 1997-09-22 2000-06-27 Hewlett-Packard Company Memory error containment in network cache environment via restricted access
US5983024A (en) * 1997-11-26 1999-11-09 Honeywell, Inc. Method and apparatus for robust data broadcast on a peripheral component interconnect bus
US6289419B1 (en) * 1998-03-06 2001-09-11 Sharp Kabushiki Kaisha Consistency control device merging updated memory blocks
US6308255B1 (en) * 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6480952B2 (en) 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6192453B1 (en) * 1998-07-13 2001-02-20 International Business Machines Corporation Method and apparatus for executing unresolvable system bus operations
US6604162B1 (en) 2000-06-28 2003-08-05 Intel Corporation Snoop stall reduction on a microprocessor external bus
GB0028353D0 (en) * 2000-11-21 2001-01-03 Aspex Technology Ltd Improvements relating to digital data communications
JP2002342162A (ja) * 2001-05-14 2002-11-29 Nec Corp メモリアクセス制御方式及びホストブリッジ
US6799247B1 (en) * 2001-08-23 2004-09-28 Cisco Technology, Inc. Remote memory processor architecture
US7100001B2 (en) * 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US6983348B2 (en) * 2002-01-24 2006-01-03 Intel Corporation Methods and apparatus for cache intervention
US20040153611A1 (en) * 2003-02-04 2004-08-05 Sujat Jamil Methods and apparatus for detecting an address conflict
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US7406565B2 (en) * 2004-01-13 2008-07-29 Hewlett-Packard Development Company, L.P. Multi-processor systems and methods for backup for non-coherent speculative fills
US8281079B2 (en) * 2004-01-13 2012-10-02 Hewlett-Packard Development Company, L.P. Multi-processor system receiving input from a pre-fetch buffer
US7340565B2 (en) * 2004-01-13 2008-03-04 Hewlett-Packard Development Company, L.P. Source request arbitration
US8301844B2 (en) * 2004-01-13 2012-10-30 Hewlett-Packard Development Company, L.P. Consistency evaluation of program execution across at least one memory barrier
US7383409B2 (en) 2004-01-13 2008-06-03 Hewlett-Packard Development Company, L.P. Cache systems and methods for employing speculative fills
US7409500B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Systems and methods for employing speculative fills
US7409503B2 (en) * 2004-01-13 2008-08-05 Hewlett-Packard Development Company, L.P. Register file systems and methods for employing speculative fills
US7376794B2 (en) * 2004-01-13 2008-05-20 Hewlett-Packard Development Company, L.P. Coherent signal in a multi-processor system
US7380107B2 (en) * 2004-01-13 2008-05-27 Hewlett-Packard Development Company, L.P. Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss
US7360069B2 (en) * 2004-01-13 2008-04-15 Hewlett-Packard Development Company, L.P. Systems and methods for executing across at least one memory barrier employing speculative fills
US7856534B2 (en) 2004-01-15 2010-12-21 Hewlett-Packard Development Company, L.P. Transaction references for requests in a multi-processor network
US7962696B2 (en) * 2004-01-15 2011-06-14 Hewlett-Packard Development Company, L.P. System and method for updating owner predictors
US7240165B2 (en) * 2004-01-15 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for providing parallel data requests
US8090914B2 (en) * 2004-01-20 2012-01-03 Hewlett-Packard Development Company, L.P. System and method for creating ordering points
US7818391B2 (en) * 2004-01-20 2010-10-19 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration
US7143245B2 (en) * 2004-01-20 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for read migratory optimization 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
US7177987B2 (en) * 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
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
US7769959B2 (en) * 2004-01-20 2010-08-03 Hewlett-Packard Development Company, L.P. System and method to facilitate ordering point migration to memory
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
US7149852B2 (en) * 2004-01-20 2006-12-12 Hewlett Packard Development Company, Lp. System and method for blocking data responses
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
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
JP5587539B2 (ja) * 2004-11-24 2014-09-10 コーニンクレッカ フィリップス エヌ ヴェ ローカルメモリデータのコヒーレントなキャッシュ処理
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
DE4037332C2 (de) * 1990-11-23 1995-06-29 Siemens Nixdorf Inf Syst Verfahren zur Fehlerüberwachung der Datenkonsistenz in einem Datenverarbeitungssystem und Schaltungsanordnung zur Durchführung des Verfahrens
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5426765A (en) * 1991-08-30 1995-06-20 Compaq Computer Corporation Multiprocessor cache abitration
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US5301298A (en) * 1991-10-11 1994-04-05 Intel Corporation Processor for multiple cache coherent protocols
US5485592A (en) * 1992-04-07 1996-01-16 Video Technology Computers, Ltd. Write back cache controller method and apparatus for use in a system having a CPU with internal cache memory

Also Published As

Publication number Publication date
MX9706592A (es) 1997-11-29
AU693334B2 (en) 1998-06-25
JPH11502345A (ja) 1999-02-23
JP3787155B2 (ja) 2006-06-21
DE69636452D1 (de) 2006-09-28
AU5094696A (en) 1996-10-08
EP0815513B1 (de) 2006-08-16
EP0815513A4 (de) 1999-08-04
EP0815513A1 (de) 1998-01-07
WO1996029653A1 (en) 1996-09-26
US5802577A (en) 1998-09-01

Similar Documents

Publication Publication Date Title
DE69636452T2 (de) Mehrprozessor-cachespeicherkohärenzprotokoll für einen lokalbus
DE69423874T2 (de) Verbessertes Schema zur geordneten Cachespeicherkohärenz
DE69319763T2 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69900797T2 (de) Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen
DE69524564T2 (de) Kohärenz- und synchronisationsmechanismus für ein-/ausgangkanalsteuereinheiten in einem datenverarbeitungssystem
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE69031086T2 (de) Cache-Speicherinhaltssteuerung in Mehrprozessornetzwerken
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE68902193T2 (de) Datenspeicheranordnung.
DE3486161T2 (de) Datenverarbeitungssystem mit Datenkohärenz.
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69706934T2 (de) Rechnersystem mit Speicherung der Speicheraktualisierungsgeschichte
DE3689042T2 (de) Gerät zur Pufferung von Schreibanforderungen.
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69604564T2 (de) Busbrückenschaltung und verfahren mit vorhersage-snoopoperationen
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE69628493T2 (de) Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
DE69028066T2 (de) Kombinierte synchrone und asynchrone Speichersteuerung
DE69222060T2 (de) Semaphore umgehung.
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69424272T2 (de) Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus
DE69812685T2 (de) System und verfahren zur spekulativen arbitrierung bei datenübertragung

Legal Events

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