-
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.