DE68924206T2 - Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen. - Google Patents

Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen.

Info

Publication number
DE68924206T2
DE68924206T2 DE68924206T DE68924206T DE68924206T2 DE 68924206 T2 DE68924206 T2 DE 68924206T2 DE 68924206 T DE68924206 T DE 68924206T DE 68924206 T DE68924206 T DE 68924206T DE 68924206 T2 DE68924206 T2 DE 68924206T2
Authority
DE
Germany
Prior art keywords
memory
cache
bus
primary
address
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
DE68924206T
Other languages
English (en)
Other versions
DE68924206D1 (de
Inventor
Hugh W Durdan
Rebecca L Stamm
Michael G Uhler
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE68924206D1 publication Critical patent/DE68924206D1/de
Application granted granted Critical
Publication of DE68924206T2 publication Critical patent/DE68924206T2/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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating 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)
  • Multi Processors (AREA)

Description

  • Die im folgenden genannte Patentanmeldung die auf den selben Rechtsnachfolger übertragen wurde wie die vorliegende Patentanmeldung, ist mit dieser gleichzeitig eingereicht worden und hat verwandte Inhalte zum Gegenstand:
  • Mehrprozessor-Computersysteme mit gemeinsamem Speicher und privaten Cache-Speichern, von Michael A. Gallander George Michael Uhler und W. Hugh Durdan, Seriennummer EP-0349123
  • Diese Erfindung betrifft allgemein Computersysteme, die Cache- Speicher verwenden, und sie betrifft insbesondere Mehrprozessor-Computersysteme mit einer Vielzahl von Kopien gemeinsamer Daten, die in irgendeinem dieser lokalen Cache-Speicher oder in allen gespeichert sind.
  • Die Architektur eines typischen Einzelprozessor-Rechensystems kann als Variation des "von-Neumann-Rechenmodells" betrachtet werden. Gemäß diesem Modell werden Befehle und Daten in demselben Speicher gespeichert, und der Prozessor holt die Befehle einen nach dem anderen aus dem Speicher, wobei er Operationen an Daten so durchführt, wie sie in den Befehlen spezifiziert sind. Da sich die Geschwindigkeit der Prozessoren erhöht hat, bestand die Notwendigkeit, Wege zu finden, die Zugriffszeit des Hauptcomputer-Speichers an die Rechengeschwindigkeit des Prozessors in einer geeigneteren Weise anzupassen. Ein bekannter Weg, um dieses Ziel zu erreichen, besteht darin, Cache-Speicher zu verwenden, die typischerweise eine viel schnellere Zugriffszeit aufweisen als der Hauptspeicher, jedoch auch um ein Vielfaches teurer sein können als Hauptspeicher. Aus praktischen Überlegungen heraus sind Cache- Speicher daher für gewöhnlich viel kleiner als Hauptspeicher.
  • Ein Cache-Speicher enthält irgendeine Teilmenge der im Hauptspeicher gespeicherten Informationen und ist zwischen der Verarbeitungseinheit und dem Systembus angeordnet der den Datenweg zwischen einem Prozessor und dem Hauptspeicher liefert. Wenn ein Prozessor versucht, auf eine Hauptspeicherstelle zuzugreifen, die als Kopie in seinem Cache-Speicher vorliegt (ein Cache-"Treffer"), so ist kein Zugriff auf den Hauptspeicher erforderlich, um der CPU den angeforderterten Wert zuzuführen, und der Prozessor kann seinen Betrieb schneller wiederaufnehmen. Wenn der Prozessor andererseits versucht, auf eine Hauptspeicherstelle zuzugreifen, die nicht als Kopie in seinem Cache-Speicher vorliegt (ein Cache-"Fehltreffer"), so muß ein Zugriff auf den Hauptspeicher erfolgen. In diesem Fall werden die Lesedaten sowohl zum Prozessor als auch zum Cache-Speicher gesendet, so daß irgendwelche nachfolgenden Versuche, auf die Speicherstelle zuzugreifen, Cache-Treffer zur Folge haben. Auf diese Weise wird die effektive Speicherzugriffszeit für den Prozessor auf einen Wert reduziert, der irgendwo zwischen der schnellen Zugriffszeit des Cache-Speichers und der langsameren Zugriffszeit des Hauptspeichers liegt. Da der Cache-Speicher für gewöhnlich um eine Größenordnung oder mehr kleiner ist als der Hauptspeicher, muß das Computer-Teilsystem, das den Cache-Speicher steuert, Verfahren anwenden, mit denen ermittelt wird, welche Speicherstelle welcher Cache- Speicherstelle entsprechen soll (Mapping- bzw. Umsetzungsfunktion), und welche Cache-Speicherstelle überschrieben werden sollte für den Fall, daß eine neue Speicherstelle in einen bereits vollen Cache-Speicher geschrieben werden soll (Cache-Austauschalgorithmus). Eine umsichtige Auswahl dieser Konfigurationsoptionen kann in einer Cache-"Trefferquote" (Prozentsatz der Speicher-Zugriffsanforderungen, die in Cache-Treffern resultieren) von 90% bis 99% resultieren.
  • Ein weiterer wesentlicher Aspekt der Cache-Leistung ist die Vorgehensweise, die beachtet werden muß, damit eine Verarbeitungseinheit feststellen kann, ob eine gewünschte Speicherstelle auch in dem Cache-Speicher dieser Verarbeitungseinheit resident ist. Es existieren viele Techniken im Stand der Technik, um dieses Nachschlagen der Cache-Speicher so schnell und effizient wie möglich zu machen. Die genaue Technik, die verwendet wird, hängt von der spezifischen Implementierung des Cache-Speichers selbst ab, insbesondere von der Umsetzungsfunktion. Typischerweise ist jedoch eine Struktur vorgesehen, die als "Kennzeichen-Verzeichnis" ("tag directory") oder "Kennzeichenspeicher" ("tag store") bezeichnet wird, um ein rasches Nachschlagen der Cache-Speicher zu ermöglichen. Ein Kennzeichenspeicher ist eine Tabelle mit einer Vielzahl von Einträgen, wobei jeder Eintrag einem Block eines Cache-Speichers entspricht. Üblicherweise enthält ein Cache-Block mehrere Hauptspeicherworte, und jeder Zugriff auf den Cache-Speicher wird in Einheiten dieser grundlegenden Cache- Blockgröße durchgeführt. Jeder kennzeichenspeicher-Eintrag enthält genügend Bits, um irgendeinen der Cache-Blöcke im Cache-Speicher zu spezifizieren. Wenn ein Datenblock aus dem Hauptspeicher in einen Cache-Block umgesetzt wird, so wird der Kennzeichenspeicher-Eintrag, der diesem Cache-Block entspricht, mit den höherwertigen Bits der Adresse des Datenblocks im Hauptspeicher geladen. Wenn der Prozessor bei einem vollkommen assoziativen Cache-Design den Cache- Speicher auf der Suche nach einer gewünschten Hauptspeicherstelle durchsuchen möchte, so vergleicht er die gewünschte Adresse mit den Einträgen im Kennzeichenspeicher. Wenn eine Übereinstimmung gefunden wird, wird das entsprechende Wort aus dem die Vielzahl von Wörtern enthaltenden Cache-Block ausgewählt. Bei einem direkt umgesetzten Cache-Design werden die niedrigstwertigen Bits der in Frage kommenden Adresse als Index im Kennzeichenspeicher verwendet. Die verbleibenden höherwertigen Bits der Adresse werden dann mit den Kennzeichenspeicher-Einträgen verglichen, um einen Cache-Treffer zu ermitteln. Bei einer konfigurierten assoziativen Cache- Konstruktion werden die niedrigstwertigen Bits der in Frage kommenden Adresse als Index in einer kleinen Anzahl von Speicherstellen (z.B. 2 oder 4) innerhalb des Kennzeichenspeichers verwendet, und die mit einem Index versehenen Einträge von jeder dieser Speicherstellen werden herausgezogen und für jeden Eintrag aus dieser begrenzten Anzahl wird parallel ein Vergleich durchgeführt, um einen Cache-Treffer zu ermitteln.
  • Eine weitere Verbesserung, die für die Verringerung der durchschnittlichen Speicherzugriffszeit für ein CPU-Modul nützlich ist, besteht darin, den Cache-Speicher in einer mehrstufigen hierarchischen Struktur zu organisieren, wobei der kleinste und schnellste Cache-Primärspeicher der CPU am nächsten liegt und zunehmend langsamere und größere Cache-Sekundärspeicher entlang dem Datenweg zwischen einem Prozessor und dem Hauptspeicher angeordnet sind. Eine solche Konfiguration stellt einen Kompromiß zwischen den hohen Kosten sehr schneller Speichervorrichtungen und der langsameren Zugriffszeit von Speichervorrichtungen, die relativ gesehen niedrigere Kosten mit sich bringen. Ein Cache-Fehltreffer im schnellsten und kleinsten Primär-Cache- Speicher hat zur Folge, daß die CPU auf den nächstniedrigeren Cache-Speicher in der Hierarchie zugreift, wobei eine umfangreichere Größe eine noch größere Wahrscheinlichkeit eines Cache-Treffers impliziert. Ein Cache-Fehltreffer in diesem Cache-Speicher hat zur Folge, daß die CPU auf einen Sekundär-Cache- Speicher zugreift, der in der Hierarchie noch niedriger steht etc., bis zu einem Zeitpunkt, zu dem ein Cache-Treffer auf irgendeiner Stufe der Cache-Struktur auftritt oder ein Hauptspeicherzugriff initiiert wird.
  • Zusammen mit dem Anstieg der Systemeffizienz, die aus der Verwendung von Cache-Speichern resultiert, ergibt sich jedoch das Problem der Datenkohärenz. D.h., es muß gewährleistet werden, daß eine Cache- Speicherstelle denselben Wert hält wie die Hauptspeicherstelle, der sie entspricht. Ein Weg, um die Datenkohärenz aufrechtzuerhalten, besteht darin, immer dann modifizierte Werte von Daten, die im Cache-Speicher enthalten sind, sowohl auf die Cache-Speicherstelle (falls diese im Cache resident ist) als auch auf die entsprechende Hauptspeicherstelle zu schreiben, wenn ein Speicher- Schreibzugriff auf diese Speicherstelle angefordert wird. Dieses Verfahren wird als "Nicht-Schreiben-sondern-Zuordnen"-Durchschreib-Praktik bezeichnet. Bei dieser Durchschreibe-Praktik kann wahlweise eine Speicherstelle für Schreibtransaktionen zugeordnet werden, für die die Speicherstelle in ihrem Cache-Speicher nicht bereits resident ist, und in diesem Fall nützt die Durchschreibe-Praktik eine Schreiben-Zuordnen-Fähigkeit aus. Eine weitere Cache-Kohärenztechnik beinhaltet eine Rückschreibe-Praktik, bei der ein modifizierter Datenwert solange nicht in den langsameren Hauptspeicher geschrieben wird, bis die entsprechende Cache-Speicherstelle überschrieben werden muß. Der Kompromiß zwischen diesen Praktiken beinhaltet bei der Durchschreibe-Praktik das Erfordernis nach einer größeren Bandbreite auf dem Speicher-Teilsystem-Level beim Aktualisieren des Hauptspeichers für jeden Schreibzugriff, und demgegenüber bei der Rückschreibe-Praktik die größere Komplexität der Cache-Kohärenz. Bei Systemen mit einer ausreichenden Bandbreite wird die Durchschreibe-Praktik aufgrund ihrer Einfachheit oft bevorzugt.
  • Die in letzter Zeit zurückgegangenen Kosten der Verarbeitungseinheiten haben den Beginn einer grundlegenderen Abwendung von der von-Neumann- Maschinenorganisation erleichtert, bei der eine Mehrzahl von Prozessoren gleichzeitig miteinander arbeiten, während sie immer noch über einen gemeinsamen Systembus auf einen gemeinsamen Hauptspeicherraum zugreifen. Jeder Prozessor kann seinen eigenen privaten Cache-Speicher aufweisen, der zwischen dem Prozessor und dem Systembus angeordnet ist. Bei diesen Mehrprozessor-Systemen ist die Verwendung von Cache-Speichern von wesentlicherer Bedeutung für die Systemleistung als bei Einzelprozessorsystemen, da jeder der Prozessoren mit den anderen Prozessoren im Hinblick auf die Verwendung des gemeinsamen Systembusses in Konkurrenz steht, um auf den gemeinsamen Speicher zuzugreifen. Das Problem der Datenkoharenz tritt ebenfalls deutlicher hervor, da der an einer einzelnen Speicherstelle gespeicherte Wert irgendwann in den privaten Cache-Speicher eines oder aller Prozessoren reproduziert werden könnte. Wenn die lokalen Cache-Speicher jeweils eine Rückschreibe-Praktik anwenden, muß das System irgendwie gewährleisten, daß, wenn ein Prozessor den Wert einer Speicherstelle modifiziert und diesen modifizierten Wert nur in seinen eigenen Cache-Speicher schreibt, die Kopien dieser Speicherstelle in jedem anderen lokalen Cache-Speicher die Veränderung reflektieren, die von diesem einen Prozessor vorgenommen wurde.
  • Die vorliegende Erfindung ist auf ein Mehrprozessor-Computersystem gerichtet, das eine Vielzahl von CPU-Modulen umfaßt, die sich über einen mittels Timesharing (Teilnehmerbetrieb) genutzten Systembus gemeinsamen Speicherraum teilen. Der gemeinsame Speicherraum kann als eine Vielzahl von Speichermodulen realisiert werden, die jeweils einen Teil des gemeinsam genutzten Systemspeichers enthalten. Ein CPU-Modul weist einen Prozessor, auf dem Befehle ausgeführt werden, eine private Cache-Speichereinheit sowie möglicherweise zusätzliche unterstützende Hardware auf, die einer effizienten Steuerung des CPU-Moduls und der Koordination des CPU-Moduls mit anderen Systemkomponenten dient.
  • Wie auf dem Gebiet der Mehrprozessor-Systeme üblich, kann jedes der Module, die über ein Interface mit dem Systembus verbunden sind, auf dem Bus eine von vier Transaktionsarten initiieren: eine Null-Transaktion, eine Lese- Transaktion, eine Schreib-Transaktion und eine Lesedaten-Transaktion. Die Zeit, während der eine dieser Transaktionen auf dem Bus stattfindet, wird als Buszyklus bezeichnet. Eine Null-Transaktion tritt auf, wenn kein Modul den Bus benötigt, und sie wird von allen Modulen ignoriert. Eine Lese-Transaktion besteht darin, daß eine CPU eine Anforderung an ein Speichermodul sendet, Speicherdaten an die CPU zurückzusenden. Eine Schreib-Transaktion besteht darin, daß eine CPU eine Anforderung an ein Speichermodul sendet, neue Speicherdaten zu schreiben. Eine Lesedaten-Transaktion besteht darin, daß ein Speichermodul in Reaktion auf eine vorherige Lesetransaktion Daten an ein CPU-Modul sendet. Die Konkurrenz unter den verschiedenen Modulen hinsichtlich der Benutzung des Systembusses wird auf eine Weise entschieden, die speziell auf die Systembus-Implementierung abgestimmt und aus dem Gebiet der Arbitrationsprotokolle bekannt ist.
  • Was die einem CPU-Modul zugeordnete Support-Hardware angeht, so schlagen bekannte Techniken des Standes der Technik vor, eine als Lesedaten- Warteschlange bezeichnete Struktur zwischen dem Systembus und dem CPU- Modul einzufügen. Diese Struktur hält Datenwerte, die vom Speicher in Reaktion auf Lese-Transaktionen zurückgesendet wurden. Die Anordnung der Lesedaten in Warteschlangen verbessert die Leistung des Systems dadurch, daß es möglich ist, daß sich ein Prozessor anderen Aufgaben widmet, während der Zugriff auf den Hauptspeicher erfolgt, anstatt ohne zu arbeiten darauf zu warten, daß die Daten zurückgesendet werden. Die Lesedaten-Warteschlange ist eine First-in-First-out- (FIFO-)Warteschlange, die eine Vielzahl von Einträgen enthält, von denen jeder ein Datenfeld und ein Gültig-Bit aufweist. Wenn das CPU-Modul über eine Lesedaten-Transaktion Daten vom Hauptspeicher empfängt, so werden diese Daten am einen Ende der Lesedaten-Warteschlange plaziert und es wird das Gültig-Bit für diesen Eintrag gesetzt. Wenn die CPU bereit ist, eingehende Daten zu akzeptieren, um diese in ihrem Cache-Speicher abzulegen, wird der erste gültige Eintrag vom anderen Ende der Warteschlange entfernt und das Gültig-Bit gelöscht.
  • Eine weitere FIFO-Struktur, die als "Ungültigmachungs-Warteschlange" bezeichnet wird, kann ebenfalls zwischen dem Systembus und dem CPU-Modul eingefügt werden. Die "Ungültigmachungs-Warteschlange" enthält ebenfalls eine Vielzahl von als "Ungültigmachungseeinträge" bezeichnete Einträge, von denen jeder zumindest ein Adressenfeld und ein Gültig-Bit aufweist. Die CPU überwacht den Systembus im Hinblick auf Kohärenztransaktionen. In einem System, das mit einer Durchschreibe-Praktik arbeitet, führt die CPU eine Überwachung im Hinblick auf Schreibtransaktionen auf dem Systembus durch. Wenn irgendeine Daten- Schreibtransaktion auf dem Systembus festgestellt wird, wird die Adresse dieser Transaktion am einen Ende der Ungültigmachungs-Warteschlange des CPU- Moduls plaziert und das Gültig-Bit gesetzt. Sobald die CPU in der Lage ist, einen Ungültigmachungseintrag zu verarbeiten, wird der erste gültige Eintrag vom anderen Ende der Ungültigmachungs-Warteschlange entfernt und dessen Gültig- Bit gelöscht. Die Adresse der Schreibtransaktion wird mit dem Inhalt der Cache- Speicherstruktur verglichen und, falls vorhanden, wird der dieser Adresse entsprechende Eintrag als ungültig markiert. Auf diese Weise kann die CPU daran gehindert werden, Datenwerte zu verwenden, die nicht mehr aktuell sind.
  • Die Anforderungen an die Cache-Kohärenz in Mehrprozessor-Systemen sind komplex. Eine Komponente der Cache-Kohärenz in Mehrprozessor-Systemen wird aufrechterhalten, wenn jeder Cache-Speicher Transaktionen in derselben Reihenfolge verarbeitet, in der sie auf dem Systembus aufgetreten sind. Die Reihenfolge der Ungültigmachungseinträge, wie sie auf dem Systembus erschienen sind, kann durch die FIFO-Warteschlange aufrechterhalten werden, die diese Einträge hält. Ebenso kann die Reihenfolge der Lesedaten-Transaktionen in deren FIFO-Warteschlange aufrechterhalten werden. Unglücklicherweise wird jedoch die Reihenfolge der Ungültigmachungseinträge im Verhältnis zu den Lesedaten-Transaktionen oder, äquivalent hierzu, die Reihenfolge der Lesedaten- Transaktionen im Verhältnis zu den Ungültigmachungseinträgen, wie sie auf dem Systembus erschienen sind, durch die Verwendung separater Lesedaten- und Ungültigmachungs-Warteschlangen normalerweise nicht aufrechterhalten.
  • Beim Stand der Technik existieren auch alternative Verfahren zur Aufrechterhaltung der Cache-Kohärenz, die nicht die Verwendung der oben beschriebenen Warteschlangen beinhalten. Beispielsweise könnte das System zusätzliche Hardware aufweisen, die die Einrichtung zur direkten Kommunikation zwischen einzelnen Prozessormodulen zur Verfügung stellt; oder der Befehlssatz der CPU könnte Befehle enthalten, die zur Aufrechterhaltung der Datenkohärenz bestimmt sind; oder es könnte eine Einrichtung zur direkten Kommunikation zwischen dem Hauptspeicher und jedem einzelnen privaten Cache-Speicher eingerichtet werden. Eine weitere Alternative bestünde darin, ein globales Inhaltsverzeichnis zu implementieren, so daß das System im Hinblick darauf auf dem laufenden bleibt, welche Daten sich in jedem Cache-Speicher befinden, was es dem System ermöglichen würde, je nach Bedarf Daten in einem Cache- Speicher ungültig zu machen, um die Daten-Kohärenz aufrechtzuerhalten.
  • Durch das Implementieren irgendeiner der oben genannten Techniken würden jedoch wahrscheinlich Nachteile auftreten, entweder im Hinblick auf die Kosten oder die Leistung des Systems. Im Falle der Erstellung von Kommunikationswegen zwischen Prozessoren oder zwischen Cache-Speichern und dem Hauptspeicher, sowie im Falle der Aufnahme eines globalen Cache- Speicher-Inhaltsverzeichnisses wären diese Nachteile hauptsächlich wirtschaftlicher Natur, während ein modifizierter Befehlssatz die Daten-Kohärenz wahrscheinlich auf Kosten der Systemleistung aufrechterhalten würde.
  • Bei anderen Systemen, die jede ermittelte Schreibtransaktion verarbeiten, um die Daten-kohärenz aufrechtzuerhalten, kann eine CPU- (Prozessor-)Bus-Sättigung auftreten; d.h., die Bedienung von Ungültigmachungseinträgen durch jede CPU für jede Schreibtransaktion auf dem Systembus würde einen Großteil der Gesamtrechenzeit des Mehrprozessor- Systems beanspruchen.
  • Es wäre daher vorteilhaft, eine effiziente Einrichtung zu implementieren durch die die Anzahl der Ungültigmachungseinträge, die auf einen privaten Prozessorbus übertragen werden, "gefiltert" werden, so daß der Prozessorbus nicht überladen wird. D.h., es wäre vorteilhaft, nur diejenigen Ungültigmachungseinträge auf den privaten Prozessorbus zu übertragen, die Speicheradressen entsprechen, welche im Cache-Speicher dieses Prozessors resident sind.
  • Die vorliegende Erfindung schafft ein Verfahren und eine Vorrichtung, die es einem CPU-Modul in einem Mehrprozessor-System ermöglicht, Schreibtransaktionen "auszufiltern", die im übrigen keine Auswirkung auf die Daten im Cache-Speicher dieses CPU-Moduls haben würden. Auf diese Weise würde die Systemeffizienz aufgrund des dichten Verkehrs der Ungültigmachungseinträge, der in einem Mehrprozessor-System entsteht, nicht so drastisch verringert werden.
  • Ein gemäß dieser Erfindung entwickeltes Mehrprozessor- Computersystem weist eine Vielzahl von CPU-Modulen auf, die über ein Interface mit einem gemeinsamen Systembus verbunden sind. Diese Module teilen sich den Zugriff auf eine Vielzahl von Speichermodulen, die den Hauptspeicher des Computers definieren und ebenfalls über ein Interface mit dem Time-Sharing- Systembus verbunden sind. Neben einem zentralen Prozessor weist jedes CPU- Modul einen lokalen Cache-Speicher, der dazu verwendet wird, irgendeine Teilmenge der Informationen im Hauptspeicher zu speichern, sowie die notwendige Hardware auf, um den Betrieb des Cache-Speichers zu steuern. Bei einem Ausführungsbeispiel der vorliegenden Erfindung weisen die lokalen Cache- Speicher eine hierarchische Struktur auf, die aus einem Primär-Cache-Speicher und einem größeren Sekundär- oder Backup-Cache-Speicher besteht. Im Primär- Cache-Speicher enthaltene Daten könnten eine Teilmenge der im Backup-Cache- Speicher enthaltenen Daten sein, oder die Datensätze in jedem der Cache- Speicher könnten sich gegenseitig ausschließen. Im ersteren Fall wird das Problem der Datenkohärenz zusätzlich dadurch kompliziert, daß die Notwendigkeit besteht, die kohärenz der Daten in den Kopien im Primär- sowie im Backup- Cache-Speicher jedes Prozessormodul 5 aufrechtzuerhalten.
  • In jedem CPU-Modul stellt ein Prozessorbus den Datenweg von der CPU zum Speicher-Interface bereit, damit Daten entweder aus dem Hauptspeicher oder dem Cache-Speicher gelesen bzw. entweder in den ersteren oder den letzeren geschrieben werden können. Der Prozessorbus wird auch dazu verwendet, Cache-Speicher-Ungültigmachungseinträge durchzuführen, falls diese notwendig sind. Ein Speicher-Interface in jedem CPU-Modul ist dafür verantwortlich, daß der lokale Prozessorbus mit dem gemeinsamen, durch Time- Sharing genutzten Systembus verbunden wird. Das Speicher-Interface nimmt an dem Arbitrationsprotokoll teil, das verwendet wird, um den Konkurrenzkampf um den Bus zwischen der Vielzahl der CPU-Module im System zu regeln. Zusätzlich zum Prozessorbus sieht die vorliegende Erfindung vor, daß ein dedizierter Datenweg zur direkten Kommunikation zwischen dem Speicher-Interface und der Cache-Speicher-Steuerlogik zur Verfügung gestellt wird. Dieser dedizierte Datenweg wird im nachfolgenden als Ungültigmachungs-Bus (1-Bus) bezeichnet, und zusammen mit dem Prozessorbus kann dieser Bus aus der Sicht der Logik als Teil des Speicher-Interface betrachtet werden.
  • Die Filterung potentieller Ungültigmachungseinträge findet im Speicher- Interface jedes CPU-Moduls statt. Das Speicher-Interface überwacht den gemeinsamen Systembus im Hinblick auf Speicher-Schreibtransaktionen von anderen CPU-Modulen. Wenn eine Schreibtransaktion detektiert wird, kommuniziert das Speicher-Interface über den 1-Bus mit der Cache-Speicher- Steuerungsvorrichtung, um zu ermitteln, ob die Schreibtransaktion eine Speicherstelle beinhaltet, die in der Cache-Speicher-Hierarchie des CPU-Moduls als Kopie vorliegt. Wenn die beschriebene Speicherstelle nirgendwo im Cache- Speicher der CPU vorhanden ist, wird die Schreibtransaktion ignoriert und es wird kein Ungültigmachungseintrag an die Cache-Speicher-Steuerungsvorrichtung oder die CPU weitergeleitet und der Prozessorbus bleibt zur Verwendung durch die CPU verfügbar. Wenn die beschriebene Speicherstelle im Cache-Speicher des CPU-Moduls als Kopie vorliegt, sendet das Speicher-Interface die Informationen über die Schreibtransaktion zum Prozessorbus, wo sie von der Cache-Speicher- Steuerungsvorrichtung und der CPU empfangen werden, um als Ungültigmachungseintrag verarbeitet zu werden. Auf diese Weise wird der Verkehr von Ungültigmachungseinträgen auf dem Prozessorbus in bedeutendem Maße reduziert.
  • Die oben beschriebenen sowie weitere Aspekte der vorliegenden Erfindung werden in den beigefügten Ansprüchen beansprucht, und sie werden aus der Beschreibung eines bevorzugten Ausführungsbeispiels in Verbindung mit den beiliegenden Zeichnungen besser verständlich.
  • Die Zeichnungen erläutern ein bevorzugtes Ausführungsbeispiel der Erfindung, wobei gleiche Bestandteile mit gleichen Bezugsziffern bezeichnet sind und wobei:
  • Fig. 1 ein Blockdiagramm eines Mehrprozessor-Computersystems ist, das eine Vielzahl von Speichermodulen aufweist, die einen gemeinsamen Hauptspeicher sowie eine Vielzahl von CPU-Modulen umfassen, die alle mittels eines Interface mit einem gemeinsamen Systembus verbunden sind.
  • Fig. 2 ein Blockdiagramm eines ähnlichen Mehrprozessor- Computersystems ist, die zwei CPU-Module zeigt, die jeweils einen zweistufigen hierarchischen Cache-Speicher aufweisen und die jeweils mittels eines Interface mit einem gemeinsamen Systembus verbunden sind.
  • Fig. 3 ein Blockdiagramm eines der CPU-Module gemäß Fig. 1 ist, das im Einklang mit der vorliegenden Erfindung organisiert ist.
  • Die allgemeine Konfiguration eines auf mehreren Prozessoren basierenden Computersystems 8 gemäß der vorliegenden Erfindung ist in Fig. 1 dargestellt. Hier ist eine Anzahl N von Speichermodulen 10 dargestellt, die den gemeinsamen Hauptspeicher des Systems aufweisen und die mittels einer Einrichtung, die von der Implementierung des Busses abhängt, in einer aus dem Stand der Technik wohlbekannten Weise durch ein Interface mit einem gemeinsamen Systembus 12 verbunden sind. In der Praxis kann die Anzahl N von Speichermodulen 10 jede Zahl sein, die größer oder gleich Eins ist, je nach der gewünschten Implementierung des Hauptspeichers. Obwohl die vorliegende Erfindung auf Computersysteme gerichtet ist, bei denen zwei oder mehr Prozessormodule 14 verwendet werden, sind aus Gründen der Übersichtlichkeit nur zwei dargestellt.
  • Fig. 2 zeigt ein ähnliches Mehrprozessor-System 8 mit zwei CPU- Modulen 14. Jedes CPU-Modul 14 verwendet eine zweistufige hierarchische Cache-Speicher-Struktur, die aus einer eng gekoppelten Primär-Cache-Speicher- /CPU-Einheit 20 sowie einer Backup-Cache-Speicher-/Cache-Speicher- Steuervorrichtungs-Einheit 22. Jedes CPU-Modul 14 weist darüber hinaus eine Speicher-Interfaceeinheit 24 auf, die für die Teilnahme an einem Arbitrationsprotokoll zwecks Zugriff auf den Systembus 12 verantwortlich ist. Ein Prozessorbus 30 stellt den Datenweg zur Kommunikation zwischen der CPU 20 und dem Backup-Cache-Speicher-/Cache-Speicher-Steuervorrichtungs-Einheit 22 sowie zwischen der CPU 20 und der Speicher-Interfaceeinheit 24 jedes CPU- Moduls 14 zur Verfügung. Ein gemeinsamer Hauptspeicher für das System wird in Form einer Vielzahl von Speichermodulen 10 implementiert, die ebenfalls über ein Interface mit dem Systembus 12 verbunden sind. Ein solches Implementierungsund Interface-Schema für einen Hauptspeicher ist aus dem Stand der Technik wohlbekannt. Darüber hinaus sind die CPU-Module 14 typische Beispiele für CPUS, die eine zweistufige Cache-Speicher-Hierarchie verwenden.
  • Die Ungültigmachung des Cache-Speichers in dem in Fig. 2 dargestellten Mehrprozessor-System 8 läuft wie folgt ab: Die Speicher- Interfaceeinheiten 24 überwachen den Systembus 12 und detektieren jede Schreibtransaktion, die auf ihm auftritt. Die Speicher-Interfaceeinheiten 24 senden für jede Schreibtransaktion geeignete Ungültigmachungs-Informationen (einschließlich der Adresse des Schreibzugriffs) sowohl an die CPU 20 als auch die Backup-Cache-Speicher-/Cache-Speicher-Steuervorrichtungs-Einheit 22, und zwar über den Prozessorbus 30 im jeweils entsprechenden CPU-Modul 14.
  • Die vorliegende Erfindung beschreibt eine unterschiedliche Konfiguration innerhalb ihrer CPU-Module. Insbesondere zeigt Fig. 3 eines der CPU-Module 14 gemäß Fig. 1, das in Übereinstimmung mit der vorliegenden Erfindung konzipiert ist. Die CPU-Module 14 bestehen aus einer CPU-/Primär- Cache-Speicher-Einheit 20, einer Cache-Speicher-Steuervorrichtungs-/Backup- Cache-Speicher-Einheit 22, einer Speicher-Interfaceeinheit 24 und einem Prozessorbus 30, der die drei Einheiten miteinander verbindet, wie bei dem in Fig. 2 gezeigten typischen Mehrprozessor-System. Innerhalb der CPU-/Primär-Cache- Speicher-Einheit 20 befindet sich ein Primär-Cache-Kennzeichenspeicher 44, der eine Tabelle mit einer Vielzahl von Einträgen zur Verfügung stellt, wobei jeder Eintrag einem Datenblock im Primär-Cache-Speicher entspricht. Ein Äspekt der vorliegenden Erfindung sieht jedoch vor, daß sich eine Kopie 40 des Primär- Cache-Kennzeichenspeichers 44 in der Cache-Speicher-Steuervorrichtungs- Einheit 22 befindet. Ein weiteres, in Fig. 3 beschriebenes Merkmal ist ein zusätzlicher Datenweg 46 zwischen dem Speicher-Interface 24 und der Cache- Speicher-Steuervorrichtungs-/Backup-Cache-Speicher-Einheit 22. Dieser zusätzliche Datenweg 46 ist ein dedizierter Bus, der als der Ungültigmachungs- Bus (I-Bus) bezeichnet wird.
  • Die Ungültigmachung des Cache-Speichers in dem System gemäß der vorliegenden Erfindung wird wie folgt durchgeführt: Das Speicher-Interface 24 überwacht den Systembus 12 auf herkömmliche Weise, wobei Schreibtransaktionen überwacht werden. Wenn eine Schreibtransaktion detektiert wird, leitet das Speicher-Interface die Adresse des Schreibzugriffs über den Ungültigmachungs-Bus 46 an die Cache-Speicher-Steuervorrichtungs-/Backup- Cache-Speicher-Einheit 22 weiter. Die Cache-Speicher-Steuervorrichtungs- /Backup-Cache-Speicher-Einheit 22 fragt sowohl den Backup-Cache- Kennzeichenspeicher 42 als auch die Kopie des Primär-Cache- Kennzeichenspeichers 40 ab, um festzustellen, ob die an der Schreibtransaktion beteiligte Speicherstelle entweder im Primär-Cache-Kennzeichenspeicher 44 oder im Backup-Cache-Kennzeichenspeicher 42 resident ist. Wenn die Speicherstelle des Schreibzugriffs in beiden Cache-Kennzeichenspeichern resident ist, gibt die Speicher-Interfaceeinheit 24 einen Ungültigmachungseintrag auf dem Prozessorbus 30 aus, der entweder von der CPU-/Primär-Cache-Speicher-Einheit 20 oder der Cache-Speicher-Steuervorrichtungs-/Backup-Cache-Speicher-Einheit 22 oder von beiden auf herkömmliche Art und Weise zu verarbeiten ist. Wenn festgestellt wird, daß die an der Schreibtransaktion beteiligte Speicherstelle in keinem der Cache-Speicher resident ist, brauchen keine weiteren Maßnahmen ergriffen zu werden, und der Prozessorbus 30 bleibt frei.
  • Bei einem weiteren (nicht dargestellten) Ausführungsbeispiel wird die Cache-Speicher-Steuervorrichtung direkt der CPU zugeordnet und es wird kein Backup- oder Sekundär-Cache-Speicher verwendet. Der dedizierte I-Bus 46 ist bei diesem Ausführungsbeispiel direkt mit der CPU gekoppelt und dient, wie bereits beschrieben wurde, zur Filterung der Anforderungen an den Prozessorbus 30.

Claims (6)

1. Verfahren zum Betreiben eines Computersystems, wobei das Computersystem folgendes aufweist:
einen Hauptspeicher (10) zum Speichern von Datenblöcken,
eine Vielzahl von Prozessoren (14), die dazu in der Lage sind, Schreibtransaktionen auszugeben, die ungültigmachende Abfragen definieren, und
einen Systembus (12), um den Hauptspeicher und die Prozessoren miteinander zu koppeln;
wobei jeder der Prozessoren (14) folgendes aufweist:
einen (ihm) zugeordneten Cache-Primärspeicher (44) zum Speichern einer Teilmenge der im Hauptspeicher gespeicherten Daten,
einen Cache-Kennzeichen-Primärspeicher (44) zum Identifizieren von Speicheradressen-Blöcken, die in dem Cache-Primärspeicher resident sind,
ein Speicher-Interface (24) zum Detektieren von Schreibtransaktionen auf dem Systembus (12),
eine Cache-Steuereinrichtung (22), die mit dem Speicher-Interface (24) gekoppelt ist; und
einen Prozessor-Bus (30), der den Cache-Primärspeicher (44), die Cache-Steuereinrichtung (22) und die Speicher-Interface-Einheit (24) miteinander koppelt;
wobei das Verfahren folgenden Schritt beinhaltet:
Detektieren einer Schreibtransaktion auf dem Systembus (12), wobei die Schreibtransaktion eine Speicheradresse im Hauptspeicher definiert
und es gekennzeichnet ist durch die folgenden weiteren Schritte:
Kopplung der Cache-Steuereinrichtung (22) mit dem Speicher-Interface (24) mittels eines ungültigmachenden Busses (46),
Bereitstellen einer Kopie (40) des Cache-Kennzeichen-Primärspeichers für die Cache-Steuereinrichtung (22),
Weiterleiten der Speicheradresse zur Cache-Steuereinrichtung (22) mittels des ungültigmachenden Busses (46),
Vergleichen der Speicheradresse mit Speicheradressen, die in der Kopie (40) des Cache-Primärspeichers identifiziert wurden, und, falls die Speicheradresse in der Kopie des Cache-Kennzeichen- Primärspeichers angegeben ist, Ausgeben einer ungültigmachenden Abfrage auf dem Prozessor-Bus (30), ansonsten Ignorieren der Schreibtransaktion.
2. Verfahren nach Anspruch 1, das weiterhin den Schritt aufweist, die Cache-Steuereinrichtung (22) mit einem Cache-Sekundärspeicher zum Speichern einer Teilmenge der im Hauptspeicher (10) gespeicherten Daten sowie mit einem Cache-Kennzeichen-Sekundärspeicher (42) zum Identifizieren von Speicheradressen-Blöcken zu versehen, die in dem Cache-Sekundärspeicher resident sind.
3. Verfahren nach Anspruch 2, das weiterhin folgende Schritte aufweist:
Vergleichen der Speicheradresse mit Speicheradressen, die im Kennzeichen-Sekundärspeicher (42) identifiziert wurden, und,
falls die Speicheradresse in dem Cache-Kennzeichen-Sekundärspeicher angegeben ist, Ausgeben der ungültigmachenden Abfrage.
4. Computersystem (8), das folgendes aufweist:
einen Hauptspeicher (10) zum Speichern von Datenblöcken,
eine Vielzahl von Prozessoren (14), die dazu in der Lage sind, Schreibbefehle auszugeben, die ungültigmachende Abfragen definieren, und
einen Systembus (12), um den Hauptspeicher und die Prozessoren miteinander zu koppeln;
wobei jeder der Prozessoren (14) folgendes aufweist:
einen (ihm) zugeordneten Cache-Primärspeicher (44) zum Speichern einer Teilmenge der im Hauptspeicher gespeicherten Daten,
einen Cache-Kennzeichen-Primärspeicher (44) zum Anzeigen von Speicheradressen, die in dem Cache-Primärspeicher gespeichert sind,
ein Speicher-Interface (24) zum Detektieren von Schreibtransaktionen auf dem Systembus (12), wobei die Schreibtransaktion eine Speicheradresse im Hauptspeicher definiert,
eine Cache-Steuereinrichtung (22), die mit dem Speicher-Interface (24) gekoppelt ist; und
einen Prozessor-Bus (30), der den Cache-Primärspeicher (44), die Cache-Steuereinrichtung (22) und die Speicher-Interface-Einheit (24) koppelt;
wobei das Computersystem gekennzeichnet ist durch:
eine Einrichtung (40), um eine Kopie (40) des Cache-Kenn-zeichen- Primärspeichers in der Cache-Steuerei nrichtung zu speichern,
einen ungültigmachenden Bus (46), der die Cache-Steuereinrichtung (22) mit dem Speicher-Interface (24) koppelt, um die Speicheradresse zur Cache- Steuereinrichtung (22) weiterzuleiten,
eine Einrichtung zum Vergleichen der Speicheradresse mit Speicheradressen, die in der Kopie (40) des Cache-Primärspeichers identifiziert wurden, und,
falls die Speicheradresse in der Kopie des Cache-Kennzeichen- Primärspeichers angegeben ist, Ausgeben einer ungültigmachenden Abfrage auf dem Prozessor-Bus (30), ansonsten Ignorieren der Schreibtransaktion.
5. Vorrichtung nach Anspruch 4, bei der die Cache-Steuereinrichtung (22) einen Cache-Sekundärspeicher zum Speichern einer Teilmenge der im Hauptspeicher (10) gespeicherten Daten sowie einen Cache-Kennzeichen- Sekundärspeicher (42) zum Identifizieren von Speicheradressen-Blöcken aufweist, die in dem Cache-Sekundärspeicher resident sind.
6. Vorrichtung nach Anspruch 5, die weiterhin folgendes aufweist: eine Einrichtung zum Vergleichen der Speicheradresse mit Speicheradressen, die im Cache-Kennzeichen-Sekundärspeicher (42) identifiziert wurden, und,
falls die Speicheradresse in dem Cache-Kennzeichen- Sekundärspeicher angegeben ist, Ausgeben einer ungültigmachenden Abfrage.
DE68924206T 1988-06-27 1989-05-30 Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen. Expired - Fee Related DE68924206T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/212,416 US5058006A (en) 1988-06-27 1988-06-27 Method and apparatus for filtering invalidate requests

Publications (2)

Publication Number Publication Date
DE68924206D1 DE68924206D1 (de) 1995-10-19
DE68924206T2 true DE68924206T2 (de) 1996-05-15

Family

ID=22790922

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68924206T Expired - Fee Related DE68924206T2 (de) 1988-06-27 1989-05-30 Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen.

Country Status (5)

Country Link
US (1) US5058006A (de)
EP (1) EP0349122B1 (de)
JP (1) JP2662603B2 (de)
CA (1) CA1324221C (de)
DE (1) DE68924206T2 (de)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
CA2011807C (en) * 1989-03-20 1999-02-23 Katsumi Hayashi Data base processing system using multiprocessor system
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5212781A (en) * 1990-03-21 1993-05-18 Chips And Technologies, Inc. Secondary cache control for a computer system
US5289585A (en) * 1990-03-26 1994-02-22 Siemens Nixdorf Informationssysteme Ag Multiprocessor system having a system bus for the coupling of several processing units with appertaining private cache memories and a common main memory
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
CA2045756C (en) * 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
IE860318L (en) * 1990-10-01 1986-08-05 Digital Equipment Corp System bus for a multi-cache data processing system
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5673394A (en) * 1990-10-31 1997-09-30 Microsoft Corporation Method of sharing memory between an operating system and an application program
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US5249283A (en) * 1990-12-24 1993-09-28 Ncr Corporation Cache coherency method and apparatus for a multiple path interconnection network
JPH04328657A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
US5530835A (en) * 1991-09-18 1996-06-25 Ncr Corporation Computer memory data merging technique for computers with write-back caches
DE69219433T2 (de) * 1991-11-04 1997-12-11 Sun Microsystems Inc Virtueller Durchschreibcachespeicher Synonym-Adressierung und Cache-Ungültigkeitserklärungen
US5649154A (en) * 1992-02-27 1997-07-15 Hewlett-Packard Company Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits
US5528755A (en) * 1992-12-22 1996-06-18 International Business Machines Corporation Invalid data detection, recording and nullification
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US5506967A (en) * 1993-06-15 1996-04-09 Unisys Corporation Storage queue with adjustable level thresholds for cache invalidation systems in cache oriented computer architectures
US5640531A (en) * 1993-06-22 1997-06-17 Unisys Corporation Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache
US5598551A (en) * 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
US5604882A (en) * 1993-08-27 1997-02-18 International Business Machines Corporation System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US5636365A (en) * 1993-10-05 1997-06-03 Nec Corporation Hierarchical buffer memories for selectively controlling data coherence including coherence control request means
JP3200757B2 (ja) * 1993-10-22 2001-08-20 株式会社日立製作所 並列計算機の記憶制御方法および並列計算機
US5572704A (en) * 1993-12-15 1996-11-05 Silicon Graphics, Inc. System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
JP2634141B2 (ja) * 1994-01-19 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
US5603004A (en) * 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
JPH07334450A (ja) * 1994-06-10 1995-12-22 Mitsubishi Denki Semiconductor Software Kk インタフェイス装置
JPH08185359A (ja) * 1994-10-31 1996-07-16 Toshiba Corp メモリサブシステム
US5717942A (en) * 1994-12-27 1998-02-10 Unisys Corporation Reset for independent partitions within a computer system
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
US5701313A (en) * 1995-02-24 1997-12-23 Unisys Corporation Method and apparatus for removing soft errors from a memory
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
EP0735481B1 (de) * 1995-03-31 2003-05-14 Sun Microsystems, Inc. Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5696937A (en) * 1995-04-28 1997-12-09 Unisys Corporation Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US5612865A (en) * 1995-06-01 1997-03-18 Ncr Corporation Dynamic hashing method for optimal distribution of locks within a clustered system
US5699500A (en) * 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5822611A (en) * 1995-06-05 1998-10-13 Donley; Greggory D. Method for cycle request with quick termination without waiting for the cycle to reach the destination by storing information in queue
US5740400A (en) * 1995-06-05 1998-04-14 Advanced Micro Devices Inc. Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US5745728A (en) * 1995-12-13 1998-04-28 International Business Machines Corporation Process or renders repeat operation instructions non-cacheable
US6070233A (en) * 1996-01-26 2000-05-30 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in higher level cache
US5687348A (en) * 1996-01-29 1997-11-11 Unisys Corporation Variable-depth, self-regulating cache queue flushing system
US5835946A (en) * 1996-04-18 1998-11-10 International Business Machines Corporation High performance implementation of the load reserve instruction in a superscalar microprocessor that supports multi-level cache organizations
US5822763A (en) * 1996-04-19 1998-10-13 Ibm Corporation Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US5920892A (en) * 1996-08-26 1999-07-06 Unisys Corporation Method and system for inhibiting transfer of duplicate write addresses in multi-domain processor systems with cross-bus architecture to reduce cross-invalidation requests
US6065097A (en) * 1996-08-29 2000-05-16 Sun Microsystems, Inc. Apparatus and method for sharing a unified memory bus between external cache memory and primary memory
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US6279098B1 (en) 1996-12-16 2001-08-21 Unisys Corporation Method of and apparatus for serial dynamic system partitioning
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control
US5970253A (en) * 1997-01-09 1999-10-19 Unisys Corporation Priority logic for selecting and stacking data
US5822766A (en) * 1997-01-09 1998-10-13 Unisys Corporation Main memory interface for high speed data transfer
US5860093A (en) * 1997-01-21 1999-01-12 Unisys Corporation Reduced instruction processor/storage controller interface
US6209072B1 (en) 1997-05-06 2001-03-27 Intel Corporation Source synchronous interface between master and slave using a deskew latch
US6000015A (en) * 1997-09-16 1999-12-07 Unisys Corporation Processor bus traffic optimization system for multi-level cache utilizing reflection status bit to indicate data inclusion in a higher level cache
US6295598B1 (en) * 1998-06-30 2001-09-25 Src Computers, Inc. Split directory-based cache coherency technique for a multi-processor computer system
US7174401B2 (en) * 2002-02-28 2007-02-06 Lsi Logic Corporation Look ahead split release for a data bus
US7706302B2 (en) * 2004-09-14 2010-04-27 Alcatel Lucent Optimization of routing forwarding database in a network processor
US8838901B2 (en) 2010-05-07 2014-09-16 International Business Machines Corporation Coordinated writeback of dirty cachelines
US8683128B2 (en) * 2010-05-07 2014-03-25 International Business Machines Corporation Memory bus write prioritization
GB2521227B (en) * 2013-12-16 2020-11-25 Advanced Risc Mach Ltd Invalidation of index items for a temporary data store
US10402337B2 (en) * 2017-08-03 2019-09-03 Micron Technology, Inc. Cache filter

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4142234A (en) * 1977-11-28 1979-02-27 International Business Machines Corporation Bias filter memory for filtering out unnecessary interrogations of cache directories in a multiprocessor system
JPS5849945B2 (ja) * 1977-12-29 1983-11-08 富士通株式会社 バツフア合せ方式
US4410944A (en) * 1981-03-24 1983-10-18 Burroughs Corporation Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4562536A (en) * 1983-06-30 1985-12-31 Honeywell Information Systems Inc. Directory test error mode control apparatus
US4736293A (en) * 1984-04-11 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Interleaved set-associative memory
JPS6162150A (ja) * 1984-09-03 1986-03-31 Mitsubishi Electric Corp デ−タ処理装置
US4755930A (en) * 1985-06-27 1988-07-05 Encore Computer Corporation Hierarchical cache memory system and method
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4814981A (en) * 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
JPH0212543A (ja) * 1988-06-30 1990-01-17 Nec Corp 情報処理システム

Also Published As

Publication number Publication date
JPH0272452A (ja) 1990-03-12
US5058006A (en) 1991-10-15
EP0349122A2 (de) 1990-01-03
DE68924206D1 (de) 1995-10-19
JP2662603B2 (ja) 1997-10-15
EP0349122A3 (de) 1991-04-24
CA1324221C (en) 1993-11-09
EP0349122B1 (de) 1995-09-13

Similar Documents

Publication Publication Date Title
DE68924206T2 (de) Verfahren und Einrichtung zum Filtern von Ungültigkeitserklärungsanforderungen.
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69027253T2 (de) Multiprozessor-Cachespeichersystem
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69518676T2 (de) Cache-Speicheranordnung für einen Speicher
DE69030945T2 (de) Zweistufiger Adressübersetzungspufferspeicher mit partiellen Adressen zur Geschwindigkeitserhöhung
DE69514165T2 (de) Mehrstufige Cache-Speicheranordnung
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE68902193T2 (de) Datenspeicheranordnung.
DE69616465T2 (de) Cachespeicher mit Datenvorausladung
DE69424767T2 (de) Kohärente Schreibtransaktionen für Teilzeilen eines Cache-Speichers
DE69421058T2 (de) Vorrichtung und Verfahren zur Cache-Speicher Kohärenz Überprüfung mit doppelter Abhörmechanismus
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE3151745C2 (de)
DE69222060T2 (de) Semaphore umgehung.
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher
DE69626070T2 (de) Verfahren und Vorrichtung zum Etikettieren eines Mehrweg-assoziativen Cache-Speichers
DE68925336T2 (de) Datenverarbeitungsvorrichtung mit Cache-Speicher
DE4213073A1 (de) Cache-steuergeraet und verfahren zur auswahl eines pfades eines cache-verzeichnisses bei einem zeilen-fuell-zyklus
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache

Legal Events

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