-
GEBIET
-
Die
vorliegende Offenbarung betrifft im allgemeinen Mikroprozessoren,
die bei einem Fehlschuß auf
einen Cache oder Pufferspeicher Verfahren zum Ersatz von Cachereihen
verwenden, und genauer Mikroprozessoren, die Verfahren zum Ersatz
von Cachereihen in inklusiven Caches verwenden.
-
HINTERGRUND
-
Mikroprozessoren
können
Mehrebenen-Cachegestaltungen benutzen, um die Wartezeit von Speicherzugriffen
zu verringern. Die Cachespeicherebenen, die näher an den Prozessorkernen
liegen (Cache der ersten Ebene (L1)) können eine Gestaltungsbetonung
auf eine geringe Wartezeit aufweisen, während die Cachespeicherebenen,
die am weitesten von den Prozessorkernen entfernt sind (Cache der
letzten Ebene (LLC)), eine Gestaltungsbetonung auf eine größere Kapazität aufweisen
können.
Dazwischenliegende Cachespeicherebenen, falls vorhanden, können für die Leistung
gestaltet sein, wobei ein Kompromiß zwischen einer geringen Wartezeit und
einer großen
Kapazität
getroffen wird.
-
Wenn
ein Speicherzugriff (z.B. Lesen oder Schreiben) auf einen Cache
vorgenommen wird, wird eine Bestimmung vorgenommen, ob die angeforderte
Speicherstelle im Cache vorhanden ist (Cache"treffer") oder nicht (Cache"fehlschuß"). Wenn es zu einem Fehlschuß kommt,
muß Platz
im Cache geschaffen werden, damit die angeforderte Reihe von einem
Cache einer oberen Ebene oder vom Systemspeicher geladen wird. Caches
verfügen
im allgemeinen über
ein Ersatzverfahren, um zu bestimmen, welche bestehende Cachereihe
geräumt
werden sollte, um Platz für
diese neue Cachereihe zu schaffen. Dieser Vorgang kann häufig als „Opferung" bezeichnet werden.
Ersatzverfahren können
wohlbekannte Verfahren wie etwa das Verfahren der an wenigsten jüngsten Verwendung
(LRU), das Verfahren der zufälligen
Auswahl, und das Verfahren nach der Reihenfolge des Eintreffens
(FIFO) beinhalten. Jedes dieser und anderer Verfahren kann Vorteile
und Nachteile aufweisen.
-
Um
die Cachekohärenz
in einem Mehrfachprozessorkernsystem zu bewahren, wird häufig ein „Abschnüffeln" nach angeforderten
Cachereihen durchgeführt.
In einem Puffersystem mit mehreren Ebenen würde dies im allgemeinen bedeuten,
daß Abschnüffelungsnachrichten
beginnend mit den Caches der letzten Ebene und sich den ganzen Weg
bis zu den Caches L1 hinab fortsetzend abwärts verbreitet werden müßten. Zum
Teil, um die Wartezeit, die durch diese Abschnüffelungsnachrichten erzeugt wird,
zu verringern, sind viele Caches als inklusiv gestaltet. Ein inklusiver
Cache bewahrt die Eigenschaft, daß jede beliebige Cachereihe,
die in einem Cache einer niedrigeren Ebene vorhanden ist, auch in
diesem inklusiven Cache vorhanden ist. Daher kann es sein, daß das Abschnüffeln in
vielen Fällen
nur an den Caches der letzten Ebene durchgeführt werden muß: wenn
eine besondere Cachereihe nicht im Cache der letzten Ebene vorhanden
ist, wird sie durch die inklusive Eigenschaft auch nicht in irgendwelchen Caches
niedrigerer Ebenen vorhanden sein. Doch die inklusive Eigenschaft
kann ihre eigenen leistungsverringernden Artefakte erzeugen.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung ist in den Figuren der beiliegenden Zeichnungen
beispielhaft und nicht beschränkend
veranschaulicht, wobei sich gleiche Bezugszeichen auf ähnliche
Elemente beziehen, und wobei
-
1 ist
ein schematisches Diagramm eines Mehrfachkernprozessors, der einen
Cache der letzten Ebene beinhaltet, nach einer Ausführungsform.
-
2 ist
ein schematisches Diagramm eines Caches nach einer Ausführungsform.
-
3 ist
ein Zeitsteuerungsdiagramm von Ereignissen in einem Cachesystem
nach einer Ausführungsform.
-
4 ist
ein Ablaufdiagramm eines Verfahrens zur Auswahl von Ersatzkandidaten
nach einer Ausführungsform
der vorliegenden Offenbarung.
-
5A und 5B sind
schematische Diagramme von Systemen, die Prozessoren mit Caches beinhalten,
nach zwei Ausführungsformen
der vorliegenden Offenbarung.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die
folgende Beschreibung beschreibt Techniken für ein verbessertes Verfahren
zum Ersatz von Cachereihen zur Verwendung beim Victim-Vorgang bzw.
Opferungsvorgang in Caches mit mehreren Ebenen. In der folgenden
Beschreibung werden zahlreiche bestimmte Einzelheiten wie etwa Logikausführungen,
Softwaremodulzuordnungen, Bus- und andere Schnittstellensignalisierungstechniken,
und Einzelheiten des Betriebs ausgeführt, um ein gründlicheres
Verständnis
der vorliegenden Erfindung bereitzustellen. Ein Fachmann wird jedoch
verstehen, daß die
Erfindung ohne derartige bestimmte Einzelheiten ausgeführt werden
kann. In anderen Fällen
wurden Steueraufbauen, Schaltungen auf Gatterebene und vollständige Softwarebefehlsabfolgen
nicht ausführlich
gezeigt, um die Erfindung nicht unverständlich zu machen. Durchschnittsfachleute
werden mit den beinhalteten Beschreibungen fähig sein, ohne übermäßiges Experimentieren
eine passende Funktionalität auszuführen. In
bestimmten Ausführungsformen
ist die Erfindung in der Form von Caches offenbart, die in Mehrfachkernausführungen
des Pentium®-kompatiblen
Prozessors wie den durch die Intel® Corporation
hergestellten vorhanden sind. Die Erfindung kann jedoch in den Caches
ausgeführt
werden, die in anderen Arten von Prozessoren wie etwa einem mit
der Itanium®-Prozessorfamilie
kompatiblen Prozessor oder einem mit der X-Scale®-Familie
kompatiblen Prozessor vorhanden sind.
-
Unter
Bezugnahme auf 1 wird nun ein schematisches
Diagramm eines Mehrfachkernprozessors 102, der einen Cache 104 der
letzten Ebene beinhaltet, nach einer Ausführungsform gezeigt. In dieser
Ausführungsform
ist der Fall gezeigt, der zwei Prozessorkerne, den Prozessorkern
0 112 und den Prozessorkern 1 122, verwendet.
In anderen Ausführungsformen
kann ein einzelner Prozessorkern oder können mehr als zwei Prozessorkerne
verwendet werden. Durch seine Bezeichnung gibt der Cache 104 der
letzten Ebene im allgemeinen an, daß er der Cache ist, der am
weitesten von den Prozessorkernen 112, 122 entfernt
ist und dem Systemspeicher 140 am nächsten liegt. Doch in einigen
Ausführungsformen können zwischen
dem Mehrfachkernprozessor 102 und dem Systemspeicher 140 Cache
höherer Ebene
vorhanden sein.
-
Der
Cache oder Pufferspeicher 104 der letzten Ebene kann als
ein einheitlicher Cache (sowohl Daten als auch Befehle) oder als
ein Datencache gestaltet sein. Die Caches der niedrigsten Ebene,
der Datencaches 0 110 der ersten Ebene (L1) und der L1-Datenspeicher
1 120, sind in der Cachehierarchie des Mehrfachkernprozessors
direkt unter dem Cache 104 der letzten Ebene gezeigt. In
anderen Ausführungsformen
können
zusätzliche
Cache, wie etwa ein Cache der zweiten Ebene (L2), der zwischen den L1-Caches 110, 120 und
dem Cache 104 der letzten Ebene gestaltet ist, vorhanden
sein. Der Cache 104 der letzten Ebene beinhaltet im allgemeinen
eine Schnittstellenschaltung, die eine Datenübertragung zwischen dem Cache 104 der
letzten Ebene und dem Systemspeicher 140 über eine
Schnittstelle 142 gestattet. In verschiedenen Ausführungsformen
kann die Schnittstelle 142 ein Mehrfachablagebus oder eine
Punkt-zu-Punkt-Schnittstelle
sein.
-
In
bestimmten Ausführungsformen
kann der Cache 104 der letzten Ebene inklusiv sein. Ein
inklusiver Cache ist ein Cache, bei dem jede beliebige Cachereihe,
die in einem Cache einer niedrigeren Ebene enthalten ist, auch im
inklusiven Cache enthalten ist. Die inklusive Eigenschaft gestattet
ein vereinfachtes Abschnüffeln,
um die Cachekohärenz
sicherzustellen, da man nur den inklusiven Cache und nicht irgendwelche
Caches niedrigerer Ebene abschnüffeln muß, um zu
bestimmen, ob eine besondere Cachereihe vorhanden ist.
-
Unter
Bezugnahme auf 2 ist nun ein schematisches
Diagramm eines Caches 200 nach einer Ausführungsform
gezeigt. Der Cache 200 kann in einigen Ausführungsformen
der Cache 104 der letzten Ebene von 1 sein.
In anderen Ausführungsformen
kann der Cache 200 ein Cache einer Zwischenebene sein.
Der Cache 200 ist als assoziativer Cache mit einem Satz
von N Wegen gezeigt. In einem assoziativen Cache mit einem Satz
von N Wegen weist jeder der M Sätze
N Stellen auf, um eine Cachereihe, die als ein „Weg" bezeichnet wird, zu halten. Jede beliebige
besondere Cachereihe im Systemspeicher darf nur in einen besonderen
der M Sätze
geladen werden, aber diese besondere Cachereihe darf in jeden beliebigen
der N Wege dieses besonderen Satzes geladen werden. Als Grenzfall kann
ein vollassoziativer Cache als assoziativer Cache mit einem Satz
von N Wegen angesehen werden, der nur einen Satz aufweist.
-
2 zeigt
den Cache 200 mit M Sätzen,
die als Satz 0 210 bis Satz M-1 240 bezeichnet
sind. Der Cache 200 kann eine Cachesteuerlogik 242 beinhalten,
die ein Schaltsystem zum Anschluß an externe Schnittstellen,
zur Antwort auf Abschnüffelungsanforderungen,
zur Weiterleitung von Anforderungen an den Systemspeicher auf einen
Cachereihenfehlschuß,
und zur Weiterleitung von Cachereihen an Caches niedrigerer Ebene
auf einen Cachereihentreffer beinhaltet. Für einen der Sätze, den
Satz 2 218, sind weitere Einzelheiten gezeigt. Die anderen gezeigten
Sätze können ähnliche
Einzelheiten enthalten. Es sind Weg 0 250 bis Weg N-1 272 zusammen
mit einer Satzsteuerlogik 280 gezeigt. Die Satzsteuerlogik
kann ein Schaltsystem beinhalten, um ein Ersatzverfahren zu identifizieren,
wenn dem Satz 2 neue Cachereihen hinzugefügt werden müssen, im allgemeinen als Ergebnis
eines „Fehlschusses" auf den Cache. Dieses
Ersatzverfahren kann identifizieren, welcher Weg eine Cachereihe
enthält,
die durch die neue Cachereihe überschrieben
werden soll. Diese identifizierte Cachereihe kann als ein „Ersatzkandidat" bezeichnet werden.
Das Ersatzverfahren kann in unterschiedlichen Ausführungsformen
durch Identifizieren einer am wenigsten jüngst verwendeten (LRU) Cachereihe,
durch zufälliges
Identifizieren eines Ersatzkandidaten, oder durch Identifizieren
eines Ersatzkandidaten durch die Reihenfolge des Ladens in den Satz
(z.B. nach der Reihenfolge des Eintreffens (FIFO)) vorgenommen werden.
Alle diese Ersatzverfahren können
anfänglich
ungültige
Cachereihen suchen und nur zu ihrem bestimmten Verfahren übergehen,
wenn keine ungültigen
Cachereihen gefunden werden. In anderen Ausführungsformen können andere
Ersatzverfahren verwendet werden.
-
Ein
Artefakt des inklusiven Caches ist, daß dann, wenn ein Ersatzkandidat
bestimmt wird und gestattet wird, daß diese Cachereihe geräumt („geopfert") wird, alle gleichwertigen
Cachereihen in Caches niedrigerer Ordnung ebenfalls ungültig gemacht werden
sollten. Dies bewahrt die Eigenschaft der Inklusivität, doch
zu einem Preis. Eine besondere Cachereihe, die wiederholt in einem
Cache einer niedrigeren Ebene verwendet wird, kann aus diesem bestimmten
Grund nicht häufig
vom Cache der letzten Ebene geladen werden. Wenn ein Ersatzverfahren wie
etwa LRU verwendet wird, kann dies verursachen, daß gerade
diese Cachereihe als ein Ersatzkandidat ausgewählt wird. Bei der gegenwärtigen Praxis
würde der
Ersatzkandidat geräumt
werden und diese Cachereihe in den Caches niedrigerer Ebenen ungültig gemacht
werden. Diese besondere Cachereihe, die im Cache einer niedrigeren
Ebene aktiv verwendet würde,
würde dann
eine Wartezeitstrafe erleiden, indem sie vom Systemspeicher zurückgebracht
werden müßte.
-
Daher
kann die Satzsteuerlogik in einer Ausführungsform auf jeden Cachefehlschuß mehrere Handlungen
am Satz setzen. Die Satzsteuerlogik kann die Cachereihe des gegenwärtigen Ersatzkandidaten,
der zu einer früheren
Zeit identifiziert worden war, räumen.
Die Satzsteuerlogik kann auch unter Verwendung des jeweiligen verwendeten
Ersatzverfahrens einen zukünftigen
Ersatzkandidaten identifizieren. In einer Ausführungsform kann die Satzsteuerlogik
die Ausgabe von Ungültigmachungsnachrichten
für die
Cachereihe, die im zukünftigen
Ersatzkandidaten enthalten ist, an die Cache niedrigerer Ebenen
veranlassen. Zusammengefaßt
kann ein besonderer Cachefehlschuß auf einen Satz in einer Ausführungsform
drei Handlungen veranlassen, die Räumung des gegenwärtigen Ersatzkandidaten
aus dem Cache der letzten Ebene; die Identifikation des zukünftigen
Ersatzkandidaten; und die Ungültigmachung
der Cachereihe des zukünftigen
Ersatzkandidaten in den Caches niedrigerer Ebenen.
-
Falls
eine häufig
verwendete Cachereihe im Cache einer niedrigeren Ebene als die Cachereihe des
zukünftigen
Ersatzkandidaten ungültig
gemacht wird, ist es möglich,
daß diese
Cachereihe durch den entsprechenden Prozessorkern bald nach dem
Auftreten der Ungültigmachung
angefordert werden wird. Wenn dies vor einem zweiten Fehlschuß auf den
gleichen Cachesatz erfolgt, wird der zukünftige Ersatzkandidat nach
wie vor im Cache der letzten Ebene verfügbar sein. Daher wird es für diese
Cachereihe, die dem zukünftigen
Ersatzkandidaten entspricht, zu einem Cachetreffer kommen. In diesem Fall
kann die Satzsteuerlogik 280 einen anderen zukünftigen
Ersatzkandidaten identifizieren, die Cachereihe des neuen zukünftigen
Ersatzkandidaten in den Caches niedrigerer Ebenen ungültig machen,
und die Cachereihe des ersten zukünftigen Ersatzkandidaten zum
Cache einer niedrigeren Ebene hinab senden. Zur Zeit eines zweiten
Fehlschusses auf diesen Satz des Caches der letzten Ebene kann die
Satzsteuerlogik dann die Cachereihe des zweiten Ersatzkandidaten
räumen.
Die Vorgang des Ersetzens eines i-ten zukünftigen Ersatzkandidaten durch
einen (i+1)-ten zukünftigen
Ersatzkandidaten kann bis zur Zeit des zweiten Fehlschusses auf
diesen Satz des Caches der letzten Ebene wie nötig mehrere Male durchgeführt werden.
-
Es
kann mehrere geringfügig
unterschiedliche Verfahren zur Zeitsteuerung der Räumung des Ersatzkandidaten
auf den entsprechenden Cachefehlschuß geben. In einer Ausführungsform
kann die Räumung
zur Zeit der Vornahme der Bestimmung, daß es zu einem Fehlschuß kommt,
(oder kurz danach) vorgenommen werden. In anderen Ausführungsformen
kann die Räumung bis
zu der Zeit verschoben werden, zu der der Füllpuffer des Caches die Cachereihe,
auf die zugegriffen wird, von einem Cache einer höheren Ebene
oder vom Systemspeicher erhält.
-
Unter
Bezugnahme auf 3 wird nun ein Zeitsteuerungsdiagramm
von Ereignissen in einem Cachesystem nach einer Ausführungsform
gezeigt. Die Ausführungsform
von 3 veranschaulicht die Verwendung eines LRU-Ersatzverfahrens,
doch könnte
in anderen Ausführungsformen
jedes beliebige der anderen Ersatzverfahren verwendet werden. Zur
Zeit T0 kommt es zu einem Fehlschuß auf den Satz X des Caches
der letzten Ebene. Daher wird der Weg, der zur Zeit T0 die LRU aufweist,
als ein zukünftiger
Ersatzkandidat ausgewählt
und wird die Cachereihe dieses Wegs in den Caches niedrigerer Ebenen ungültig gemacht.
-
Zur
Zeit T1 kommt es zu einem anderen Fehlschuß auf den Satz X, was verursacht,
daß der zukünftige Ersatzkandidat,
der Weg, der zur Zeit T0 die LRU aufwies, aus dem Cache der letzten
Ebene geräumt
wird. Zur gleichen Zeit wird ein neuer zukünftiger Ersatzkandidat gewählt (der
Weg, der zur Zeit T1 die LRU aufweist), und wird die Cachereihe, die
dem neuen zukünftigen
Ersatzkandidaten entspricht, in den Caches niedrigerer Ebenen ungültig gemacht.
Doch die Cachereihe, die dem neuen zukünftigen Ersatzkandidaten entspricht,
bleibt im Cache der letzten Ebene resident.
-
Zur
Zeit T2 kommt es zu einem Treffer auf den zukünftigen Ersatzkandidaten (der
nach wie vor im Cache der letzten Ebene resident ist). Es wird noch
ein anderer neuer zukünftiger
Ersatzkandidat ausgewählt
(der Weg, der zur Zeit T2 die LRU aufweist), die Cachereihe, die
dem neuen zukünftigen Ersatzkandidaten
entspricht, wird in den Caches niedrigerer Ebenen ungültig gemacht,
und die Cachereihe, die im Treffer angefordert wird, wird zu den Caches
niedrigerer Ebenen gesendet. Der ältere zukünftige Ersatzkandidat, der
zur Zeit T1 die LRU aufwies, wird dann in der Verfolgung des Ersatzverfahrens
als der zur Zeit T2 am allerjüngsten
verwendete (MRU) markiert. Erneut bleibt die Cachereihe, die dem
neuen zukünftigen
Ersatzkandidaten entspricht, im Cache der letzten Ebene resident.
-
Zur
Zeit T3 kommt es zu einem Treffer auf den zukünftigen Ersatzkandidaten (der
nach wie vor im Cache der letzten Ebene resident ist). Es wird noch
ein anderer neuer zukünftiger
Ersatzkandidat ausgewählt
(der Weg, der zur Zeit T3 die LRU aufweist), die Cachereihe, die
dem neuen zukünftigen Ersatzkandidaten
entspricht, wird in den Caches niedrigerer Ebenen ungültig gemacht,
und die Cachereihe, die im Treffer angefordert wird, wird zu den Caches
niedrigerer Ebenen gesendet. Der ältere zukünftige Ersatzkandidat, der
zur Zeit T2 die LRU aufwies, wird dann in der Verfolgung des Ersatzverfahrens
als der zur Zeit T3 am allerjüngsten
verwendete (MRU) markiert. Erneut bleibt die Cachereihe, die dem
neuen zukünftigen
Ersatzkandidaten entspricht, im Cache der letzten Ebene resident.
-
Zur
Zeit T4 kommt es zu einem anderen Fehlschuß auf den Satz X. Dies verursacht,
daß der anstehende
zukünftige
Ersatzkandidat, der Weg, der zur Zeit T3 die LRU aufwies, aus dem
Cache der letzten Ebene geräumt
wird. Zur gleichen Zeit wird ein neuer zukünftiger Ersatzkandidat ausgewählt (der Weg,
der zur Zeit T4 die LRU aufweist), und wird die Cachereihe, die
dem neuen zukünftigen
Ersatzkandidaten entspricht, in den Caches niedrigerer Ebenen ungültig gemacht.
-
In
diesem Beispiel kommt es nicht zu Treffern auf den zukünftigen
Ersatzkandidaten, bevor es zur Zeit T5 zum nächsten Fehlschuß auf den
Satz X kommt. Dies verursacht, daß der anstehende zukünftige Ersatzkandidat,
der Weg, der zur Zeit T4 die LRU aufwies, aus dem Cache der letzten
Ebene geräumt wird.
Zur gleichen Zeit wird ein neuer zukünftiger Ersatzkandidat ausgewählt (der
Weg, der zur Zeit T5 die LRU aufweist), und wird die Cachereihe,
die dem neuen zukünftigen
Ersatzkandidaten entspricht, in den Caches niedrigerer Ordnung ungültig gemacht.
-
Auch
wenn das Beispiel von 3 zwischen den Fehlschüssen auf
den Cache der letzten Ebene zu den Zeiten T1 und T4 nur zwei Treffer
auf einen Ersatzkandidaten zeigte, besteht keine wirkliche Grenze
für die
Anzahl der Treffer, die durch diese Ausführungsform bedient werden können.
-
Unter
Bezugnahme auf 4 wird nun ein Ablaufdiagramm
zur Auswahl von Ersatzkandidaten nach einer Ausführungsform der vorliegenden
Offenbarung gezeigt. Die Ausführungsform
von 4 setzt das Vorhandensein eines L1-Caches und
eines Caches der letzen Ebene voraus. In anderen Ausführungsformen
können
unter dem Cache der letzten Ebene zusätzliche Cacheebenen vorhanden
sein. Der Vorgang beginnt bei Block 410. Beim Bedienen eines
ersten Fehlschusses auf den Cache der letzten Ebene wird in Block 412 durch
das Ersatzverfahren ein Ersatzkandidat ausgewählt und wird die entsprechende
Cachereihe im L1- Cache
ungültig
gemacht. Wenn das Ersatzverfahren LRU ist, wird der Ersatzkandidat
der gegenwärtige
Wert der LRU des Caches der letzten Ebene sein.
-
In
Block 414 wird ein Speicherbetrieb behandelt. Bei Block 418 kann
ein Nachschlagen im L1-Cache
vorgenommen werden, und im Entscheidungsblock 420 wird
eine Bestimmung vorgenommen, ob es zu einem Treffer auf den L1-Speicher
kommt. Wenn dies der Fall ist, steigt der Vorgang über den Pfad
JA aus, und wird in Block 440 der Zustand des Ersatzverfahrens
für den
L1-Cache aktualisiert und werden die Daten für die angeforderte Cachereihe zum
Prozessorkern zurückgeführt. Wenn
das Ersatzverfahren LRU ist, wird die Aktualisierung des Zustands
des Ersatzverfahrens die Aktualisierung des gegenwärtigen Werts
der LRU des L1-Caches
sein. Der Vorgang kann dann zu Block 414 zurückkehren.
-
Wenn
in Block 420 bestimmt wird, daß es nicht zu einem Treffer
kommt, steigt der Vorgang über
den Pfad NEIN aus, und wird in Block 422 ein Nachschlagen
im Cache der letzten Ebene vorgenommen. Dann wird im Entscheidungsblock 428 eine Bestimmung
vorgenommen, ob es im Cache der letzten Ebene zu einem Treffer kommt.
Wenn dies der Fall ist, steigt der Vorgang über den Pfad JA aus, und wird
in Block 436 der Zustand des Ersatzverfahrens für den Cache
der letzten Ebene aktualisiert. Wenn das Ersatzverfahren LRU ist,
wird die Aktualisierung des Zustands des Ersatzverfahrens die Aktualisierung
des gegenwärtigen
Werts der LRU des Caches der letzten Ebene sein. Dann kann im Entscheidungsblock 450 bestimmt
werden, ob der Treffer auf den Ersatzkandidaten erfolgte. Wenn dies
nicht der Fall ist, steigt der Vorgang über den Pfad NEIN aus und werden
in Block 452 die Daten für die angeforderte Cachereihe
zum L1-Cache und zum Prozessorkern zurückgeführt. Wenn jedoch der Treffer
auf den Ersatzkandidaten erfolgte, verläßt der Vorgang den Entscheidungsblock 450 über den
Pfad JA. In Block 456 wird ein neuer Ersatzkandidat ausgewählt und
wird die entsprechende Cachereihe im L1-Cache ungültig gemacht.
Wenn das Ersatzverfahren LRU ist, wird der Ersatzkandidat der gegenwärtige Wert der
am nächstwenigsten
jüngst
verwendeten Cachereihe des Caches der letzten Ebene sein. Dann werden
in Block 452 die Daten für die angeforderte Cachereihe
zum L1-Cache und zum Prozessorkern zurückgeführt. Wenn das Ersatzverfahren
LRU ist, wird die Aktualisierung des Zustands des Ersatzverfahrens
die Beförderung
des gegenwärtigen
Werts der am nächstwenigsten
jüngst
verwendeten Cachereihe des Caches der letzten Ebene zu jenem der
LRU sein. Dann kann sich der Vorgang beginnend bei Block 414 erneut
wiederholen.
-
Wenn
jedoch im Entscheidungsblock 428 eine Bestimmung vorgenommen
wird, daß es
im Cache der letzten Ebene nicht zu einem Treffer kommt, verläßt der Vorgang
den Entscheidungsblock 428 über den Pfad NEIN. Dann können in
Block 434 mehrere Handlungen getroffen werden. Die Cachereihe des
Ersatzkandidaten kann zugunsten der angeforderten Cachereihe, die
in einem Füllpuffer
des Caches der letzten Ebene erscheinen wird, geräumt werden.
Ein neuer Ersatzkandidat kann ausgewählt werden und die entsprechende
Cachereihe im L1-Cache ungültig
gemacht werden. Wenn das Ersatzverfahren LRU ist, wird der Ersatzkandidat
der gegenwärtige
Wert der am nächstwenigsten
jüngst verwendeten
Cachereihe des Caches der letzten Ebene sein. Der Vorgang kann sich
beginnend bei Block 414 erneut wiederholen.
-
Beim
Vorgang, der in 4 gezeigt ist, kann die in Block 430 besprochene
Bedienung des Fehlschusses auf den Cache der letzten Ebene eine
Anforderung der Cachereihe vom Systemspeicher einleiten. Dies ist
im gestrichelten Block 434 gezeigt. Die Räumung der
Cachereihe des Ersatzes kann (in der Ausführungsform von 4)
zur Zeit der Einleitung dieser Anforderung (oder kurz danach) stattfinden.
In anderen Ausführungsformen
kann die Räumung
der Cachereihe des Ersatzkandidaten verzögert werden, bis die (dem Fehlschuß entsprechende)
Cachereihe vom Speicher im Füllpuffer
des Caches der letzten Ebene eintrifft.
-
Unter
Bezugnahme auf 5A und 5B werden
nun schematische Diagramme von Systemen, die Prozessoren mit Drosseln
und mehreren Kernen beinhalten, nach zwei Ausführungsformen der vorliegenden
Offenbarung gezeigt. Das System von 5A zeigt
allgemein ein System, bei dem die Prozessoren, der Speicher und
E/A-Vorrichtungen durch einen Systembus verbunden sind, während das
System vom 5B allgemein ein System zeigt, bei
dem die Prozessoren, der Speicher, und E/A-Vorrichtungen durch eine
Anzahl von Punkt-zu-Punkt-Schnittstellen verbunden sind.
-
Das
System von 5A kann mehrere Prozessoren
beinhalten, wovon zur Klarheit nur zwei, die Prozessoren 40, 60,
gezeigt sind. Die Prozessoren 40, 60 können Caches 42, 62 der
letzten Ebene beinhalten. Das System von 5A kann
mehrere Funktionen aufweisen, die über Busschnittstellen 44, 64, 12, 8 mit
einem Systembus 6 verbunden sind. In einer Ausführungsform
kann der Systembus 6 der Front Side Bus (FSB) sein, der
mit Mikroprozessoren der Pentium®-Klasse,
die durch die Intel® Corporation hergestellt
werden, benutzt wird. In anderen Ausführungsformen können andere
Busse verwendet werden. In einigen Ausführungsformen können die
Speichersteuerung 34 und die Busbrücke 32 zusammen als
Chipsatz bezeichnet werden. In einigen Ausführungsformen können die
Funktionen eines Chipsatzes unter den physikalischen Chips anders
als in der Ausführungsform
von 5A gezeigt aufgeteilt sein.
-
Die
Speichersteuerung 34 kann den Prozessoren 40, 60 gestatten,
aus dem Systemspeicher 10 und aus einem löschbaren
programmierbaren Nurlesespeicher (EPROM) 36 des Eingabe/Ausgabe-Grundsystems
(BIOS) zu lesen und in sie zu schreiben. In einigen Ausführungsformen
kann der BIOS EPROM 36 einen Flash-Speicher benutzen. Die
Speichersteuerung 34 kann eine Busschnittstelle 8 beinhalten,
um zu gestatten, daß Speicherlese- und -schreibdaten
zu und von Busvermittlern am Systembus 6 getragen werden.
Die Speichersteuerung 34 kann auch über eine Hochleistungsgrafikschnittstelle 39 an
eine Hochleistungsgrafikschaltung 38 angeschlossen sein.
In bestimmten Ausführungsformen kann
die Hochleistungsgrafikschnittstelle 39 eine Advanced Graphics
Port AGP-Schnittstelle sein. Die Speichersteuerung 34 kann
Daten vom Systemspeicher 10 über die Hochleistungsgrafikschnittstelle 39 zur
Hochleistungsgrafikschaltung 38 richten.
-
Das
System von 5B kann ebenfalls mehrere Prozessoren
beinhalten, wovon zur Klarheit nur zwei, die Prozessoren 70, 80,
gezeigt sind. Die Prozessoren 70, 80 können jeweils
einen lokalen Speichersteuerungsknoten (MCH) 72, 82 zum
Anschluß an
den Speicher 2, 4 beinhalten. Die Prozessoren 70, 80 können auch
Caches 56, 58 der letzten Ebene beinhalten. Die
Prozessoren 70, 80 können Daten unter Verwendung
von Punkt-zu-Punkt-Schnittstellenschaltungen 78, 88 über eine
Punkt-zu-Punkt-Schnittstelle 50 austauschen. Die Prozessoren 70, 80 können jeweils
Daten unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltungen 76, 94, 86, 97 über einzelne Punkt-zu-Punkt-Schnittstellen 52, 54 mit
einem Chipsatz 90 austauschen. Der Chipsatz 90 kann
auch Daten über
eine Hochleistungsgrafikschnittstelle 92 mit einer Hochleistungsgrafikschaltung 38 austauschen.
-
Im
System vom 5A kann eine Busbrücke 32 Datenaustausche
zwischen dem Systembus 6 und dem Bus 16, der in
einigen Ausführungsformen ein
Industriestandardarchitektur(ISA)-Bus oder ein Peripherkomponentenverbindungs(PCI)-Bus
sein kann, gestatten. Im System von 5B kann
der Chipsatz 90 Daten über
eine Busschnittstelle 96 mit einem Bus 16 austauschen.
In beiden Systemen können
am Bus 16 verschiedenste Eingabe-/Ausgabe(E/A)-Vorrichtungen 14 vorhanden
sein, die in einigen Ausführungsformen
Niederleistungsgrafiksteuerungen, Videosteuerungen, und Vernetzungssteuerungen
beinhalten. Eine andere Busbrücke 18 kann in
einigen Ausführungsformen
verwendet werden, um Datenaustausche zwischen dem Bus 16 und
einem Bus 20 zu gestatten. Der Bus 20 kann in
einigen Ausführungsformen
ein Kleincomputersystemschnittstellen(SCSI)-Bus, ein integrierter
Antriebselektronik(IDE)-Bus, oder ein universeller serieller Bus (USB)
sein. Zusätzliche
E/A-Vorrichtungen können mit
dem Bus 20 verbunden sein. Diese können Tastatur- und Cursorsteuerungsvorrichtungen 22 einschließlich Mäuse, Audio-E/A-Vorrichtungen 24, Kommunikationsvorrichtungen 26 einschließlich Modems
und Netzwerkschnittstellen, und Datenspeichervorrichtungen 28 sein.
Ein Softwarecode 30 kann auf einer Datenspeichervorrichtung 28 gespeichert
sein. In einigen Ausführungsformen
kann die Datenspeichervorrichtung 28 eine feste Magnetplatte,
ein Floppy-Disk-Laufwerk, ein optisches Plattenlaufwerk, ein magnetooptisches
Plattenlaufwerk, ein Magnetband, oder ein nichtflüchtiger
Speicher einschließlich
Flash-Speicher sein.
-
In
der vorhergehenden Beschreibung wurde die Erfindung unter Bezugnahme
auf bestimmte Ausführungsformen
davon beschrieben. Es wird jedoch offensichtlich sein, daß daran
verschiedenste Abwandlungen und Veränderungen vorgenommen werden
können,
ohne vom weiteren Geist und Umfang der Erfindung, wie sie in den
beiliegenden Erfindungen aufgezeigt sind, abzuweichen. Die Beschreibung und
die Zeichnungen sollen demgemäß anstatt
in einem beschränkenden
Sinn vielmehr in einem erläuternden
Sinn betrachtet werden.
-
ZUSAMMENFASSUNG
-
Ein
Verfahren und eine Vorrichtung zum Auswählen und Aktualisieren eines
Ersatzkandidaten in einem Cache oder Pufferspeicher werden offenbart. In
einer Ausführungsform
kann ein Cachefehlschuß die
Räumung
eines gegenwärtigen
Ersatzkandidaten in einem Cache der letzten Ebene einleiten. Der
Cachefehlschuß kann
auch die Auswahl eines zukünftigen
Ersatzkandidaten einleiten. Bei der Auswahl des zukünftigen
Ersatzkandidaten kann die entsprechende Cachereihe in Caches niedrigerer
Ebenen ungültig
gemacht werden, aber im Cache der letzten Ebene verbleiben. Der
zukünftige
Ersatzkandidat kann durch anschließende Treffer des Ersatzkandidaten im
Cache der letzten Ebene vor einem nachfolgenden Cachefehlschuß aktualisiert
werden.