DE69933328T2 - Mehrweg-Cachespeichervorrichtung und Verfahren - Google Patents

Mehrweg-Cachespeichervorrichtung und Verfahren Download PDF

Info

Publication number
DE69933328T2
DE69933328T2 DE69933328T DE69933328T DE69933328T2 DE 69933328 T2 DE69933328 T2 DE 69933328T2 DE 69933328 T DE69933328 T DE 69933328T DE 69933328 T DE69933328 T DE 69933328T DE 69933328 T2 DE69933328 T2 DE 69933328T2
Authority
DE
Germany
Prior art keywords
cache
attribute
way
access attribute
stored
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 - Fee Related
Application number
DE69933328T
Other languages
English (en)
Other versions
DE69933328D1 (de
Inventor
William C. Dripping Springs Moyer
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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor 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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Application granted granted Critical
Publication of DE69933328D1 publication Critical patent/DE69933328D1/de
Publication of DE69933328T2 publication Critical patent/DE69933328T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf Prozessoren und Speicher, und insbesondere auf einen Mehrweg-Cachespeicher.
  • Hintergrund der Erfindung
  • Ein niedrigerer Stromverbrauch hat zunehmend bei dem Mikroprozessor- und Mikrocontroller-Design aufgrund der weit verbreiteten Anwendung von tragbaren und von Hand gehaltenen Anwendungen Wichtigkeit gewonnen. Ein typisches, eingebettetes Steuersystem umfasst im Allgemeinen eine zentrale Verarbeitungseinheit (CPU) und eine Vielzahl unterschiedlicher Typen von Speichern und peripheren Vorrichtungen. Die unterschiedlichen Speichertypen können extern zu einer integrierten Schaltung vorgesehen sein, die den Mikrocontroller trägt, und/oder auf derselben integrierten Schaltung vorgesehen sein, und einen Cachespeicher, einen ROM (Lesespeicher) und eine Vielzahl von SRAM- (statischer Speicher mit direktem Zugriff)-Vorrichtungen umfassen.
  • Eine erhebliche Menge an Energie und Zeit ist erforderlich, um auf einen großen externen Hauptspeicher zuzugreifen. Daher kann ein kleinerer, schnellerer und effizienterer Speicher, der gelegentlich als Cache bezeichnet wird, auf der integrierten Schaltung verwendet werden, um die Anzahl der Zugriffe auf den Hauptspeicher zu reduzieren. Um die Größe der integrierten Schaltung so klein wie möglich zu halten, ist nur soviel Speicher, wie notwendig ist, an Bord an der integrierten Schaltung vorgesehen.
  • Ein Cache-TAG wird häufig verwendet, um die Leistungsfähigkeit des Cache zu erhöhen. Der Cache-TAG empfängt eine TAG-Adresse, die an den Mikroprozessor geliefert wird und bestimmt, ob die angeforderten Befehle und/oder Daten in dem Cachespeicher vorhanden sind. Wenn ein angeforderter Befehl nicht in dem Cache liegt, muss der Mikroprozessor dann den Befehl von dem Hauptspeicher abrufen. Wenn ein Befehl in den Cache eingeschrieben wird, werden die eine höhere Ordnung aufweisenden Bits der Adresse des Befehls in einem TAG-Feld gespeichert. Der Cache-TAG hat auch einen Vergleicher, der eine von dem Prozessor erzeugte Adresse mit der TAG-Adresse vergleicht. Wenn die TAG-Adresse und die von dem Prozessor erzeugte Adresse gleich sind, tritt ein Cache-"Treffer" auf, und ein Übereinstimmungssignal wird von dem Cache-TAG geliefert, das anzeigt, dass die angeforderten Daten in dem Cachespeicher liegen. Wenn die von dem Prozessor erzeugte Adresse und die TAG-Adresse nicht gleich sind, tritt ein Cache-" Fehltreffer " auf, und das Übereinstimmungssignal zeigt an, dass die angeforderten Daten nicht in dem Cachespeicher liegen. Zusätzlich kann ein gültiges Bit als ein Teil der TAG-Adresse gesetzt werden, um einen gültigen Treffer der gespeicherten TAG-Adresse während eines Vergleichszyklus des Cache zu qualifizieren.
  • Mit herkömmlichen Cache-Lösungsansätzen kann in vielen Anwendungen der Wirkungsgrad des Cache dadurch negativ beeinflusst werden, dass kollidierende Zugriffserfordernisse zu vielen Cache- Fehltreffern und Zugriffen auf den externen Speicher führen. Zusätzlich wird bei Niedrigstromanwendungen ein Hauptgewicht auf das wirkungsvolle Strommanagement für die Verarbeitungsressourcen gelegt. Es wäre erwünscht, dass ein Cachespeicher einen erhöhten Verarbeitungswirkungsgrad, d.h. höhere Cache-Trefferraten kombiniert mit einem niedrigeren Stromverbrauch liefert.
  • US-Patent 5,553,262 bezieht sich darauf, Wege-Treffersignale und Wege-Zuordnungssignale für jeden Weg eines Mehrweg-Cache zu bestimmen und diese Signale dazu zu verwenden, ein Treffersignal und konsistente Signale zu erzeugen, um sicherzustellen, dass die Daten mit dem Hauptspeicher konsistent bleiben und dass Datenkollisionen vermieden werden.
  • US-Patent 5,410,669 offenbart einen Datenprozessor mit einem Cachespeicher, der als lineare RAM-Bank genutzt werden kann.
  • Folglich gibt es einen Bedarf für eine verbesserte Cachevorrichtung und Verfahren.
  • Kurze Beschreibung der Zeichnungen
  • Während die Erfindung insbesondere in den beigefügten Ansprüchen dargelegt ist, sind andere Merkmale der Erfindung durch die folgende detaillierte Beschreibung, genommen im Zusammenhang mit den beigefügten Zeichnungen, offenbart, in denen:
  • 1 ein Blockdiagramm eines Ausführungsbeispiels eines Datenverarbeitungssystems ist;
  • 2 ein Blockdiagramm eines Ausführungsbeispiels eines Abschnitts des Cache von 1 ist;
  • 3 ein Blockdiagramm eines speziellen Ausführungsbeispiels ist, das den Cache von 2 spezieller zeigt;
  • 4 ein allgemeines Diagramm ist, das ein spezielles Ausführungsbeispiel des Registers zur Verwendung im Zusammenhang mit dem Cache von 2 zeigt;
  • 5 ein Flussdiagramm ist, das den Zugriffsvorgang des Cache von 2 unter Verwendung des Registers von 4 zeigt.
  • Detaillierte Beschreibung des (der) bevorzugten Ausführungsbeispiels (Ausführungsbeispiele)
  • Im Allgemeinen bezieht sich die vorliegende Erfindung auf eine Mehrweg- Cachevorrichtung und Verfahren der Verwendung des Mehrweg-Cache. Entsprechend einem ersten Aspekt der vorliegenden Erfindung ist die Vorrichtung eine Vorrichtung mit einem Mehrweg-Cache. Die Vorrichtung umfasst ein erstes durch den Benutzer steuerbares Element, das ein vorgegebenes, erstes Attribut hat, das einem ersten Weg des Mehrweg-Cache entspricht; ein zweites von dem Benutzer steuerbares Element, das ein vorgegebenes, zweites Attribut hat, das einem zweiten Weg des Mehrweg-Cache entspricht; einen Leiter zum Übertragen eines Zugriffsattributs an den Mehrweg-Cache; eine erste Vergleicherschaltung, die das Zugriffsattribut mit dem vorgegebenen, ersten Attribut vergleicht, um ein erstes Vergleichsresultat zu liefern; eine zweite Vergleicherschaltung, die das Zugriffsattribut mit dem vorgegebenen, zweiten Attribut vergleicht, um ein zweites Vergleichsresultat zu liefern; eine einem ersten Weg zugeordnete Steuerschaltung, um den ersten Weg des Mehrweg-Cache basierend auf dem ersten Vergleichsresultat wahlweise freizugeben; und eine dem zweiten Weg zugeordnete Steuerschaltung, um den zweiten Weg des Mehrweg-Cache basierend auf dem zweiten Vergleichsresultat wahlweise freizugeben.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung ist die Vorrichtung eine integrierte Schaltung. Die integrierte Schaltung umfasst einen Cache mit einem ersten Weg und einem zweiten Weg; einem ersten Speicherelement, um ein erstes, gespeichertes Attribut für den ersten Weg des Cache zu speichern; ein zweites Speicherelement, um ein zweites, gespeichertes Attribut des zweiten Weges des Cache zu speichern; einen Leiter, um ein Zugriffsattribut zu übertragen; und eine Steuerschaltung. Die Steuerschaltung vergleicht das Zugriffsattribut mit dem ersten, gespeicherten Attribut, um ein erstes Vergleichsresultat zu liefern, und sie gibt den ersten Weg des Cache basierend auf dem ersten Vergleichsresultat frei. Die Steuerschaltung vergleicht auch das Zugriffsattribut mit dem zweiten, gespeicherten Attribut, um ein zweites Vergleichsresultat zu liefern, und sie gibt den zweiten Weg des Cache, basierend auf dem zweiten Vergleichsresultat frei.
  • Entsprechend einem anderen Aspekt der vorliegenden Erfindung ist ein Verfahren zum Betreiben eines Datenverarbeitungssystems mit einem Mehrweg-Cache offenbart. Das Verfahren umfasst die Schritte: Einleiten eines Zugriffsvorgangs; Zugreifen auf den Mehrweg-Cache in Antwort auf den Zugriffsvorgang; Liefern eines bereitgestellten Zugriffsattributs an den Mehrweg-Cache als Teil des Zugriffsvorgangs; Vergleichen des bereitgestellten Zugriffsattributs mit einem ersten, gespeicherten Zugriffsattribut, das einem ersten Weg des Mehrweg-Cache entspricht, Vergleichen des bereitgestellten Zugriffsattributs mit einem zweiten gespeicherten Zugriffsattribut, das einem zweiten Weg des Mehrweg-Cache entspricht; wahlweises Freigeben des ersten Weges des Mehrweg-Cache basierend darauf, ob das bereitgestellte Zugriffsattribut zu dem ersten, gespeicherten Zugriffsattribut passt; und wahlweises Freigeben des zweiten Weges des Mehrweg-Cache, basierend darauf, ob das bereitgestellte Zugriffsattribut zu dem zweiten, gespeicherten Zugriffsattribut passt. Es ist zu beachten, dass die speziellen Begriffe und Ausdrücke, die verwendet werden, und die speziellen, strukturellen und betriebsmäßigen Details, die in der detaillierten Beschreibung und den beigefügten Zeichnungen offenbart sind, nur zum Zwecke der Darstellung dienen und nicht dazu gedacht sind, den Schutzumfang der Erfindung, wie sie in den beigefügten Ansprüchen beschrieben ist, in irgendeiner Weise zu beschränken.
  • Bezug nehmend auf 1 ist ein Ausführungsbeispiel des Verarbeitungssystems 10 gezeigt. Das Verarbeitungssystem 10 umfasst einen Prozessor 12 und einen externen Speicher 14. Der Prozessor 12 umfasst eine zentrale Verarbei tungseinheit 16, einen Cachespeicher 18, eine Bus-Schnittstelle 22 und andere Module 20. Der Prozessor 12 umfasst auch einen Bus 24 und einen Bus 26. Der Bus 24 verbindet die CPU 16, den Cache 18, die Bus-Schnittstelle 22 und die anderen Module 20. Der Bus 26 koppelt die Bus-Schnittstelle 22 mit dem Speicher 14. Während eine spezielle, beispielhafte Ausführungsform des Datenverarbeitungssystems 10 offenbart worden ist, ist daran gedacht, dass verschiedene Konfigurationen und alternative Ausführungsbeispiele solch eines Verarbeitungssystems umgesetzt werden könnten. Beispielsweise könnte, während der Cache 18 als Teil des Prozessors 12 gezeigt ist, der Cache alternativ außerhalb des Prozessors 12 angeordnet sein, beispielsweise in dem externen Speicher 14.
  • Bezug nehmend auf 2 ist ein spezielles Ausführungsbeispiel eines Abschnitts des Cache 18 offenbart. Der Abschnitt des Cache 18 umfasst ein Register 40, ein TAG-Speicherfeld für mehrfache Wege 42-48, ein Datenspeicherfeld für mehrfache Wege 50-56 und eine Cachesteuerschaltung 58. Die Cachesteuerschaltung 58 umfasst ein Register 80, einen Vergleicher 60 und eine Zugriffssteuerlogik 82. Das Register 40 empfängt einen Adressabschnitt von dem Buss 24 und hat einen TAG-Werteabschnitt 64 und einen Indexabschnitt 66 und einen Wort-Auswahlabschnitt 68. Der TAG-Abschnitt 64 umfasst TAG-Wertedaten, die auf dem Mehrweg-TAG-Feld 42-48 bereitgestellt sind. Die Daten von dem Indexabschnitt 66 werden sowohl an das Mehrweg-TAG-Feld 42-48 als auch an das Mehrweg-Datenfeld 50-56 geliefert. Die Daten von dem Wort-Auswahlabschnitt 68 werden an das Mehrweg-Datenfeld 50-56 geliefert. Das Mehrweg-Datenfeld ist mit einem Zweirichtungs-Datenabschnitt des Busses 24 gekoppelt.
  • Jedes TAG-Feld, beispielsweise das TAG-Feld (Weg 0) 42 liefert ein Treffersignal an das entsprechende Datenfeld, beispielsweise das Datenfeld (Weg 0) 50, basierend auf einem Vergleich zwischen dem TAG-Wert 64 und den Daten, die in Bezug auf den Indexwert 66 abgelegt sind. Die Cachesteuerschaltung 58 empfängt Zugriffsattribute 87, Adress- und Steuerdaten von dem Bus 24. In einem alternativen Ausführungsbeispiel können die Zugriffsattribute 87 lokal erzeugt werden, beispielsweise von innerhalb des Mehrweg-Cache 18. Der Vergleicher 60 wird verwendet, um die Zugriffsattribute 87 mit gespeicherten Attributenwerten von dem Register 80 zu vergleichen, um ein Vergleichsresultat 61 zu erzeugen, das seinerseits durch die Zugriffssteuerlogik 82 verarbeitet wird, um Lese-Freigabesignale 86 und Schreib-Freigabesignale 89 für jeden der Vielzahl der Cachewege zu erzeugen. Obwohl nur ein einziger Vergleicher 60 gezeigt ist, umfasst der Vergleicher 60 eine Vielzahl einzelner Vergleicher für jeden der Vielzahl der Cachewege. In einem speziellen Ausführungsbeispiel umfassen die Zugriffsattribute Datenklassentypen für die abgerufene Information, beispielsweise einen Befehlstyp oder einen Datentyp der in dem Speicher gespeicherten Information. Das Register 80 in diesem Ausführungsbeispiel umfasst Steuerbits, die dem Freigeben oder Abschalten für jeden der Datenklassentypen entsprechen. Grundsätzlich kann das Register 80 mehrere Steuerbits umfassen, um verschiedene Funktionen als freigegeben oder abgeschaltet für jeden der Vielzahl der Cachewege auszuwählen. Ein Beispiel solcher zusätzlichen Steuerbits sind Steuerbits, um das Entleeren des Cache auf der Basis pro Weg wahlweise freizugeben. Zusätzlich steht die Cachesteu erschaltung mit dem TAG-Feld 42-48 und dem Datenfeld 50-56 über entsprechende Kommunikationswege 62 und 70 in Verbindung.
  • Die Cachesteuerschaltung 58 spricht auf die von dem Datenbus 24 empfangenen Daten an. Ein von einem Benutzer programmierbares Steuerwort, das von dem Benutzer ausgewählte Attributensteuerbits für eine Vielzahl von Cachewegen enthält, kann beispielsweise von dem Datenbus 24 empfangen und in dem Register 80 gespeichert werden. Auf diese Weise kann das Register 80 flexibel und dynamisch Mehrweg-Cachespeicherressourcen auf der Basis einer speziellen Anwendung oder von Benutzerbedürfnissen zuordnen.
  • Bezug nehmend auf 3 ist ein spezielles Ausführungsbeispiel eines Abschnittes des ersten TAG-Feldweges, beispielsweise das TAG-Feld (Weg 0) 42, und ein Abschnitt eines entsprechenden Feldweges für erste Daten, beispielsweise das Datenfeld (Weg 0) 50, gezeigt. Der oben beschriebene Abschnitt umfasst das Register 40, das den TAG-Abschnitt 64, den Indexabschnitt 66 und den Wort-Auswahlabschnitt 68 hat. Der TAG-Abschnitt 64 wird unter Verwendung des Vergleichers 65 mit einem Wert verglichen, der von dem TAG-Feld (Weg 0) 42 über den Indexabschnitt 66 empfangen wird, um das Treffersignal 72 zu liefern. Das Datenfeld (Weg 0) 50 umfasst eine Vielzahl von Datenblöcken und wird sowohl durch den Indexwert 66 als auch durch den Wort-Auswahlwert 68 adressiert. Das adressierte Datenelement wird aus dem Datenfeld (Weg 0) 50 über einen Datenbus ausgegeben, der ein Abschnitt von dem Bus 24 ist.
  • Eine Weg-Steuerschaltung 92 ist ebenfalls offenbart, die Lese-Freigabesignale 86 und Schreib-Freigabesignale 89 an ihrem Eingang empfängt und ein Steuersignal 94 an ihrem Ausgang liefert. Das Steuersignal 94 umfasst Lese- und Schreib-Steuersignale sowohl für das TAG-Feld (Weg 0) 42 als auch für das Datenfeld (Weg 0) 50 und auch andere, zugeordnete Steuersignale für Funktionen, die auf der Basis pro Weg durchgeführt oder nicht durchgeführt werden sollen.
  • Bezug nehmend auf 4 ist eine spezielle, beispielhafte Ausführungsform des Registers 80 in der Cachesteuerschaltung 58 gezeigt. In dieser Ausführungsform umfasst das Register 80 eine Vielzahl von Datenfeldern, wobei jedes Datenfeld eine Vielzahl von Datenbits umfasst. Das Register 80 umfasst ein Cache-Löschfeld 102, ein Daten-Cache-Freigabefeld 104 und ein Befehls-Cache-Freigabefeld 106. Jedes der Felder 102-106 kann eines oder mehrere Steuerbits umfassen. Die Cache-Steuerbits des Feldes 102 sind jeweils einem unterschiedlichen Cacheweg zuordnet. Für jeden Cacheweg bestimmt ein spezielles Cache-Steuerbit in dem Feld 102, ob dieser spezielle Cacheweg geleert oder freigemacht wird. wenn der spezielle Cacheweg gelöscht ist, werden alle Daten in dem Datenfeld für diesen Weg ungültig gemacht.
  • Für jeden Cacheweg bestimmt ein spezielles Cache-Steuerbit in dem Feld 104, ob dieser spezielle Cacheweg benutzt werden kann, um auf Daten zuzugreifen, die einen Datenklassentyp haben. Auf ähnliche Weise bestimmt für jeden Cacheweg ein spezielles Cache-Steuerbit in dem Feld 106, ob dieser spezielle Cacheweg verwendet werden kann, um auf Daten zuzugreifen, die einen Befehlsklassentyp haben. Während nur die Klassentypen für den Daten- und Befehlstyp offenbart wurden, ist daran gedacht, dass das obige Verfahren pro Weg und die Struktur auf eine Vielzahl von Datenklassen anwendbar ist. Beispielsweise können andere Steuerfelder für alternative Datenklassentyp-Definitionen verwendet wer den, beispielsweise für einen Benutzerklassentyp, einen Supervisor-Klassentyp, einen Stapel-Datenklassentyp und einen Nicht-Stapel-Datenklassentyp.
  • Bezug nehmend auf 5 ist ein spezielles Verfahren zum Betreiben eines Datenverarbeitungssystems 10 mit einem Mehrweg-Cache gezeigt. Das Verfahren umfasst einen ersten Schritt (Schritt 202) der Einleitung eines Zugriffs, beispielsweise eines Speicherzugriffs, wo Adress- und Attributinformationen an einen Mehrweg-Cache geliefert wird. An dem Schritt 204 wird die bereitgestellte Attributinformation mit gespeicherten Attributsteuerbits für jeden Weg des Mehrweg-Cache verglichen. Diese gespeicherten Attributsteuerbits können die Steuerbits sein, die in dem Register 80 gespeichert sind, wie oben beschrieben wurde. Auf der Basis des obigen Vergleichs werden Freigabesignale, beispielsweise ein Lese-Freigabe- und Schreib-Freigabe-Signal, für jeden Weg des Mehrweg-Cache an dem Schritt 206 bereitgestellt. Die ausgewählten Wege des Cache werden auf der Basis der Freigabesignale freigegeben, während nicht ausgewählte Wege abgeschaltet bleiben, Schritt 208.
  • Wenn auf den Cache zugegriffen wird und wenn ein Cachetreffer auftritt, Schritt 210, wird der Cachezugriff fortgesetzt, wobei nur die ausgewählten Cachewege teilnehmen, Schritt 212. Zusätzlich wird eine Austauschfunktion verwendet, um zu bestimmen, dass eine Cache-Eingabe in einem nachfolgenden Austauschvorgang ausgetauscht wird. Die Austauschfunktion wird nur durch die ausgewählten Wege des Mehrweg-Cache bewirkt. Im Falle eines Cache-Fehltreffers nehmen nur die ausgewählten Cachewege an dem Austauschvorgang teil, Schritt 214. Als spezielles Beispiel sind nur die ausgewählten Cachewege zum Austausch existierender Blö cke mit dem Datenblock von einem externen Speicher entsprechend einem geeigneten Zugriffsvorgang verfügbar. Der Zugriffsvorgang ist dann abgeschlossen, Schritt 216.
  • Die vorstehende Mehrweg-Cachevorrichtung und das Verfahren haben viele Vorteile. Beispielsweise kann bei gewissen Verarbeitungsanwendungen der Cache-Wirkungsgrad dadurch erhöht werden, dass eine höhere Zuordnung zu gewissen Datenklassentypen, die öfter für solch eine Anwendung verwendet werden, bereitgestellt wird. Beispielsweise wird bei gewissen Anwendungsfällen auf einen höheren Prozentsatz von Befehlstypdaten zwecks Verarbeitung zugegriffen, und sie würden daher von einer höheren Cacheausnutzung profitieren. Indem eine wahlweise Zuordnung von Cacheressourcen auf einer Mehrweg-Basis zugelassen wird, kann diese bevorzugte Cachezuordnung zugewiesen werden. Zusätzlich ergeben sich, da einzelne Cachewege für spezielle Datenklassentypen abgewählt werden können, Stromeinsparungen aus der Nichtverwendung von zugeordneter, stromverbrauchender Schaltung für die nicht ausgewählten Cachewege. Diese Einsparung an Stromverbrauch kann bei vielen Anwendungen mit geringem Stromverbrauch besonders nützlich sein, beispielsweise bei in der Hand gehaltenen Vorrichtungen mit niedrigem Stromverbrauch.
  • Somit wurde hier eine Ausführungsform mit wenigstens einer bevorzugten Ausführungsform einer verbesserten Mehrweg-Cachevorrichtung und eines Verfahrens zum Betreiben eines Datenverarbeitungssystems beschrieben. Die Erfindung ist bestimmt, wie in den Ansprüchen angegeben ist.

Claims (9)

  1. Verfahren zum Betreiben eines Datenverarbeitungssystems (10) mit einem Mehrweg-Cache (18), wobei das Verfahren umfasst: Einleiten eines Zugriffsvorgangs; Zugreifen auf einen Mehrweg-Cache in Antwort auf den Zugriffsvorgang, wobei das Zugreifen umfasst: Liefern eines bereitgestellten Zugriffsattributs (87) an den Mehrweg-Cache als Teil des Zugriffsvorgangs; Vergleichen des bereitgestellten Zugriffsattributs mit einem ersten, gespeicherten Zugriffsattribut, das einem ersten Weg des Mehrweg-Cache entspricht; Vergleichen des bereitgestellten Zugriffsattributs mit einem zweiten, gespeicherten Zugriffsattribut, das einem zweiten Weg des Mehrweg-Cache entspricht; wahlweises Freigeben des ersten Weges des Mehrweg-Cache, basierend darauf, ob das bereitgestellte Zugriffsattribut zu dem ersten, gespeicherten Zugriffsattribut passt; und wahlweises Freigeben des zweiten Weges des Mehrweg-Cache, basierend darauf, ob das bereitgestellte Zugriffsattribut zu dem zweiten gespeicherten Zugriffsattribut passt, dadurch gekennzeichnet, dass wahlweise der erste Weg und wahlweise der zweite Weg freigegeben wird, bevor festgestellt wird, ob entweder ein Cache-Fehltreffer oder ein Cache-Treffer während des Zugriffsvorganges aufgetreten ist.
  2. Verfahren nach Anspruch 1, worin das bereitgestellte Zugriffsattribut, das erste, gespeicherte Zugriffsattribut und das zweite, gespeicherte Zugriffsattribut jeweils ein Supervisor/Benutzer-Attribut sind.
  3. Verfahren nach Anspruch 1, ferner umfassend: Bestimmen, ob der Cache-Fehltreffer während des Zugriffsvorgangs aufgetreten ist; und wenn der Cache-Fehltreffer aufgetreten ist, Durchführen eines Austauschvorgangs unter Verwendung von nur den Wegen des Mehrweg-Cache, die wahlweise während des Zugriffsvorgangs freigegeben wurden.
  4. Verfahren nach Anspruch 1, worin der Schritt des wahlweisen Freigebens des ersten Weges des Mehrweg-Cache die Schritte umfasst: wahlweises Bereitstellen eines ersten Lese-Freigabesignals an den ersten Weg des Mehrweg-Cache; und wahlweises Bereitstellen eines ersten Schreib-Freigabesignals an den ersten Weg des Mehrweg-Cache.
  5. Verfahren nach Anspruch 1, ferner umfassend die Schritte: Liefern eines zweiten, bereitgestellten Zugriffsattributs an den Mehrweg-Cache als Teil des Zugriffsvorgangs; Vergleichen des zweiten, bereitgestellten Zugriffsattributs mit einem dritten, gespeicherten Zugriffsattribut, das dem ersten Weg des Mehrweg-Cache entspricht; Vergleichen des zweiten, bereitgestellten Zugriffsattributs mit einem vierten, gespeicherten Zugriffsattribut, das dem zweiten Weg des Mehrweg-Cache entspricht; wahlweises Freigeben des ersten Weges des Mehrweg-Cache, basierend darauf, ob das bereitgestellte Zugriffsattribut zu dem ersten, gespeicherten Zugriffsattribut passt und das zweite bereitgestellte Zugriffsattribut zu dem dritten gespeicherten Zugriffsattribut passt; und wahlweises Freigeben des zweiten Weges des Mehrweg-Cache, basierend darauf, ob das bereitgestellte Zugriffsattribut zu dem zweiten, gespeicherten Zugriffsattribut passt und dass das zweite bereitgestellte Zugriffsattribut zu dem vierten gespeicherten Zugriffsattribut passt.
  6. Integrierte Schaltung, umfassend: einen Mehrweg-Cache (18) mit einem ersten Weg und einem zweiten Weg; ein erstes Speicherelement (80) zum Speichern eines ersten gespeicherten Attributs für den ersten Weg des Cache; ein zweites Speicherelement (80) zum Speichern eines zweiten, gespeicherten Attributs für den zweiten Weg des Cache; einen Leiter zum Übertragen eines Zugriffsattributs (87), das als Teil eines eingeleiteten Zugriffsvorgangs geliefert wird; und eine Steuerschaltung (58), die das Zugriffsattribut mit dem ersten gespeicherten Attribut vergleicht, um ein erstes Vergleichsresultat zu liefern, und das wahlweise den ersten weg des Cache basierend auf dem ersten Vergleichsresultat freigibt, und das das Zugriffsattribut mit dem zweiten gespeicherten Attribut vergleicht, um ein zweites Vergleichsresultat zu liefern, und das wahlweise den zweiten Weg des Cache basierend auf dem zweiten Vergleichsresultat freigibt, dadurch gekennzeichnet, dass die Steuerschaltung wahlweise den ersten Weg des Cache freigibt und wahlweise den zweiten Weg des Cache freigibt, bevor bestimmt wird, ob entweder ein Cache-Treffer oder ein Cache-Fehltreffer während des Zugriffsvorgangs aufgetreten ist.
  7. Integrierte Schaltung nach Anspruch 6, worin das erste Speicherelement erste, von dem Benutzer programmierbare Registerbits umfasst, und worin das zweite Speicherelement zweite, vom Benutzer programmierbare Registerbits umfasst.
  8. Integrierte Schaltung nach Anspruch 6, worin der erste Weg des Cache umfasst: einen ersten TAG-Abschnitt; und einen ersten Datenabschnitt; und worin der zweite Weg des Cache umfasst: einen zweiten TAG-Abschnitt und einen zweiten Datenabschnitt.
  9. Integrierte Schaltung nach Anspruch 6, worin das Zugriffsattribut, das erste gespeicherte Attribut und das gespeicherte Attribut jeweils ein Befehls-/Daten-Attribut sind.
DE69933328T 1998-04-20 1999-04-14 Mehrweg-Cachespeichervorrichtung und Verfahren Expired - Fee Related DE69933328T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/062,571 US6185657B1 (en) 1998-04-20 1998-04-20 Multi-way cache apparatus and method
US62571 1998-04-20

Publications (2)

Publication Number Publication Date
DE69933328D1 DE69933328D1 (de) 2006-11-09
DE69933328T2 true DE69933328T2 (de) 2007-01-11

Family

ID=22043355

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69933328T Expired - Fee Related DE69933328T2 (de) 1998-04-20 1999-04-14 Mehrweg-Cachespeichervorrichtung und Verfahren

Country Status (7)

Country Link
US (1) US6185657B1 (de)
EP (1) EP0952524B1 (de)
JP (1) JP2000029789A (de)
KR (1) KR100620258B1 (de)
CN (1) CN1178138C (de)
DE (1) DE69933328T2 (de)
TW (1) TW440764B (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560677B1 (en) * 1999-05-04 2003-05-06 International Business Machines Corporation Methods, cache memories, systems and computer program products for storing transient, normal, and locked entries in an associative cache memory
US6405287B1 (en) * 1999-11-17 2002-06-11 Hewlett-Packard Company Cache line replacement using cache status to bias way selection
EP1111511B1 (de) * 1999-12-06 2017-09-27 Texas Instruments France Cachespeicher mit mehreren Füllungsmoden
DE69937611T2 (de) * 1999-12-06 2008-10-23 Texas Instruments Inc., Dallas Intelligenter Puffer-Speicher
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
JP2001222491A (ja) * 2000-02-09 2001-08-17 Nec Corp 情報提供システム、情報提供方法およびクライアント
US6446168B1 (en) * 2000-03-22 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamically switching a cache between direct-mapped and 4-way set associativity
US7386671B2 (en) * 2000-06-09 2008-06-10 Texas Instruments Incorporated Smart cache
US6732234B1 (en) * 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6681295B1 (en) * 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US7330954B2 (en) * 2002-04-18 2008-02-12 Intel Corporation Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
TWI246658B (en) * 2003-04-25 2006-01-01 Ip First Llc Microprocessor, apparatus and method for selectively associating store buffer cache line status with response buffer cache line status
US7069388B1 (en) * 2003-07-10 2006-06-27 Analog Devices, Inc. Cache memory data replacement strategy
US6973540B2 (en) * 2003-07-25 2005-12-06 Freescale Semiconductor, Inc. Method and apparatus for selecting cache ways available for replacement
KR20060119085A (ko) * 2005-05-18 2006-11-24 삼성전자주식회사 텍스쳐 캐쉬 메모리 장치 및 이를 이용한 삼차원 그래픽가속기 및 방법
US7562191B2 (en) * 2005-11-15 2009-07-14 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US7873820B2 (en) * 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
US7496771B2 (en) * 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
US7376807B2 (en) * 2006-02-23 2008-05-20 Freescale Semiconductor, Inc. Data processing system having address translation bypass and method therefor
US7401201B2 (en) * 2006-04-28 2008-07-15 Freescale Semiconductor, Inc. Processor and method for altering address translation
JP4635063B2 (ja) * 2008-03-11 2011-02-16 株式会社東芝 キャッシュメモリ制御回路及びプロセッサ
US8667226B2 (en) 2008-03-24 2014-03-04 Freescale Semiconductor, Inc. Selective interconnect transaction control for cache coherency maintenance
CN102662868B (zh) * 2012-05-02 2015-08-19 中国科学院计算技术研究所 用于处理器的动态组相联高速缓存装置及其访问方法
JP6477352B2 (ja) * 2015-08-17 2019-03-06 富士通株式会社 演算処理装置、演算処理装置の制御方法および演算処理装置の制御プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553262B1 (en) 1988-01-21 1999-07-06 Mitsubishi Electric Corp Memory apparatus and method capable of setting attribute of information to be cached
US5091851A (en) 1989-07-19 1992-02-25 Hewlett-Packard Company Fast multiple-word accesses from a multi-way set-associative cache memory
US5509135A (en) 1992-09-25 1996-04-16 Digital Equipment Corporation Multi-index multi-way set-associative cache
US5682515A (en) 1993-01-25 1997-10-28 Benchmarq Microelectronics, Inc. Low power set associative cache memory with status inhibit of cache data output
US5410669A (en) 1993-04-05 1995-04-25 Motorola, Inc. Data processor having a cache memory capable of being used as a linear ram bank
US5870616A (en) 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit

Also Published As

Publication number Publication date
US6185657B1 (en) 2001-02-06
CN1178138C (zh) 2004-12-01
EP0952524A1 (de) 1999-10-27
EP0952524B1 (de) 2006-09-27
KR100620258B1 (ko) 2006-09-07
CN1233020A (zh) 1999-10-27
TW440764B (en) 2001-06-16
KR19990083209A (ko) 1999-11-25
JP2000029789A (ja) 2000-01-28
DE69933328D1 (de) 2006-11-09

Similar Documents

Publication Publication Date Title
DE69933328T2 (de) Mehrweg-Cachespeichervorrichtung und Verfahren
DE68926936T2 (de) Vorrichtung und Technik für Burstprogrammierung
DE102005029852B4 (de) Steueranordnung zum Freigeben einer oder mehrerer virtueller Speicherseiten nach Beendigung eines Programms in einem Multiprozessorcomputersystem
DE102013106154B4 (de) Speichersystem und Ein-Chip-System mit linearer Adress-Remapping-Logik
DE3782335T2 (de) Speichersteuersystem.
DE69024078T2 (de) Mehrprozessoranordnung mit Vervielfältigung von globalen Daten und mit zwei Stufen von Adressübersetzungseinheiten
DE69715203T2 (de) Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
DE69131734T2 (de) Datenprozessor mit verschachteltem DRAM-Speicher
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
EP0013737A1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE102004033445A1 (de) Host-integrierte Schaltungseinheit und Ressourcenzugriffsverfahren
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE2547488A1 (de) Mikroprogrammierte datenverarbeitungsanlage
DE68925336T2 (de) Datenverarbeitungsvorrichtung mit Cache-Speicher
DE3943095A1 (de) Einrichtung und verfahren zum zuordnen verfuegbaren speicherraums zum systemspeicherraum in einem computersystem
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE69029815T2 (de) Zentralisierte referenz- und änderungstabelle für eine virtuelle speicheranordnung
DE69709226T2 (de) Einzelzyklus mehrfachzugreifbarer verschachtelter Cache-Speicher
DE102004050037B4 (de) Speicherbauelement, Speichersystem und Betriebsmodussetzverfahren
DE3338329C2 (de)
DE112004000694T5 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
DE19950255B4 (de) Mikroprozessor
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee