[go: up one dir, main page]

DE112006000339B4 - System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu - Google Patents

System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu Download PDF

Info

Publication number
DE112006000339B4
DE112006000339B4 DE112006000339.9T DE112006000339T DE112006000339B4 DE 112006000339 B4 DE112006000339 B4 DE 112006000339B4 DE 112006000339 T DE112006000339 T DE 112006000339T DE 112006000339 B4 DE112006000339 B4 DE 112006000339B4
Authority
DE
Germany
Prior art keywords
data
cache
cache memory
prefix
paths
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.)
Expired - Lifetime
Application number
DE112006000339.9T
Other languages
English (en)
Other versions
DE112006000339T5 (de
Inventor
Stephen Thompson
Mark Krom
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE112006000339T5 publication Critical patent/DE112006000339T5/de
Application granted granted Critical
Publication of DE112006000339B4 publication Critical patent/DE112006000339B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren mit:
Bestimmen eines Datentyps von zu übertragenden Daten (402);
Bestimmen eines Datenübertragungsbefehls, um die Daten (404) zu übertragen;
Auswählen eines ersten Präfix zur Verwendung mit dem Datenübertragungsbefehl, wenn die Daten einen ersten Datentyp (406) von Daten, die eine geringe Verweildauer in einem Cache-Speicher aufweisen, repräsentieren; und
Auswählen eines zweiten Präfix zur Verwendung mit dem Datenübertragungsbefehl, wenn die Daten einen zweiten Datentyp (408) von Daten, die eine hohe Verweildauer in dem Cache-Speicher aufweisen, der von dem ersten Datentyp (406) verschieden ist, repräsentieren, und
Aufteilen des Cache-Speichers in Teilgruppen gemäß dem ersten und dem zweiten Präfix;
Ersetzen von Cache-Zeilen einer Teilgruppe, die einem bestimmten Präfix zugeordnet ist, in Abhängigkeit von „am aktuellsten verwendete“ / „am wenigsten aktuell verwendeten“ Informationen über Daten, die in dem Cache gespeichert sind, so dass lediglich ein Ersetzen von Cache-Zeilen einer Teilgruppe des Cache-Speichers, die „am wenigsten aktuellsten verwendete“ Durchgangsdaten umfasst, erlaubt wird.

Description

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

Claims (9)

  1. Verfahren mit: Bestimmen eines Datentyps von zu übertragenden Daten (402); Bestimmen eines Datenübertragungsbefehls, um die Daten (404) zu übertragen; Auswählen eines ersten Präfix zur Verwendung mit dem Datenübertragungsbefehl, wenn die Daten einen ersten Datentyp (406) von Daten, die eine geringe Verweildauer in einem Cache-Speicher aufweisen, repräsentieren; und Auswählen eines zweiten Präfix zur Verwendung mit dem Datenübertragungsbefehl, wenn die Daten einen zweiten Datentyp (408) von Daten, die eine hohe Verweildauer in dem Cache-Speicher aufweisen, der von dem ersten Datentyp (406) verschieden ist, repräsentieren, und Aufteilen des Cache-Speichers in Teilgruppen gemäß dem ersten und dem zweiten Präfix; Ersetzen von Cache-Zeilen einer Teilgruppe, die einem bestimmten Präfix zugeordnet ist, in Abhängigkeit von „am aktuellsten verwendete“ / „am wenigsten aktuell verwendeten“ Informationen über Daten, die in dem Cache gespeichert sind, so dass lediglich ein Ersetzen von Cache-Zeilen einer Teilgruppe des Cache-Speichers, die „am wenigsten aktuellsten verwendete“ Durchgangsdaten umfasst, erlaubt wird.
  2. Verfahren nach Anspruch 1, wobei die Daten eines ersten Datentyps Videodaten und die Daten des zweiten Datentyps andere Daten als Daten des ersten Datentyps sind.
  3. Verfahren nach Anspruch 1, wobei die Daten eines ersten Datentyps Daten sind, die zu einem Videobildpuffer (140) zu übertragen sind.
  4. Verfahren nach Anspruch 1, wobei die Daten eines ersten Datentyps Durchgangsdaten sind, die nicht wieder benutzt werden sollen.
  5. Verfahren nach Anspruch 1, wobei das erste Präfix ausgewählt wird, um eine Auswahl einer ersten Cache-Maske (212, 222) zu ermöglichen, und wobei das zweite Präfix ausgewählt wird, um die Auswahl einer zweiten Cache-Maske (212, 222) zu ermöglichen.
  6. System mit: einem Systemspeicher (130); einem Prozessor (110); einem Bildspeicher (140); einem Cache-Speicherbereich (122), der gemäß einem ersten und einem zweiten Präfix in Teilgruppen aufgeteilt ist; und einer Cache-Steuerung (124), zur Steuerung des Zugriffs auf den Cache-Speicherbereich (122) während eines Datentransfers zu dem Bildspeicher (140) auf der Grundlage der Art eines Befehls, der von dem Prozessor (110) zum Bewirken des Transfers ausgeführt wird, so dass lediglich ein Ersetzen von Cache-Zeilen einer Teilgruppe des Cache-Speichers, die einem bestimmten Präfix zugeordnet ist und „am wenigsten aktuellsten verwendete“ Durchgangsdaten umfasst, erlaubt wird.
  7. System nach Anspruch 6, wobei die Cache-Steuerung (124) ferner dazu dient, eine erste Cache-Maske (212, 222) von mehreren Cache-Masken (212, 222) auf der Grundlage der Art des von dem Prozessor (110) ausgeführten Befehls auszuwählen, wobei die ausgewählte erste Cache-Maske (212) angibt, dass auf jeden von mehreren Wegen des Cache-Speicherbereichs (122) während des Datentransfers zugegriffen werden kann.
  8. System nach Anspruch 6, wobei die Cache-Steuerung (124) den Zugriff auf den Cache-Speicherbereich steuert, indem der Zugriff auf lediglich eine erste Teilmenge von mehreren der Wege des Cache-Speicherbereichs (122) beschränkt wird.
  9. System nach Anspruch 8, wobei die Cache-Steuerung (124) den einen oder die mehreren Wege der ersten Teilmenge der Wege auf der Grundlage einer „am wenigsten aktuell verwendeten“ Information für die mehreren Wege bestimmt.
DE112006000339.9T 2005-02-07 2006-01-17 System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu Expired - Lifetime DE112006000339B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/052,432 US7930484B2 (en) 2005-02-07 2005-02-07 System for restricted cache access during data transfers and method thereof
US11/052,432 2005-02-07
PCT/US2006/001597 WO2006086121A2 (en) 2005-02-07 2006-01-17 System for restricted cache access during data transfers and method thereof

Publications (2)

Publication Number Publication Date
DE112006000339T5 DE112006000339T5 (de) 2007-12-20
DE112006000339B4 true DE112006000339B4 (de) 2020-10-29

Family

ID=36463349

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006000339.9T Expired - Lifetime DE112006000339B4 (de) 2005-02-07 2006-01-17 System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu

Country Status (8)

Country Link
US (1) US7930484B2 (de)
JP (1) JP5030796B2 (de)
KR (1) KR101245823B1 (de)
CN (1) CN100578472C (de)
DE (1) DE112006000339B4 (de)
GB (1) GB2437888B (de)
TW (1) TWI403900B (de)
WO (1) WO2006086121A2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676632B2 (en) * 2006-07-18 2010-03-09 Via Technologies, Inc. Partial cache way locking
JP5254710B2 (ja) * 2008-09-01 2013-08-07 株式会社ソニー・コンピュータエンタテインメント データ転送装置、データ転送方法およびプロセッサ
JP6402034B2 (ja) 2011-09-13 2018-10-10 フェイスブック,インク. コンピュータ内の情報を安全に保つシステム及び方法
GB2500707B (en) * 2012-03-30 2014-09-17 Cognovo Ltd Multiprocessor system, apparatus and methods
CN103458467A (zh) * 2012-06-05 2013-12-18 华为技术有限公司 一种应用于网络中缓存系统、装置以及方法
US10133678B2 (en) * 2013-08-28 2018-11-20 Advanced Micro Devices, Inc. Method and apparatus for memory management
US9477603B2 (en) 2013-09-05 2016-10-25 Facebook, Inc. System and method for partitioning of memory units into non-conflicting sets
US9983894B2 (en) 2013-09-25 2018-05-29 Facebook, Inc. Method and system for providing secure system execution on hardware supporting secure application execution
US10705961B2 (en) * 2013-09-27 2020-07-07 Intel Corporation Scalably mechanism to implement an instruction that monitors for writes to an address
US10049048B1 (en) * 2013-10-01 2018-08-14 Facebook, Inc. Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US9747450B2 (en) 2014-02-10 2017-08-29 Facebook, Inc. Attestation using a combined measurement and its constituent measurements
US9734092B2 (en) 2014-03-19 2017-08-15 Facebook, Inc. Secure support for I/O in software cryptoprocessor
KR101835949B1 (ko) * 2014-12-14 2018-03-08 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 메모리 접근 타입을 고려한 캐시 치환 정책
WO2016097805A1 (en) 2014-12-14 2016-06-23 Via Alliance Semicoductor Co., Ltd. Cache memory budgeted by ways on memory access type
EP3066572B1 (de) * 2014-12-14 2020-02-19 VIA Alliance Semiconductor Co., Ltd. Bündelweise budgetierter cachespeicher auf speicherzugriffstypbasis
EP3230874B1 (de) * 2014-12-14 2021-04-28 VIA Alliance Semiconductor Co., Ltd. Durch speicherzugriffstyp budgetierter vollständig assoziativer cachespeicher
US9811468B2 (en) * 2014-12-14 2017-11-07 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
US10649678B2 (en) * 2017-01-13 2020-05-12 Arm Limited Partitioning of memory system resources or performance monitoring

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0779581A2 (de) * 1995-12-13 1997-06-18 International Business Machines Corporation Zentrale Verarbeitungseinheit mit Cache-Speicher
US5787490A (en) * 1995-10-06 1998-07-28 Fujitsu Limited Multiprocess execution system that designates cache use priority based on process priority
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4181937A (en) 1976-11-10 1980-01-01 Fujitsu Limited Data processing system having an intermediate buffer memory
US4513367A (en) * 1981-03-23 1985-04-23 International Business Machines Corporation Cache locking controls in a multiprocessor
US4464712A (en) 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US4458310A (en) 1981-10-02 1984-07-03 At&T Bell Laboratories Cache memory using a lowest priority replacement circuit
DE3142304A1 (de) * 1981-10-24 1983-05-11 AEG-Telefunken Nachrichtentechnik GmbH, 7150 Backnang Gleichspannungswandler
JPS6299845A (ja) 1985-10-28 1987-05-09 Hitachi Ltd デイスク・キヤツシユ制御方式
DE3621405C1 (de) * 1986-06-26 1988-01-28 Rehau Ag & Co Fluessigkeitsfilter
CA1279731C (en) * 1986-06-27 1991-01-29 Ruby Bei-Loh Lee Cache memory with variable fetch and replacement schemes
US4928239A (en) 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
JP2679363B2 (ja) * 1989-06-20 1997-11-19 日本電気株式会社 マイクロプロセッサ
US5261066A (en) 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
JP2822588B2 (ja) 1990-04-30 1998-11-11 日本電気株式会社 キャッシュメモリ装置
JPH04167155A (ja) * 1990-10-31 1992-06-15 Toshiba Corp データ処理システム
JPH06110781A (ja) 1992-09-30 1994-04-22 Nec Corp キャッシュメモリ装置
US5539893A (en) 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
US5623627A (en) 1993-12-09 1997-04-22 Advanced Micro Devices, Inc. Computer memory architecture including a replacement cache
US5870599A (en) 1994-03-01 1999-02-09 Intel Corporation Computer system employing streaming buffer for instruction preetching
US5809271A (en) 1994-03-01 1998-09-15 Intel Corporation Method and apparatus for changing flow of control in a processor
US5687338A (en) 1994-03-01 1997-11-11 Intel Corporation Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor
US6151661A (en) * 1994-03-03 2000-11-21 International Business Machines Corporation Cache memory storage space management system and method
US5752274A (en) 1994-11-08 1998-05-12 Cyrix Corporation Address translation unit employing a victim TLB
US5729713A (en) * 1995-03-27 1998-03-17 Texas Instruments Incorporated Data processing with first level cache bypassing after a data transfer becomes excessively long
US5696947A (en) * 1995-11-20 1997-12-09 International Business Machines Corporation Two dimensional frame buffer memory interface system and method of operation thereof
US5778430A (en) 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5958045A (en) * 1997-04-02 1999-09-28 Advanced Micro Devices, Inc. Start of access instruction configured to indicate an access mode for fetching memory operands in a microprocessor
JP3964049B2 (ja) * 1997-06-06 2007-08-22 テキサス インスツルメンツ インコーポレイテツド マイクロプロセッサ
US6151662A (en) 1997-12-02 2000-11-21 Advanced Micro Devices, Inc. Data transaction typing for improved caching and prefetching characteristics
US6078992A (en) 1997-12-05 2000-06-20 Intel Corporation Dirty line cache
US6216206B1 (en) 1997-12-16 2001-04-10 Intel Corporation Trace victim cache
US6105111A (en) 1998-03-31 2000-08-15 Intel Corporation Method and apparatus for providing a cache management technique
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6370622B1 (en) * 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching
US6397296B1 (en) 1999-02-19 2002-05-28 Hitachi Ltd. Two-level instruction cache for embedded processors
US6434669B1 (en) 1999-09-07 2002-08-13 International Business Machines Corporation Method of cache management to dynamically update information-type dependent cache policies
US6349365B1 (en) * 1999-10-08 2002-02-19 Advanced Micro Devices, Inc. User-prioritized cache replacement
US6370618B1 (en) 1999-11-09 2002-04-09 International Business Machines Corporation Method and system for allocating lower level cache entries for data castout from an upper level cache
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
US7099998B1 (en) 2000-03-31 2006-08-29 Intel Corporation Method for reducing an importance level of a cache line
CA2312444A1 (en) 2000-06-20 2001-12-20 Ibm Canada Limited-Ibm Canada Limitee Memory management of data buffers incorporating hierarchical victim selection
US6889291B1 (en) * 2000-06-30 2005-05-03 Intel Corporation Method and apparatus for cache replacement for a multiple variable-way associative cache
JP3973129B2 (ja) * 2000-07-19 2007-09-12 株式会社日立製作所 キャッシュメモリ装置及びそれを用いた中央演算処理装置
US6678795B1 (en) * 2000-08-15 2004-01-13 International Business Machines Corporation Method and apparatus for memory prefetching based on intra-page usage history
US6728835B1 (en) 2000-08-30 2004-04-27 Unisys Corporation Leaky cache mechanism
US6845432B2 (en) 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
US6725337B1 (en) * 2001-05-16 2004-04-20 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
US6801982B2 (en) 2002-01-24 2004-10-05 International Business Machines Corporation Read prediction algorithm to provide low latency reads with SDRAM cache
US7000081B2 (en) * 2002-02-12 2006-02-14 Ip-First, Llc Write back and invalidate mechanism for multiple cache lines
US7089371B2 (en) * 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory
US7089368B2 (en) * 2002-02-12 2006-08-08 Ip-First, Llc Microprocessor apparatus and method for exclusively prefetching a block of cache lines from memory
US6901477B2 (en) 2002-04-01 2005-05-31 Emc Corporation Provision of a victim cache within a storage cache hierarchy
US7103722B2 (en) * 2002-07-22 2006-09-05 International Business Machines Corporation Cache configuration for compressed memory systems
TWI220042B (en) * 2002-08-22 2004-08-01 Ip First Llc Non-temporal memory reference control mechanism
US6961821B2 (en) * 2002-10-16 2005-11-01 International Business Machines Corporation Reconfigurable cache controller for nonuniform memory access computer systems
US6996676B2 (en) 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
US7103721B2 (en) 2003-04-28 2006-09-05 International Business Machines Corporation Cache allocation mechanism for biasing subsequent allocations based upon cache directory state
US20040268099A1 (en) 2003-06-30 2004-12-30 Smith Peter J Look ahead LRU array update scheme to minimize clobber in sequentially accessed memory
US7028144B2 (en) 2003-10-28 2006-04-11 Intel Corporation Method and apparatus for an in-situ victim cache
US20050188158A1 (en) * 2004-02-25 2005-08-25 Schubert Richard P. Cache memory with improved replacement policy
US7392340B1 (en) 2005-03-21 2008-06-24 Western Digital Technologies, Inc. Disk drive employing stream detection engine to enhance cache management policy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787490A (en) * 1995-10-06 1998-07-28 Fujitsu Limited Multiprocess execution system that designates cache use priority based on process priority
EP0779581A2 (de) * 1995-12-13 1997-06-18 International Business Machines Corporation Zentrale Verarbeitungseinheit mit Cache-Speicher
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms

Also Published As

Publication number Publication date
JP5030796B2 (ja) 2012-09-19
KR101245823B1 (ko) 2013-03-21
GB0716023D0 (en) 2007-09-26
CN100578472C (zh) 2010-01-06
TWI403900B (zh) 2013-08-01
KR20070110021A (ko) 2007-11-15
WO2006086121A3 (en) 2007-03-29
TW200636467A (en) 2006-10-16
DE112006000339T5 (de) 2007-12-20
GB2437888B (en) 2010-11-17
US7930484B2 (en) 2011-04-19
WO2006086121A2 (en) 2006-08-17
JP2008530656A (ja) 2008-08-07
CN101116061A (zh) 2008-01-30
GB2437888A (en) 2007-11-07
US20060179228A1 (en) 2006-08-10

Similar Documents

Publication Publication Date Title
DE112006000339B4 (de) System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu
DE69635663T2 (de) vERFAHREN FÜR DAS EINSPEICHERN VON DATEN IN EINEM FLASH-EEPROM-HAUPTSPEICHER IN EINEM RECHNERSYSTEM
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE69421379T2 (de) Wiederverwendbarer Mehrwegsatz assoziativer Cache-Speicher
DE69620807T2 (de) Datenverarbeitungsvorrichtung zum Vorziehen einer Datenstruktur aus dem Hauptspeicher oder seinem Cachespeicher
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE69023568T2 (de) Cache-Speicheranordnung.
DE69025302T2 (de) Hochleistungsrasterpuffer- und -cachespeicheranordnung
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE4335475A1 (de) Datenverarbeitungseinrichtung mit Cache-Speicher
DE2716051A1 (de) Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden
DE102006005876A1 (de) Flashspeicher-Steuervorrichtung, Vorrichtung zum Steuern eines Flashspeichers, Flashspeicher-System und Verfahren zum Verwalten von Abbildungsdaten eines Flashspeichers
DE60012081T2 (de) Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE60008148T2 (de) System und verfahren zum abrollen von schleifen in einem trace-cache
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112006003453T5 (de) Per-Satz-Relaxation der Cache-Inklusion
DE2856715B2 (de) Verfahren zum Durchführen einer Pufferspeicher-Koinzidenz in einem Mehrprozessorsystem
DE102006030879A1 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE69815482T2 (de) Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
DE69709226T2 (de) Einzelzyklus mehrfachzugreifbarer verschachtelter Cache-Speicher
DE69130626T2 (de) Verfahren zur Verwaltung einer Cache-Speicheranordnung
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE602004004780T2 (de) Verfahren und einrichtung zum transferieren von daten zwischen einem hauptspeicher und einer speichereinrichtung
DE69629331T2 (de) System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R071 Expiry of right