-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft im Allgemeinen die schnelle Zwischenspeicherung in Verarbeitungssystemen und betrifft insbesondere einen beschränkten Zugriff auf einen schnellen Zwischenspeicher bzw. Cache-Speicher während des Datentransfers.
-
HINTERGRUND
-
Cache-Speicher bzw. schnelle Zwischenspeicher werden in Verarbeitungssystemen häufig eingesetzt, um Informationen, etwa Daten oder Befehle zu speichern, die von einem Prozessor verwendet werden oder die nachfolgend in einem permanenten Speicher zu speichern sind, etwa einem Systemspeicher oder einer Festplatte. Beispielsweise verwenden in Personalcomputersystemen Grafiktreiber häufig Cache-Speicher, um große Blöcke an Videodaten zwischen dem Systemspeicher und einem oder mehreren Videobildspeichern auszutauschen. Um einen derartigen Datentransfer einzurichten, kann der Grafiktreiber eine kleine Schleife oder einen x86-REP-Befehl anwenden, um wiederholt eine Verschiebefunktion einzurichten, um damit sequenziell den Block an Daten aus dem Speicher in den Bildspeicher oder umgekehrt über einen Cache-Speicher zu übertragen. Jedoch besitzt ein solches Vorgehen typischerweise die Auswirkung, dass Daten in dem Cache-Speicher von den Videodaten, die gerade übertragen werden, überschrieben werden. Dabei ist zu beachten, dass das Überschreiben von Daten, die bereits in dem Cache-Speicher sind, die Effizienz des Cache-Speichers reduzieren kann, da die überschriebenen Daten nach dem Übertragen der Videodaten aus dem Cache-Speicher heraus erneut in den Cache-Speicher verschoben werden müssen, und dieses erneute Verschieben von Daten führt häufig zu einer deutlichen Verzögerung oder zu einem Unterbrechen des Prozessorbetriebs.
-
Die
US 6 223 256 B1 lehrt ein Verfahren für eine Cash-Verwaltung basierend auf Klassenattributen, wie es insbesondere in Spalte
4, Zeilen
26 bis
58 beschrieben ist. Eine Bestimmung der Klassenattribute erfolgt gemäß der Lehre der 1) durch Auswahl durch einen Programmierer, Bestimmung durch einen Compiler oder eine dynamische Analyse aufgrund des Laufzeitverhaltens (siehe Spalte
8, Zeilen
10 bis
53).
-
Die
EP 0 779 581 A2 lehrt, dass Daten mit einer „low temporary locality“ durch einen REP-Präfix identifiziert werden. Gemäß der Lehre der 2) sind in solchen Fällen, Daten die über eine REP-Anweisung transferiert werden, nicht im Cash-Speicher speicherbar, das heißt, dass REP-Datentransfers nicht die Erlaubnis besitzen, auf den Cash zuzugreifen.
-
Figurenliste
-
Der Zweck und die Vorteile der vorliegenden Offenbarung werden für den Fachmann angesichts der folgenden detaillierten Beschreibung in Verbindung mit den angefügten Zeichnungen offensichtlich, in denen gleiche Bezugszeichen verwendet werden, um gleiche Elemente zu bezeichnen, und in denen:
- 1 eine Blockansicht ist, die ein beispielhaftes Verarbeitungssystem gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung darstellt.
- 2, 5 und 7 Blockansichten sind, die anschauliche Cache-Steuerungsmodule gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung zeigen.
- 3, 4, 6 und 8 Flussdiagramme sind, die beispielhafte Cache-Zugriffssteuerverfahren gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung zeigen.
-
ARTEN ZUM AUSFÜHREN DER ERFINDUNG
-
1 bis 8 zeigen beispielhafte Systeme und Techniken, wodurch ein Cache-Zugriff während eines Datentransfers über den Cache-Speicher gesteuert werden kann. In mindestens einer Ausführungsform führen Befehle, die mit Nicht-Datentransferoperationen verknüpft sind oder mit Operationen, die mit relativ kleinen Datenübertragungen über den Cache-Speicher verknüpft sind, zur Anwendung eines ersten Zugriffssteuerschemas, um den Zugriff auf eine oder mehrere Partitionen eines Cache-Speichers zur Verwendung des Cache-Speichers durch einen Prozessor zu steuern. Im Gegensatz dazu führen Befehle, die einen relativ ausgedehnten Datentransfer oder eine spezielle Art einer Datenübertragung beinhalten, zur Anwendung eines zweiten Zugriffsschemas, um einen Zugriff auf eine oder mehrere Partitionen des Cache-Speichers zu steuern, um damit das Überschreiben von jenen Daten zu reduzieren oder zu verhindern, von denen man annimmt, dass sie nachfolgend von dem Cache-Speicher oder von einem Prozessor verwendet werden. Wie hierin detaillierter beschrieben ist, kann die Art oder die Größe des Datentransfers, der mit einer speziellen Operation verknüpft ist, auf der Grundlage einer Inspektion oder eines Vergleichs eines Präfixfeldes und/oder eines Opcode- bzw. Operationscodierungsfeldes des Befehls bestimmt werden. In Reaktion auf diesen Vergleich oder diese Inspektion kann ein Prozessor oder eine andere Systemkomponente ein Signal setzen, das verwendet wird, um zwischen einem oder mehreren Zugriffsschemata bzw. Strategien oder Optionen auszuwählen, und die ausgewählte Zugriffsstrategie kann dann angewendet werden, um auf eine oder mehrere mögliche Weisen auf den Cache-Speicher während des Datentransfers, der mit dem Befehl verknüpft ist, zuzugreifen. Die Zugriffsstrategie repräsentiert typischerweise eine Beschränkung des Zugriffs auf spezielle Cache-Partitionen, etwa eine Beschränkung auf einen oder mehrere Cache-Speicherwege oder eine oder mehrere spezielle Cache-Zeilen. Die Zugriffsstrategie, die eine Zugriffsbeschränkung auf spezielle Cache-Speicherwege betrifft, kann beispielsweise durch eine Cache-Maske repräsentiert sein. Die Beschränkung auf spezielle Cache-Partitionen kann unter Anwendung von beispielsweise einer am wenigsten aktuell verwendeten (LRU „least recently used“) Information, die für den Cache-Speicher bewahrt wird, ausgewählt werden.
-
In 1 ist ein beispielhaftes System 100 gezeigt, das einen anschaulichen Cache-Steuermechanismus gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung anwendet. Das System 100 umfasst einen Prozessor 110, etwa eine zentrale Recheneinheit (CPU), einen Cache-Speicher 120, der in einer dargestellten Form einen Cache-Speicherbereich 122 mit mehreren Wegen (die als Wege 1 - N bezeichnet sind) für jede von mehreren Cache-Reihen und ein Cache-Steuermodul 124 (beispielsweise ein Software-, Hardware- oder Firmware-Modul) aufweist. Im hierin verwendeten Sinne bezeichnet der Begriff Cache-Reihe eine Gruppe aus Cache-Zeilen, die einen gemeinsamen Index besitzen. Der Cache-Speicherbereich 120 kann beispielsweise einen Cache-Speicher mit 128 Reihen und 16 Wegen aufweisen, wobei jede Cache-Zeile in der Lage ist, 32 Datenbytes zu speichern. Das System 100 kann ferner ein oder mehrere Module besitzen, die den Cache-Speicher 120, etwa als Systemspeicher 130 und als Anzeigebildpuffer 140, die mit dem Cache-Speicher 120 und/oder dem Prozessor 110 über beispielsweise einen Systembus 150 verbunden sind, benutzen.
-
In mindestens einer Ausführungsform wird der Cache-Speicher 120 verwendet, um Daten zur Verwendung durch den Prozessor 110 zu speichern, oder er wird benutzt, um den Datentransfer zwischen beispielsweise dem Systemspeicher 130 und dem Anzeigebildpuffer 140 zu ermöglichen. Zu beachten ist, dass derartige Übertragungen typischerweise von dem Prozessor 110 vor oder während des Ausführens eines oder mehrere Befehle durch den Prozessor 110 initiiert werden. Wie zuvor angemerkt ist, kann die Speicherung von Daten zur Verwendung durch den Prozessor 110 oder der Datenaustausch zu einem Überschreiben der Daten führen, die bereits in dem Cache-Speicherbereich 122 enthalten sind. Nach dem Überschreiben sind Daten folglich zur Verwendung durch den Prozessor 110 während nachfolgender Operationen nicht mehr verfügbar, und daher kann das Überschreiben dieser Daten die Effizienz des Prozessors 110 sowie des Cache-Speichers 120 verringern. Folglich wird in mindestens einer Ausführungsform in dem Cache-Steuermodul 124 eine Cache-Zugriffssteuerungsstrategie eingerichtet, die den Zugriff auf einen oder mehrere Bereiche (beispielsweise einen oder mehrere Wege oder einen oder mehrere Cache-Blöcke) des Cache-Speicherbereichs 122 während gewisser Arten von Datenübertragungen und Datenspeicherungen in dem Cache-Speicherbereich 122 beschränkt. Diese Zugriffssteuerungsstrategie kann eine Teilmenge der mehreren Wege oder Cache-Blöcke erkennen, die Daten enthalten, von denen angenommen wird, dass diese von dem Prozessor 110 nach dem Datentransfer oder nach der Datenspeicheroperation zu verwenden sind, und kann jene Wege/Cache-Blöcke des Cache-Speicherbereichs 122 erkennen, die Daten enthalten können, die erwartungsgemäß Daten enthalten oder speichern, die von dem Prozessor 110 nach dem Datentransfer zu verwenden sind. Die Zugriffssteuerungsstrategie kann daher jene Wege/Cache-Blöcke ermitteln, die während der Datentransferoperation verwendet werden können, ohne wesentlich die Wirksamkeit des Datenprozesses 110 beim Verwenden des Cache-Speichers 120 beeinträchtigen. Wie detailliert hierin beschrieben ist, kann die Zugriffssteuerstrategie durch einen Satz oder mehrere Sätze aus Cache-Masken eingerichtet werden, die jene Wege des Cache-Speicherbereichs 122 bezeichnen, die zum Speichern von Daten während einer Datentransferoperation verwendet werden können, sowie jene Wege angeben, die während einer Datentransferoperation nicht verwendet werden dürfen.
-
Die spezielle Zugriffsstrategie, die während einer Datentransferoperation eingesetzt wird, wird in einer Ausführungsform auf der Grundlage eines „Beschränkungskennungs-“ Signals 116 ausgeführt, das von dem Prozessor 110 in Reaktion auf oder bei der Vorbereitung des Ausführens einer speziellen Datentransferoperation bereitgestellt oder gesetzt wird. Auf der Grundlage des Signals 116, das von dem Prozessor 110 gesetzt oder bereitgestellt wird, wählt das Cache-Steuermodul 124 eine Zugriffsstrategie aus, die auf den Cache-Speicherbereich 122 angewendet wird, um damit den Zugriff auf einen oder mehrere Wege des Cache-Speicherbereichs 122 zu begrenzen oder zu verhindern.
-
Der Prozessor 110 kann ein Befehlsanalysemodul 160 (beispielsweise ein Software-, Hardware- oder Firmware-Modul) verwenden, um Befehle, die von dem Prozessor 110 auszuführen sind oder gerade ausgeführt werden, zu analysieren, um damit zu bestimmen, ob das Signal 116 zu setzen ist. In einer Ausführungsform bestimmt das Modul 160, ob das Beschränkungskennungs- Signal 116 zu setzen ist, auf der Grundlage der Erkenntnis, dass ein auszuführender Befehl als eine spezielle Art eines Befehls erkannt wird, der mit dem Übertragen von Übergangsdaten oder großen Blöcken an Daten, etwa Videodaten, verknüpft ist. Auf der Grundlage dieser Erkenntnis kann das Modul 160 den Prozessor 110 so betreiben, dass dieser das Beschränkungskennungssignal 116 setzt oder das Modul kann das Signal 116 direkt setzen.
-
In einer Ausführungsform werden spezielle Befehle, die mit großen Datenübertragungen oder Datenübertragungen im Wesentlichen von Durchgangsdaten verknüpft sind, auf der Grundlage mindestens eines Präfixfeldes oder eines Operationscodierungsfeldes des Befehls erkannt, der aktuell ausgeführt oder auszuführen ist. Beispielsweise wird der REP-Befehl (Präfix 0xF3 in der x86-Architektur) häufig in der x86-Verarbeitungsarchitektur eingesetzt, um gewisse Befehle, etwa den „verschiebe Zeichenkette bzw. move string (MOVS)“-Befehl (Operationscodierung 0xA4 oder 0xA5 in der x86-Architektur, abhängig von der Operandengröße) zu wiederholen. Folglich kann das Modul 160 einen Befehl analysieren, der von dem Prozessor 110 auszuführen ist, um zu bestimmen, ob das Präfixfeld des auszuführenden Befehls im Wesentlichen mit dem Präfixfeld übereinstimmt, das mit dem REP-Befehl verknüpft ist. Ferner kann das Modul 160 das auszuführende Operationscodierungsfeld absuchen, um zu bestimmen, ob dieses im Wesentlichen mit dem Operationscodierungswert übereinstimmt, der mit dem „verschiebe Zeichenkette“-Befehl verknüpft ist. Sollten ein oder beide Felder des auszuführenden Befehls mit den Feldern eines REP MOVS-Befehls übereinstimmen, kann das Modul 160 veranlassen, dass das Beschränkungssignal 116 gesetzt wird. Es ist jedoch zu beachten, dass in einigen Fällen der REP MOVS-Befehl in Operationen verwendet werden kann, die keine relativ großen Blöcke aus Daten oder keinen Übertrag von Durchgangsdaten benutzen. Folglich wird in mindestens einer Ausführungsform der REPNE-Befehl (Präfix 0xF2 in der x86-Architektur) eingesetzt, um Datenübertragungsoperationen zu erkennen, die einen beschränkten Cache-Zugriff besitzen sollen. Beispielsweise kann ein spezieller Befehl, der typischerweise nicht verwendet wird, etwa der REPNE MOVS-Befehl eingesetzt werden, um insbesondere eine Datentransferoperation zu bezeichnen, die große Datenblöcke oder im Wesentlichen Durchgangsdaten des Cache-Speichers 120 betrifft. In dieser Ausführungsform kann das Modul 160 Operationen suchen, die von dem Prozessor 110 auszuführen sind, um jene zu erkennen, die die spezielle Operation verwenden kann (beispielsweise die REPNE MOVS-Operation). Auf der Grundlage der Erkennung dieser einzigartigen Operation kann das Modul 160 veranlassen, dass das Beschränkungskennungs- Signal 116 gesetzt wird.
-
2 zeigt eine beispielhafte Ausbildung des Cache-Steuermoduls 124 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. Wie dargestellt, kann das Cache-Speichermodul 124 ein Normalwegmaskenmodul mit einer oder mehreren Cache-Masken 212, ein Wegbeschränkungsmaskenmodul 220 (beispielsweise ein Software-, Hardware- oder Firmware-Modul) mit einer oder mehreren Cache-Masken 222, einen Multiplexer 230 mit dem Ausgang aus dem Normalwegemaskenmodul 210 und dem Ausgang des Wegebeschränkungsmaskenmoduls 220 als Eingänge und mit dem Beschränkungssignal 116, das von dem Prozessor 110 bereitgestellt wird, als Auswahleingang aufweisen. Der Multiplexer 230 wählt als seinen Ausgang eine der Cache-Masken 212 aus der normalen Wegemaske oder eine der Cache-Masken 222 aus dem Wegbeschränkungsmaskenmodul 220 auf der Grundlage des Wertes des Signals 116 aus. Im Falle, dass der von dem Prozessor 110 auszuführende Befehl nicht als ein Befehl erkannt wird, der das Übertragen eines großen Datenblocks oder das Übertragen von Durchgangsdaten veranlasst, wird das Signal 116 zurückgesetzt, wodurch das Bereitstellen einer Cache-Maske 212 aus dem Normalwegemaskenmodul 210 (beispielsweise ein Software-, Hardware- oder Firmware-Modul) an dem Ausgang des Multiplexers bewirkt wird. Andererseits wird bei einem Befehl, der von dem Prozessor 110 auszuführen ist und der erkannt wird, dass er das Übertragen eines großen Datenblocks oder das Übertragen von Durchgangsdaten beinhaltet, bewirkt, dass der Prozessor 110 das Signal 116 setzt, was wiederum zur Ausgabe einer oder mehrerer Cache-Masken 222 an dem Ausgang des Multiplexers 230 führt.
-
Das Wegeauswahlmodul 240 empfängt die eine oder die mehreren Cache-Masken, die von dem Multiplexer 230 ausgegeben werden, und wendet diese als die Zugriffsstrategie des Cache-Speicherbereichs 122 an, um damit den Zugriff auf einen oder mehrere Wege des Cache-Speicherbereichs 122 während des Ausführens des Befehls in dem Prozessor 110 zu beschränken. Wie dargestellt ist, können die Cache-Module 212 und 222 mehrere Felder aufweisen, wobei jedes Feld einem der mehreren Wege des Cache-Speicherbereichs 122 entspricht, und wobei ein Zugriff auf einen speziellen Weg des Cache-Speicherbereichs 222 auf der Grundlage des Wertes (d. h. 0 oder 1) gesteuert wird, der in dem Feld der Cache-Maske gespeichert ist, die mit einem speziellen Weg verknüpft ist. Alternativ können die Cache-Masken 212 oder 222 mehrere Felder aufweisen, wobei jedes Feld mit einer speziellen Cache-Zeile verknüpft ist, und wobei der in jedem Feld der vorhergehenden Felder gespeicherte Wert den Zugriff auf die entsprechende Cache-Zeile steuert.
-
In mindestens einer Ausführungsform ist die Cache-Maske 212, die während Operationen implementiert wurde, die keinen Transfer von großen Datenblöcken oder das Übertragen von Durchgangsdaten beinhalten, eingerichtet wurde, weniger beschränkend als die Cache-Maske 222, die während der Operationen eingerichtete wurde, die den Transfer von Durchgangsdaten oder von großen Blöcken aus Daten beinhalten, um damit den Grad des Überschreibens zulässiger Daten zu verhindern oder zu beschränken, von denen angenommen wird, dass sie von dem Prozessor 110 nach der Datenübertragungsoperation verwendet werden. Die spezielle Zugriffssteuerstrategie, die unter Anwendung der Cache-Maske 212 oder der Cache-Maske 222 einzurichten ist, kann vorherbestimmt sein oder kann nach Bedarf aufgebaut oder modifiziert werden, beispielsweise durch ein Betriebssystem 250, das von dem Prozessor 110 oder einer anderen Verarbeitungseinrichtung ausgeführt wird. Beispielsweise kann das Betriebssystem 250 oder eine andere Komponente des Cache-Speichers 120 den Cache-Speicherbereich 122 überwachen, um damit jene Bereiche des Cache-Speichers zu bestimmen oder anzugeben, die vor kurzem verwendet werden, d. h. die aktuell zuletzt verwendet wurden, oder die gewisse geeignete Leistungsparameter aufweisen. Unter Anwendung dieser Information kann das Betriebssystem eine oder beide Cache-Masken 212 oder 222 festlegen, um damit jene Wege zu schützen, die als häufig verwendet oder als zuletzt verwendet erkannt wurden, während der Zugriff auf jene Wege zulässig ist, die als am wenigsten häufig verwendet oder als am wenigsten aktuell verwendet erkannt wurden. Andere Kriterien, etwa die Menge der gültigen Daten, die in einem speziellen Weg gespeichert sind, können ferner eingesetzt werden, um zu bestimmen, ob auf einen speziellen Weg in einer bestimmten Zugriffssteuerungsstrategie zugegriffen werden darf oder nicht. Obwohl eine beispielhafte Einrichtung einer Steuerzugriffsstrategie unter Anwendung von Cache-Masken dargestellt ist, erkennt der Fachmann unter Zuhilfenahme der vorliegenden Offenbarung, dass das Einrichten von Cache-Zugriffsstrategien unter Anwendung anderer Verfahren möglich ist, ohne von dem Grundgedanken oder dem Schutzbereich der vorliegenden Offenbarung abzuweichen.
-
Das Wegeauswahlmodul 240 empfängt in einer Ausführungsform die von dem Multiplexer 230 ausgegebene Cache-Maske und richtet die Zugriffssteuerstrategie, die durch die ausgegebene Cache-Maske repräsentiert ist, ein . In einer Ausführungsform enthält die Cache-Wegemaske ein Bit für jeden Weg des Cache-Speichers. Wenn ein Bit in der Maske gesetzt ist, dann wird der entsprechende Weg nicht durch die Daten, auf die gerade zugegriffen wird, ersetzt. Die Cache-Steuerung wählt statt dessen einen mit neuen Daten zu überschreibenden Weg unter den Wegen aus, die nicht gesetzte Maskenbits aufweisen, wobei konventionelle Cache-Ersetzungsstrategien angewendet werden (beispielsweise ein am wenigsten häufig verwendeter Weg oder ein nicht verwendeter Weg).
-
3 zeigt ein anschauliches Verfahren 300 zum Steuern des Zugriffs auf einen Cache-Speicher gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. Im Schritt 302 wird in dem Verfahren 300 eine Initialisierung durchgeführt, wobei ein Befehl mit einem Präfixfeld und einem Operationscodierungsfeld empfangen wird. Im Schritt 304 wird eine Cache-Maske auf der Grundlage eines Wertes des Präfixfeldes ausgewählt. Das Auswählen der Cache-Maske kann das Auswählen einer ersten Cache-Maske beinhalten, wenn das Präfixfeld mit einem zweiten vordefinierten Wert übereinstimmt. Im Schritt 306 wird der Zugriff zu einem Cache-Speicher auf der Grundlage der ausgewählten Cache-Maske gesteuert. Das Operationscodierungsfeld kann einen Datenübertragungsbefehl, etwa den MOVS-Befehl, repräsentieren, und das Präfixfeld kann einen Befehl vom „Wiederhol“-Typ repräsentieren, etwa REP, REPE oder REPNE. Der Zugriff auf den Cache-Speicher kann durch Markierung, durch den Weg oder eine Kombination davon, beschränkt werden.
-
4 zeigt ein weiteres anschauliches Verfahren 400 zum Steuern des Zugriffs auf einen Cache-Speicher gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. Das Verfahren 400 wird im Schritt 402 initialisiert, wobei eine Datenart von zu übertragenden Daten bestimmt wird. Im Schritt 404 wird eine Datentransferoperation zum Übertragen der Daten festgelegt. Im Schritt 406 wird ein erstes Präfix zur Verwendung bei der Datenübertragungsoperation ausgewählt, wenn die Daten eine erste Datenart repräsentieren. Im Schritt 408 wird ein zweites Präfix zur Verwendung in der Datenübertragungsoperation ausgewählt, wenn die Daten eine zweite Datenart repräsentieren. In einer Ausführungsform sind die Daten der ersten Datenart Videodaten und die Daten der zweiten Art sind andere Daten als die Daten der ersten Datenart. In einer weiteren Ausführungsform sind die Daten des ersten Typs Daten, die zu einem Videobildpuffer zu übertragen sind oder die Daten des ersten Datentyps sind Durchgangsdaten, die nicht wiederverwendet werden sollen. Das erste Präfix kann ausgewählt werden, um die Auswahl einer ersten Cache-Maske zu ermöglichen und das zweite Präfix wird ausgewählt, um die Auswahl einer zweiten Cache-Maske zu ermöglichen.
-
In den 5 und 6 ist eine weitere anschauliche Ausbildung des Cache-Steuermoduls 124 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung gezeigt. In dem dargestellten Beispiel aus 5 umfasst das Cache-Steuermodul 124 ein „am aktuellsten verwendetes“ (MRU)/am wenigsten aktuell verwendetes (LRU)-Array 502, das mit einem Wegeauswahlmodul 504 verbunden ist. Das MRU/LRU-Array 502 wird verwendet, um LRU- und/oder MRU-Information für die Cache-Wege, Cache-Reihen und/oder Cache-Zeilen (oder eine andere Art an Cache-Partition) zu bewahren. Das Wegeauswahlmodul 504 kann in Reaktion auf das Empfangen des Beschränkungskennungs- Signals 116 das MRU/LRU-Array 502 verwenden, um einen oder mehrere der Wege des Cache-Speicherbereichs 122 (1) anzugeben, der die am wenigsten aktuell verwendeten Daten (und daher diejenigen Daten, die von dem Prozessor 110 mit der geringsten Wahrscheinlichkeit aufgerufen werden) enthält. Das Wegeauswahlmodul 504 kann dann eine Zugriffsstrategie für den Cache-Speicherbereich 122 einrichten, wodurch die Datentransferoperation, die das Setzen des Signals 116 veranlasst hat, auf nur denjenigen des einen oder der mehreren Wege des Cache-Speicherbereichs beschränkt, der die am wenigsten aktuell verwendeten Daten enthält.
-
Das Verfahren 600 aus 6 zeigt eine beispielhafte Betriebsweise unter Anwendung des Steuermoduls 124, das in 5 gezeigt ist. Das Verfahren 600 wird im Schritt 602 initialisiert, wobei ein Signal, das für einen Befehl für einen Datentransfer zu einem Cache-Speicher (beispielsweise das Signal 116) repräsentativ ist, empfangen wird. Im Schritt 604 wird eine erste Teilmenge der mehreren Wege des Cache-Speichers auf der Grundlage der am wenigsten aktuell verwendeten (LRU)-Information der mehreren Wege bestimmt. Im Schritt 606 wird der Zugriff auf nur die erste Teilmenge der Wege des Cache-Speichers während des Datentransfers beschränkt.
-
In den 7 und 8 ist eine weitere anschauliche Ausbildung des Cache-Steuermoduls 124 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung dargestellt. In dem dargestellten Beispiel der 7 umfasst das Cache-Steuermodul 124 das „am aktuellsten verwendete (MRU)“ / „am wenigsten aktuell verwendete LRU)“-Array 502, ein Blockauswahlmodul 704 und ein Durchgangsblockmarkierungsregister 706. Wie zuvor mit Bezug zu 5 erläutert ist, wird das MRU/LRU-Array 502 verwendet, um die LRU- und/oder MRU-Information bezüglich des Cache-Speicherbereichs 122 zu bewahren. Das Blockauswahlmodul 704 kann unter Anwendung dieser Information die am wenigsten aktuell verwendete Cache-Zeile oder Zeilen für jene Cache-Reihen erkennen, die während einer Datentransferoperation zu verwenden sind. Das Zeilenauswahlmodul 704 kann dann eine Zugriffsstrategie für den Cache-Speicherbereich 122 einrichten, die einen Zugriff auf lediglich die erkannten LRU-Cache-Zeilen des Cache-Speicherbereichs 122 während der Datentransferoperation beschränkt.
-
In konventionellen Systemen führt das Übertragen von Durchgangsdaten zu speziellen Partitionen der diversen Cache-Speicher zu einer Aktualisierung der MRUI-LRU-Information, die mit den Cache-Partitionen verknüpft ist, um damit das Schreiben der Durchgangsdaten in die speziellen Partitionen wiederzugeben. Wenn die Cache-Partitionen, die diese Durchgangsdaten enthalten, als MRU-Daten gekennzeichnet sind, verhindert die Cache-Steuerlogik typischerweise, dass diese Cache-Partitionen überschrieben werden, bis diese im Vergleich zu anderen Cache-Partitionen relativ alt sind. Jedoch sind vorzugsweise diese Cache-Partitionen nach der Datentransferoperation vorzugsweise für den Zugriff freizugeben, da die übertragenen Daten lediglich Durchgangsdaten in dem Cache-Speicher sind. Folglich verhindert in einer Ausführungsform das Zeilenauswahlmodul 704 eine Aktualisierung des MRUlLRU-Arrays 502, während einer Datenübertragungsoperation, in der Durchgangsdaten beteiligt sind, so dass der LRU/MRU-Status der Cache-Zeilen, die für diesen Datentransfer verwendet werden, nicht als Folge ihrer Verwendung aktualisiert wird, oder das Zeilenauswahlmodul 704 kann das MRU/LRU-Array 502 so modifizieren, dass die Einträge des Arrays 706, die den bei dem Datentransfer verwendeten Cache-Zeilen entsprechen, so geändert werden, dass angegeben wird, dass die Cache-Zeilen die am wenigsten aktuell verwendeten Cache-Zeilen sind. Als Folge davon sind die Cache-Zeilen, die zum Speichern der Durchgangsdaten verwendet wurden, für andere Operationen verfügbar, die auf die Datentransferoperation folgen.
-
Es wird deutlich, dass konventionelle Systeme mehrere Cache-Ebenen anwenden, wodurch Daten auf die mehreren Cache-Speicher während einer Datentransferoperation verteilt werden. Beispielsweise kann ein Verarbeitungssystem einen Cache-Speicher der Ebene 1 (L1), einen Cache-Speicher der Ebene 2 (L2) verwenden, um eine temporäre Speicherung von Daten zur Verwendung in einem Prozessor zu ermöglichen. Jedoch kennzeichnen, nachdem Durchgangsdaten in einem Cache-Speicher der höheren Ebene während eines Datentransfers gespeichert wurden, die entsprechenden MRU/LRU-Informationen in den konventionellen Systemen typischerweise, dass die Durchgangsdaten die aktuellst verwendeten Daten sind, und können daher einen Datenüberlauf an einem Opfer- bzw. Victim- Cache-Speicher der unteren Ebene hervorrufen. Um dieser Situation entgegenzuwirken kann das Zeilenauswahlmodul 704 das Durchgangszeilenmarkierungsregister 706 so bewahren, dass dieses wiedergibt, ob die entsprechenden Cache-Zeilen des Cache-Speicherbereichs 122 Durchgangsdaten enthalten. Beispielsweise kann das Register 706 ein Ein-Bit-Feld für jede Cache-Zeile des Cache-Speicherbereichs 122 aufweisen. Wenn eine spezielle Cache-Zeile verwendet wird, um Durchgangsdaten zu speichern, kann das Zeilenauswahlmodul 704 eine „1“ beispielsweise in den Eintrag des Registers 706 schreiben, der der speziellen Cache-Zeile entspricht, um anzugeben, dass die spezielle Cache-Zeile Durchgangsdaten enthält.
-
Das Durchgangszeilenmarkierungsregister706 kann dann verwendet werden, um zu bestimmen, ob Daten an einen Ziel-Cache-Speicher übertragen werden sollen. Ein Opfermodul 708, das mit einem Cache-Speicher der tieferen Ebene verknüpft ist, etwa beispielsweise dem L2-Cache-Speicher 710, kann das Register 706 analysieren, bevor eine Übertragung von Daten an den L2-Cache-Speicher 710 erlaubt wird. Im Falle, dass ein Feld oder das Register 706, das mit einer speziellen Cache-Zeile verknüpft ist, eine „1“ aufweist, um anzugeben, dass die Cache-Zeile Durchgangsdaten enthält, weist das Opfermodul 708 den Cache-Speicher 120 an, die Daten in der Cache-Zeile zu speichern, anstatt diese zu dem L2-Cache-Speicher 710 zu übertragen. Das Opfermodul 708 kann dann das Feld des Registers 706 durch Schreiben einer „0“ zurücksetzen, um anzugeben, dass die entsprechende Cache-Zeile keine Durchgangsdaten aus der Datentransferoperation mehr enthält. Wenn daher das Opfermodul 708 eine „0“ in dem Feld des Registers 706 erkennt, das einer speziellen Cache-Zeile entspricht (wodurch angegeben wird, dass die Daten in der speziellen Cache-Zeile keine Durchgangsdaten sind), lässt das Opfermodul 708 zu, dass Daten zu dem L2-Cache-Speicher 710 übertragen werden.
-
Das Verfahren 800 der 8 zeigt eine beispielhafte Funktionsweise zur Anwendung des Steuermoduls 124, das in 7 gezeigt ist. Das Verfahren 800 wird im Schritt 802 initialisiert, wobei ein für einen Befehl für einen Datentransfer zu einem Cache-Speicher repräsentatives Signal (beispielsweise das Signal 116) empfangen wird. Im Schritt 804 wird eine erste Cache-Zeile für jede von einer oder mehreren Cache-Reihen des Cache-Speichers auf der Grundlage der LRU-Information der Cache-Zeile bestimmt. Im Schritt 806 wird der Zugriff auf lediglich die erste Cache-Zeile jeder der einen oder der mehreren Cache-Reihen während des Datentransfers beschränkt.