DE60127520T2 - Prozessor mit Befehlscache mit niedrigem Stromverbrauch - Google Patents

Prozessor mit Befehlscache mit niedrigem Stromverbrauch Download PDF

Info

Publication number
DE60127520T2
DE60127520T2 DE60127520T DE60127520T DE60127520T2 DE 60127520 T2 DE60127520 T2 DE 60127520T2 DE 60127520 T DE60127520 T DE 60127520T DE 60127520 T DE60127520 T DE 60127520T DE 60127520 T2 DE60127520 T2 DE 60127520T2
Authority
DE
Germany
Prior art keywords
cache
instruction
cache memory
ram
address
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
DE60127520T
Other languages
English (en)
Other versions
DE60127520D1 (de
Inventor
Yasuhiro Kawasaki-shi Yamazaki
Taizoh Kawasaki-shi Satoh
Hiroyuki Kawasaki-shi Utsumi
Hitoshi Kawasaki-shi Yoda
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE60127520D1 publication Critical patent/DE60127520D1/de
Publication of DE60127520T2 publication Critical patent/DE60127520T2/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/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • 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)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein einen Datenprozessor und betrifft insbesondere einen Datenprozessor, wie etwa einen Mikroprozessor und einen Bildprozessor, die einen Befehls-Cache enthalten.
  • Herkömmlicherweise empfangen verschiedene Prozessoren einen Befehl von einem externen Speicher (RAM) und führen den Befehl durch eine Ausführungseinheit aus.
  • 1 ist ein Blockschaltbild, das diese Art von Mikroprozessoren darstellt. Ein Mikroprozessor 10 hat eine Ausführungseinheit 11. Die Ausführungseinheit 11 führt einen in einem als externer Speicher dienenden externen RAM 12 gespeicherten Befehl aus (Schritt 1) und empfängt einen entsprechenden Befehl (Schritt 2). Dann analysiert die Ausführungseinheit 11 den Befehl und führt diesen aus (Schritt 3). In diesem Fall gibt die Ausführungseinheit 11 die Datenadresse an den externen RAM 12 aus (Schritt 4), um Daten zu lesen und zu schreiben, und liest und schreibt die Daten (Schritt 5). Hier kann in Abhängigkeit von Befehlen auf die Operationen in Schritt 4 und 5 verzichtet werden.
  • Mit der Konfiguration aus 1 ist es erforderlich, jedes Mal dann, wenn ein Befehl ausgeführt wird, auf den externen RAM 12 zu zugreifen, was das Problem verursacht, dass die Ausführung des Befehls Zeit erfordert.
  • Um dieses Problem zu lösen, wurde in der Praxis ein Befehls-Cache 13 in einem Mikroprozessor 10A vorgesehen, wie in 2 gezeigt. Wenn der Befehls-Cache 13 keinen erforderlichen Befehl enthält, wird der Befehl aus dem externen RAM 12 in Übereinstimmung mit der Vorgehensweise von Schritt 1 und 2 ausgelesen und der Ausführungseinheit 11 zugeführt, und der Befehl wird in dem Befehls-Cache 13 gespeichert. Wenn die Ausführungseinheit 11 den gleichen Befehl später benötigt, wird der entsprechende Befehl aus dem Befehls-Cache 13, der die Befehlsadresse empfing, ausgelesen, und der Befehl wird der Ausführungseinheit 11 zugeliefert. Da die Zeit für den Zugriff auf den Befehls-Cache 13 allgemein kürzer ist als die Zeit für den Zugriff auf den externen RAM 12, kann die Zeit bis zum Lesen und Ausführen eines Befehls verkürzt werden.
  • 3 ist ein Blockschaltbild, das die Konfiguration des in 2 gezeigten Befehls-Cache 13 zeigt. Der Befehls-Cache 13 hat ein Befehlsadressregister 14, zwei Etiketten-RAM-Einheiten 15 und 16, zwei Cache-RAM-Einheiten 17 und 18, zwei Komparatoren 19 und 20, eine Hit/Miss-Prüflogikschaltung 21 und einen Selektor 22. Der Etiketten-RAM 15 und der Cache-RAM 17 sind zusammengeschlossen (System #0), und der Etiketten-RAM 16 und der Cache-RAM 18 sind zusammengeschlossen (System #1).
  • Der Befehls-Cache 13 empfängt eine Befehlsadresse von der in 2 gezeigten Ausführungseinheit 11 und gibt durch den Selektor 22 einen entsprechenden Befehl aus. Die Befehlsadresse wird zu dem externen RAM 12 gesendet und ein entsprechender Block wird von dem externen RAM empfangen. Ein Block ist eine Gruppe einer Vielzahl von Befehlen, die durch zusammenhängende Adressen bezeichnet sind.
  • 4 zeigt Befehle, die sequenziell ausgeführt werden. In 4 sind die Befehle mit der Ausnahme des Verzweigungsbefehls (Branch) durch zusammenhängende Befehlsadressen bezeichnet. Die Befehle werden in der durch den Pfeil auf der rechten Seite von 4 angegebenen Reihenfolge ausgeführt. Die vier Befehle, die beispielsweise durch die zusammenhängenden Adressen bezeichnet sind, werden als ein Block betrachtet.
  • Das Befehlsadressregister 14 aus 3 ist in Bereiche eines Blockversatzes, einer Zeilenadresse und einer Etikettenadresse unterteilt. Auf zwei Cache-RAMs 17 und 18 wird durch die Zeilenadresse und die Blockadresse zugegriffen und sie geben einen festgelegten Befehl aus. Die Zeilenadresse wird verwendet, um einen Bereich in den Cache-RAMs 17 und 18 zu begrenzen, in dem Befehle von dem externen RAM 12 zu speichern sind. Beispielsweise wird ein in den Adressen xxxx und yyyy des externen RAM 12 gespeicherter Befehl in zzz in dem Cache-RAM 17 oder 18 gespeichert. Wenn zugelassen wird, dass der Befehl in einem beliebigen Speicherbereich des Cache-RAM 17 oder 18 gespeichert wird, wird der Zugriff auf den Cache-RAM 17 und 18 länger dauern.
  • Hier kann der aus dem externen RAM 12 gelesene Befehl in den beiden Cache-RAMs 17 und 18 gespeichert werden. In diesem Fall sagt man, dass der Assoziationsgrad 2 ist. Die Cache-RAMs 17 und 18 können durch diskrete Speicherchips konfiguriert sein oder durch Aufteilen eines Speicherbereichs eines Speicherchips.
  • Der Blockversatz bezeichnet einen Befehl innerhalb eines Blocks von einer Zeilenadresse. Beispielsweise wird ein "add"-Befehl zu addieren in der ersten Zeile von 4 durch die Zeilenadresse bezeichnet und die Befehle "add", "subcc", "or" und "set" werden durch die Veränderung des Blockversatzes von "00" zu "01", "10" und "11" bezeichnet.
  • Die Etiketten-RAMs 15 und 16 geben eine Etikettenadresse in Übereinstimmung mit der Zeilenadresse aus. Komparatoren 19 und 20 vergleichen die aus den Etiketten-RAMs 15 und 16 jeweils ausgelesenen Etikettenadressen mit den aus dem Befehlsadressregister 14 ausgelesenen Etikettenadressen, um eine Übereinstimmung festzustellen. Wenn ein von der Zeilenadresse bezeichneter Befehl in dem Cache-RAM 17 gespeichert ist, ist das Vergleichsergebnis des Komparators 19 eine Übereinstimmung (Cache-Hit). Wenn im Gegensatz dazu der in der Zeilenadresse bezeichnete Befehl in dem Cache-RAM 18 gespeichert ist, ist das Vergleichsergebnis des Komparators 20 eine Übereinstimmung (Cache-Hit).
  • Die Hit/Miss-Prüflogikschaltung 21 steuert den Selektor 22 gemäß einer Ausgabe der Komparatoren 19 und 20. Wenn der Komparator 19 ein Übereinstimmungssignal ausgibt, wählt der Selektor 22 den Cache-RAM 17, und wenn der Komparator 20 ein Übereinstimmungssignal ausgibt, wählt der Selektor 22 den Cache-RAM 18. Der gewählte Befehl wird der Ausführungseinheit 11 zugeliefert.
  • 5 zeigt den vorstehend beschriebenen Prozess, wobei die aus dem Etiketten-RAM 15 ausgelesene Etikettenadresse und die aus dem Befehlsadressregister 14 ausgelesene Etikettenadresse übereinstimmen. In der Zeichnung bezeichnen dicke Linien den Fluss der Adresse, des Befehls und eines Signals und dergleichen, die bei der Ausleseoperation verwendet werden.
  • 6 zeigt einen Fall, in dem Vergleichsresultate der beiden Komparatoren 19 und 20 negativ waren (Cache-Miss). In der Zeichnung bezeichnen dicke Linien den Fluss der Adresse, des Befehls und des Signals, die bei dem Schreibvorgang verwendet werden. In diesem Fall wird der Befehl aus dem externen RAM 12 ausgelesen und in den Cache-RAM 17 oder den Cache-RAM 18 geschrieben. 6 zeigt ein Beispiel, bei dem der gelesene Befehl in den Cache-RAM 17 geschrieben wird. Ferner wird die Etikettenadresse der Befehlsadresse, die verfehlt wurde, in den Etiketten-RAM 15 geschrieben, der dem Cache-RAM 17 entspricht. Ferner wird der in dem Cache-RAM 17 gespeicherte Befehl gelesen und durch den Selektor 22 der Ausführungseinheit 11 zugeführt.
  • Bei dem vorstehend beschriebenen Befehls-Cache liegt jedoch ein Problem vor.
  • 7 zeigt eine Befehlsauslesesequenz aus dem wie in 3 dargestellt konfigurierten Befehls-Cache 13. Um die Flüsse einer Adresse und dergleichen deutlich zu veranschaulichen, werden einige der den in 3 dargestellten Bau elementen zugewiesenen Bezugszeichen weggelassen. In 7 ist ein Befehl aus 4 Bytes aufgebaut und ein Block ist aus 4 Befehlen aufgebaut (das heißt 1 Block umfasst 16 Bytes).
  • Ferner ist die Anzahl der Zeilen 128. Die Auslesesequenz beginnt mit einem Schritt (a) und endet mit einem Schritt (e). Es sei angenommen, dass eine Befehlsadresse "0x00000000" von der Ausführungseinheit 11 zugeliefert wird und in dem Befehlsadressregister 14 gespeichert wird. In diesem Fall ist die Zeilenadresse "0000000" und der Blockversatz ist "00". In Schritt (a) wird angenommen, dass die Etikettenadresse der Befehlsadresse gleich der aus dem Etiketten-RAM 15 ausgelesenen Etikettenadresse ist. Daher wählt die Hit/Miss-Prüflogikschaltung 21 durch Steuern des Selektors 22 den Cache-RAM 17 aus. Beispielsweise wird der Additionsbefehl "add" aus 4 aus dem Cache-RAM 17 ausgelesen.
  • Anschließend wird die Befehlsadresse "0x00000004" in Schritt (b) in dem Befehlsadressregister 14 gespeichert. In diesem Fall ist der Blockversatz von "00" um eins erhöht und wird auf "01" gesetzt. Da sich die Zeilenadresse nicht verändert, bleibt der Cache-RAM 17 ausgewählt und eine dem Blockversatz "01" entsprechende Adresse wird ausgewählt (Subtraktionsbefehl "subcc" in 4).
  • Ferner wird in Übereinstimmung mit der Befehlsadresse "0x0000008" bzw. "0x0000000c" der Blockversatz auf "10" und "11" gesetzt, und ein "Oder"-Befehl "OR" und Setz-Befehl "SET" werden jeweils aus dem Cache-RAM 17 ausgelesen (Schritte (c) und (d)). Die Zeilenadresse verändert sich jedoch in der Zwischenzeit nicht.
  • Wenn sich anschließend in Schritt (e) die Befehlsadresse auf "0x00000010" ändert, wird die Zeilenadresse um eins erhöht und wird "0000001". In Schritt (e) wird angenommen, dass die Etikettenadresse der Befehlsadresse gleich der aus dem Etiketten-RAM 16 ausgelesenen Etikettenadresse ist. Da her wählt die Hit/Miss-Prüflogikschaltung 21 durch Steuern des Selektors 22 den Cache-RAM 18 aus.
  • Im Verlauf der Schritte von (a) bis (e), die durch die die kontinuierlichen Befehle angebende Adresse festgelegt sind, führte der Cache-RAM 18 eine Ausleseoperation durch, obgleich er nicht ausgewählt war. Wo ein oder mehrere Cache-RAMs mit einem Kreis mit dicken Linien in der Zeichnung markiert sind, zeigt dies an, dass der Cache-RAM in einem freigegebenen Zustand ist (auch als aktiver Zustand bezeichnet). Das Problem ist daher, dass nutzlos Leistung verbraucht wird.
  • Die US 6,138,208 zeigt ein Verfahren auf, das gleichzeitigen oder überlappten Zugriff auf mehrere Cache-Level bietet, um den Latenz-Mehraufwand für einen Cache-Miss eines höheren Levels zu reduzieren. Eine Anforderung eines Wertes (Daten oder Befehl) wird von dem Prozessor abgegeben und wird zu dem niedrigeren Level des Cache weitergeleitet, bevor bestimmt wird, ob ein Cache-Miss des Wertes in einem höheren Level des Cache aufgetreten ist.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Datenprozessor geschaffen, enthaltend einen Befehls-Cache, der in eine Vielzahl von Cache-Speichereinheiten unterteilt ist, dadurch gekennzeichnet, dass der Datenprozessor dafür ausgelegt ist, nur eine Cache-Speichereinheit freizugeben, die die angeforderten Befehle speichert, während andere Cache-Speichereinheiten gesperrt sind, wodurch der Leistungsverbrauch des Befehls-Cache reduziert wird.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein System geschaffen, enthaltend: einen Prozessor; und einen mit dem Prozessor verbundenen externen Speicher, der einen Befehls-Cache enthält, welcher Befehls-Cache in eine Vielzahl von Cache-Speichereinheiten unterteilt ist, dadurch gekennzeichnet, dass der Prozessor dafür ausgelegt ist, nur eine Cache-Speichereinheit freizugeben, die die angeforderten Befehle speichert, während andere Cache-Speichereinheiten gesperrt sind.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Verfahren zum Steuern eines Befehls-Cache geschaffen, der in eine Vielzahl von Cache-Speichereinheiten unterteilt ist, dadurch gekennzeichnet, dass eine Cache-Speichereinheit, die die angeforderten Befehle speichert, freigegeben wird, während andere Cache-Speichereinheiten gesperrt sind.
  • Bevorzugte Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden Beschreibung dargelegt und werden zum Teil aus der Beschreibung und den beiliegenden Zeichnungen deutlich, oder können durch die praktische Umsetzung der Erfindung gemäß der in der Beschreibung dargelegten Lehre erkannt werden. Gegenstände sowie weitere Merkmale und Vorteile der vorliegenden Erfindung werden durch eine Vorrichtung verwirklicht und erzielt, die in der Beschreibung in dergestalt umfassenden, deutlichen, präzisen und exakten Begriffen besonders hervorgehoben ist, dass der Durchschnittsfachmann in der Lage ist, die Erfindung praktisch umzusetzen.
  • Der Prozessor gemäß vorliegender Erfindung kann mit niedrigem Leistungsverbrauch arbeiten und löst damit das Problem der vorstehend beschriebenen herkömmlichen Technik und vermeidet einen nutzlosen Leistungsverbrauch.
  • In dem erfindungsgemäßen Prozessor wird nur ein Cache-Speicher freigegeben, der angeforderte Befehle speichert, während andere Cache-Speichereinheiten gesperrt sind (dies wird auch als in einem inaktiven Zustand befindlich bezeichnet). Da ein Cache-Speicher, der die angeforderten Befehle nicht speichert, gesperrt ist, wird keine Leistung ver braucht. Das heißt, dass nur der Cache-Speicher, der die angeforderten Befehle speichert, Leistung verbraucht. Daher wird nutzloser Leistungsverbrauch durch andere Speichereinheiten vermieden und der Befehls-Cache mit niedrigem Leistungsverbrauch kann verwirklicht werden.
  • 1 zeigt eine Konfiguration eines herkömmlichen Mikroprozessors.
  • 2 zeigt eine weitere Konfiguration des herkömmlichen Mikroprozessors.
  • 3 ist ein Blockschaltbild, das eine Konfiguration eines in 2 gezeigten Befehls-Cache 13 zeigt.
  • 4 zeigt ein Beispiel von sequenziell ausgeführten Befehlen.
  • 5 zeigt die Operation des in 3 gezeigten Befehls-Cache.
  • 6 zeigt eine weitere Operation des in 3 gezeigten Befehls-Cache.
  • 7 zeigt eine detaillierte Ausleseoperation des in 3 gezeigten Befehls-Cache für jeden Schritt.
  • 8 zeigt das Prinzip dieser Erfindung in Bezug auf die Ausleseoperation aus 7.
  • 9 zeigt eine Konfiguration des Befehls-Cache gemäß der ersten Ausführungsform dieser Erfindung.
  • 10 ist ein Schaltbild, das ein Beispiel einer in 9 gezeigten Hit/Miss-Prüflogikschaltung zeigt.
  • 11 zeigt die Operation des in 8 gezeigten Befehls-Cache.
  • 12 zeigt eine weitere Operation des in 8 gezeigten Befehls-Cache.
  • Nachfolgend werden Ausführungsformen der vorliegenden Erfindung unter Bezug auf die beiliegenden Zeichnungen beschrieben.
  • 8 ist eine Zeichnung, die das Prinzip dieser Erfindung beschreibt. Um die Unterschiede gegenüber der in 7 gezeigten Auslesesequenz zu verdeutlichen, ist die Auslesesequenz gemäß dieser Erfindung, auf die Konfiguration von 7 angewandt, in 8 dargestellt. Daher ist der Einfachheit halber die Konfiguration des in 8 gezeigten Befehls-Cache gleich der Konfiguration des in 3 oder 7 gezeigten herkömmlichen Befehls-Cache.
  • Gemäß dieser Erfindung ist der Cache-RAM 18, der keine von den Schritten (b), (c) und (d) angeforderten Befehle speichert, gesperrt (der Cache-RAM 18 im gesperrten Zustand ist nicht durch den Kreis mit dicker Linie markiert). Mit anderen Worten ist nur der Cache-RAM 17 freigegeben, der die von den Schritten (b), (c) und (d) angeforderten Befehle speichert (der Cache-RAM 17 im freigegebenen Zustand ist durch den Kreis mit dicker Linie markiert). Dadurch kann der Leistungsverbrauch durch die Befehls-Cache-Speichereinheiten reduziert werden.
  • Was erforderlich ist, ist nur, das Zuliefern der Adresse zu Speichereinheiten zu stoppen, die den von den Schritten angeforderten Befehl nicht speichern, um Cache-RAM(s) zu sperren.
  • Wie beschrieben basiert der Mechanismus zum Sperren der Speichereinheiten, die nicht die von den Schritten angeforderten Befehle speichern, auf der Tatsache, dass die Befehle in demselben Block dieselbe Zeilenadresse haben und dass die Befehle in demselben Block in demselben Cache-RAM gespeichert sind. In Schritt (a) wird der erste Befehl des Blocks gelesen. In diesem Fall werden beide Cache-Speichereinheiten aktiviert, und der Cache-RAM 17 weist einen Hit auf. Während es theoretisch möglich ist, den Cache-RAM 18 zu sperren, ist erhebliche Zeit erforderlich, was die Zugriffszeit verlän gert. Daher werden in Schritt (a) zur Verkürzung der Zugriffszeit beide Cache-RAMs freigegeben.
  • In Schritt (b) bleibt die Zeilenadresse gleich. Das heißt, dass in Schritt (b) derselbe Cache-RAM 17 wie in Schritt (a) sicher einen Hit aufweist. Daher wird der Cache-RAM 18, der nicht die in Schritt (a) angeforderten Befehle speichert, gesperrt. Da die Zeilenadresse auch in Schritt (c) wiederum gleich bleibt, bleibt der Cache-RAM 18 gesperrt. Da die Zeilenadresse auch in Schritt (d) gleich bleibt, bleibt der Cache-RAM 18 gesperrt.
  • In Schritt (e), wenn sich die Zeilenadresse ändert, werden beide Cache-RAMs 17 und 18 wie in Schritt (a) freigegeben.
  • Somit wird es möglich, den Leistungsverbrauch zu reduzieren, indem die Cache-RAMs gesperrt werden, die die Befehle nicht speichern, wenn die verbleibenden Befehle in demselben Block gelesen werden, obgleich alle Cache-RAMs freigegeben sind, wenn der erste Befehl in dem Block gelesen wird.
  • 9 ist ein Blockschaltbild, das die Konfiguration des Befehls-Cache der Ausführungsform dieser Erfindung zeigt. In der Zeichnung haben die gleichen Bauelemente, die in 3 gezeigt sind, die gleichen Bezugszeichen. Die Konfiguration aus 9 ist in dem in 2 gezeigten Befehls-Cache 13 enthalten und ein System wird durch einen Datenprozessor aufgebaut, wie zum Beispiel einen Mikroprozessor und dergleichen, der diesen Befehls-Cache und den externen RAM 12 enthält.
  • Der in 9 gezeigte Befehls-Cache enthält eine Hit/Miss-Prüflogikschaltung 21A an Stelle der in 3 gezeigten Hit/Miss-Prüflogikschaltung 21. Die Hit/Miss-Prüflogikschaltung 21A steuert zusätzlich zu der Steuerung des Selektors 22 den gesperrten Zustand des Cache-RAM, der nicht die angeforderten Befehle speichert, indem geprüft wird, ob sich die Zeilenadresse geändert hat, und behält den gesperrten Zustand bei, wenn sich die Zeilenadresse nicht geändert hat, wie unter Bezug auf 8 beschrieben wurde. Ferner werden gemäß diesem Prüfergebnis Cache-RAM-Auslese-Bewirkungssignale 23 und 24 an die Cache-RAMs 17 beziehungsweise 18 ausgegeben, um die Cache-RAMs entsprechend in einen freigegebenen Zustand und einen gesperrten Zustand zu versetzen.
  • Die Cache-RAM-Auslese-Bewirkungssignale 23 und 24 werden Logik-Gates 17a und 18a zugeliefert. Wenn die Cache-RAM-Auslese-Bewirkungssignale 23 und 24 FREIGEBEN (EIN) sind, wird die Adresse an die Cache-RAMs 17 und 18 gegeben, und die Adresse wird den Cache-RAMs 17 und 18 nicht zugeliefert, wenn die Signale SPERREN (AUS) sind. Wenn hier die Cache-RAMs 17 und 18 durch einzelne Chips aufgebaut sind, werden die Cache-RAM-Auslese-Bewirkungssignale 23 und 24 an den Chip-Auswahlanschluss oder dergleichen jedes Chips angelegt.
  • 10 ist ein Schaltbild, das ein Beispiel einer Konfiguration der Hit/Miss-Prüflogikschaltung 21A zeigt. Die Hit/Miss-Prüflogikschaltung 21A hat AND-Gates 25 und 26, einen Flipflop 27 und OR-Gates 28, 30 und 31 und ein NOR-Gate 29. In die Hit/Miss-Prüflogikschaltung 21A eingehende Signale sind Vergleichsresultate von Komparatoren 19 und 20, Eingabebewirkungssignale 32 und 33, die angeben, ob wirksame Befehle in der aus den Etiketten-RAMs 15 und 16 ausgelesenen Adresse gespeichert sind, ein Signal 34, das den ersten Befehl in dem Block in derselben Zeilenadresse angibt, und ein Verzweigungserfassungssignal 35, das eine neue Adresse durch einen Verzweigungsbefehl angibt. Ferner sind die Ausgänge der Hit/Miss-Prüflogikschaltung 21A ein Cache-Miss-Signal 36, Cache-RAM-Auslese-Bewirkungssignale 23 und 24 und ein Selektor-Steuersignal 37.
  • Die Prüflogik in 10 wird unter Bezug auf 8 und 9 erläutert.
  • Wenn eine Befehlsadresse den Kopf eines Blocks bezeichnet oder wenn sie durch einen Verzweigungsbefehl eine neue Adresse wird, werden zunächst das Signal 34 oder das Signal 35 auf EIN (HOCH) gesetzt und durch das OR-Gate 28 an die OR-Gates 30 und 31 angelegt. Anschließend setzen die OR-Gates 30 und 31 die Cache-RAM-Auslese-Bewirkungssignale 23 und 24 auf EIN (HOCH). Dadurch werden die Cache-RAMs 17 und 18 freigegeben. Wenn die Eingabebewirkungssignale 32 und 33 zu diesem Zeitpunkt AUS (NIEDRIG) sind, sind die Ausgänge der AND-Gates 25 und 26 NIEDRIG und das Cache-Miss-Signal 36 wird mit NIEDRIG durch das OR-Gate ausgegeben. Wenn dies ausgegeben wird, wird auf den in 2 gezeigten externen RAM 12 zugegriffen und eine Schreiboperation eines Befehls wird ausgeführt (die Operation aus 12 wird weiter unten beschrieben).
  • Wenn im Gegensatz dazu der Ausgang des Komparators 19 oder 20 eine Übereinstimmung der Etikettenadresse angibt und das entsprechende Eingabebewirkungssignal 32 oder 33 HOCH (EIN) ist, was eine Effektivität anzeigt, wird ein Cache-Miss-Signal auf HOCH gesetzt, was einen Cache-Hit anzeigt. Wenn beispielsweise der Ausgang des Komparators 19 eine Übereinstimmung der Etikettenadresse zeigt, während der Ausgang des AND-Gates 25 HOCH wird und das Steuersignal 37 an den Selektor 22 angelegt wird und der Cache-RAM 17 ausgewählt wird, wird der Flipflop 27 auf 1 gesetzt. Dadurch wird durch den Flipflop 27 gespeichert, dass der Cache-Hit durch das System #0 (Cache-RAM 17) erfasst wurde. Wenn im Gegensatz dazu der Ausgang des Komparators 20 die Übereinstimmung der Etikettenadresse zeigt, wird der Ausgang des AND-Gates 26 HOCH. Dabei ist das Steuersignal 37 noch NIEDRIG und der Selektor 22 wählt den Cache-RAM 18 aus. Zusätzlich wird der Flipflop 27 auf 0 zurückgesetzt. Das heißt, dass der Flipflop 27 als eine Speichereinrichtung zum Speichern der Daten wirkt, die angeben, welcher Cache-Speicher einen Hit aufwies. Die vorstehend beschriebene Operation wird in dem Schritt (a) aus 8 ausgeführt.
  • Wenn ferner die Befehlsadresse nicht der Kopf eines Blocks ist oder wenn kein Verzweigungsbefehl vorliegt, ist der Ausgang des OR-Gates NIEDRIG. Dann wird einer der Cache-RAMs unter Verwendung des in dem Flipflop 27 gespeicherten Wertes freigegeben. Wenn 1 in dem Flipflop 27 gesetzt ist, ist der Ausgang des OR-Gates 30 HOCH, der Ausgang des OR-Gates 31 ist NIEDRIG, das Cache-RAM-Auslese-Bewirkungssignal 23 ist AUS und das Cache-RAM-Auslese-Bewirkungssignal 24 ist EIN. Wenn andererseits 0 in dem Flipflop 27 gesetzt ist, ist der Ausgang des OR-Gates 30 NIEDRIG, der Ausgang des OR-Gates 31 ist HOCH, das Cache-RAM-Auslese-Bewirkungssignal 23 ist AUS und das Cache-RAM-Auslese-Bewirkungssignal 24 ist EIN. Der Selektor 22 wählt gemäß dem Steuersignal 37 einen der Cache-RAMs aus. In den Schritten (b) bis (d) in 8 ist der Ausgang des AND-Gates 25, das heißt das Steuersignal 37 HOCH, da die Operation für dieselbe Zeilenadresse ist. Daher wählt der Selektor 22 den Cache-RAM 17 aus. Da darüberhinaus in den Schritten (b) bis (d) 1 in dem Flipflop 27 gesetzt ist, bleibt das Cache-RAM-Auslesesignal 23 eingeschaltet.
  • Auf diese Weise bietet die Hit/Miss-Prüflogikschaltung 21A ein Steuerverfahren eines Befehls-Cache, der eine Vielzahl von Cache-Speichereinheiten hat, und verwirklicht das Steuerverfahren, das einen Cache-Speicher freigibt, der angeforderte Befehle speichert, und andere Cache-Speichereinheiten sperrt.
  • 11 ist eine Zeichnung, die zeigt, wie ein Befehl gemäß der vorstehend beschriebenen Prüflogik aus einem Be fehls-Cache ausgelesen wird, und entspricht der vorstehend beschriebenen 5. Ferner zeigt 12 die Operation gemäß der vorstehend beschriebenen Prüflogik, wenn ein Cache-Miss-Signal 36 eingeschaltet ist, und entspricht der vorstehend beschriebenen 6. Ein Befehl wird aus dem in 2 gezeigten externen RAM 12 ausgelesen und in einen der Cache-RAMs (in dem Beispiel aus 12 den Cache-RAM 17) wie bei der unter Bezug auf 6 beschriebenen Operation geschrieben.
  • Vorstehend wurde die Ausführungsform dieser Erfindung beschrieben. Diese Erfindung ist nicht auf die vorstehend beschriebenen Ausführungsformen beschränkt. Beispielsweise kann die Anzahl der Cache-RAMs drei oder mehr sein. Mit anderen Worten kann der Assoziationsgrad drei oder mehr sein.
  • Da ein Cache-Speicher, der keine von einer Ausführungseinheit eines Prozessors angeforderten Befehle speichert, gemäß dieser Erfindung wie vorstehend erläutert gesperrt wird, kann der nutzlose Leistungsverbrauch vermieden werden und ein Datenprozessor mit einem Befehls-Cache mit einer niedrigen Betriebsleistung kann angeboten werden.
  • Ferner ist die vorliegende Erfindung nicht auf diese Ausführungsformen beschränkt, sondern es sind verschiedene Variationen und Modifikationen möglich, ohne den Schutzumfang der vorliegenden Erfindung zu verlassen.

Claims (6)

  1. Datenprozessor, enthaltend einen Befehls-Cache, der in eine Vielzahl von Cache-Speichereinheiten (17, 18) unterteilt ist, dadurch gekennzeichnet, dass der Datenprozessor dafür ausgelegt ist, nur eine Cache-Speichereinheit (17) freizugeben, die die angeforderten Befehle speichert, während andere Cache-Speichereinheiten (18) gesperrt sind, wodurch der Leistungsverbrauch des Befehls-Cache reduziert wird.
  2. Datenprozessor nach Anspruch 1, ferner enthaltend: eine Prüfschaltung (21A), die die Freigabe und das Sperren der Cache-Speichereinheiten in der Weise steuert, dass alle Einheiten freigegeben werden, wenn Befehle ausgelesen werden, die an einer ersten Stelle eines Blocks kontinuierlicher Befehle angeordnet sind, und nur die Cache-Speichereinheit, die den ersten Befehl speichert, freigegeben wird, während andere Cache-Speichereinheiten gesperrt sind, während nachfolgende Befehle in dem Block ausgelesen werden.
  3. Datenprozessor nach Anspruch 2, bei welchem die Prüfschaltung (21A) die Freigabe und das Sperren der Vielzahl von Cache-Speichereinheiten unter Bezugnahme auf eine Blockadresse steuert, die einen Block identifiziert.
  4. Datenprozessor nach Anspruch 2, bei welchem die Prüfschaltung (21A) eine Speichereinrichtung enthält, um die Daten zu speichern, die angeben, welche Cache-Speichereinheit Übereinstimmung zeigt, und die Freigabe und das Sperren der Vielzahl von Cache-Speichereinheiten unter Verwendung der Daten in der Speichereinrichtung steuert.
  5. System, enthaltend: einen Prozessor; und einen mit dem Prozessor verbundenen externen Speicher, der einen Befehls-Cache enthält, welcher Befehls-Cache in eine Vielzahl von Cache-Speichereinheiten unterteilt ist, dadurch gekennzeichnet, dass der Prozessor dafür ausgelegt ist, nur eine Cache-Speichereinheit freizugeben, die die angeforderten Befehle speichert, während andere Cache-Speichereinheiten gesperrt sind, wodurch der Leistungsverbrauch des Befehls-Cache reduziert wird.
  6. Verfahren zum Steuern eines Befehls-Cache, der in eine Vielzahl von Cache-Speichereinheiten unterteilt ist, dadurch gekennzeichnet, dass eine Cache-Speichereinheit, die die angeforderten Befehle speichert, freigegeben wird, während andere Cache-Speichereinheiten gesperrt sind, wodurch der Leistungsverbrauch des Befehls-Cache reduziert wird.
DE60127520T 2000-12-22 2001-12-21 Prozessor mit Befehlscache mit niedrigem Stromverbrauch Expired - Fee Related DE60127520T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000391369A JP2002196981A (ja) 2000-12-22 2000-12-22 データ処理装置
JP2000391369 2000-12-22

Publications (2)

Publication Number Publication Date
DE60127520D1 DE60127520D1 (de) 2007-05-10
DE60127520T2 true DE60127520T2 (de) 2007-09-06

Family

ID=18857521

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60127520T Expired - Fee Related DE60127520T2 (de) 2000-12-22 2001-12-21 Prozessor mit Befehlscache mit niedrigem Stromverbrauch

Country Status (7)

Country Link
US (1) US6760810B2 (de)
EP (1) EP1217502B1 (de)
JP (1) JP2002196981A (de)
KR (1) KR100758185B1 (de)
CN (1) CN1155893C (de)
DE (1) DE60127520T2 (de)
TW (1) TW581966B (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2004171177A (ja) * 2002-11-19 2004-06-17 Renesas Technology Corp キャッシュシステムおよびキャッシュメモリ制御装置
US7263621B2 (en) * 2004-11-15 2007-08-28 Via Technologies, Inc. System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback
TW200821831A (en) * 2005-12-21 2008-05-16 Nxp Bv Schedule based cache/memory power minimization technique
JP4980751B2 (ja) 2007-03-02 2012-07-18 富士通セミコンダクター株式会社 データ処理装置、およびメモリのリードアクティブ制御方法。
JP4354001B1 (ja) 2008-07-03 2009-10-28 Necエレクトロニクス株式会社 メモリ制御回路および集積回路
US8200999B2 (en) 2008-08-11 2012-06-12 International Business Machines Corporation Selective power reduction of memory hardware
JP5793061B2 (ja) * 2011-11-02 2015-10-14 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
US8503264B1 (en) 2011-11-18 2013-08-06 Xilinx, Inc. Reducing power consumption in a segmented memory
US9396117B2 (en) * 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US8743653B1 (en) 2012-06-20 2014-06-03 Xilinx, Inc. Reducing dynamic power consumption of a memory circuit
CN104050092B (zh) 2013-03-15 2018-05-01 上海芯豪微电子有限公司 一种数据缓存系统及方法
WO2018100331A1 (en) * 2016-11-29 2018-06-07 Arm Limited Storage circuitry responsive to a tag-matching command
CN113138657A (zh) * 2020-01-17 2021-07-20 炬芯科技股份有限公司 一种降低cache访问功耗的方法和电路

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154261A (ja) * 1987-12-11 1989-06-16 Toshiba Corp 情報処理装置
JPH0786847B2 (ja) * 1988-08-09 1995-09-20 松下電器産業株式会社 キャッシュメモリ
JPH04328656A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5913223A (en) * 1993-01-25 1999-06-15 Sheppard; Douglas Parks Low power set associative cache memory
JP3589485B2 (ja) 1994-06-07 2004-11-17 株式会社ルネサステクノロジ セットアソシアティブ方式のメモリ装置およびプロセッサ
JPH08263370A (ja) * 1995-03-27 1996-10-11 Toshiba Microelectron Corp キャッシュメモリシステム
US5724611A (en) * 1996-04-25 1998-03-03 Vlsi Technology, Inc. Automatic cache controller system and method therefor
US5911153A (en) * 1996-10-03 1999-06-08 International Business Machines Corporation Memory design which facilitates incremental fetch and store requests off applied base address requests
US5983310A (en) * 1997-02-13 1999-11-09 Novell, Inc. Pin management of accelerator for interpretive environments
US5974505A (en) * 1997-09-02 1999-10-26 International Business Machines Corporation Method and system for reducing power consumption of a non-blocking cache within a data processing system
JPH11184752A (ja) 1997-12-19 1999-07-09 Hitachi Ltd データ処理装置及びデータ処理システム
US6138208A (en) * 1998-04-13 2000-10-24 International Business Machines Corporation Multiple level cache memory with overlapped L1 and L2 memory access
JP3439350B2 (ja) * 1998-10-02 2003-08-25 Necエレクトロニクス株式会社 キャッシュ・メモリ制御方法及びキャッシュ・メモリ制御装置
US6449694B1 (en) * 1999-07-27 2002-09-10 Intel Corporation Low power cache operation through the use of partial tag comparison
US6356990B1 (en) * 2000-02-02 2002-03-12 International Business Machines Corporation Set-associative cache memory having a built-in set prediction array
US6549986B1 (en) * 2000-06-20 2003-04-15 Conexant Systems, Inc. Low power instruction cache
US6535959B1 (en) * 2000-09-05 2003-03-18 Conexant Systems, Inc. Circuit and method for reducing power consumption in an instruction cache

Also Published As

Publication number Publication date
EP1217502B1 (de) 2007-03-28
CN1367428A (zh) 2002-09-04
JP2002196981A (ja) 2002-07-12
CN1155893C (zh) 2004-06-30
KR100758185B1 (ko) 2007-09-13
US6760810B2 (en) 2004-07-06
US20020080662A1 (en) 2002-06-27
KR20020051874A (ko) 2002-06-29
TW581966B (en) 2004-04-01
DE60127520D1 (de) 2007-05-10
EP1217502A1 (de) 2002-06-26

Similar Documents

Publication Publication Date Title
DE60127520T2 (de) Prozessor mit Befehlscache mit niedrigem Stromverbrauch
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2523372C3 (de) Eingabe-/Ausgabe-Anschlußsteuereinrichtung
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE60129373T2 (de) Hochleistung-DMAsteuerung
DE4237417C2 (de) Datenverarbeitungssystem
DE69432245T2 (de) Mikrorechner mit Speicherleseschutz
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE2717702A1 (de) Speicher-zugriffs-steuersystem
DE2533403A1 (de) Datenverarbeitungssystem
DE2928488A1 (de) Speicher-subsystem
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
DE2547488A1 (de) Mikroprogrammierte datenverarbeitungsanlage
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
EP1230590B1 (de) Prozessorsystem
DE19713133C2 (de) Integrierte Schaltungseinrichtung
DE112004000694T5 (de) Ein Verfahren und eine Vorrichtung zur Verbesserung der Multi-CPU-Systemleistung für Speicherzugriffe
EP1079307B1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem
DE2064383B2 (de) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
DE4406094C2 (de) Vorrichtung zum Betrieb einer Steuerungsanwendung
DE2906685C2 (de)
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE4114053A1 (de) Computersystem mit cachespeicher
DE102007055138B4 (de) System zum Zugreifen auf einen Einzelport-Mehrwege-Cache

Legal Events

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