DE112005002672B4 - Dynamische Neukonfiguration eines Cache-Speichers - Google Patents

Dynamische Neukonfiguration eines Cache-Speichers Download PDF

Info

Publication number
DE112005002672B4
DE112005002672B4 DE112005002672T DE112005002672T DE112005002672B4 DE 112005002672 B4 DE112005002672 B4 DE 112005002672B4 DE 112005002672 T DE112005002672 T DE 112005002672T DE 112005002672 T DE112005002672 T DE 112005002672T DE 112005002672 B4 DE112005002672 B4 DE 112005002672B4
Authority
DE
Germany
Prior art keywords
cache
utilization
cache memory
memory
predetermined
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.)
Active
Application number
DE112005002672T
Other languages
English (en)
Other versions
DE112005002672T5 (de
Inventor
Michael L. Santa Clara Golden
Richard E. San Jose Klass
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.)
MediaTek 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 DE112005002672T5 publication Critical patent/DE112005002672T5/de
Application granted granted Critical
Publication of DE112005002672B4 publication Critical patent/DE112005002672B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/271Non-uniform cache access [NUCA] architecture
    • 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

Abstract

Verfahren zum dynamischen Konfigurieren eines Cache-Speichers in einem Verarbeitungsknoten (12, 22) mit mehreren Prozessorkernen (15A, 15B), wobei jeder Prozessorkern einen Cache-Speicher enthält, und wobei das Verfahren umfasst:
unabhängiges Überwachen einer entsprechenden aktuellen Auslastung jedes der Cache-Speicher;
Bestimmen, ob die entsprechende aktuelle Auslastung unterhalb eines vorbestimmten Auslastungswerts liegt; und
in Reaktion darauf, dass bestimmt wird, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt, selektives Deaktivieren eines oder mehrerer Bereiche des entsprechenden Cache-Speichers;
Bestimmen, ob die entsprechende aktuelle Auslastung oberhalb eines vorbestimmten Auslastungswerts liegt; und
in Reaktion darauf, dass bestimmt wird, dass die aktuelle Auslastung über dem vorbestimmten Auslastungswert liegt, Erlauben eines gemeinsamen Zugriffs auf einen oder mehrere Bereiche des entsprechenden Cache-Speichers eines anderen der Prozessorkerne (15A, 15B), die in Reaktion darauf, dass für diesen Cache-Speicher des anderen der Prozessorkerne (15A, 15B) bestimmt wird, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt, deaktiviert worden...

Description

  • Diese Erfindung betrifft die Neukonfiguration bzw. Rekonfiguration eines Cache-Speichers eines Verarbeitungsknotens mit mehreren Prozessorkernen.
  • Moderne Mikroprozessoren enthalten typischerweise einen Chip-internen Cache-Speicher bzw. einen schnellen Zwischenspeicher. In vielen Fällen enthalten Mikroprozessoren eine Chip-interne hierarchische Cache-Struktur, die eine Ebene Eins (L1), eine Ebene Zwei (L2) und in manchen Fällen eine Ebene Drei (L3) aus entsprechenden Zwischenspeichern bzw. Cache-Speichern aufweist. In typischen Cache-Hierarchien kann ein kleiner schneller L1-Cache-Speicher eingesetzt sein, der verwendet werden kann, um die am häufigsten verwendeten Cache-Zeilen zu speichern. Der L2-Speicher kann ein größerer und möglicherweise langsamerer Cache-Speicher sein, um Cache-Zeilen zu speichern, auf die zugegriffen wird, aber die nicht in den L1-Speicher passen. Der L3-Cache-Speicher kann verwendet werden, um Cache-Zeilen zu speichern, auf die zugegriffen wird, die aber nicht in den L2-Cache-Speicher passen. Mit einer Cache-Hierarchie, wie sie zuvor beschrieben ist, kann das Leistungsverhalten des Prozessors verbessert werden, indem die mit dem Speicherzugriff durch den Prozessor kernverknüpften Wartezeiten reduziert werden.
  • Jedoch kann in gewissen Fällen eine derartige Verbesserung des Leistungsverhaltens mit gewissen Einbußen einhergehen. Es ist gut bekannt, dass moderne Mikroprozessoren eine höhere Leistung benötigen und damit ein hohes thermisches Budget aufweisen. Cache-Speicher können aufgrund der statischen Leckströme Leistung verbrauchen, selbst wenn sie nicht verwendet werden. Je größer somit der Cache-Speicher ist, desto mehr Leistung wird verbraucht.
  • In dem Bestreben, die Effizienz eines Prozessors zu verbessern, wird zunehmend die Technik der Chip-Multiprozessoren (CMP) bedeutsam, die zudem wachsende Popularität gewinnen. Ein CMP besitzt zwei oder mehrere Prozessorkerne, die in dem gleichen integrierten Schaltungs-(IC)Bauelement eingerichtet sind. Die wachsende Popularität kann zumindest teilweise in der Tatsache begründet liegen, dass ein CMP eine effizientere Ausnutzung der Millionen an Transistoren ermöglicht, die in einer integrierten Schaltung enthalten sind, im Vergleich zu beispielsweise einem einzelnen Prozessor mit komplexerer Technik. Zum Beispiel kann durch das Aufteilen der Prozessaufgaben zwischen Prozessorkernen ein CMP einige Aufgaben mit geringerer Frequenz ausführen, als dies für gewisse Prozessoren mit Einzelkernen erforderlich ist. Geringere Frequenzen führen in einigen Fällen zu Einsparungen in der Leistung und zu einer Verringerung des thermischen Budgets.
  • Die US 5 761 715 A offenbart eine Informationsverarbeitungseinrichtung mit einem Cache-Speicher, in der eine Cache-Fehlerrate gemessen und ausgewertet wird, um den Energieverbrauch der Einrichtung zu steuern.
  • Die GB 2 388 217 A offenbart einen dynamisch anpassbaren Cache-Energieverbrauch eines unterteilten Cache-Speichersystems durch Steuerung der Spannungsversorgung gemäß der erforderlichen Zugriffszeit.
  • Die US 2003/0135768 A1 lehrt ein Verfahren zur Energieeinsparung beim Betrieb eines Mehrprozessorsystems auf der Grundlage von Cache-Niveau-Kombinationen.
  • CMP-Bauelemente, die mehrere Prozessorkerne enthalten, weisen jedem dieser Kerne zugeordnete Schaltungen auf. Beispielsweise kann ein CMP einen L1- und einen L2-Cache-Speicher für jeden Prozessorkern enthalten. Somit ist aus den zuvor beschriebenen Gründen im Vergleich zu Mikroprozessoren mit einem einzelnen Kern die Leistungsaufnahme und das thermische Budget eines CMP hoch.
  • Es besteht daher die Aufgabe, die Leistungsaufnahme eines Verarbeitungsknotens mit mehreren Prozessorkernen zu reduzieren ohne die Leistungsfähigkeit bzw. das Leistungsverhalten Prozessors zu verringern.
  • Zur Lösung dieser Aufgabe wird ein Verfahren zum dynamischen Konfigurieren eines Cache-Speichers in einem Verarbeitungsknoten mit mehreren Prozessorkernen, wobei jeder Prozessorkern einen Cache-Speicher enthält, bereitgestellt, wobei das Verfahren umfasst:
    unabhängiges Überwachen einer entsprechenden aktuellen Auslastung jedes der Cache-Speicher;
    Bestimmen, ob die entsprechende aktuelle Auslastung unterhalb eines vorbestimmten Auslastungswerts liegt; und
    in Reaktion darauf, dass bestimmt wird, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt, selektives Deaktivieren eines oder mehrerer Bereiche des entsprechenden Cache-Speichers;
    Bestimmen, ob die entsprechende aktuelle Auslastung oberhalb eines vorbestimmten Auslastungswerts liegt; und
    in Reaktion darauf, dass bestimmt wird, dass die aktuelle Auslastung über dem vorbestimmten Auslastungswert liegt, Erlauben eines gemeinsamen Zugriffs auf einen oder mehrere Bereiche des entsprechenden Cache-Speichers eines anderen der Prozessorkerne, die in Reaktion darauf, dass für diesen Cache-Speicher des anderen der Prozessorkerne bestimmt wird, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt, deaktiviert worden sind.
  • 1 ist eine Blockansicht einer Ausführungsform eines Computersystems mit einem Verarbeitungsknoten mit mehren Kernen und einem konfigurierbaren Cache-Speicher.
  • 2 ist eine Blockansicht einer weiteren Ausführungsform eines Computersystems mit einem Verarbeitungsknoten mit mehreren Kernen und einem konfigurierbaren Cache-Speicher.
  • 3 ist ein Flussdiagramm, das die Funktionsweise einer Ausführungsform eines Verarbeitungsknotens beschreibt.
  • 1 zeigt eine Blockansicht einer Ausführungsform eines Computersystems 10. In der dargestellten Ausführungsform umfasst das Computersystem 10 einen Verarbeitungsknoten 12, der mit einem Speicher 14 und mit Peripheriegeräten 13A13B verbunden ist. Der Knoten 12 umfasst Prozessorkerne 15A-15B, die mit einer Knotensteuerung 20 verbunden sind, die ferner mit einer Speichersteuerung 22 und mehreren HyperTransportTM(HT)-Schnittstellenschaltungen 24A24C verbunden ist. Die Prozessorkerne 15A15B sind ferner mit einem gemeinsamen Cache-Speicher bzw. schnellem Zwischenspeicher 60 der Ebene Drei (L3) verbunden, der mit einer L3-Cache-Überwachungseinheit 85 und einer Konfigurationseinheit 50 verbunden ist. Die HT-Schaltung 24C ist mit dem Peripheriegerät 16A verbunden, das mit dem Peripheriegerät 16B in einer Prioritätskettenkonfiguration (in dieser Ausführungsform unter Anwendung von HT-Schnittstellen) verbunden ist. Die restlichen HT-Schaltungen 24A24B sind mit anderen ähnlichen Verarbeitungsknoten (nicht gezeigt) über weitere HT-Schnittstellen (nicht gezeigt) verbunden. Die Speichersteuerung 22 ist mit dem Speicher 14 verbunden. In einer Ausführungsform ist der Knoten 12 ein einzelner integrierter Schaltungs-Chip mit der Schaltung, die in 1 gezeigt ist. Das heißt, der Knoten 12 kann ein Chip-Multiprozessor (CMP) sein. Es kann ein beliebiges Niveau an Integration oder es können diskrete Komponenten verwendet werden. Zu beachten ist, dass der Verarbeitungsknoten 12 diverse andere Schaltungen enthalten kann, die der Einfachheit halber hier weggelassen sind.
  • In einer Ausführungsform umfasst die Knotensteuerung 20 diverse Verbindungsschaltungen (nicht gezeigt), um die Prozessorkerne 15A und 15B miteinander, mit anderen Knoten und mit dem Speicher zu verbinden. Die Knotensteuerung 20 umfasst ferner Sicherungen (nicht gezeigt), die selektiv während des Herstellungsprozesses unterbrochen werden können, um mehrere Werte darzustellen. In einigen Ausführungsformen können diverse Knoteneigenschaften durch die Sicherungen ausgewählt werden. Zu den Eigenschaften gehören die maximale und die minimale Arbeitsfrequenz für den Knoten und die maximale und minimale Versorgungsspannung für den Knoten. Des Weiteren können die Sicherungen Prozessorkern-spezifische Eigenschaften auswählen.
  • Die Knotensteuerung 20 kann im Allgemeinen so gestaltet sein, dass Kommunikationsaktivitäten zwischen den Prozessorkernen 15A15B, der Speichersteuerung 22 und den HT-Schaltungen 24A24C in Abhängigkeit von der Kommunikationsart, der Adresse der Kom munikation etc., weitergeleitet werden. In einer Ausführungsform umfasst die Knotensteuerung 20 eine Systemanforderungswarteschlange (SRQ), in die empfangene Kommunikationsaktivitäten von der Knotensteuerung 20 geschrieben werden. Die Knotensteuerung 20 kann Kommunikationsereignisse aus der SRQ für die Weiterleitung zum Ziel oder zu Zielen aus den Prozessorkernen 15A15B, den HT-Schaltungen 24A24C und der Speichersteuerung 22 disponieren. Die Funktionsweise des Knotens 12 und seiner Komponenten wird nachfolgend detaillierter erläutert.
  • Im Allgemeinen können die Prozessorkerne 15A15B die Schnittstelle(n) zu der Knotensteuerung 20 verwenden, um mit anderen Komponenten des Computersystems 10 zu kommunizieren (beispielsweise mit dem Peripheriegerät 16A16B, anderen Prozessorkernen (nicht gezeigt), der Speichersteuerung 22, etc.). Die Schnittstelle kann in einer beliebigen gewünschten Art gestaltet sein. Es kann eine mit dem Cache-Speicher kohärente Kommunikation für die Schnittstelle in einigen Ausführungsformen definiert sein. In einer Ausführungsform erfolgt die Kommunikation auf den Schnittstellen zwischen der Knotensteuerung 20 und den Prozessorkernen 15A15B in Form von Paketen, ähnlich zu jenen, wie sie in den HT-Schnittstellen verwendet werden. In anderen Ausführungsformen kann eine beliebige gewünschte Kommunikationsart verwendet werden (beispielsweise Transaktionen auf einer Busschnittstelle, Pakete mit anderer Form, etc.). In anderen Ausführungsformen benutzen die Prozessorkerne 15A15B eine gemeinsame Schnittstelle zur Verbindung mit der Knotensteuerung 20 (beispielsweise eine gemeinsam genutzte Busschnittstelle). Im Allgemeinen können die Kommunikationsaktivitäten von den Prozessorkernen 15A15B Anforderungen enthalten, etwa Leseoperationen (um eine Speicherstelle oder ein Register außerhalb des Prozessorkerns auszulesen) und Schreiboperationen (um eine Speicherstelle oder ein externes Register zu beschreiben), Antworten auf Sondierungsanfragen (für Cache kohärente Ausführungsformen), Interrupt-Bestätigungen, und Systemverwaltungsnachrichten, etc.
  • Der Speicher 14 kann beliebige geeignete Speichereinrichtungen enthalten. Beispielsweise kann ein Speicher 14 einen oder mehrere RAMBUS-DRAMs (RDRAMSs), synchrone DRAMs (SDRAMs), SDRAMs mit doppelter Datenrate (DDR), statische RAMs, etc. aufweisen. Die Speichersteuerung 22 kann eine Steuerschaltung zur Verbindung mit den Speichern 14 umfassen. Zusätzlich kann die Speichersteuerung 22 Anforderungswarteschlangen zum Aneinanderreihen von Speicheranforderungen, etc. enthalten.
  • Die HT-Schaltungen 24A24C können mehrere Puffer und Steuerschaltungen zum Empfangen von Paketen von einer HT-Verbindung und zum Senden von Paketen über eine HT-Verbindung aufweisen. Die HT-Schnittstelle umfasst unidirektionale Verbindungen für das Senden von Paketen. Jede HT-Schaltung 24A24C kann mit zwei derartigen Verbindungen gekoppelt sein (eine zum Senden und eine zum Empfangen). Eine gegebene HT-Schnittstelle kann in einer mit dem Cache-Speicher kohärenten Weise betrieben werden (beispielsweise zwischen den Verarbeitungsknoten) oder kann in einer nicht-kohärenten Weise betrieben werden (beispielsweise zu/von den Peripheriegeräten 16A16B). In der dargestellten Ausführungsform sind die HT-Schaltungen 24A24B nicht in Verwendung, und die HT-Schaltung 24C ist über nicht-kohärente Verbindungen mit den Peripheriegeräten 16A16B verbunden.
  • Die Peripheriegeräte 16A16B können eine beliebige Art von peripheren Geräten bzw. Einrichtungen sein. Zum Beispiel können die Peripheriegeräte 16A16B Einrichtungen zum Kommunizieren mit einem weiteren Computersystem enthalten, mit dem die Einrichtungen verbunden sind (z. B. Netzwerkschnittstellenkarten, Schaltungen ähnlich zu einer Netzwerkschnittstellenkarte, die auf eine Hauptplatine eines Computersystems integriert ist, oder Modems). Ferner können die Peripheriegeräte 16A16B Videobeschleuniger, Audiokarten, Festplattenlaufwerke und Diskettenlaufwerke oder Laufwerkssteuerungen, SCSI-(Kleincomputersystem-Schnittstellen)Adapter und Telefonkarten, Klangkarten und eine Vielzahl von Datennahmekarten, etwa GPIB- oder Feldbus-Schnittstellenkarten enthalten. Zu beachten ist, dass der Begriff ”Peripheriegerät” auch Eingabe/Ausgabe-(I/O)Geräte bzw. Einrichtungen umfassen soll.
  • Im Allgemeinen kann ein Prozessorkern 15A15B Schaltungen aufweisen, die ausgebildet sind, Befehle auszuführen, die in einer gegebenen Befehlssatzarchitektur definiert sind. Das heißt, die Prozessorkernschaltung ist ausgebildet, Befehle, die in der Befehlssatzarchitektur definiert sind, abzuholen, zu dekodieren, auszuführen und deren Ergebnisse zu speichern. Beispielsweise kann in einer Ausführungsform die x86-Architektur in den Prozessorkernen 15A15B eingerichtet sein. Die Prozessorkerne 15A15B können beliebige Konfigurationen aufweisen, zu denen Super-Pipeline-Verarbeitungen, superskalare Konfigurationen oder Kombinationen davon gehören. Zu anderen Konfigurationen gehören skalare Strukturen, Pipeline-Strukturen, Nicht-Pipeline-Strukturen, etc. In diversen Ausführungsformen kann eine spekulative Ausführung außerhalb der Reihenfolge oder entsprechend der Reihenfolge eingerichtet sein. Die Prozessorkerne können die Mikrokodierung für einen oder mehrere Befehle oder andere Funktionen in Verbindung mit beliebigen Konfiguratio nen der oben genannten Ausbildungen enthalten. In den diversen Ausführungsformen können eine Vielzahl anderer Gestaltungsmerkmale, etwa Cache-Speicher, Translations-Nebenordnungspuffer (TLB), etc. eingerichtet sein.
  • Es ist zu beachten, dass, obwohl die vorliegende Ausführungsform die HT-Schnittstelle für die Kommunikation zwischen den Knoten und zwischen einem Knoten und den Peripheriegeräten anwendet, in anderen Ausführungsformen eine beliebige gewünschte Schnittstelle oder Schnittstellen für die entsprechende Kommunikation verwendet werden können. Beispielsweise können andere Paket-basierte Schnittstellen angewendet werden, es können Busschnittstellen eingesetzt werden, und es können diverse standardmäßige periphere Schnittstellen (beispielsweise eine periphere Komponentenverbindungs-(PCI), PCI-Expressschnittstelle, etc.) und dergleichen verwendet werden.
  • In der dargestellten Ausführungsform umfasst der Prozessorkern 15A einen L2-Cache-Speicher 17A. In ähnlicher Weise enthält der Prozessorkern 15B einen L2-Cache-Speicher 17B. Die entsprechenden L2-Cache-Speicher sind repräsentativ für einen beliebigen L2-Cache-Speicher, wie er in einem Mikroprozessor anzutreffen ist. Jedoch sind in einer Ausführungsform die L2-Cache-Speicher 17A17B unter Anwendung einer Anzahl von unabhängig steuerbaren Speicherblöcken eingerichtet, wie dies durch die gestrichelten Linien angezeigt ist. In einer Ausführungsform umfasst jeder der Blöcke eine unabhängig steuerbare Leistungsversorgung. Somit kann die jedem der Speicherblöcke zugeführte Versorgungsleistung (VDD) unabhängig abgeschaltet werden oder in einigen Fällen kann die den Blöcken von den individuellen Leistungsversorgungen zugeführte Spannung unabhängig herabgesetzt werden.
  • Wie die zuvor beschriebenen L2-Cache-Speicher kann in der dargestellten Ausführungsform der L3-Cache-Speicher 60 auch unter Anwendung einer Anzahl aus unabhängig steuerbaren Speicherblöcken eingerichtet werden, wie dies durch die gestrichelte Linie dargestellt ist, wobei jeder der Blöcke eine unabhängig steuerbare Leistungszufuhr enthält. Die jedem der Speicherblöcke zugeführte Versorgungsleistung (VDD) kann unabhängig deaktiviert werden oder in einigen Fällen kann die Spannung VDD, die den Blöcken durch die einzelnen Leistungszufuhren zugeführt wird, unabhängig abgesenkt werden.
  • In der dargestellten Ausführungsform sind ähnlich zu dem L3-Cache-Speicher jeweils die entsprechenden L2-Cache-Speicher 17A17B mit einer L2-Cache-Überwachungseinheit 18A18B und einer Konfigurationseinheit 19A19B verbunden. In einer Ausführungsform ist jede Cache-Überwachungseinheit (beispielsweise 18A, 19A, 85) ausgebildet, die Auslastung des entsprechenden damit verbundenen Cache-Speichers zu überwachen. Beispielsweise kann die L2-Cache-Überwachungseinheit 18A die Auslastung bzw. Nutzung des L2-Cache-Speichers 17A überwachen. In der dargestellten Ausführungsform überwacht jede Cache-Überwachungseinheit Schaltungen (beispielsweise 40A, 40B, 86), die die aktuelle Cache-Auslastung bestimmen und ermitteln, ob die aktuelle Auslastung innerhalb einer gegebenen Auslastungsgrenze liegt. Genauer gesagt, kann die Cache-Überwachungseinheit 18A beispielsweise bestimmen, ob die aktuelle Auslastung des L2-Cache-Speichers 17A unterhalb eines vorbestimmten Schwellwerts liegt. Wenn dies der Fall ist benachrichtigt die Cache-Überwachungseinheit 18A die Konfigurationseinheit 19A.
  • In einer Ausführungsform umfasst die Konfigurationseinheit 19A einen oder mehrere Speicher, die als 42A bezeichnet sind, etwa programmierbare Register, die Werte speichern können, die den diversen bevorzugten Konfigurationen und Zuständen des L2-Cache-Speichers 17A entsprechen. Abhängig von den in den Speichereinrichtungen 42A gespeichert Werten kann die Konfigurationseinheit 19A programmiert sein, um selektiv einen oder mehrere der unabhängig steuerbaren Speicherblöcke des L2-Cache-Speichers 17A in Reaktion auf die Benachrichtigung aus der L2-Cache-Überwachungseinheit 18A zu aktivieren oder zu deaktivieren. Des Weiteren können die in den Speichern 42A gespeicherten Werte festlegen, ob die Leistungszufuhr für einen gegebenen Block ausgeschaltet wird oder die Spannung abgesenkt wird. In gewissen Fällen, etwa wenn ein Prozessorkern eine Kontextumschaltung ausführt, kann beispielsweise der L2-Cache-Speicher nicht für den neuen Ablaufpfad oder Kontext verwendet werden. Es kann jedoch im Hinblick auf die in dem L2-Cache-Speicher 17A gespeicherten Daten wünschenswert sein, dass diese verfügbar sind, wenn wieder auf diesen Kontext bzw. Ablaufpfad zurückgeschaltet wird. In derartigen Fällen kann das einfache Absenken der Spannung für einen oder mehrere Blöcke es ermöglichen, die darin gespeicherten Daten zu bewahren, wobei jedoch ein weiterer Zugriff verhindert ist oder deaktiviert ist, bis die Blöcke wieder aktiviert sind und die Spannung auf den normalen Wert zurückgeführt ist.
  • Die Konfigurationseinheit 50 kann ferner ausgebildet sein, dass sie es möglich macht, dass der Prozessorkern 15A den L2-Cache-Speicher 17B des Prozessorkerns 15B mitbenutzt und umgekehrt, abhängig von den darin gespeicherten Konfigurationswerten. Zum Beispiel kann in Reaktion darauf, dass die Cache-Überwachungseinheit 40A bestimmt, dass die aktuelle Auslastung des L2-Cache-Speichers 17A über einem oberen Schwellwert liegt, die Konfigurationseinheit 19A Zugriff auf den L2-Cache-Speicher 17B anfordern. In derartigen Fällen kann die Konfigurationseinheit 42B den gemeinsamen Zugriff zulassen, wenn der L2-Cache-Speicher 17B Blöcke aufweist, die deaktiviert und damit gemeinsam nutzbar sind.
  • In einer Ausführungsform können die Speichereinrichtungen 42A, 42B und 51 der Konfigurationseinheiten 19A, 19B und 50 voreingestellte Präferenzwerte enthalten. Alternativ können die Präferenzwerte in die Speichereinrichtungen eingegeben werden. Diese Präferenzwerte können verwendet werden, um zu bestimmen, welche Aktion in Reaktion auf das Empfangen einer Benachrichtigung von der entsprechenden Cache-Überwachungseinheit auszuführen ist. Wie beispielsweise zuvor beschrieben ist, können die Konfigurationseinheiten diese Werte benutzen, um zu bestimmen, ob die Bereiche des L2-Cache-Speichers in dem entsprechenden Prozessorkern und der L3-Cache-Speicher durch Ausschalten der Leistungsversorgung oder durch Absenken der Spannung zu deaktivieren sind. Ferner können in einer Ausführungsform die Konfigurationseinheiten die Werte verwenden, um zu bestimmen, welche, wenn überhaupt, Bereiche der L2- oder L3-Cache-Speicher beim Hochfahren deaktiviert werden sollten.
  • In einer Ausführungsform können die Speichereinrichtungen 42A, 42B und 51 unter Anwendung von Software programmiert werden. Zum Beispiel können spezielle Befehle verwendet werden, um auf die Speicher 42A, 42B und 51 zuzugreifen. In einer weiteren Ausführungsform können die Speicher 42A, 42B und 51 in einer permanenteren Weise unter Anwendung von verdrahteten Sicherungen programmiert werden, wie dies zuvor beschrieben ist. In einer derartigen Ausführungsform werden die Werte aus durchtrennten Sicherungen ausgelesen und in den Speichern abgelegt. In einer Ausführungsform können die verdrahteten Sicherungen durch die externe Programmierung überschrieben werden. In einer derartigen Ausführungsform können Speicher 42A, 42B und 51 mittels Konfigurationsanschlüssen 44A, 44B und 54 über einen externen Anschluss, etwa einen gemeinsamen Testaktionsgruppen-(JTAG)Anschluss, beispielsweise programmiert werden. Das Überschreiben der verdrahteten Sicherungen auf diese Weise wird manchmal als eine Programmierung mittels Software-Sicherungen bezeichnet.
  • In einer Ausführungsform können die Cache-Überwachungseinheiten 18A, 18B und 85 die aktuelle Auslastung unter Anwendung von Parametern bestimmen, etwa wie viele Einträge ein entsprechender Cache-Speicher verwendet und wie häufig auf den entsprechenden Cache-Speicher zugegriffen wird. In einer Ausführungsform wird die Anzahl der Einträge in einem gerade verwendeten gegebenen Cache-Speicher ohne Verwendung von Sondierungsanfragen unter Anwendung eines Zählers bestimmt (der nicht explizit als Teil von 40A, 40B und 86 gezeigt ist), um Schreiboperationen in dem Cache-Speicher zu zählen und indem überwacht wird, ob ein Schreibbefehl ein Opfer bzw. Ziel erzeugt oder nicht. Wenn ein Ziel nicht erzeugt wird, dann muss der Schreibbefehl zu einer Zuweisung eines neuen Eintrags geführt haben. Ansonsten bleibt die Anzahl der Einträge gleich. Wenn daher ein Ziel erzeugt wird, wird der Schreibbefehl nicht gezählt. Des Weiteren kann in einer Ausführungsform die Häufigkeit, mit der auf einen Cache-Speicher zugegriffen wird, beispielsweise unter Anwendung eines Sättigungszählers (der nicht explizit als Teil der Schaltung 40A gezeigt ist) bestimmt werden. In einer Ausführungsform wird der Sättigungszähler jedes Mal erhöht, wenn auf den Cache-Speicher zugegriffen wird. Der Zähler kann bei einem gewissen Taktintervall verringert werden, aber nicht auf Null gesetzt werden. Wenn der Zählerwert über einem vorbestimmten Wert bleibt, kann angenommen werden, dass die Zugriffshäufigkeit für den Cache-Speicher hoch ist, wodurch eine hohe Auslastung angezeigt wird. Aus diesen zwei Parametern kann ein unterer vorbestimmter Auslastungswert und ein oberer vorbestimmter Auslastungswert berechnet werden. Zu beachten ist, dass in anderen Ausführungsformen andere Mechanismen eingesetzt werden können, um die Cache-Speicherauslastung nach Bedarf zu bestimmen.
  • Zu beachten ist, dass, obwohl das in 1 gezeigte Computersystem 10 einen einzelnen Verarbeitungsknoten 12 aufweist, in anderen Ausführungsformen eine andere Anzahl an Verarbeitungsknoten eingerichtet sein kann. In ähnlicher Weise kann ein Verarbeitungsknoten, etwa der Knoten 12, eine beliebige Anzahl an Prozessorkernen in diversen anderen Ausführungsformen aufweisen. In weiteren Ausführungsformen des Computersystems 10 können eine unterschiedliche Anzahl an HT-Schnittstellen pro Knoten 12 und unterschiedliche Anzahlen an Peripheriegeräten 16, die mit dem Knoten verbunden sind, und dergleichen, enthalten sein.
  • 2 ist eine Blockansicht einer weiteren Ausführungsform eines Computersystems 20. Komponenten, die in 1 gezeigt sind, sind der Klarheit und der Einfachheit halber mit gleichen Bezugszahlen belegt. Ähnlich zu dem Computersystem 10 aus 1 umfasst das Computersystem 20 aus 2 einen Verarbeitungsknoten 22, der mit einem Speicher 14 und Peripheriegeräten 13A13B verbunden ist. Der Verarbeitungsknoten 22 enthält ähnliche Funktionen wie der Knoten 12 aus 1. Folglich werden nur die unterschiedlichen Funktionen beschrieben, während die Funktionen, die gleich sind zu dem Knoten 12, der Kürze halber weggelassen werden. Zu beachten ist, dass der Verarbeitungsknoten 22 aus
  • 2 diverse andere Schaltungen enthalten kann, die der Einfachheit halber nicht gezeigt sind.
  • In der in 2 dargestellten Ausführungsform enthält ähnlich wie der Verarbeitungsknoten 12 auch der Verarbeitungsknoten 22 Prozessorkerne 15A15B, die mit einer Knotensteuerung 20 verbunden sind, die wiederum mit einer Speichersteuerung 22 und mehreren HyperTransportTM(HT)-Schnittstellenschaltungen 24A24C verbunden ist. Des Weiteren sind die Prozessorkerne 15A15B auch mit einem gemeinsamen Cache-Speicher der Ebene Drei (L3) 60 verbunden. Jedoch ist der L3-Cache-Speicher 60 mit einer Cache-Überwachungseinheit 95 und einer Konfigurationseinheit 65 verbunden. In einer Ausführungsform ist der Knoten 22 ein einzelner integrierter Schaltungs-Chip, der die in 2 gezeigte Schaltung enthält. Das heißt, der Knoten 22 ist ein Chip-Multiprozessor (CMP).
  • In der dargestellten Ausführungsform ist im Gegensatz zu der Ausführungsform aus 1 jeder der L2-Cache-Speicher 17A17B auch mit der Cache-Überwachungseinheit 95 und der Konfigurationseinheit 65 verbunden. In einer Ausführungsform ist die Cache-Überwachungseinheit 95 ausgebildet, die Auslastung aller Cache-Speicher, die mit ihr verbunden sind (beispielsweise L2-Cache-Speicher 17A17B und L3-Cache-Speicher 60) zu überwachen, wobei eine Funktion eingesetzt wird, wie dies zuvor in Bezug mit der 1 beschrieben ist.
  • In einer Ausführungsform enthält, ähnlich wie dies zuvor beschrieben ist, die Konfigurationseinheit 65 einen oder mehrere Speicher, die als 61 bezeichnet sind, etwa programmierbare Register, die Werte enthalten, die den diversen bevorzugten Konfigurationen und Zuständen der L2-Cache-Speicher 17A17B und des L3-Cache-Speichers 60 entsprechen. Abgesehen von den in den Speichern 61 abgelegten Werten kann die Konfigurationseinheit 65 programmiert sein, um einen oder mehrere der unabhängig steuerbaren Speicherblöcke der L2-Cache-Speicher 17A17B und des L3-Cache-Speichers 60 in Reaktion auf die Benachrichtigung von der Cache-Überwachungseinheit 95 zu aktivieren oder zu deaktivieren. In ähnlicher Weise können die in den Speichern 61 abgelegten Werte bestimmen, ob die Leistungszufuhr für einen gegebenen Block abgeschaltet oder dessen Spannung abgesendet werden soll. Zu beachten ist, dass der Speicher 61 in ähnlicher Weise wie die Speicher 42A, 42B und 51, die zuvor beschrieben sind, programmiert werden kann.
  • Des Weiteren kann die Konfigurationseinheit 60 so ausgebildet sein, dass es dem Prozessorkern 15A ermöglicht wird, den L2-Cache-Speicher 17B des Prozessorkerns 15B, abhängig von den darin gespeicherten Konfigurationswerten, zu benutzen und umgekehrt.
  • Beispielsweise kann in Reaktion darauf, dass die Cache-Überwachungseinheit 95 bestimmt, dass die aktuelle Auslastung des L2-Cache-Speichers 17A über einem oberen Schwellwert liegt, die Konfigurationseinheit 65 Zugriff auf den L2-Cache-Speicher 17B durch den Prozessorkern 15A ermöglichen. In derartigen Fällen kann die Konfigurationseinheit 65 den gemeinsamen Zugriff erlauben, wenn der L2-Cache-Speicher 17B Blöcke besitzt die deaktiviert und damit gemeinsam nutzbar sind.
  • 3 zeigt ein Flussdiagramm, in welchem die Funktionsweise einer Ausführungsform des Verarbeitungsknotens 12 beschrieben ist. Es sei nun gemeinsam auf 1 und 3 verwiesen; in einer Ausführungsform werden, wenn der Knoten 12 zunächst eingeschaltet wird oder aus dem Reset-Zustand anläuft, die in der Konfigurationseinheit 42A gespeicherten Konfigurationswerte ausgelesen und verwendet, um den L2-Cache-Speicher 17A zu konfigurieren. In ähnlicher Weise können die in der Konfigurationseinheit 42B gespeicherten Konfigurationswerte ausgelesen und verwendet werden, um den L2-Cache-Speicher 17B zu konfigurieren, und die in der Konfigurationseinheit 50 gespeicherten Konfigurationswerte können ausgelesen und verwendet werden, um den L3-Cache-Speicher 60 zu konfigurieren. Bei einem Betrieb des Knotens 12 sind die Cache-Überwachungseinheiten 18A, 18B und 85 ausgebildet, die aktuelle Auslastung jedes jeweiligen Cache-Speichers zu überwachen (Block 300). Wie beispielsweise zuvor beschrieben ist, können die Cache-Überwachungseinheiten 18A, 18b und 85 die Cache-Zugriffshäufigkeit und die Verwendung von Cache-Einträgen verfolgen, um die aktuelle Auslastung ihrer entsprechenden Cache-Speicher zu bestimmen.
  • Im Block 305 bestimmt auf der Grundlage der aktuellen Auslastung die Cache-Überwachungseinheit 85, ob die entsprechende aktuelle Auslastung innerhalb vorbestimmter Grenzen liegt. In einer Ausführungsform vergleicht die Cache-Überwachungseinheit 85 die aktuelle Auslastung des L3-Cache-Speichers 60 mit einem oberen Schwellwert und einem unteren Schwellwert.
  • Wenn die aktuelle Auslastung innerhalb der vorbestimmten Schwellwerte liegt, setzt die Cache-Überwachungseinheit 85 die Überwachung der Auslastung des L3-Cache-Speichers 60 so fort, wie dies zuvor in Block 300 beschrieben ist. Wenn jedoch die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte liegt und unterhalb des unteren Schwellwerts liegt (Block 305), gibt die Überwachungseinheit 85 eine Nachricht an die Konfigurationseinheit 50 aus (Block 310). Die Konfigurationseinheit 50 kann selektiv einen oder mehrere Blöcke des L3-Cache-Speichers 60 deaktivieren (Block 315). In einer Ausfüh rungsform deaktiviert die Konfigurationseinheit 50 Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern 51 abgelegt sind, und in Reaktion auf die Nachricht. Wie beispielsweise zuvor beschrieben ist, kann die Leistung für die ausgewählten Blöcke abgeschaltet werden oder es kann eine geringere Spannung angelegt werden. In einer Ausführungsform können die zuerst ausgewählten Blöcke jene Blöcke sein, die am weitesten von den Prozessorkernen 15A15B entfernt sind, da diese Blöcke die längsten Verzögerungswege repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzt die Cache-Überwachungseinheit 85 die Überwachung der Auslastung fort, wie dies zuvor in Block 300 beschrieben ist.
  • Es sei nun wieder auf den Block 305 verwiesen; wenn die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte liegt und über dem oberen Schwellwert ist, gibt die Cache-Überwachungseinheit 85 eine Nachricht an die Konfigurationseinheit 50 aus (Block 320). Die Konfigurationseinheit 50 kann selektiv einen oder mehrere deaktivierte Blöcke des L3-Cache-Speichers 60 aktivieren (Block 315), wenn deaktivierte Blöcke vorhanden sind. In einer Ausführungsform aktiviert die Konfigurationseinheit 50 Blöcke entsprechend bevorzugten Konfigurationen, die in den Speichern 51 abgelegt sind. Sobald die ausgewählten Blöcke erneut aktiviert sind, setzt die Cache-Überwachungseinheit 85 die Überwachung der Auslastung fort, wie dies zuvor in Block 300 beschrieben ist.
  • Im Block 330 bestimmen die Cache-Überwachungseinheiten 18A und 18B auf der Grundlage der aktuellen Auslastung, ob die entsprechende aktuelle Auslastung innerhalb der vorbestimmten Grenzen liegt. Insbesondere können in einer Ausführungsform die Cache-Überwachungseinheiten 18A18B die aktuelle Auslastung der L2-Cache-Speicher 17A17B mit einem oberen Schwellwert und einem untere Schwellwert vergleichen.
  • Wenn die aktuelle Auslastung innerhalb der vorbestimmten Schwellwerte liegt, setzen die Cache-Überwachungseinheiten 18A18B, die Überwachung der Auslastung der L2-Cache-Speicher 17A17B fort, wie dies in Block 300 zuvor beschrieben ist. Wenn jedoch die aktuelle Auslastung eines Cache-Speichers nicht innerhalb der vorbestimmten Schwellwerte liegt und unter dem unteren Schwellwert liegt (Block 330), liefert die entsprechende Cache-Überwachungseinheit 18A18B eine entsprechende Nachricht an die Konfigurationseinheit 19A19B (Block 335). Die Konfigurationseinheiten 19A19B deaktivieren selektiv einen oder mehrere Blöcke der entsprechenden L2-Cache-Speicher 17A17B (Block 340). In einer Ausführungsform deaktivieren die Konfigurationseinheiten 19A19B Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern 42A42B abgelegt sind, und in Re aktion auf die gelieferte Nachricht. Wie beispielsweise zuvor beschrieben ist, kann die Leistung für die ausgewählten Blöcke abgeschaltet oder es kann eine reduzierte Spannung zugeführt werden. Ferner können in einer Ausführungsform die zuerst ausgewählten Blöcke jene Blöcke sein, die am weitesten von der CPU-Logik der Prozessorkerne 15A15B entfernt sind, da diese Blöcke die längsten Verzögerungsstrecken repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzen die Cache-Überwachungseinheiten 18A18B die Überwachung der Auslastung in der in Block 300 beschriebenen Weise fort.
  • Es sei wieder auf den Block 330 verwiesen; wenn die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte ist und über dem oberen Schwellwert liegt, liefern die Cache-Überwachungseinheiten 18A18B eine Nachricht für die Konfigurationseinheiten 19A19B (Block 345). Wenn einer der L2-Blöcke in dem betroffenen L2-Cache-Speicher deaktiviert ist (Block 350), kann die Konfigurationseinheit 19A19B selektiv einen oder mehrere Blöcke der L2-Cache-Speicher 17A17B aktivieren (Block 355). In einer Ausführungsform deaktivieren die Konfigurationseinheiten 19A19B Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern 42A42B abgelegt sind, und in Reaktion auf die gelieferte Nachricht. Wie beispielsweise zuvor beschrieben ist, kann die Leistung für die ausgewählten Blöcke abgeschaltet werden oder es kann diesen eine geringere Versorgungsspannung zugeführt werden. Ferner sind in einer Ausführungsform die zuerst ausgewählten Blöcke jene Blöcke, die am weitesten von den Prozessorkörnern 15A15B entfernt sind, da diese Blöcke die längsten Verzögerungsstrecken repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzen die Cache-Überwachungseinheiten 18A18B die Überwachung der Auslastung fort, wie dies zuvor in Block 300 beschrieben ist.
  • Wenn jedoch keine deaktivierten Blöcke in dem betroffenen L2-Cache-Speicher vorhanden sind (Block 350), fordert die Konfigurationseinheit des betroffenen L2-Cache-Speichers (d. h. des L2-Cache-Speichers, der stark ausgelastet ist) von der Konfigurationseinheit des anderen Prozessorkerns eine Zugriffserlaubnis an, um den L2-Cache-Speicher des anderen Kerns zu benutzen. Wenn z. B. die Cache-Überwachungseinheit 18B erkennt, dass die aktuelle Auslastung des L2-Cache-Speichers 17B über dem oberen Schwellwert liegt, kann die Konfigurationseinheit 19B Zugriff von der Konfigurationseinheit 19A für den L2-Cache-Speicher 17A anfordern. In Reaktion auf die Anforderung bestimmt die Konfigurationseinheit 19A, ob der L2-Cache-Speicher 17A deaktivierte Blöcke für eine gemeinsame Benutzung aufweist (Block 360). Wenn dies der Fall ist, gewährt die Konfigurationseinheit 19A Zugriff für den Prozessorkern 15B, um die deaktivierten Blöcke des L2-Cache-Speichers 17A gemeinsam zu nutzen (Block 365). Die deaktivierten Blöcke können dann reaktiviert werden. Der Ablauf geht dann weiter, wie dies zuvor in Block 300 beschrieben ist.

Claims (2)

  1. Verfahren zum dynamischen Konfigurieren eines Cache-Speichers in einem Verarbeitungsknoten (12, 22) mit mehreren Prozessorkernen (15A, 15B), wobei jeder Prozessorkern einen Cache-Speicher enthält, und wobei das Verfahren umfasst: unabhängiges Überwachen einer entsprechenden aktuellen Auslastung jedes der Cache-Speicher; Bestimmen, ob die entsprechende aktuelle Auslastung unterhalb eines vorbestimmten Auslastungswerts liegt; und in Reaktion darauf, dass bestimmt wird, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt, selektives Deaktivieren eines oder mehrerer Bereiche des entsprechenden Cache-Speichers; Bestimmen, ob die entsprechende aktuelle Auslastung oberhalb eines vorbestimmten Auslastungswerts liegt; und in Reaktion darauf, dass bestimmt wird, dass die aktuelle Auslastung über dem vorbestimmten Auslastungswert liegt, Erlauben eines gemeinsamen Zugriffs auf einen oder mehrere Bereiche des entsprechenden Cache-Speichers eines anderen der Prozessorkerne (15A, 15B), die in Reaktion darauf, dass für diesen Cache-Speicher des anderen der Prozessorkerne (15A, 15B) bestimmt wird, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt, deaktiviert worden sind.
  2. Verfahren nach Anspruch 1, das ferner das Speichern des vorbestimmten Auslastungswerts in einem konfigurierbaren Speicher (442) umfasst.
DE112005002672T 2004-10-01 2005-09-21 Dynamische Neukonfiguration eines Cache-Speichers Active DE112005002672B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/956,560 2004-10-01
US10/956,560 US7257678B2 (en) 2004-10-01 2004-10-01 Dynamic reconfiguration of cache memory
PCT/US2005/033671 WO2006039153A1 (en) 2004-10-01 2005-09-21 Dynamic reconfiguration of cache memory

Publications (2)

Publication Number Publication Date
DE112005002672T5 DE112005002672T5 (de) 2007-11-29
DE112005002672B4 true DE112005002672B4 (de) 2010-12-02

Family

ID=35519765

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005002672T Active DE112005002672B4 (de) 2004-10-01 2005-09-21 Dynamische Neukonfiguration eines Cache-Speichers

Country Status (8)

Country Link
US (1) US7257678B2 (de)
JP (1) JP4456154B2 (de)
KR (1) KR101136141B1 (de)
CN (1) CN101048763B (de)
DE (1) DE112005002672B4 (de)
GB (1) GB2432695B (de)
TW (1) TWI403899B (de)
WO (1) WO2006039153A1 (de)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006106890A1 (en) * 2005-03-31 2006-10-12 Semiconductor Energy Laboratory Co., Ltd. Arithmetic processing device and electronic appliance using arithmetic processing device
US20080201528A1 (en) * 2005-04-06 2008-08-21 Mediatek Inc. Memory access systems for configuring ways as cache or directly addressable memory
US7467280B2 (en) * 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
CN101689106B (zh) * 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US20090006036A1 (en) * 2007-06-27 2009-01-01 International Business Machines Corporation Shared, Low Cost and Featureable Performance Monitor Unit
US7680978B1 (en) * 2007-09-05 2010-03-16 Juniper Networks, Inc. Reducing content addressable memory (CAM) power consumption counters
US9513695B2 (en) * 2008-06-24 2016-12-06 Virident Systems, Inc. Methods of managing power in network computer systems
US8327126B2 (en) 2008-08-25 2012-12-04 International Business Machines Corporation Multicore processor and method of use that adapts core functions based on workload execution
US8271728B2 (en) * 2008-11-13 2012-09-18 International Business Machines Corporation Spiral cache power management, adaptive sizing and interface operations
US8195887B2 (en) * 2009-01-21 2012-06-05 Globalfoundries Inc. Processor power management and method
US8103894B2 (en) * 2009-04-24 2012-01-24 International Business Machines Corporation Power conservation in vertically-striped NUCA caches
CN102792289B (zh) * 2010-03-08 2015-11-25 惠普发展公司,有限责任合伙企业 数据存储装置
US8438410B2 (en) 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states
US20120096295A1 (en) * 2010-10-18 2012-04-19 Robert Krick Method and apparatus for dynamic power control of cache memory
US8516205B2 (en) * 2010-10-29 2013-08-20 Nokia Corporation Method and apparatus for providing efficient context classification
US8711633B2 (en) 2011-05-12 2014-04-29 Micron Technology, Inc. Dynamic data caches, decoders and decoding methods
JP5820335B2 (ja) 2011-05-20 2015-11-24 株式会社半導体エネルギー研究所 半導体装置
JP5820336B2 (ja) 2011-05-20 2015-11-24 株式会社半導体エネルギー研究所 半導体装置
JP6012263B2 (ja) 2011-06-09 2016-10-25 株式会社半導体エネルギー研究所 半導体記憶装置
WO2012169142A1 (en) 2011-06-09 2012-12-13 Semiconductor Energy Laboratory Co., Ltd. Cache memory and method for driving the same
US8595464B2 (en) * 2011-07-14 2013-11-26 Oracle International Corporation Dynamic sizing of translation lookaside buffer for power reduction
US8868843B2 (en) 2011-11-30 2014-10-21 Advanced Micro Devices, Inc. Hardware filter for tracking block presence in large caches
US20130138884A1 (en) * 2011-11-30 2013-05-30 Hitachi, Ltd. Load distribution system
CN103246542B (zh) * 2012-02-01 2017-11-14 中兴通讯股份有限公司 智能缓存及智能终端
US9135182B2 (en) 2012-06-01 2015-09-15 Semiconductor Energy Laboratory Co., Ltd. Central processing unit and driving method thereof
US20140136793A1 (en) * 2012-11-13 2014-05-15 Nvidia Corporation System and method for reduced cache mode
US9360924B2 (en) * 2013-05-29 2016-06-07 Intel Corporation Reduced power mode of a cache unit
US9568986B2 (en) 2013-09-25 2017-02-14 International Business Machines Corporation System-wide power conservation using memory cache
JP6474280B2 (ja) 2014-03-05 2019-02-27 株式会社半導体エネルギー研究所 半導体装置
KR101820223B1 (ko) 2014-12-14 2018-01-18 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 모드에 따라 선택적으로 하나 또는 복수의 셋트를 선택하도록 동적으로 구성가능한 멀티 모드 셋트 연관 캐시 메모리
WO2016097795A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or subset or tis ways depending on mode
JP6218971B2 (ja) 2014-12-14 2017-10-25 ヴィア アライアンス セミコンダクター カンパニー リミテッド アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択
US10255190B2 (en) 2015-12-17 2019-04-09 Advanced Micro Devices, Inc. Hybrid cache
JP6405331B2 (ja) * 2016-03-22 2018-10-17 日本電信電話株式会社 キャッシュ管理システム、評価方法、管理サーバ、物理サーバ、および、測定サーバ
JP6511023B2 (ja) * 2016-08-22 2019-05-08 日本電信電話株式会社 仮想マシン管理装置およびデプロイ可否判断方法
US11163688B2 (en) * 2019-09-24 2021-11-02 Advanced Micro Devices, Inc. System probe aware last level cache insertion bypassing
US11264998B1 (en) 2020-09-24 2022-03-01 Advanced Micro Devices, Inc. Reference free and temperature independent voltage-to-digital converter
US11899520B2 (en) * 2022-04-26 2024-02-13 Advanced Micro Devices, Inc. Dynamic cache bypass for power savings

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761715A (en) * 1995-08-09 1998-06-02 Kabushiki Kaisha Toshiba Information processing device and cache memory with adjustable number of ways to reduce power consumption based on cache miss ratio
US20030135768A1 (en) * 2002-01-16 2003-07-17 Derek Knee Method and apparatus for conserving power on a multiprocessor integrated circuit
GB2388217A (en) * 2002-01-31 2003-11-05 Hewlett Packard Co Dynamically adjusted cache power supply to optimize for access or power consumption

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
US5860106A (en) * 1995-07-13 1999-01-12 Intel Corporation Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem
US5752045A (en) * 1995-07-14 1998-05-12 United Microelectronics Corporation Power conservation in synchronous SRAM cache memory blocks of a computer system
US5881311A (en) * 1996-06-05 1999-03-09 Fastor Technologies, Inc. Data storage subsystem with block based data management
DE69826539D1 (de) * 1997-01-30 2004-11-04 Sgs Thomson Microelectronics Cachespeichersystem
US6411156B1 (en) * 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
JP4017248B2 (ja) * 1998-04-10 2007-12-05 株式会社日立製作所 半導体装置
US6281724B1 (en) * 1998-11-17 2001-08-28 Analog Devices, Inc. Circuit for partial power-down on dual voltage supply integrated circuits
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
JP2001052476A (ja) * 1999-08-05 2001-02-23 Mitsubishi Electric Corp 半導体装置
DE60143194D1 (de) * 2000-04-12 2010-11-18 Dsp Group Switzerland Ag Datenverarbeitungsschaltung mit cachespeicher und vorrichtung mit solcher schaltung
US7089391B2 (en) * 2000-04-14 2006-08-08 Quickshift, Inc. Managing a codec engine for memory compression/decompression operations using a data movement engine
EP1182559B1 (de) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Mikroprozessor
EP1182567B1 (de) 2000-08-21 2012-03-07 Texas Instruments France Softwaregesteuerte Cache-Speicherkonfiguration
US6795896B1 (en) * 2000-09-29 2004-09-21 Intel Corporation Methods and apparatuses for reducing leakage power consumption in a processor
US6983388B2 (en) * 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
US6944714B2 (en) * 2002-07-30 2005-09-13 Hewlett-Packard Development Company, L.P. Method and apparatus for saving microprocessor power when sequentially accessing the microprocessor's instruction cache
SG111087A1 (en) * 2002-10-03 2005-05-30 St Microelectronics Asia Cache memory system
US20040199723A1 (en) * 2003-04-03 2004-10-07 Shelor Charles F. Low-power cache and method for operating same
US7093081B2 (en) * 2004-01-14 2006-08-15 International Business Machines Corporation Method and apparatus for identifying false cache line sharing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761715A (en) * 1995-08-09 1998-06-02 Kabushiki Kaisha Toshiba Information processing device and cache memory with adjustable number of ways to reduce power consumption based on cache miss ratio
US20030135768A1 (en) * 2002-01-16 2003-07-17 Derek Knee Method and apparatus for conserving power on a multiprocessor integrated circuit
GB2388217A (en) * 2002-01-31 2003-11-05 Hewlett Packard Co Dynamically adjusted cache power supply to optimize for access or power consumption

Also Published As

Publication number Publication date
JP2008515095A (ja) 2008-05-08
US7257678B2 (en) 2007-08-14
CN101048763B (zh) 2012-05-23
CN101048763A (zh) 2007-10-03
KR101136141B1 (ko) 2012-04-17
KR20070054715A (ko) 2007-05-29
GB2432695B (en) 2008-07-09
TW200627148A (en) 2006-08-01
US20060075192A1 (en) 2006-04-06
WO2006039153A1 (en) 2006-04-13
GB0705275D0 (en) 2007-04-25
JP4456154B2 (ja) 2010-04-28
DE112005002672T5 (de) 2007-11-29
GB2432695A (en) 2007-05-30
TWI403899B (zh) 2013-08-01

Similar Documents

Publication Publication Date Title
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE69826353T2 (de) Integrierte Schaltung mit Bereitschaftmodussteuerschaltung für Speicher
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE112007001215B4 (de) Vorhersage der Leistungsnutzung von Rechenplattformspeicher
DE102005063122B4 (de) System und Verfahren zum Power Management von mehreren Informationsverarbeitungssystemen unter Berücksichtigung von systeminternen und systemexternen Steuerungsgrößen
DE112008001895B4 (de) Technik zum Bewahren zwischengespeicherter Information während eines Modus niedriger Leistung
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE112006002154T5 (de) Dynamische Speichergrösseneinteilung zur Leistungsreduktion
DE112010005821T5 (de) Kontextwechsel
DE112012005727T5 (de) Kombinierte "Cache einfügen und sperren"-Operation
DE112011104489T5 (de) Verfahren und Einrichtung zum Konfigurieren von Thermal Design Power in einem Mikroprozessor
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE10297166T5 (de) Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen
DE112009004900T5 (de) Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
DE112008001223T5 (de) Datenverarbeitung mit einem Cache-Zugriffsmodus mit geringer Leistung
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE112006000545T5 (de) System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren
DE112013000654T5 (de) Verzweigungsvorhersagelogik
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
DE102007018033A1 (de) Kohärenzverzeichnisaktualisierung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8327 Change in the person/name/address of the patent owner

Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

8328 Change in the person/name/address of the agent

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,

8364 No opposition during term of opposition
R020 Patent grant now final

Effective date: 20110302

R081 Change of applicant/patentee

Owner name: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, US

Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

Owner name: MEDIATEK INC., TW

Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY

R082 Change of representative

Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE

Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE

R081 Change of applicant/patentee

Owner name: MEDIATEK INC., TW

Free format text: FORMER OWNER: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, CA, US

R082 Change of representative

Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE