DE112005002268T5 - Verfahren und Vorrichtung für eine vorwärtslaufende Victim-Auswahl zum Verringern eines unerwünschten Ersatzverhaltens in inklusiven Caches - Google Patents

Verfahren und Vorrichtung für eine vorwärtslaufende Victim-Auswahl zum Verringern eines unerwünschten Ersatzverhaltens in inklusiven Caches Download PDF

Info

Publication number
DE112005002268T5
DE112005002268T5 DE112005002268T DE112005002268T DE112005002268T5 DE 112005002268 T5 DE112005002268 T5 DE 112005002268T5 DE 112005002268 T DE112005002268 T DE 112005002268T DE 112005002268 T DE112005002268 T DE 112005002268T DE 112005002268 T5 DE112005002268 T5 DE 112005002268T5
Authority
DE
Germany
Prior art keywords
cache
candidate
substitute
substitute candidate
caches
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.)
Withdrawn
Application number
DE112005002268T
Other languages
English (en)
Inventor
Sailesh San Jose Kottapalli
John Saratoga Crawford
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112005002268T5 publication Critical patent/DE112005002268T5/de
Withdrawn 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Abstract

Cache, der umfaßt:
eine Satzsteuerlogik zum Identifizieren eines ersten Ersatzkandidaten als Reaktion auf einen ersten Fehlschuß und zum Räumen des ersten Ersatzkandidaten als Reaktion auf einen zweiten Fehlschuß, und
eine Cachesteuerlogik zur Ausgabe von Nachrichten im Anschluß an den ersten Fehlschuß, um eine Cachereihe des ersten Ersatzkandidaten in niedrigeren Caches ungültig zu machen.

Description

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

Claims (37)

  1. Cache, der umfaßt: eine Satzsteuerlogik zum Identifizieren eines ersten Ersatzkandidaten als Reaktion auf einen ersten Fehlschuß und zum Räumen des ersten Ersatzkandidaten als Reaktion auf einen zweiten Fehlschuß, und eine Cachesteuerlogik zur Ausgabe von Nachrichten im Anschluß an den ersten Fehlschuß, um eine Cachereihe des ersten Ersatzkandidaten in niedrigeren Caches ungültig zu machen.
  2. Cache nach Anspruch 1, wobei die Satzsteuerlogik einen zweiten Ersatzkandidaten identifiziert, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Ersatzkandidaten erfolgt.
  3. Cache nach Anspruch 2, wobei die Cachelogik im Anschluß an den Treffer auf den ersten Ersatzkandidaten Nachrichten ausgibt, um die Cachereihe des zweiten Ersatzkandidaten in niedrigeren Caches ungültig zu machen.
  4. Cache nach Anspruch 2, wobei die Satzsteuerlogik die Cachereihe des ersten Ersatzkandidaten zu den niedrigeren Caches sendet.
  5. Cache nach Anspruch 1, wobei die Satzsteuerlogik den ersten Ersatzkandidaten durch ein Ersatzverfahren identifiziert.
  6. Cache nach Anspruch 5, wobei das Ersatzverfahren ein Zufallsverfahren ist.
  7. Cache nach Anspruch 5, wobei das Ersatzverfahren ein Verfahren nach der Reihenfolge des Eintreffens ist.
  8. Cache nach Anspruch 5, wobei das Ersatzverfahren ein Verfahren der am wenigsten jüngsten Verwendung ist.
  9. Cache nach Anspruch 8, wobei die Satzsteuerlogik einen zweiten Ersatzkandidaten identifiziert und den ersten Ersatzkandidaten als am allerjüngsten verwendet festsetzt, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Kandidaten erfolgt.
  10. Cache nach Anspruch 9, wobei die Satzsteuerlogik den zweiten Ersatzkandidaten identifiziert, bevor der zweite Fehlschuß erfolgt.
  11. Verfahren, das umfaßt: Identifizieren eines ersten Ersatzkandidaten nach einem ersten Fehlschuß auf einen Cache; Ungültigmachen einer Cachereihe, die dem ersten Ersatzkandidaten entspricht, in Caches, die in Bezug auf diesen Cache niedriger sind; und Räumen des ersten Ersatzkandidaten aus dem Cache im Anschluß an einen zweiten Fehlschuß auf den Cache.
  12. Verfahren nach Anspruch 11, ferner umfassend das Identifizieren eines zweiten Ersatzkandidaten, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Ersatzkandidaten erfolgt.
  13. Verfahren nach Anspruch 12, ferner umfassend das Senden der Cachereihe zu den niedrigeren Caches als Reaktion auf den Treffer.
  14. Verfahren nach Anspruch 11, wobei das Identifizieren eines ersten Ersatzkandidaten das Ausführen eines Ersatzverfahrens beinhaltet.
  15. Verfahren nach Anspruch 14, wobei das Ersatzverfahren den ersten Ersatzkandidaten durch zufällige Auswahl bestimmt.
  16. Verfahren nach Anspruch 14, wobei das Ersatzverfahren den ersten Ersatzkandidaten durch Ausführen der Reihenfolge des Eintreffens bestimmt.
  17. Verfahren nach Anspruch 14, wobei das Ersatzverfahren den ersten Ersatzkandidaten durch Bestimmen einer am wenigsten jüngst verwendeten Cachereihe bestimmt.
  18. Verfahren nach Anspruch 14, ferner umfassend das Identifizieren eines zweiten Ersatzkandidaten und das Festsetzen des ersten Ersatzkandidaten als am allerjüngsten verwendet, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Kandidaten erfolgt.
  19. Verfahren nach Anspruch 18, wobei das Identifizieren eines zweiten Ersatzkandidaten vor dem zweiten Fehlschuß erfolgt.
  20. System, das umfaßt: einen Cache, der eine Satzsteuerlogik zum Identifizieren eines ersten Ersatzkandidaten als Reaktion auf einen ersten Fehlschuß und zum Räumen des ersten Ersatzkandidaten als Reaktion auf einen zweiten Fehlschuß beinhaltet, und der eine Cachesteuerlogik beinhaltet, um im Anschluß an den ersten Fehlschuß Nachrichten auszugeben, um die Cachereihe des ersten Ersatzkandidaten in niedrigeren Caches ungültig zu machen; einen Chipsatz; eine Systemverbindung, um den Cache mit dem Chipsatz zu koppeln; und eine Audio-Ein/Ausgabe zur Kopplung an den Chipsatz.
  21. System nach Anspruch 20, wobei die Satzsteuerlogik einen zweiten Ersatzkandidaten identifiziert, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Kandidaten erfolgt.
  22. System nach Anspruch 21, wobei die Satzsteuerlogik die Cachereihe des ersten Ersatzkandidaten zu den niedrigeren Caches sendet.
  23. System nach Anspruch 20, wobei die Satzsteuerlogik den ersten Kandidaten durch ein Ersatzverfahren identifiziert.
  24. System nach Anspruch 23, wobei das Ersatzverfahren ein Zufallsverfahren ist.
  25. System nach Anspruch 23, wobei das Ersatzverfahren ein Verfahren nach der Reihenfolge des Eintreffens ist.
  26. System nach Anspruch 23, wobei das Ersatzverfahren ein Verfahren der am wenigsten jüngsten Verwendung ist.
  27. System nach Anspruch 26, wobei die Satzsteuerlogik einen zweiten Ersatzkandidaten identifiziert und den ersten Ersatzkandidaten als allerjüngst verwendet festlegt, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Kandidaten erfolgt.
  28. System nach Anspruch 27, wobei die Steuerlogik den zweiten Ersatzkandidaten identifiziert, bevor der zweite Fehlschuß erfolgt.
  29. Vorrichtung, die umfaßt: ein Mittel zum Identifizieren eines ersten Ersatzkandidaten nach einem ersten Fehlschuß auf einen Cache; ein Mittel zum Ungültigmachen einer Cachereihe, die dem ersten Ersatzkandidaten entspricht, in Caches, die in Bezug auf den Cache niedriger sind; und ein Mittel zum Räumen des ersten Ersatzkandidaten im Anschluß an einen zweiten Fehlschuß auf den Cache.
  30. Vorrichtung nach Anspruch 29, ferner umfassend ein Mittel zum Identifizieren eines zweiten Ersatzkandidaten, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Ersatzkandidaten erfolgt.
  31. Vorrichtung nach Anspruch 30, ferner umfassend ein Mittel zum Senden der Cachereihe als Reaktion auf den Treffer zu den niedrigeren Caches.
  32. Vorrichtung nach Anspruch 29, wobei das Mittel zum Identifizieren eines ersten Ersatzkandidaten ein Mittel zum Ausführen eines Ersatzverfahrens beinhaltet.
  33. Vorrichtung nach Anspruch 32, wobei das Ersatzverfahren ein Mittel zum Bestimmen des ersten Ersatzkandidaten durch Zufallsauswahl beinhaltet.
  34. Vorrichtung nach Anspruch 32, wobei das Ersatzverfahren ein Mittel zum Bestimmen des ersten Ersatzkandidaten durch Ausführen der Reihenfolge des Eintreffens beinhaltet.
  35. Vorrichtung nach Anspruch 32, wobei das Ersatzverfahren ein Mittel zum Bestimmen des ersten Ersatzkandidaten durch Bestimmen einer am wenigsten jüngst verwendeten Cachereihe beinhaltet.
  36. Vorrichtung nach Anspruch 35, ferner umfassend ein Mittel zum Identifizieren eines zweiten Ersatzkandidaten und ein Mittel zum Festsetzen des ersten Ersatzkandidaten als allerjüngst verwendet, wenn im Anschluß an den ersten Fehlschuß ein Treffer auf den ersten Kandidaten erfolgt.
  37. Verfahren nach Anspruch 36, wobei das Mittel zum Identifizieren eines zweiten Ersatzkandidaten seine Identifizierung vor dem zweiten Fehlschuß durchführt.
DE112005002268T 2004-09-23 2005-09-13 Verfahren und Vorrichtung für eine vorwärtslaufende Victim-Auswahl zum Verringern eines unerwünschten Ersatzverhaltens in inklusiven Caches Withdrawn DE112005002268T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/950,279 2004-09-23
US10/950,279 US7669009B2 (en) 2004-09-23 2004-09-23 Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
PCT/US2005/033700 WO2006034289A1 (en) 2004-09-23 2005-09-13 Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches

Publications (1)

Publication Number Publication Date
DE112005002268T5 true DE112005002268T5 (de) 2007-08-23

Family

ID=35519761

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005002268T Withdrawn DE112005002268T5 (de) 2004-09-23 2005-09-13 Verfahren und Vorrichtung für eine vorwärtslaufende Victim-Auswahl zum Verringern eines unerwünschten Ersatzverhaltens in inklusiven Caches

Country Status (6)

Country Link
US (1) US7669009B2 (de)
JP (1) JP4226057B2 (de)
CN (1) CN101023414B (de)
DE (1) DE112005002268T5 (de)
GB (1) GB2430288B (de)
WO (1) WO2006034289A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8493396B2 (en) 2004-11-15 2013-07-23 Nvidia Corporation Multidimensional datapath processing in a video processor
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP4920378B2 (ja) * 2006-11-17 2012-04-18 株式会社東芝 情報処理装置およびデータ検索方法
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8078805B1 (en) * 2007-10-07 2011-12-13 Wisair Ltd. Method and system for communicating with a universal serial bus device
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8464000B2 (en) * 2008-02-29 2013-06-11 Qualcomm Incorporated Systems and methods for cache line replacements
US9058272B1 (en) 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US8250303B2 (en) 2009-09-30 2012-08-21 International Business Machines Corporation Adaptive linesize in a cache
US8769209B2 (en) * 2010-12-20 2014-07-01 Intel Corporation Method and apparatus for achieving non-inclusive cache performance with inclusive caches
CN102662861B (zh) * 2012-03-22 2014-12-10 北京北大众志微系统科技有限责任公司 末级高速缓存插入策略软件控制方法
US9244841B2 (en) * 2012-12-31 2016-01-26 Advanced Micro Devices, Inc. Merging eviction and fill buffers for cache line transactions
CN104750423B (zh) * 2013-12-25 2018-01-30 中国科学院声学研究所 一种优化pcm内存写的方法和装置
KR101602150B1 (ko) * 2014-11-10 2016-03-10 전남대학교산학협력단 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램
JP6770230B2 (ja) * 2016-09-30 2020-10-14 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6249120B1 (ja) * 2017-03-27 2017-12-20 日本電気株式会社 プロセッサ
US11556477B2 (en) * 2018-06-15 2023-01-17 Arteris, Inc. System and method for configurable cache IP with flushable address range
US11379380B2 (en) 2020-05-07 2022-07-05 Nxp Usa, Inc. Systems and methods for managing cache replacement

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4008460A (en) * 1975-12-24 1977-02-15 International Business Machines Corporation Circuit for implementing a modified LRU replacement algorithm for a cache
JP3289661B2 (ja) * 1997-11-07 2002-06-10 日本電気株式会社 キャッシュメモリシステム
SE512880C2 (sv) * 1998-07-03 2000-05-29 Ericsson Telefon Ab L M Ett cacheservernät
US6535958B1 (en) * 1999-07-15 2003-03-18 Texas Instruments Incorporated Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6385695B1 (en) * 1999-11-09 2002-05-07 International Business Machines Corporation Method and system for maintaining allocation information on data castout from an upper level cache
US6687789B1 (en) * 2000-01-03 2004-02-03 Advanced Micro Devices, Inc. Cache which provides partial tags from non-predicted ways to direct search if way prediction misses
US6574710B1 (en) * 2000-07-31 2003-06-03 Hewlett-Packard Development Company, L.P. Computer cache system with deferred invalidation
US6701417B2 (en) * 2001-04-11 2004-03-02 Sun Microsystems, Inc. Method and apparatus for supporting multiple cache line invalidations per cycle
US7103721B2 (en) * 2003-04-28 2006-09-05 International Business Machines Corporation Cache allocation mechanism for biasing subsequent allocations based upon cache directory state
US7284095B2 (en) * 2004-08-18 2007-10-16 International Business Machines Corporation Latency-aware replacement system and method for cache memories

Also Published As

Publication number Publication date
WO2006034289A1 (en) 2006-03-30
GB0700981D0 (en) 2007-02-28
CN101023414A (zh) 2007-08-22
GB2430288A (en) 2007-03-21
GB2430288B (en) 2007-11-07
JP4226057B2 (ja) 2009-02-18
CN101023414B (zh) 2012-01-11
US20060064547A1 (en) 2006-03-23
JP2008513907A (ja) 2008-05-01
US7669009B2 (en) 2010-02-23

Similar Documents

Publication Publication Date Title
DE112005002268T5 (de) Verfahren und Vorrichtung für eine vorwärtslaufende Victim-Auswahl zum Verringern eines unerwünschten Ersatzverhaltens in inklusiven Caches
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE10262164B4 (de) Computersystem mit einer hierarchischen Cacheanordnung
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE112013000889B4 (de) Weiterleitungsfortschritts-Mechanismus für Speichervorgänge bei Vorhandensein von Ladekonflikten in einem Ladevorgänge begünstigenden System
DE60219436T2 (de) System mit adressbasierter Intraknotenkohärenz und datenbasierter Interknotenkohärenz
DE102013204414B4 (de) Daten-Cachespeicherblock-Freigabeanforderungen in einer Cachespeicherhierarchie mit mehreren Ebenen
DE10085373B4 (de) Verfahren zum Flushen von Cache-Zeilen
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE102013204417B4 (de) Daten-Cachespeicherblock-Freigabeanforderungen
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE112008001666T5 (de) Hierarchische Cache-Tag-Architektur
DE112007001171T5 (de) Verfahren für virtualisierten Transaktionsspeicher bei globalem Überlauf
DE112005002420T5 (de) Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors
DE112005002180T5 (de) Lösen von Cachekonflikten
DE102007012058A1 (de) Synchronisieren von Neuheitsinformation in einer inklusiven Cache-Hierarchie
DE112019000629B4 (de) Koordination von cacheoperationen
DE102008048627A1 (de) Zuteilen von Platz in dedizierten Cache-Wegen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112005003243T5 (de) System und Verfahren für die Cache-Kohärenz bei einem Cache mit unterschiedlichen Längen für die Cache-Orte
DE10006430B4 (de) Verfahren zur Aufrechterhaltung einer Kohärenz für ein Multi-Prozessor-System
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher
DE102020108666A1 (de) Cache-kohärenz-management für multi-kategorie-erinnerungen
DE102019111219A1 (de) Bereitstellen von Toter-Block-Vorhersage zur Bestimmung, ob Daten in Cache-Vorrichtungen zwischenzuspeichern sind.
DE112020005147B4 (de) Cache-snooping-modus, der einen kohärenzschutz für bestimmte anforderungen erweitert

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120403