DE69628079T2 - Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind - Google Patents

Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind Download PDF

Info

Publication number
DE69628079T2
DE69628079T2 DE69628079T DE69628079T DE69628079T2 DE 69628079 T2 DE69628079 T2 DE 69628079T2 DE 69628079 T DE69628079 T DE 69628079T DE 69628079 T DE69628079 T DE 69628079T DE 69628079 T2 DE69628079 T2 DE 69628079T2
Authority
DE
Germany
Prior art keywords
subsystem
memory
data block
processor
buffer memory
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
DE69628079T
Other languages
English (en)
Other versions
DE69628079D1 (de
Inventor
Zahir Mountain View Ebrahim
Satyanarayana Cupertino Nishtala
William Palo Alto Van Loo
Kevin Mountain View Normoyle
Leslie Mountain View Kohn
Louis F. San Jose Coffin III
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69628079D1 publication Critical patent/DE69628079D1/de
Application granted granted Critical
Publication of DE69628079T2 publication Critical patent/DE69628079T2/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
    • 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/0817Cache consistency protocols using directory methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Hintergrund der Erfindung Gebiet der Erfindung
  • Die vorliegende Erfindung gehört dem Gebiet der Computersysteme an. Insbesondere bezieht sich diese Erfindung auf ein Computersystem, das einen System-Pegelmechanismus umfasst zum Ungültigmachen von Daten, die im externen Pufferspeicher eines Prozessors in dem Computersystem gespeichert sind.
  • Hintergrund
  • Bekannte Computersysteme umfassen typischerweise ein oder mehrere Prozessor-Subsysteme und ein oder mehrere Ein-/Ausgangs-Subsysteme, die mit einem Hauptspeicher-Subsystem verbunden sind. Solch ein Hauptspeicher-Subsystem gibt typischerweise Speicherbereiche für Befehle und Daten für die Prozessoren sowie Speicherbereiche für die Datenübertragung zu und von Eingangs/Ausgangs-Einrichtungen vor, die mit dem Ein-/Ausgangs-Subsystem verbunden sind. Typischerweise sind die Prozessor-Subsysteme und die Ein-/Ausgangs-Subsysteme an das Hauptspeicher-Subsystem über eine physikalische Verbindung angeschlossen, die einen gemeinsamen Bus oder einen geschalteten Verbindungsdatenweg vorgibt.
  • Ein Prozessor-Subsystem in einem solchen System umfasst typischerweise einen zugeordneten externen Pufferspeicher. Solch ein externer Pufferspeicher speichert gewöhnlich ausgewählte Blöcke aus dem Hauptspeicher-Subsystem. Ein externer Pufferspeicher gibt gewöhnlich einen schnellen Prozessorzugriff auf einen Code und Daten vor, indem er externe Aufrufe von Datenblöcken des Hauptspeicher- Subsystems vermeidet, die in dem Pufferspeicher gespeichert sind. Zusätzlich verwirklicht ein solches Computersystem typischerweise ein Protokoll zur Aufrechterhaltung der Datenkohärenz zwischen dem Hauptspeicher und den entsprechenden Datenblöcken im externen Pufferspeicher. Zum Beispiel umfasst jeder externe Pufferspeicher typischerweise eine Gruppe von Hinweisen, die den Gültigkeitsstatus der im externen Pufferspeicher gespeicherten Datenblöcke anzeigen.
  • Typischerweise gibt ein solches Computersystem einen Mechanismus zur Ausführung eines kohärenten Dateneingangs/-ausgangs vor. Zum Beispiel gibt ein Eingangs/Ausgangs-Subsystem in einem solchen Computersystem üblicherweise neue Daten in das System ein, indem es Schreib-Invalidier-Operationen (WRI-Operationen) an das Hauptspeicher-Subsystem ausgibt. Solche Schreib-Invalidier-Operationen können z. B. auftreten, wenn eine neue Datenseite von einer Platteneinrichtung gelesen wird, die an das Ein-/Ausgangs-Subsystem angeschlossen ist.
  • Zusätzlich gibt ein Prozessor-Subsystem üblicherweise neue Daten in das Computersystem unter Verwendung von WRI-Operationen bei Block-Kopieroperationen ein. Solche Block-Kopieroperationen treten z. B. während der Datenstruktur-Initialisierung oder während Datei-Kopieroperationen im Computersystem auf. Solche Block-Kopieroperationen treten mit einer relativ hohen Geschwindigkeit in einem typischen, bekannten Computersystem auf.
  • Solche WRI-Operationen erfordern gewöhnlich die Invalidierung von entsprechenden Datenblöcken, die in einem externen Pufferspeicher gespeichert sind, um die Datenkohärenz im System aufrechtzuerhalten. Typischerweise ist eine solche Invalidier-Operation bei einem externen Pufferspeicher nur erforderlich, wenn die Hinweise für diesen externen Pufferspeicher anzeigen, dass der neu initiierte Datenblock vorliegt.
  • In einigen bekannten Computersystemen wird eine solche Invalidier-Operation innerhalb jedes Prozessor-Subsystems ausgeführt. In einem solchen System liest ein Prozessor die entsprechenden externen Hinweise, um festzustellen, ob eine Invalidier-Operation während einer Schreib-Invalidier-Transaktion erforderlich ist. Ein solcher Mechanismus erfordert jedoch, dass jeder Prozessor eine Hinweis-Leseoperation ausführt und möglicherweise eine Hinweis-Lese-Modifizier-Schreiboperation für jede WRI-Operation, die an das Speicher-Subsystem ausgegeben wird. Solche WRI-Operationen treten häufig in typischen bekannten Systemen auf und überlappen mit der normalen Befehlsbearbeitung durch die Prozessoren, wodurch die Gesamtleistung eines solchen Systems gemindert wird. Darüber hinaus können Prozessor-Subsysteme, die solche Selbst-Invalidier-Operationen ausführen, nicht mit Systemen kompatibel sein, die auf einem Eintrag basierende Hinweise in dem Speicher-Subsystem vorgeben.
  • Einige Computersysteme können eine Worst-case-Lösung solcher Invalidier-Operationen verwirklichen. Zum Beispiel kann ein System blind eine Invalidier-Operation bei einem externen Pufferspeicher für jede Schreib-Invalidier-Transaktion ausführen, unabhängig davon, ob der durch die Schreib-Invalidier-Transaktion festgelegte Datenblock im externen Pufferspeicher vorliegt oder nicht. Eine solche Invalidier-Operation ist immer dann nicht erforderlich, wenn der festgelegte Datenblock in dem externen Pufferspeicher nicht gespeichert ist. Leider überlappen solche nicht notwendigen Invalidier-Operationen mit den normalen Operationen des Prozessors.
  • Zusätzlich können solche Invalidier-Operationen bei einigen Arten von Block-Kopieroperationen erforderlich sein, während sie bei anderen Arten von Block-Kopieroperationen nicht erforderlich sind. Zum Beispiel kann ein Prozessor-Subsystem eine Invalidier-Operation bei Block-Kopieroperationen erfordern, die neue Speicher-Datenblöcke erzeugen, auf die das Prozessor-Subsystem später nicht zugreifen wird. Andererseits erfordern Block-Kopieroperationen, die Datenblöcke zur stabilen Speicherung in das Computersystem einschreiben, typischerweise keine Invalidier-Operation zu dem externen Pufferspeicher, wenn der Prozessor die Steuerung über die Datenblöcke beibehält, die zur stabilen Speicherung übertragen wurden. Ältere Systeme, die blind Invalidier-Operationen ausführen, veranlassen gewöhnlich das Prozessor-Subsystem, später einen externen Abruf der festgelegten Datenblöcke aus dem Speicher-Subsystem auszuführen. Leider vermindern solche unnötige externe Abrufe aus dem Speicher-Subsystem die Gesamtleistung eines solchen Computersystems.
  • IEEE Micro, Bd. 14, Nr. 5, 1. Oktober 1994, S. 52–59, „Hardware Approaches to Cache Coherence in Shared-Memory Multiprocessors, Teil 1" betrachtet bekannte Protokolle, wie z. B. Adresseintrag-Protokolle und alternative Snoopy-Protokolle zur Aufrechterhaltung der Datenkohärenz zwischen einem Hauptspeicher und den entsprechenden Datenblöcken in einem externen Pufferspeicher.
  • Zusammenfassung der Erfindung
  • Gemäß einem Aspekt liegt die Erfindung in einem Computersystem vor, umfassend ein Prozessor-Subsystem mit einem externen Pufferspeicher, und ein Speicher-Subsystem, das an das Prozessor-Subsystem angeschlossen ist, wobei das Speicher-Subsystem getrennt vom Prozessor-Subsystem ist und das Prozessor-Subsystem eine Schreib-Invalidier-Operation (WRI-Operation) ausgibt, die einen in dem Speicher-Subsystem zu speichernden Datenblock festlegt, dadurch gekennzeichnet, dass die WRI-Operation einen Invalidier-Beratungshinweis (IVA-Hinweis) umfasst, der dem Speicher anzeigt, ob der Datenblock in dem externen Speicher vorliegt, wobei der IVA-Hinweis festlegt, ob das Speicher-Subsystem aufgrund des Empfangs der WRI-Operation eine Nachricht an das Prozessor-Subsystem sendet, um den Datenblock zu invalidieren, und sie besteht in dem Verfahren zum Betrieb des Computersystems.
  • Gemäß einem anderen Aspekt besteht die Erfindung aus einem Computersystem, umfassend: ein Prozessor-Subsystem mit einem externen Pufferspeicher und zugeordneten Pufferspeicher-Hinweisen und eine Speicherverbindung, einschließlich eines Mechanismus' zur Invalidierung eines Datenblockes in dem externen Pufferspeicher, wobei die Speicherverbindung ferner getrennt von dem Prozessor-Subsystem ist und wobei die Speicherverbindung den Datenblock aufgrund eines Invalidier-Beratungshinweises (IVA-Hinweises) invalidiert, der in einer Schreib-Invalidier-Operation (WRI-Operation) enthalten ist, die durch das den Datenblock spezifierende Prozessor-Subsystem ausgegeben wird.
  • Gemäß einem noch weiteren Aspekt besteht die Erfindung aus einem Verfahren zur Übertragung von Daten zu einer Speicherverbindung, wobei die Speicherverbindung getrennt von einem Prozessor- Subsystem, aber an dieses angeschlossen ist, wobei das Prozessor-Subsystem einen externen Pufferspeicher umfasst und das Verfahren die Schritte umfasst: Feststellung, ob ein Datenblock in dem externen Pufferspeicher vorliegt; Ausgabe einer Schreib-Invalidier-Operation (WRI-Operation), die den in der Speicherverbindung zu speichernden Datenblock spezifiziert, wobei die WRI-Operation ferner einen Invalidier-Beratungshinweis (IVA-Hinweis) umfasst, der der Speicherverbindung anzeigt, ob der Datenblock in dem externen Pufferspeicher vorliegt; und Invalidierung des Datenblockes in dem Prozessor-Subsystem aufgrund der Feststellung des IVA-Hinweises.
  • Der Mechanismus im Speicher-Subsystem oder der Speicherverbindung zur Invalidierung des externen Pufferspeichers des Prozessors vereinfacht das Design des Prozessors zu der externen Pufferspeicher-Schnittstelle und vermindert den Einfluss auf die Prozessorleistung bei Schreib-Invalidier-Operationen in dem System. Ein solcher externer Mechanismus für die Pufferspeicher-Invalidierung eliminiert ebenfalls Lese-Modifizier-Schreib-Operationen durch den Prozessor an den externen Pufferspeicher bei Schreib-Invalidier-Operationen, die anderenfalls die Prozessorleistung beeinflussen. Zusätzlich gibt ein solcher externer Mechanismus für die Pufferspeicher-Invalidierung ein Prozessor-Subsystem vor, das mit Multiprozessor-Systemen kompatibel ist, die auf Adresseinträgen basierende oder Duplikat-Hinweise aufrechterhalten und bei Uniprozessor-Systemen, die keine auf Adresseinträgen basierende oder Duplikat-Hinweise aufrechterhalten.
  • Andere Merkmale und Vorteile der vorliegenden Erfindung gehen aus den beiliegenden Zeichnungen hervor und aus der folgenden detaillierten Beschreibung.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung wird anhand eines Beispiels veranschaulicht und nicht beschränkt durch die Figuren der beiliegenden Zeichnungen, in denen gleiche Bezugszeichen ähnliche Elemente anzeigen und in denen:
  • 1 ein Computersystem 10 für ein Ausführungsbeispiel veranschaulicht, das ein Prozessor-Subsystem, einen Ein-/Ausgangs-Anschluss und ein Speicherverbindungs-Subsystem umfasst;
  • 2 ein Prozessor-Subsystem veranschaulicht, das einen Prozessor, einen externen Pufferspeicher und eine zugeordnete Gruppe von externen Hinweisen sowie eine Speicherverbindungs-Anschlussschnittstelle umfasst;
  • 3 den Ein-/Ausgangs-Anschluss für ein Ausführungsbeispiel veranschaulicht, der eine Standard-Eingangs/Ausgangs-Busschnittstelle und eine Anschluss-Schnittstelle umfasst, die einen kohärenten Ein-/Ausgangs-Direktspeicherzugriff auf den Hauptspeicher ermöglichen;
  • 4 ein Ausführungsbeispiel eines Anforderungspaketes von einem der Speicheranschlüsse 1-N zu der Systemsteuerung veranschaulicht;
  • 5 die Handhabung einer Block-Speicheroperation durch das Prozessor-Subsystem für ein Ausführungsbeispiel veranschaulicht.
  • 1 veranschaulicht ein Computersystem 10 für ein Ausführungsbeispiel. Das Computersystem 10 umfasst ein Prozessor-Subsystem 10, einen Eingangs/Ausgangs-Anschluss 22 und ein Speicherverbindungs-Subsystem 18. Das Speicherverbindungs-Subsystem 18 gibt einen gemeinsamen Zugriff auf einen Hauptspeicher 14 für das Prozessor-Subsystem 20 und das Ein-/Ausgangs-Subsystem 22 vor. Elemente des Computersystems 10 stehen über eine Gruppe von Speicheranschlüssen 1-N im Dialog mit dem Speicherverbindungs-Subsystem 18. Zum Beispiel umfasst des Anschluss 1 für das Prozessor-Subsystem 20 einen Datenweg 40, einen Adressweg 42 und einen Steuerweg 44, und der Anschluss N für das Ein-/Ausgangs-Subsystem 22 umfasst einen Datenweg 46, einen Adressweg 48 und einen Steuerweg 50.
  • Das Speicherverbindungs-Subsystem 18 umfasst einen Datenwegschalter 12 zum Hauptspeicher 14 und eine Systemsteuerung 16. Bei einem Ausführungsbeispiel ist der Datenwegschalter 12 ein Koordinatenweg-Umschalter, der durch die Systemsteuerung 16 über eine Gruppe von Steuersignalen 54 gesteuert wird. Der Datenwegschalter 12 ermöglicht über den Datenweg eines jeden Anschlusses 1-N einschließlich des Datenweges 40 und des Datenweges 46 einen Datenwegzugriff zum Hauptspeicher 14. Die Systemsteuerung 16 funktioniert als Speichersteuerung durch Dekodieren der Adressen, die von den Prozessor-Subsystemen und dem E/A-Subsystem 20–22 empfangen werden, und durch Erzeugung von Speicher-Steuersignalen einschließlich Zeilenadressauswahl (RAS)- und Spaltenadressauswahl (CAS)-Signalen an den Speicher 14 über einen Speichersteuerbus 56.
  • Die Systemsteuerung 16 empfängt über den Adressweg eines jeden Anschlusses 1-N einschließlich der Adresswege 42 und 48 Speicher-Zugriffsanforderungen von den Subsystemen 20–22. Die Systemsteuerung 16 fungiert als Schiedsrichter zwischen den Anforderungen der Subsysteme 20–22 und konfiguriert den Datenwegschalter 12, um die notwendigen Verbindungen für den Zugriff auf den Hauptspeicher 14 über einen Speicherdatenbus 52 oder für Subsystem-Datentransfers vorzugeben. Die Systemsteuerung 16 antwortet falls erforderlich mit Pufferspeicher-Zustandsumschalt-Steuernachrichten auf das Prozessor-Subsystem 20.
  • Die Speicher-Zugriffsanforderungen umfassen z. B. Schreib-Invalidier-Anforderungen (WRI-Anforderungen). Die Subsysteme 20–22 verwenden eine WRI-Anforderung an die Systemsteuerung 16, um einen spezifizierten Datenblock in den Hauptspeicher 14 einzuschreiben. Die Systemsteuerung 16 verarbeitet eine WRI-Anforderung durch Konfigurieren des Datenwegschalters 12, um die geeignete Quelle für den spezifizierten Datenblock vorzugeben. Wenn die WRI-Anforderung von dem Prozessor-Subsystem 20 stammt, überträgt die Systemsteuerung 16 Nachrichten über den Steuerweg 44, um die Pufferspeicher-Zustandsumschaltungen im externen Pufferspeicher des Prozessor-Subsystems 20 zu steuern. Zum Beispiel überträgt die Systemsteuerung 16 Invalidier-Nachrichten über den Steuerweg 44, um, falls geeignet, Datenblöcke im externen Pufferspeicher des Prozessor-Subsystems 20 zu invalidieren.
  • In einem anderen Ausführungsbeispiel unterhält die Systemsteuerung 16 eine Gruppe von Duplikat-Hinweisen, die den externen Hinweisen entsprechen. In einer solchen Multiprozessor-Ausführung nimmt die Systemsteuerung 16 über einen zwischen die Systemsteuerung 16 und die Duplikathinweise geschalteten Schnüffelbus Zugriff auf die Duplikathinweise. Zur Veranschaulichung eines solchen Ausführungsbeispiels sei Bezug genommen auf die Anmeldung mit der Seriennummer ..., angemeldet am 31. März 1995, mit dem Titel „Packet Switches Cache Coherent Multiprocessor Computer System".
  • Der Ein-/Ausgangs-Anschluss 22 gestattet über einen standardisierten Ein-/Ausgangsbus 58 einen Dialog mit einer Gruppe von peripheren Einrichtungen 30–33. Der standardisierte Ein-/Ausgangsbus 58 kann z. B. einen SBUS oder einen standardisierten peripheren Komponenten-Verbindungsbus (PCI) umfassen. Der Ein-/Ausgangs-Anschluss 22 schafft einen direkten Speicher-Zugriffsmechanismus, der kohärente Ein-/Ausgangs-Operationen zum Hauptspeicher 14 über die Systemsteuerung 16 vorgibt.
  • 2 veranschaulicht das Prozessor-Subsystem 20 für ein Ausführungsbeispiel. Das Prozessor-Subsystem 20 umfasst einen Prozessor 70, einen externen Pufferspeicher 74 und eine zugeordnete Gruppe von externen Hinweisen 76 verbunden mit einer Anschluss-Schnittstelle 72.
  • Der Prozessor 70 gibt Speicher-Lade- und Abspeicher-Operationen an den externen Pufferspeicher 74 aus. Die Anschlussschnittstelle 72 gibt unter Verwendung eines über den Adressweg 42 übertragenes Nachrichtenpaketes eine Pufferspeicher-Anforderung an die Systemsteuerung 16 aus. Die Pufferspeicher-Anforderungen umfassen WRI-Transaktionen während Block-Kopieroperationen durch den Prozessor 70. Jedes über den Adressweg 42 übertragene Nachrichtenpaket umfasst eine Kopfadresse, die den Typ der Schreib-Invalidier-Anforderung zusammen mit einer Adresse festlegt, die den Datenblock für die Schreib-Invalidier-Transaktion spezifiert. Die Systemsteuerung 16 verarbeitet eine Schreib-Invalidier-Transaktion durch Konfiguration des Datenwegschalters 12, um den entsprechenden Datenblock an den Hauptspeicher 14 zu übertragen.
  • Bei einem Ausführungsbeispiel umfasst das WRI-Anforderungspaket an die Systemsteuerung 16 einen Invalidier-Beratungs-Hinweis (IVA-Hinweis). Der IVA-Hinweis legt fest, ob die Systemsteuerung 16 eine Invalidier-Anforderung zurück an das Prozessor-Subsystem 20 ausgibt, um den entsprechenden Datenblock in dem externen Pufferspeicher 74 zu invalidieren. Zusätzlich führt das Prozessor-Subsystem 20 aufgrund der Invalidier-Anforderung eine Rückkopien-Operation zum Speicherverbindungs-Subsystem 18 aus, wenn der festgelegte invalidierte Datenblock im externen Pufferspeicher 74 vorliegt.
  • 3 veranschaulicht den Eingangs/Ausgangs-Anschluss 22 für ein Ausführungsbeispiel. Der Ein-/Ausgangs-Anschluss 22 umfasst eine Standard Ein-/Ausgangs-Busschnittstelle 80, zusammen mit einer Anschluss-Schnittstelle 82. Die Anschluss-Schnittstelle 82 ermöglicht einen kohärenten Eingangs/Ausgangs-Direktspeicherzugriff zum Hauptspeicher 14 über die Systemsteuerung 16.
  • 4 veranschaulicht ein Ausführungsbeispiel eines Anforderungspaketes von einem der Speicheranschlüsse 1-N an die Systemsteuerung 16. Bei diesem Ausführungsbeispiel wird das Anforderungspaket in zwei Zyklen über den geeigneten Speicherweg zu der Systemsteuerung 16 übertragen. Die physikalische Adresse des Anforderungspaketes spezifiziert einen Datenblock des Hauptspeichers 14 für das Anforderungspaket. Während einer WRI-Transaktion vom Prozessor-Subsystem zeigt das Transaktions-Typfeld des ersten Zyklus' des Anforderungspaketes den Schreib-Invalidier-Transaktionstyp an. Das IVA-Bit zeigt an, ob das Prozessor-Subsystem 20 eine Invalidier-Anforderung für die entsprechende Schreib-Invalidier-Transaktion erfordert, um den Datenblock in dem externen Pufferspeicher 74 und den Hinweisen 76 zu invalidieren.
  • 5 veranschaulicht eine Block-Speicheroperation durch das Prozessor-Subsystem 20 für ein Ausführungsbeispiel. Die Block-Speicheroperation kann zum Beispiel während einer Blockkopierung durch das Prozessor-Subsystem 20 auftreten. Im Block 100 gibt der Prozessor 70 eine Block-Speicheroperation an den externen Pufferspeicher aus.
  • Im Block 102 erzeugt die Anschlussschnittstelle 72 ein Schreib-Invalidier-Anforderungspaket, das den Datenblock der Block-Speicheroperation des Prozessors 70 festlegt. Im Entscheidungsblock 104 bestimmt der Prozessor 70, ob der festgelegte Datenblock beibehalten wird. Wenn der festgelegte Datenblock nicht durch den Prozessor 70 im Entscheidungsblock 104 beibehalten wird, schreitet die Steuerung zum Block 106 weiter.
  • Im Block 106 löscht der Prozessor 70 das IVA-Bit im Schreib-Invalidier-Anforderungspaket, das in der Anschlussschnittstelle 72 zusammengesetzt wird. Im Block 108 gibt danach die Anschlussschnittstelle 72 über den Adressweg 42 die Schreib-Invalidier-Anforderung an die Systemsteuerung 16 aus.
  • Wenn der festgelegte Datenblock durch den Prozessor 70 im Entscheidungsblock 104 beibehalten wird, fährt die Steuerung sodann zu dem Entscheidungsblock 110 weiter. Im Entscheidungsblock 110 bestimmt der Prozessor 70, ob der festgelegte Datenblock im externen Pufferspeicher 74 vorliegt, indem er eine Hinweis-Aufsuchoperation der externen Hinweise 76 ausführt. Wenn der festgelegte Datenblock in dem externen Pufferspeicher 74 nicht vorliegt, fährt die Steuerung zum Block 108 weiter, um die Schreib-Invalidier-Anforderung an die Systemsteuerung 16 auszugeben. Anderenfalls schreitet die Steuerung zu dem Block 112 weiter.
  • Im Block 112 setzt der Prozessor 70 das IVA-Bit in dem Schreib-Invalidier-Anforderungspaket, um anzuzeigen, dass eine Schreib-Invalidier-Anforderung für den Datenblock von der Systemsteuerung 16 erforderlich ist. Danach fährt die Steuerung zum Block 108 weiter, um das Schreib-Invalidier-Anforderungspaket an die Systemsteuerung 16 auszugeben.

Claims (10)

  1. Computersystem, umfassend: ein Prozessor-Subsystem (20) mit einem externen Pufferspeicher (74); und ein Speicher-Subsystem (18), das an das Prozessor-Subsystem angeschlossen ist, wobei das Speicher-Subsystem getrennt von dem Prozessor-Subsystem ist, das Prozessor-Subsystem eine Schreibinvalidier (WRI)-Operation ausgibt, die einen in dem Speicher-Subsystem zu speichernden Datenblock spezifiziert, dadurch gekennzeichnet, dass die WRI-Operation einen Invalidierberatungs(IVA)-Hinweis umfasst, der dem Speicher anzeigt, ob der Datenblock in dem externen Speicher vorliegt, wobei der IVA-Hinweis festlegt, ob das Speicher-Subsystem aufgrund des Empfangs der WRI-Operation eine Nachricht an das Prozessor-Subsystem sendet, um den Datenblock zu invalidieren.
  2. Computersystem nach Anspruch 1, ferner umfassend: ein I/O Subsytem, das an das Speicher-Subsystem angeschlossen ist, wobei der Datenblock von dem I/O-Subsystem stammt.
  3. Computersystem nach Anspruch 1, wobei der IVA-Hinweis ein Einzelbit ist, wobei das Bit gesetzt ist, um den Datenblock anzuzeigen, der in dem externen Speicher (74) vorliegt, wobei das Speicher-Subsystem die Nachricht sendet, um den Datenblock aufgrund der Feststellung des gesetzten Bits zu invalidieren.
  4. Computersystem nach Anspruch 1, ferner umfassend: mehrere Pufferspeicherhinweise (76), die dem externen Pufferspeicher (74) zugeordnet sind, wobei das Prozessor-Subsystem (20) eine Pufferspeicherhinweis-Aufsuchoperation ausführt, um festzustellen ob der Datenblock in dem externen Pufferspeicher vorliegt.
  5. Computersystem nach Anspruch 1, wobei das Prozessor-Subsystem (20) Pufferspeicherhinweise (76) umfasst, die dem externen Pufferspeicher (74) zugeordnet sind.
  6. Computersystem nach Anspruch 5, ferner umfassend: Mehrere Duplikathinweise, die durch das Speicher-Subsystem (18) bereitgehalten werden, wobei die Duplikathinweise den Pufferspeicherhinweisen (76) in dem Prozessor-Subsystem (20) entsprechen.
  7. Computersystem nach Anspruch 1, wobei das Speicher-Subsystem (18) einen Mechanismus zur Invalidierung eines Datenblockes in dem externen Pufferspeicher (74) umfasst.
  8. Verfahren zur Übertragung von Daten zu einer Speicherschaltung (18), wobei die Speicherschaltung von einem Prozessor-Subsystem (20) getrennt, aber an dieses angeschlossen ist und das Prozessor-Subystem einen externen Pufferspeicher (74) umfasst, wobei das Verfahren die Schritte umfasst: Feststellung, ob ein Datenblock in dem externen Pufferspeicher vorliegt; Ausgabe einer Schreibinvalidier (WRI)-Operation, die den in der Speicherschaltung (18) zu speichernden Datenblock spezifiziert, dadurch gekennzeichnet, dass die WRI-Operation ferner einen Invalidierberatungs(IVA)-Hinweis umfasst, der der Speicherschaltung anzeigt, ob der Datenblock in dem externen Pufferspeicher (74) vorliegt; und Invalidierung des Datenblockes in dem Prozessor-Subsystem aufgrund einer Nachricht, die von dem Speicher stammt und aufgrund des Empfangs eines Invalidierberatungs-Hinweises gesendet wird.
  9. Verfahren nach Anspruch 8, wobei der Schritt der Ausgabe einer WRI-Operation die Spezifizierung eines Datenblockes umfasst, der von dem I/O- Subsystem stammt, das an die Speicherschaltung (18) angeschlossen ist.
  10. Verfahren nach Anspruch 8, wobei der Schritt der Feststellung auf einen vorliegenden. Datenblock in dem externen Pufferspeicher (74) den Schritt der Ausführung einer Pufferspeicher-Aufsuchoperation umfasst.
DE69628079T 1995-03-31 1996-03-15 Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind Expired - Fee Related DE69628079T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41436595A 1995-03-31 1995-03-31
US414365 1999-10-07

Publications (2)

Publication Number Publication Date
DE69628079D1 DE69628079D1 (de) 2003-06-18
DE69628079T2 true DE69628079T2 (de) 2004-02-26

Family

ID=23641138

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69628079T Expired - Fee Related DE69628079T2 (de) 1995-03-31 1996-03-15 Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind

Country Status (5)

Country Link
US (1) US5737755A (de)
EP (1) EP0735481B1 (de)
JP (1) JP3887036B2 (de)
DE (1) DE69628079T2 (de)
SG (1) SG50950A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835950A (en) * 1996-07-12 1998-11-10 Samsung Electronics Co., Ltd. Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
US4638431A (en) * 1984-09-17 1987-01-20 Nec Corporation Data processing system for vector processing having a cache invalidation control unit
DE3740834A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher
JPH065524B2 (ja) * 1987-11-18 1994-01-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置管理方法
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5226146A (en) * 1988-10-28 1993-07-06 Hewlett-Packard Company Duplicate tag store purge queue
EP0380842A3 (de) * 1989-02-03 1991-06-12 Digital Equipment Corporation Verfahren und Vorrichtung zur Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und den zentralen Verarbeitungseinheiten
CA1325289C (en) * 1989-02-03 1993-12-14 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor computer system
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system
US5036459A (en) * 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
JPH0666056B2 (ja) * 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
JP2833062B2 (ja) * 1989-10-30 1998-12-09 株式会社日立製作所 キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5297269A (en) * 1990-04-26 1994-03-22 Digital Equipment Company Cache coherency protocol for multi processor computer system
US5249284A (en) * 1990-06-04 1993-09-28 Ncr Corporation Method and system for maintaining data coherency between main and cache memories
DE69127936T2 (de) * 1990-06-29 1998-05-07 Digital Equipment Corp Busprotokoll für Prozessor mit write-back cache
US5193170A (en) * 1990-10-26 1993-03-09 International Business Machines Corporation Methods and apparatus for maintaining cache integrity whenever a cpu write to rom operation is performed with rom mapped to ram
CA2051209C (en) * 1990-11-30 1996-05-07 Pradeep S. Sindhu Consistency protocols for shared memory multiprocessors
US5265235A (en) * 1990-11-30 1993-11-23 Xerox Corporation Consistency protocols for shared memory multiprocessors
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
US5303362A (en) * 1991-03-20 1994-04-12 Digital Equipment Corporation Coupled memory multiprocessor computer system including cache coherency management protocols
JP2703417B2 (ja) * 1991-04-05 1998-01-26 富士通株式会社 受信バッファ
AU2270892A (en) * 1991-06-26 1993-01-25 Ast Research, Inc. Automatic distribution of interrupts controller for a multiple processor computer system
JPH0512117A (ja) * 1991-07-04 1993-01-22 Toshiba Corp キヤツシユ一致化方式
DE69230428T2 (de) * 1991-09-27 2000-08-03 Sun Microsystems, Inc. Verklemmungserkennung und Maskierung enthaltende Busarbitrierungsarchitektur
EP0553743A1 (de) * 1992-01-31 1993-08-04 Motorola, Inc. Cachespeichersteuerungseinrichtung
US5319766A (en) * 1992-04-24 1994-06-07 Digital Equipment Corporation Duplicate tag store for a processor having primary and backup cache memories in a multiprocessor computer system
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
US5319753A (en) * 1992-09-29 1994-06-07 Zilog, Inc. Queued interrupt mechanism with supplementary command/status/message information
US5434993A (en) * 1992-11-09 1995-07-18 Sun Microsystems, Inc. Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories
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
JPH07105031A (ja) * 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> 多重プロセッサ・コンピュータ・システム内で割込み情報を伝えるための方法および装置
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

Also Published As

Publication number Publication date
SG50950A1 (en) 1998-07-20
EP0735481A1 (de) 1996-10-02
JP3887036B2 (ja) 2007-02-28
DE69628079D1 (de) 2003-06-18
EP0735481B1 (de) 2003-05-14
US5737755A (en) 1998-04-07
JPH0922382A (ja) 1997-01-21

Similar Documents

Publication Publication Date Title
DE3782335T2 (de) Speichersteuersystem.
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE69432133T2 (de) Datenprozessor mit Cache-Speicher
DE69733384T2 (de) Prozessoruntersystem für den Gebrauch mit einer universellen Rechnerarchitektur
DE69331448T2 (de) Dataprozessor mit einem Cachespeicher
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE69203842T2 (de) Speichersteuerungsvorrichtung mit Snoop-Mechanismus.
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE68913914T2 (de) Multiprozessorsystem mit Vervielfältigung von globalen Daten.
US7469321B2 (en) Software process migration between coherency regions without cache purges
DE69729243T2 (de) Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen
DE60211076T2 (de) Datenübertragung zwischen virtuellen Adressen
DE69724353T2 (de) Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll
DE69524564T2 (de) Kohärenz- und synchronisationsmechanismus für ein-/ausgangkanalsteuereinheiten in einem datenverarbeitungssystem
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE68922326T2 (de) Speicherwarteschlange für eine festgekoppelte Mehrprozessorenkonfiguration mit einem zweistufigen Cache-Pufferspeicher.
DE102018213430A1 (de) Beschleuniger mit geringer Latenzzeit
DE69130203T2 (de) Folgerichtiger paketvermittelter Speicherbus für Multiprozessoren mit gemeinsam genutztem Speicher
DE69822534T2 (de) Gemeinsame Speicherbenutzung mit variablen Blockgrössen für symmetrische Multiporzessor-Gruppen
DE19782177B4 (de) Verfahren zur Durchführung von TLB-Shootdown-Operationen in einem Multiprozessorsystem
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69801842T2 (de) Verteilte verriegelungsoperation zum exklusiven speicherzugang während nicht elementaren operationen
JP3849951B2 (ja) 主記憶共有型マルチプロセッサ

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: SUN MICROSYSTEMS, INC., SANTA CLARA, CALIF., US

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee