-
Die Erfindung betrifft allgemein
Datenverarbeitungssysteme und insbesondere ein System und ein Verfahren
zum Bereitstellen von Kohärenzinformationen
in einem Multiprozessorsystem.
-
Bei einem Multiprozessorsystem mit
einer Vielzahl von Buseinheiten, die über einen gemeinsam genutzten
Bus mit einem Speichersystem verbunden sind, gibt eine Buseinheit
eine Operation wie beispielsweise eine Leseoperation aus und fordert
einen bestimmten Teil der in dem Speichersystem gespeicherten Daten
an. In Systemen, die „überwachende" Buseinheiten verwenden, überwacht
eine mit dem gemeinsam genutzten Bus verbundene Buseinheit die Operation,
um festzustellen, ob sich die Operation auf Daten bezieht, die sich in
dem Cachespeicher dieser Buseinheit befinden. Dies wird oft als „Kohärenzprüfung" bezeichnet. Durch
eine solche Kohärenzprüfung wird
sichergestellt, dass die neueste und gültige Version der angeforderten
Daten zu der anfordernden Einheit gesendet werden, unabhängig davon,
ob in dem Speichersystem oder einer der Buseinheiten gerade eine
Kopie der neuesten Version vorliegt.
-
Wenn eine Buseinheit über den
gemeinsam genutzten Bus eine Busanforderung sendet, können an die
anfordernde Einheit mehrere Arten von Berichten zurückgesendet
werden. Eine an die anfordernde Buseinheit zurückgesendete Information teilt
die Kohärenz
der angeforderten Daten mit, d. h., wer im Besitz einer gültigen Version
der angeforderten Daten ist. Für
die Kohärenzmitteilung
kann ein bestimmtes Kohärenzfenster
(das „Adressantwortfenster") verwendet werden,
das in der entsprechenden US-Patentschrift 5 608 878 unter dem Titel
DUAL LATENCY STATUS AND COHERENCY REPORTING FOR A MULTIPROCESSING
SYSTEM beschrieben wird. Dieses auch als Kohärenzantwortfenster bezeichnete
Fenster wird eine einstellbare Anzahl von Taktzyklen nach dem Adress-
und Anforderungscode angezeigt, wodurch eine längere Latenzzeit ermöglicht wird,
die wegen der Suche in den Cachespeicherverzeichnissen in jeder
der anderen Buseinheiten benötigt
wird.
-
Wenn die Kohärenzinformationen nicht sofort
erhalten werden können,
um sie innerhalb des Adressantwortfensters zurückzugeben, muss das Fenster
für die
Antwortzwecke erweitert werden. Dies ist beispielsweise in einem
System mit einem ungleichmäßigen Speicherzugriff
(non-uniform memory access, NUMA) oder in einem System mit einem
geschalteten Speicherverzeichnis erforderlich, da in einem derartigen
System die Kohärenzinformationen
in dem überwachten
lokalen Bus nicht immer zur Verfügung
stehen und die Leseanforderung an einen anderes Bus- oder Speicherverzeichnissystem
weitergeleitet werden muss. (Bei der NUMA-Architektur weist das
Verarbeitungssystem nur einen lokalen Busspeicher auf. Bei der Speicherverzeichnisarchitektur
weist das Verarbeitungssystem nur einen globalen Speicher auf, der
zu keinem lokalen Bus gehört.)
Ein Protokoll für
eine bestimmte Erweiterung des Kohärenzantwortfensters wird in
der entsprechenden US-Patentschrift 5 745 698 unter dem Titel SYSTEM
AND METHOD FOR COMMUNICATING BETWEEN DEVICES beschrieben.
-
In der Patentanmeldung des Vereinigten
Königreichs
GB-A-2 287 161, der Intel Corporation zugewiesen, wird ein Verfahren
beschrieben, welches das Senden einer Anforderung nach Daten- und Kohärenzinformationen,
das Überwachen
der Kohärenzinformationen
während
eines bestimmten Kohärenzantwortintervalls und
das Empfangen der Kohärenzinformationen
und eines Antwortindikators umfasst. Es werden jedoch Situationen
nicht berücksichtigt,
in denen auf dem Bus durch Mehrfachversuche übermäßiger Datenverkehr erzeugt
wird, wenn die Kohärenzinformationen
nicht während
des Kohärenzantwortintervalls
zurückgesendet werden
können.
-
Gemäß der vorliegenden Erfindung
werden ein Verfahren nach Anspruch 1 und ein System nach Anspruch
12 bereitgestellt.
-
Bei einem Beispiel der vorliegenden
Erfindung wird eine Leistungsverbesserung beim Liefern von Kohärenzberichten
bereitgestellt, wenn Daten von einem Bus gelesen werden, der für den anfordernden
Prozessor nicht der lokale Bus ist, wie es bei NUMA-Systemen oder
bei auf Speicherverzeichnissen basierenden Systemen üblicherweise
der Fall ist.
-
Bei einem anderen Beispiel der vorliegenden
Erfindung wird eine Verbesserung der Leistung solcher Leseoperationen
bereitgestellt, ohne dem vorher definierten Protokoll Hardwaresignale
hinzuzufügen.
-
Bei einer bevorzugten Ausführungsart
der vorliegenden Erfindung wird als Antwort auf eine Leseanforderung
nach Daten in einer nichtlokalen Quelle eine bestimmte Kohärenzantwort
zurückgegeben,
wenn die Leseanforderung angenommen wurde (d. h., wenn als Antwort
auf die Leseoperation keine Antwort für einen Neuversuch (Retry)
gesendet wurde), werden die angeforderten Daten von der nichtlokalen
Quelle empfangen, und wenn die Daten an den Anfordernden geliefert
wurden, zeigt ein bestimmtes Signal den Kohärenzstatus der Daten an.
-
Bei einer anderen Ausführungsart
der vorliegenden Erfindung wird der Kohärenzstatus entweder als „gemeinsam
genutzt" (shared)
oder als „exklusiv" (exclusive) angezeigt.
-
Die vorliegende Erfindung gestattet
vorteilhaft die Erweiterung eines Kohärenzantwortfensters, ohne dass
eine anfordernde Einheit auf eine Wiederhol-Operation (ReRun) warten
und erneut eine Leseoperation senden muss. Dadurch wird die Latenzzeit
von Leseoperationen für
nichtlokale Daten in NUMA-Systemen oder Speicherverzeichnissystemen
deutlich verringert. Da Leseoperationen einen großen Teil
aller Busoperationen ausmachen, kann dadurch die Systemleistung
deutlich erhöht
werden.
-
Oben wurden die Merkmale und technischen
Vorteile der vorliegenden Erfindung ziemlich einfach dargestellt,
damit die folgende detaillierte Beschreibung der Erfindung besser
verstanden werden kann. Im Folgenden werden weitere Merkmale und
Vorteile der Erfindung beschrieben, die den Gegenstand der Ansprüche der
Erfindung bilden.
-
Im Folgenden werden bevorzugte Ausführungsarten
der vorliegenden Erfindung lediglich als Beispiel unter Bezug auf
die beiliegenden Zeichnungen beschrieben, in denen:
-
1 ein
Blockschaltbild ist, das mehrere gemeinsam genutzte lokale Busse
zeigt;
-
2 ein
Blockschaltbild ist, das einen lokalen Bus in dem System zeigt;
-
3 Operationen
unter Verwendung eines Flusssteuerungsstatus-Antwortintervalls und
eines Kohärenzinformations-Antwortintervalls
allgemein veranschaulicht;
-
4 eine
Wiederhol-Operation (ReRun) veranschaulicht, die ein Mittel zur
Erweiterung eines Kohärenzinformations-Antwortintervalls
bereitstellt;
-
5 eine
RemStat-Operation veranschaulicht, die ein Mittel zur Erweiterung
eines Kohärenzinformations-Antwortintervalls
bereitstellt; und die 6a, 6b und 6c Flussdiagramme
sind, die die Operationen unter Verwendung des erweiterten Kohärenzinformations-Antwortintervalls
veranschaulichen.
-
Zur verständlicheren Darstellung werden
bei der folgenden Erörterung
herkömmliche
Merkmale von Informationsverarbeitungssystemen, die dem Fachmann
geläufig
sind, weggelassen oder nur kurz beschrieben. Es wird davon ausgegangen,
dass der Fachmann mit einem Mehrbenutzer- und Multiprozessor-Betriebssystem
und insbesondere mit den Anforderungen eines solchen Betriebssystems
an die Speicherverwaltung einschließlich des virtuellen Speichers,
der Prozessor-Ablaufsteuerung, der Synchronisierungseinrichtungen für die Prozesse
und die Prozessoren, des Nachrichtenaustauschs, der normalen Einheitentreiber,
der Terminal- und Netzwerkunterstützung, der Systeminitialisierung,
der Interruptverwaltung, der Systemaufrufeinrichtungen und der Verwaltungseinrichtungen
vertraut ist.
-
Es wird ein Datenverarbeitungssystem
gemäß 1 beschrieben, das vorteilhaft
die vorliegende Erfindung realisiert. Das Multiprozessorsystem 100 enthält eine
Anzahl lokaler Systembusse 108.1, 108.2 usw., wobei
ein lokaler Systembus wie beispielsweise der Bus 108.1 eine
Anzahl von Verarbeitungseinheiten 102.1, 104.1, 106.1 usw.
und eine Prozessorknotensteuereinheit (oder „Busadapter") 130.1 aufweist,
der mit diesem funktionell verbunden ist. (Sofern im Folgenden eine
Anzahl gleicher durchnummerierter Elemente angegeben oder gezeigt
werden, wie zum Beispiel die Systembusse 108.1, 108.2 usw.,
können
diese Elemente gemeinsam oder einzeln ohne die Erweiterung genannt
werden, wie beispielsweise „Systembusse 108)
oder „Systembus 108".) Eine Prozessoreinheit
102, 104, 106 usw. kann einen Prozessor und einen Cachespeicher
enthalten, kann im Folgenden aber einfach als „Prozessor" bezeichnet werden. Eine Knotensteuereinheit
130 enthält ein
Verzeichnis für
den Systemspeicher 110 auf dem lokalen Bus, wenn es einen lokalen
Speicher gibt. Ein Systembus 108 ist über eine Knotensteuereinheit
130, der den Bus 108 mit den anderen Bussen 108 in
der NUMA-Architektur und mit den Speicherelementen 150 mit
deren gespeicherten Verzeichnissen in der Speicherverzeichnis-Architektur
verbindet, funktionell mit einem Verbindungselement verbunden.
-
In 2 ist
ein lokaler Systembus 108 gezeigt, der funktionell mit
einer Anzahl von Verarbeitungseinheiten 102, 104, 106 usw. bis zur
Verarbeitungseinheit n verbunden ist. Ebenso ist der Systemspeicher
110 mit dem Systembus 108 verbunden. Bei dieser anschaulichen
Ausführungsart
enthält
der Systembus 108 unter Anderem einen 5-Bit-Übertragungsbus
(„TT") 221, einen
64-Bit-Adressbus 222, einen 128-Bit-Datenbus 224, einen
8-Bit-Datenkennungsbus („DTag") 226, einen
6-Bit-Adressantwortbus
(„AResp") 227 und
einen 1-Bit-Cachespeicherdatenbus
(„DCache") 228. Die
Systemelemente 102 bis 110 arbeiten unter der Steuerung der Knotensteuereinheit
130, die Daten mit den Elementen 102 bis 110 austauscht, die über (nicht
gezeigte) Punkt-zu-Punkt-Leitungen mit dem Systembus 108 verbunden
ist. Eine Knotensteuereinheit 130 ist bei 132 mit anderen
Bussen und Einheiten (siehe 1)
verbunden. Somit kann ein lokal mit dem Bus 108.1 verbundener Prozessor 102.1 in 1 über die Knotensteuereinheit 130.1 mit
den Einheiten außerhalb
des lokalen Busses 108.1 wie zum Beispiel mit dem Prozessor 102.2 an
dessen lokalem Bus 108.2 oder mit dem Speicher 110.3 an
dessen lokalem Bus 108.3 bzw. mit dem Speicher 150.1 an
dem Verbindungselement 140 in Verbindung treten.
-
Sämtliche
Anforderungen und Berechtigungen für den Zugriff auf den Bus 108 werden
durch die Knotensteuereinheit 130 gesteuert. Eine der Buseinheiten
wie zum Beispiel der Prozessor 102 kann über eine (nicht gezeigte) Punkt-zu-Punkt-Verbindung von der
Knotensteuereinheit 130 anfordern, dass er auf dem Bus 108 eine
Operation ausführen
kann. Nachdem er von der Steuereinheit 130 eine Berechtigung für den Bus empfangen
hat, ist der Prozessor 102 in der Lage, an den Bus 108 eine Adresse
einschließlich
einer Transaktionskennung zu senden, die den Prozessor 102 als anfordernde
Einheit kennzeichnet.
-
Um eine möglichst große Anzahl an den Bus angeschlossener
Einheiten und eine hohe Busfrequenz zu ermöglichen und den Anschluss trotzdem
mittels CMOS-Logikbauelementen direkt an den Bus 108 zu
ermöglichen,
werden die verschiedenen Status- und
Kohärenzantworten
von den Buseinheiten von jedem Busteilnehmer in einer Richtung zu
einem gemeinsamen Sammelpunkt wie etwa der Knotensteuereinheit 130
geleitet, die alle Antworten zusammenfasst und dann die zusammengefassten
Antworten an jede anfordernde Buseinheit zurücksendet. Die Knotensteuereinheit
130 erfasst auch Kohärenzinformationen
für den
fernen Speicher 150 oder den Speicher 110, d. h. an den
fern von dem Bus 108 der anfordernden Einheit 102 gelegenen
Speicher 150 oder den Speicher 110. Die Zusammenfassungslogik
der Knotensteuereinheit 130 legt für die Antworten auch Prioritäten fest,
da die Buseinheiten unterschiedliche Antworten senden können. Diese festgelegten
Prioritäten
sind in den hier beschriebenen Tabellen angegeben.
-
In 3 kann
die Adresse A durch den Prozessor 102 auf den Bus 108 freigegeben
werden. Eine bestimmte Zeitspanne danach werden Statusinformationen,
d. h. der Flusssteuerungsstatus und der Fehlerstatus, während des
Flusssteuerungsstatus-Antwortfensters
A (als „Status
A" gezeigt) zum
Prozessor 102 zurückgesendet.
Der Prozessor 102 kann auch noch eine weitere feste, aber einstellbare
Zeitspanne auf Kohärenzinformationen
warten, die während
des Adressantwortfensters A (als „Überwachung A" gezeigt) durch die
Knotensteuereinheit 130 auf dem AResp-Bus 227 von den verschiedenen
anderen Buseinheiten in dem System 100 zurückgesendet
werden können.
Diese Kohärenzinformationen,
die als Ergebnis einer typischen Überwachungsoperation durch
die anderen Buseinheiten erzeugt werden, zeigen dem Prozessor 102
an, wo sich die neueste Version der angeforderten Daten befindet.
Wenn zum Beispiel der Prozessor 104 feststellt, dass er die angeforderten
Daten in einer abgeänderten
Form enthält,
informiert er den Prozessor 102 darüber, dass er die neueste Version
der angeforderten Daten besitzt und dass der Systemspeicher 110
nicht die neueste Version enthält.
Durch das Erstellen des Adressantwortfensters eine einstellbare
Anzahl von Taktzyklen nach dem Adress- und Anforderungscode wird
es ermöglicht,
während
unterschiedlicher und längerer
Zeiträume
in den Cachespeicherverzeichnissen der verschiedenen Buseinheiten
in dem System 110 zu suchen.
-
Tabelle A zeigt ein Beispiel von
Kohärenznachrichten,
die nach einer bevorzugten Ausführungsart
codiert sind:
-
Man beachte, dass die Tabelle eine
Festlegung der Priorität
der zurückgesendeten
Kohärenznachrichten
enthält.
Diese Prioritätenfolge
kann durch die Systemsteuereinheit 130 benutzt werden, die die zurückgesendeten
Nachrichten zuerst empfängt,
um zu ermitteln, welche der empfangenen Nachrichten von verschiedenen
Buseinheiten an den Prozessor 102 gesendet werden sollen. Wenn zum
Beispiel die Buseinheit 104 eine Nachricht „Geändert" mit einer Priorität 2 (siehe Tabelle A) und eine
Buseinheit 106 eine Nachricht „Wiederholung" mit einer Priorität 3 zurücksendet,
kann die Steuereinheit 130 so eingerichtet sein, dass sie die Nachricht „Geändert" als Kohärenzantwort
sendet.
-
Drei der in Tabelle A gezeigten Antworten
liefern eine rasche Kohärenzklärung während eines
nicht erweiterten Adressantwortfensters. Die Antwort „Geändert" dient dazu, einer
anfordernden Einheit, z. B. der Prozessoreinheit 102, anzuzeigen,
dass es in einem Cachespeicher in einer der anderen, lokalen Prozessoreinheiten
104, 106 usw. eine geänderte
Cachespeicherleitung gibt. Die Antwort „Gemeinsam genutzt" zeigt an, dass die
Daten in einem oder mehreren lokalen Cachespeichern vorliegen, aber
nicht geändert
sind. Die Antwort „Null" zeigt an, dass sich
die Daten weder in einem lokalen noch in einem fernen Cachespeicher,
sondern in einem lokalen Speicher befinden.
-
Drei der in Tabelle A gezeigten Antworten
erweitern das Adressantwortfenster. Die Antwort „Neuversuch" dient dazu anzuzeigen,
dass eine Kohärenzüberschneidung
vorliegt und dass die Operation durch die anfordernde Einheit später noch
einmal gesendet werden soll. Die Antworten „Wiederholung" und „RemStat" werden verwendet,
wenn der lokale Bus verlassen wird.
-
Die 4 und 5 zeigen verschiedene Signale,
die während
der Zeitintervalle T1, T2 usw. auf den zum Systembus 108 gehörenden Bussen
gültig
sind. In beiden 4 und 5 sind die Zeitintervalle
nicht notwendigerweise gezeigt, um ihre Länge bzw. die Zeit zwischen
den Intervallen darzustellen.
-
4 veranschaulicht
die Realisierung eines erweiterten Adressantwortfensters, das durch
eine Antwort „Wiederholung" erstellt wurde.
Zum Zeitpunkt T1 sendet ein Prozessor, z. B. der Prozessor 102,
eine Leseoperation, die eine Kohärenzinformation
anfordert, wobei der Prozessor 102 auf dem TT-Bus 221 ein
Lesesignal und auf dem Adressbus 222 eine Adresse und eine
Kennung ausgibt. Während
des Adressantwortfensters (Zeitintervall T2), welches eine bestimmte
eingestellte Zeitspanne nach der Leseanforderung folgt, gibt die Steuereinheit
130 auf dem AResp-Bus 227 ein Signal „Wiederholung" aus. Die Antwort „Wiederholung" zeigt an, dass die
Knotensteuereinheit 130 später
eine Anforderung „Wiederholung" auslösen wird,
wodurch sie die anfordernde Einheit 102 deutlich davon entlastet,
vorläufig
weitere Maßnahmen
zur Gewinnung von Kohärenzinformationen
einzuleiten. Sobald die Kohärenzinformationen
von der nichtlokalen Quelle eingetroffen sind, richtet die Steuereinheit
130 zum Zeitpunkt T3 eine Anforderung „Wiederholung" an die anfordernde
Einheit 102, indem sie auf dem DTag-Bus 226 die ursprünglich durch
die anfordernde Einheit 102 erzeugte Transaktionskennung und auf
dem TT-Bus 221 die Anforderung „Wiederholung" ausgibt. Als Antwort
darauf sendet der Prozessor 102 zum Zeitpunkt T4 die Leseoperation
zurück
und gibt zu demselben Zeitpunkt auf dem Adressbus 222 auch
ein bestimmtes Bit (das „R-Bit") aus, und die Steuereinheit
130 gibt während
des eingestellten Adressantwortfensters (Zeitintervall T5) auf dem
AResp-Bus 227 die Kohärenzinformation
aus. Wenn die angeforderten Daten eingetroffen sind, werden während eines
Leseintervalls (Zeitintervall T6) auf dem DTag-Bus 226 die
Transaktionskennung und auf dem Datenbus 224 die Daten
ausgegeben.
-
5 veranschaulicht
die Realisierung eines erweiterten Adressantwortfensters, das durch
das Aussenden einer Antwort RemStat eingerichtet wird. Zum Zeitpunkt
T1 sendet ein Prozessor, z. B. der Prozessor 102, eine Leseoperation,
die Kohärenzinformationen
erfordert, wobei der Prozessor 102 auf dem TT-Bus 221 ein
Lesesignal und auf dem Adressbus 222 eine Adresse und eine
Kennung ausgibt. Während
des Adressantwortfensters (Zeitintervall T2), das auf einen bestimmten
Zeitpunkt nach der Leseanforderung eingestellt ist, gibt die Knotensteuereinheit
130 auf dem AResp-Bus 227 ein Signal „RemStat" aus. Die Antwort „RemStat" zeigt an, dass die Systemsteuereinheit
130 die angeforderten Daten später
zusammen mit den Kohärenzinformationen
für die
Daten an den anfordernden Prozessor 102 zurücksenden wird, wodurch sie
die anfordernde Einheit 102 deutlich davon entlastet, weitere Maßnahmen
zur Gewinnung von Kohärenzinformationen
einzuleiten, sowie die Latenzzeit deutlich verkürzt.
-
Wie in der der vorliegenden Erfindung
vorangehenden verwandten US-Patentschrift 5 659 708 unter dem Titel
SYSTEM AND METHOD FOR DETERMINING SOURCE OF DATA IN A SYSTEM WITH
INTERVENING CACHES beschrieben, ist der DCache-Bus für DCache-Signale
verwendet worden, um anzuzeigen, dass eine Datenübertragung nicht vom Systemspeicher,
sondern von einem eingreifenden Cachespeicher erfolgt und unter
diesen Bedingungen durch den Cachespeicher gesteuert wird. Da das
Signal DCache bei einem solchen Cachespeichereingriff während nichtlokaler
Busleseoperationen nicht ausgegeben wird, steht es zur Übertragung
der Kohärenzinformationen
gemäß der vorliegenden
Erfindung zur Verfügung.
-
wenn in einem Prozessor 102 eine
Anforderung anhängig
ist, wie beispielsweise diese Anforderung zum Lesen bestimmter Daten,
sucht der Prozessor 102 während
jedes Taktzyklus den DTag-Bus ab. Sobald die Knotensteuereinheit
130 die angeforderten Daten und die Kohärenzinformationen für die Daten
erhalten hat, gibt die Knotensteuereinheit 130 auf dem DTag-Bus 226 Transaktionskennungssignale,
die die anfordernde Einheit kennzeichnen, auf dem Datenbus 224 Datensignale
und auf dem DCache-Bus 228 Signale der Kohärenzinformationen
aus. Bei der bevorzugten Ausführungsart
werden die Kennung, die Daten und die Kohärenzinformationen während desselben
Taktzyklus (als Zeitintervall T3 gezeigt) gemeinsam ausgegeben.
Während
des Zyklus, in dem die Transaktionskennung ausgesandt wird (d. h.
-
im Zeitintervall T3), und als Antwort
auf das Erkennen der Kennung auf dem DTag-Bus, liest der Prozessor
102 sowohl die Datensignale auf dem Datenbus 224 als auch
die Kohärenzsignale
auf dem DCache-Bus 228, ohne zusätzliche Latenzzeit in Anspruch
zu nehmen, die mit dem Warten auf die Wiederholungs-Operation von der
Knotensteuereinheit 130 und dem Auslösen einer weiteren Anforderung
und dem Warten auf ein Adressantwortfenster zum Lesen der angeforderten
Informationen verbunden ist.
-
In den 6a und 6b sind Flussdiagramme von Operationen
gezeigt, die durch das Informationsverarbeitungssystem 100 ausgeführt werden.
Insbesondere zeigen die Flussdiagramme der 6a und 6b Operationen, die durch eine Buseinheit
wie die Prozessor-Knotensteuereinheiten 130 der bevorzugten Ausführungsart
ausgeführt
werden. Die in den 6a und 6b gezeigten Operationen brauchen nicht
unbedingt in der angezeigten Reihenfolge ausgeführt zu werden. In 6a beginnt die Ausführung in Block 400 und
geht weiter zu Block 402, wo die Steuereinheit 130 diejenigen
Busoperationen untersucht, die vom lokalen Bus 108 nach außen gerichtet
werden. Zum Beispiel ist der Bus 108.1 für den Prozessor 102.1 der
lokale Bus, sodass eine auf den Speicher 110.2 auf dem
Bus 108.2 oder auf den Speicher 150 zugreifende
Leseoperation durch den Prozessor 102.1 eine Busoperation
wäre, die
vom lokalen Bus 108.1 nach außen gerichtet ist.
-
Die Ausführung geht dann für solche
Busoperationen weiter zum Entscheidungsblock 404, wo die Steuereinheit
130 zu Block 406 verzweigt, falls keine Kohärenzantwort
erforderlich ist (wobei die Prüfung
für die
Zwecke der vorliegenden Erfindung wie durch Block 408 angezeigt
abgeschlossen ist), oder zu Block 410, falls eine Kohärenzantwort
erforderlich ist.
-
Gemäß der Entscheidung in Block 410 verzweigt
die Steuereinheitenlogik 130 für
Leseoperationen nach Block 412 oder für andere Operationen nach Block 418.
Für Leseoperationen
sendet die Steuereinheit 130 während
des normalen Adressantwortfensters (Block 412) eine Antwort „RemStat" an den Anfordernden zurück. Für Nicht-Leseanforderungen
sendet die Steuereinheit 130 während
des normalen Adressantwortfensters (Block 414) eine Antwort „wiederholung" zurück. Dann
speichert die Steuereinheit 130 die durch den Anfordernden für die Operation
erzeugte Kennung (Block 416), schließt die Prüfung (Block 418) bei
diesem Bearbeitungsstand der Operation ab und leitet die Operation
an einen nichtlokalen Bus oder an den Speicher weiter.
-
Wenn die Steuereinheit 130 wie in 6b gezeigt einen Hinweis empfängt, dass
eine ferne Operation beendet wurde (Block 430), ermittelt
die Steuereinheitenlogik 130 anschließend, ob die Operation eine
Leseoperation (Block 432) war und verzweigt entsprechend.
Wenn die Operation eine Leseoperation war (Block 434),
sendet die Steuereinheit 130 die Daten mit der ursprünglichen
Kennung zurück.
Während
die Steuereinheit die Daten- und die DTag-Signale ausgibt, gibt
sie auch ein Signal auf dem DCache-Bus aus, wenn der Kohärenzstatus
der Daten „Gemeinsam
genutzt" ist. Um
einen Kohärenzstatus „Null" anzuzeigen, wird
kein Signal auf dem DCache-Bus ausgegeben. Bei dieser Ausführungsart
wird damit die Antwort (Block 436) durch die Steuereinheit
zum Zurücksenden
der fernen Leseoperation abgeschlossen. Für das Zurücksenden einer fernen Operation,
die keine Leseoperation war, sendet die Steuereinheit 130 eine Anforderung „Wiederholung" und gibt die DTag-Signale
(Block 438) aus. Wenn der Anfordernde die Nicht-Leseoperation
erneut sendet und gleichzeitig auf dem Adressbus das R-Bit ausgibt,
um anzuzeigen, dass es sich um eine wiederholte Rücksendeoperation
handelt, sendet die Steuereinheit 130 die Kohärenzantwort (Block 440)
während
des normalen Adressantwortfensters zurück. Wenn es sich bei der Operation
um eine Leseoperation mit Änderungsabsicht (Block 442)
handelte, gibt die Steuereinheit 130 auf dem Datenbus 224 Datensignale
für die
Daten und auf dem DTag-Bus 226 die Kennung aus, wodurch
die Operation aus Sicht der vorliegenden Erfindung abgeschlossen
ist.
-
In 6c ist
ein Flussdiagramm von weiteren durch das Datenverarbeitungssystem 100 ausgeführten Operationen
gezeigt. Insbesondere zeigt das Flussdiagramm von 6c durch
eine Hauptbuseinheit (Master), wie beispielsweise einen Prozessor
102 der bevorzugten Ausführungsart,
ausgeführte
Operationen. Die in 6c gezeigten Operationen
brauchen nicht unbedingt in der angegebenen Reihenfolge ausgeführt zu werden.
-
Der Master 102 sendet in Block 460 eine
Leseoperation und empfängt
eine Kohärenzantwort.
Dann ermittelt der Master 102 die Art der empfangenen Antwort. Wenn
die Antwort zeigt, dass die angeforderten Daten einen Status „Gemeinsam
genutzt" (Block 462)
aufweisen, bedeutet dies, dass sich die Daten im Speicher 110 auf
dem lokalen Bus 108 sowie in dem Cachespeicher eines anderen
Prozessors 104, 106 usw. auf dem Bus 108 befinden, aber
in dem Cachespeicher nicht verändert
worden sind. Demzufolge wartet der Master 102 auf die für ihn gekennzeichneten
Daten und kennzeichnet im Cachespeicher (Block 464) die
Daten als „Gemeinsam
genutzt". In diesem
Fall endet damit im Rahmen der vorliegenden Erörterung die Bearbeitung des Masters
(Block 466).
-
Wenn die Antwort den Status „Geändert" (Block 468)
anzeigt, bedeutet dies, dass sich die Daten in dem Speicher 110
auf dem lokalen Bus 108 sowie im Cachespeicher eines anderen
Prozessors 104, 106 usw. auf dem Bus 108 befinden und im
Cachespeicher geändert
worden sind. Demzufolge wartet der Master 102 auf die gekennzeichneten
Daten (Block 470). In diesem Fall kommt eine Antwort auf
die Leseanforderung sowohl von einem Cachespeicher als auch von
einem anderen Speicher 110; welche Daten zuerst eintreffen, hängt davon
ab, ob der Speicher 110 oder der Cachespeicher schneller ist. Um
sicherzustellen, dass die richtigen Daten verwendet werden, wartet
der Master 102 deshalb auf die Cachespeicherversion der gekennzeichneten
Daten, die zusammen mit dem ausgegebenen DCache-Signal zurückgesendet
werden. Dann kennzeichnet der Master 102 die Daten im Cachespeicher
als „Gemeinsam
genutzt" (Block 470)
und hat damit seine Arbeit im Rahmen der vorliegenden Erörterung
erledigt.
-
wenn durch die Antwort der Status „Null" angezeigt wird (Block 472),
bedeutet dies, dass sich die Daten nur im Speicher 110 auf dem lokalen
Bus 108 befinden. Demzufolge wartet der Master 102 auf
die gekennzeichneten Daten und kennzeichnet die Daten im Cachespeicher
als „Exklusiv" (Block 474)
und hat damit seine Arbeit im Rahmen der vorliegenden Erörterung
erledigt.
-
Wenn durch die Antwort der Status „Remstat" angezeigt wird (Block 476),
bedeutet dies, dass sich die Daten weder im Speicher 110 noch in
einem Cachespeicher auf dem lokalen Bus 108 befinden. In
diesem Fall empfängt
der Anfordernde 102 nur von der Prozessor-Knotensteuereinheit 130
eine Antwort, und der Wettlauf zwischen dem lokalen Speicher 110
und einem lokalen Cachespeicher entfällt. Daher entfällt auch
die Notwendigkeit, einen Kohärenzstatus „Geändert" zurückzusenden,
sodass als notwendige Kohärenzantworten
nur die Status „Exklusiv" oder „Gemeinsam
genutzt" übrig bleiben
und somit die Kohärenzantwort
als ein digitales Logiksignal auf einer einzigen Leitung ausgegeben
werden kann. Demzufolge wartet der Master 102 auf die gekennzeichneten
Daten, und wenn die gekennzeichneten Daten zusammen mit dem ausgegebenen DCache- Signal zurückgesendet
werden, kennzeichnet der Master 102 die Daten im Cachespeicher als „Gemeinsam
genutzt"; ansonsten
kennzeichnet der Master die Daten als „Exklusiv" (Block 478) und hat damit
seine Arbeit in diesem Rahmen erledigt.
-
Wenn der Master 102 feststellt, dass
die Antwort keinen Status „RemStat" anzeigt, ermittelt
er, ob der Status „Wiederholung" lautet (Block 480).
Wenn dies zutrifft, setzt der Master 102 das R-Bit und die Kennung und
sendet die Leseoperation erneut (Block 482), ansonsten
sendet der Master 102 die Leseoperation erneut, ohne das R-Bit zu
setzen (Block 484).
-
Obwohl die vorliegende Erfindung
und deren Vorteile ausführlich
beschrieben wurden, ist klar, das daran verschiedene Veränderungen,
Austauschmaßnahmen
und Abwandlungen vorgenommen werden können, ohne von dem in den beiliegenden
Ansprüchen
Geltungsbereich der Erfindung abzuweichen.