DE112005002672T5 - Dynamische Neukonfiguration eines Cache-Speichers - Google Patents

Dynamische Neukonfiguration eines Cache-Speichers Download PDF

Info

Publication number
DE112005002672T5
DE112005002672T5 DE112005002672T DE112005002672T DE112005002672T5 DE 112005002672 T5 DE112005002672 T5 DE 112005002672T5 DE 112005002672 T DE112005002672 T DE 112005002672T DE 112005002672 T DE112005002672 T DE 112005002672T DE 112005002672 T5 DE112005002672 T5 DE 112005002672T5
Authority
DE
Germany
Prior art keywords
cache
cache memory
utilization
memory
determining
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.)
Granted
Application number
DE112005002672T
Other languages
English (en)
Other versions
DE112005002672B4 (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

Landscapes

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

Abstract

Verfahren zum Konfigurieren eines Cache-Speichers (417, 460) eines Prozessors (415), dadurch gekennzeichnet, dass das Verfahren umfasst:
Überwachen einer aktuellen Auslastung des Cache-Speichers; Bestimmen, ob die aktuelle Auslastung unter einem vorbestimmten Auslastungswert liegt; und
Selektives Deaktivieren eines oder mehrerer Bereiche des Cache-Speichers in Reaktion darauf, dass die aktuelle Auslastung als unter dem vorbestimmten Auslastungswert liegend bestimmt wird.

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft das Gebiet der Mikroprozessoren und der Chip-Multiprozessoren (CMP) und betrifft insbesondere die Neukonfiguration bzw. Rekonfiguration eines Cache-Speichers eines Prozessors.
  • HINTERGRUND DER ERFINDUNG
  • 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.
  • Da CMP-Bauelemente mehrere Prozessorkerne enthalten, können diese auch eine Schaltung enthalten, die jedem Kern zugeordnet ist. Beispielsweise kann ein CMP einen L1- und einen L2-Cache-Speicher für jeden Prozessorkern enthalten. Somit kann aus den zuvor beschriebenen Gründen im Vergleich zu Mikroprozessoren mit einem einzelnen Kern die Leistungsaufnahme und das thermische Budget eines CMP dennoch hoch sein. Es ist daher eine Aufgabe, Möglichkeiten aufzuzeigen, um die Leistungsaufnahme zu reduzieren, wobei das Leistungsverhalten des Prozessors beibehalten wird.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Es sind diverse Ausführungsformen einer dynamischen Neukonfiguration bzw. Rekonfiguration eines Cache-Speichers angegeben. In einer Ausführungsform umfasst ein Prozessor einen Cache-Speicher, etwa einen L2-Cache, der beispielsweise mit einer Cache-Überwachungseinheit und einer Konfigurationseinheit verbunden ist. Die Cache-Überwachungseinheit ist ausgebildet, eine aktuelle Auslastung des Cache-Speichers zu überwachen und zu bestimmen, ob die aktuelle Auslastung unter einem vorbestimmten Auslastungswert liegt. Die Konfigurationseinheit kann selektiv einen oder mehrere Bereiche des Cache-Speichers in Reaktion daraufhin deaktivieren, dass die Cache-Überwachungseinheit bestimmt, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt.
  • In einer weiteren Ausführungsform umfasst ein Verarbeitungsknoten mehrere Prozessorkerne, wovon jeder einen Cache-Speicher aufweist, der mit einer Cache-Überwachungseinheit und einer Konfigurationseinheit verbunden ist. Jede Cache-Überwachungseinheit ist ausgebildet, unabhängig eine aktuelle Auslastung des Cache-Speichers, mit welchem sie verbunden ist, zu überwrachen und zu bestimmen, ob die aktuelle Auslastung unterhalb eines vorbestimmten Auslastungswerts liegt. Die Konfigurationseinheit kann selektiv einen oder mehrere Bereiche des Cache-Speichers in Reaktion daraufhin deaktivieren, dass die Cache-Überwachungseinheit bestimmt, dass eine gegebene aktuelle Auslastung unterhalb des vorbestimmten Auslastungswerts liegt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • 4 ist eine Blockansicht einer Ausführungsform eines Mikroprozessors mit einem Prozessor mit einem einzelnen Kern und einem konfigurierbaren Cache-Speicher.
  • 5 ist ein Flussdiagramm, das die Funktion einer Ausführungsform des Mikroprozessors aus 4 beschreibt.
  • Obwohl die Erfindung diversen Modifizierungen und alternativen Formen unterliegen kann, sind dennoch spezielle Ausführungsformen beispielhaft in den Zeichnungen dargestellt und sind nachfolgend detailliert beschrieben. Es sollte jedoch beachtet werden, dass die Zeichnungen und die detaillierte Beschreibung nicht beabsichtigen, die Erfindung auf die spezielle offenbarte Form einzuschränken, sondern die Erfindung soll vielmehr alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und Schutzbereichs der vorliegenden Erfindung, wie sie durch die angefügten Patentansprüche definiert ist, liegen. Zu beachten ist, dass die Überschriften nur der Einteilung dienen und nicht gedacht sind, um die Beschreibung oder die Ansprüche zu beschränken oder zu interpretieren. Des Weiteren ist zu beachten, dass der Begriff "kann" durchwegs in dieser Anmeldung im Sinne des Fähigseins (d. h. das Potenzial haben, in der Lage sein zu) und nicht im Sinne eines Erfordernisses verwendet ist (d. h. muss). Der Begriff "enthalten" und Ableitungen davon bedeuten "einschließlich aber nicht darauf beschränkt". Der Begriff "verbunden" bedeutet "direkt oder indirekt verbunden" und der Begriff "gekoppelt" bedeutet "direkt oder indirekt gekoppelt".
  • ART BZW. ARTEN ZUM AUSFÜHREN DER ERFINDUNG
  • Chip-Multiprozessor mit dynamisch konfigurierbarem Cache-Speicher
  • 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 15A15B, 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.
  • Konfigurierbare Cache-Steuerung
  • In der dargestellten Ausführungsform umfasst der Prozessorkern 15A einen L3-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 und 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 Kontext- umschaltung 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 12A 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 beschrie- ben 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.
  • Die Beschreibungen der 4 und 5 stellen nachfolgend zusätzliche Ausführungsformen eines konfigurierbaren Cache-Speichers im Zusammenhang mit einem Mikroprozessor bereit, der einen einzelnen Prozessorkern enthält.
  • Einzelner Mikroprozessor mit dynamisch konfigurierbarem Cache-Speicher
  • 4 zeigt eine Blockansicht einer Ausführungsform eines Mikroprozessors mit einem einzelnen Prozessorkern und einem konfigurierbaren Cache-Speicher. Ein Mikroprozessor 415 enthält eine Prozessorkernlogik 450, die mit einem L1-Cache-Speicher 475, einem L2-Cache-Speicher 417 und einem L3-Cache-Speicher 460 verbunden ist. Der Mikroprozessor 415 enthält ferner eine Cache-Überwachungseinheit 418, die mit dem L2-Cache-Speicher 417 und dem L3-Cache-Speicher 460 verbunden ist. Ferner enthält der Mikroprozessor 415 eine Konfigurationseinheit 419, die mit der Cache-Überwachungseinheit 418 und mit jeweils dem L1-Cache-Speicher 475, dem L2-Cache-Speicher 417 und dem L3-Cache-Speicher 460 verbunden ist. Zu beachten ist, dass der Mikroprozessor 415 diverse andere Schaltungen aufweisen kann, die der Einfachheit halber hier weggelassen sind.
  • In der dargestellten Ausführungsform ist die Funktionsweise der Cache-Überwachungseinheit 418 und der Konfigurationseinheit 419 ähnlich zu jener der L2-Cache-Überwachungseinheit 95 und der Konfigurationseinheit 65, die zuvor in Verbindung mit 2 und 3 beschrieben sind. Folglich wird der Kürze halber die entsprechende Beschreibung hier weggelassen.
  • 5 ist ein Flussdiagramm, in der die Funktionsweise einer Ausführungsform des Mikroprozessors aus 4 beschrieben ist. Es sei gemeinsam auf 4 und 5 verwiesen; in einer Ausführungsform werden, wenn der Mikroprozessor 415 zunächst eingeschaltet oder aus dem Reset-Zustand hochgefahren wird, die in den Speichern 442 der Konfigurationseinheit 419 gespeicherten Konfigurationswerte ausgelesen und verwendet, um den L2-Cache-Speicher 417 zu konfigurieren. In ähnlicher Weise werden die in der Konfigurationseinheit 419 gespeicherten Konfigurationswerte ausgelesen und verwendet, um den L3-Cache-Speicher 460 zu konfigurieren. Während des Betriebs des Mikroprozessors 415 ist die Cache-Überwachungseinheit 418 ausgebildet, die aktuelle Auslastung jedes Cache-Speichers zu überwachen (Block 500). Wie beispielsweise zuvor beschrieben ist, kann die Cache-Überwachungseinheit 418 die Zugriffshäufigkeit und die Nutzung der Cache- Einträge verfolgen, um damit die aktuelle Auslastung für jeden Cache-Speicher zu bestimmen.
  • Auf der Grundlage der aktuellen Auslastung bestimmt in Block 505 die Cache-Überwachungseinheit 418, ob die entsprechende aktuelle Auslastung jedes Cache-Speichers innerhalb vorbestimmter Grenzen liegt und in einer Ausführungsform vergleicht die Cache-Überwachungseinheit 418 die aktuelle Auslastung des L2-Cache-Speichers 417 und die aktuelle Auslastung des L3-Cache-Speichers 460 mit einem oberen Schwellwert und einem unteren Schwellwert.
  • Wenn die aktuelle Auslastung innerhalb der vorbestimmten Schwellwerte liegt, setzt die Cache-Überwachungseinheit 418 die Überwachung der Auslastung des L2-Cache-Speichers 417 und des L3-Cache-Speichers 460 in der zuvor in Block 500 beschriebenen Weise fort. Wenn jedoch die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte liegt und unter dem unteren Schwellwert ist (Block 505), gibt die Cache-Überwachungseinheit 418 eine Benachrichtigung an die Konfigurationseinheit 419 aus (Block 510). Die Konfigurationseinheit 419 kann selektiv einen oder mehrere Blöcke des L2-Cache-Speichers 417 oder des L3-Cache-Speichers 460 deaktivieren (Block 515). In einer Ausführungsform deaktiviert die Konfigurationseinheit 419 Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern 442 abgelegt sind, und in Reaktion auf die Benachrichtigung. Wie z. B. zuvor beschrieben ist, kann die Leistung für die ausgewählten Blöcke abgeschaltet werden oder es kann eine reduzierte Spannung zugeführt werden. Des Weiteren sind in einer Ausführungsform die zuerst ausgewählten Blöcke jene Blöcke, die am weitesten weg von der Prozessorkernlogik 450 liegen, da diese Blöcke die längsten Verzögerungsstrecken repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzt die Cache-Überwachungseinheit 418 die Überwachung der Auslastung fort, wie dies zuvor in Block 500 beschrieben ist.
  • Es sei nun wieder auf den Block 505 verwiesen; wenn die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte liegt und über dem oberen Schwellwert ist, liefert die Cache-Überwachungseinheit 418 eine Benachrichtigung an die Konfigurationseinheit 419 (Block 320). Die Konfigurationseinheit 419 aktiviert einen oder mehrere deaktivierte Blöcke des L2-Cache-Speichers 417 und des L3-Cache-Speichers 460 in selektiver Weise (Block 525), wenn deaktivierte Blöcke vorhanden sind. In einer Ausführungsform aktiviert die Konfigurationseinheit 419 Blöcke gemäß den bevorzugten Konfigurationen, die in dem Speicher 442 abgelegt sind. Sobald die ausgewählten Blöcke erneut aktiviert sind, setzt die Ca che-Überwachungseinheit 418 die Überwachung der Auslastung fort, wie dies zuvor in Block 500 beschrieben ist.
  • Ähnlich zu der zuvor angegebenen Beschreibung werden in einer Ausführungsform die Speicher 440 und 442 unter Anwendung von Software programmiert. Beispielsweise können spezielle Befehle angewendet werden, um auf die Speicher 440 und 442 zuzugreifen. In einer weiteren Ausführungsform werden die Speicher 440 und 442 in einer permanenteren Weise unter Anwendung von fest verdrahteten Sicherungen programmiert, wie dies zuvor beschrieben ist. In einer derartigen Ausführungsform werden die Werte aus den unterbrochenen Sicherungen ausgelesen und in den Speichern gespeichert. In einer Ausführungsform können die fest verdrahteten Sicherungen durch externe Programmierung überschrieben werden. In einer derartigen Ausführungsform können die Speicher 440 und 442 mittels einem Konfigurationsanschluss 44A über einen externen Anschluss, etwa einen gemeinsamen Testaktionsgruppen-(JTAG)Anschluss, programmiert werden. Das Überschreiben der fest verdrahteten Sicherungen auf diese Weise wird häufig als eine Programmierung mittels Software-Sicherungen bezeichnet.
  • Es ist zu beachten, dass in den zuvor beschriebenen Ausführungsformen ein L3-Cache-Speicher gezeigt ist. In anderen Ausführungsformen ist ein L3-Cache-Speicher nicht enthalten. Das Fehlen eines L3-Cache-Speichers verhindert keineswegs die Konfigurierbarkeit der L2-Cache-Speicher.
  • Obwohl die vorhergehenden Ausführungsformen detailliert beschrieben sind, können dennoch zahlreiche Variationen und Modifikationen vom Fachmann vorgenommen werden, sobald er die vorliegende Offenbarung vollständig gewürdigt hat. Es ist beabsichtigt, dass die folgenden Ansprüche so interpretiert werden, dass alle derartigen Variationen und Modifizierungen mit eingeschlossen sind.
  • Industrielle Anwendbarkeit
  • Diese Erfindung ist im Allgemeinen auf die Rekonfigurierung eines Cache-Speichers für Mikroprozessoren und Chip-Multiprozessoren anwendbar.
  • ZUSAMMENFASSUNG
  • In einer Ausführungsform umfasst ein Verarbeitungsknoten mehrere Prozessorkerne, wovon jeder einen Cache-Speicher aufweist, der mit einer Cache-Überwachungseinheit und einer Konfigurationseinheit verbunden ist. Jede Cache-Überwachungseinheit ist ausgebildet, unabhängig eine Auslastung des Cache-Speichers, mit dem sie verbunden ist, zu überwachen und zu bestimmen, ob die aktuelle Auslastung unter einem vorbestimmten Auslastungswert liegt. Die Konfigurationseinheit kann selektiv einen oder mehrere Bereiche des Cache-Speichers in Reaktion darauf deaktivieren, dass die Cache-Überwachungseinheit bestimmt, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt.

Claims (10)

  1. Verfahren zum Konfigurieren eines Cache-Speichers (417, 460) eines Prozessors (415), dadurch gekennzeichnet, dass das Verfahren umfasst: Überwachen einer aktuellen Auslastung des Cache-Speichers; Bestimmen, ob die aktuelle Auslastung unter einem vorbestimmten Auslastungswert liegt; und Selektives Deaktivieren eines oder mehrerer Bereiche des Cache-Speichers in Reaktion darauf, dass die aktuelle Auslastung als unter dem vorbestimmten Auslastungswert liegend bestimmt wird.
  2. Verfahren nach Anspruch 1, das ferner Speichern des vorbestimmten Auslastungswerts in einem konfigurierbaren Speicher (442) umfasst.
  3. Verfahren nach Anspruch 1, wobei Bestimmen, ob die Auslastung unterhalb eines vorbestimmten Auslastungswerts liegt, umfasst: Vergleichen des vorbestimmten Auslastungswerts mit der aktuellen Auslastung.
  4. Verfahren nach Anspruch 1, das ferner umfasst: Bestimmen des aktuellen Auslastungswerts durch Bestimmen einer Anzahl von Einträgen, die in dem Cache-Speicher verwendet werden, und Bestimmen, wie häufig auf den Cache-Speicher zugegriffen wird.
  5. Verfahren nach Anspruch 4, wobei Bestimmen einer Anzahl von Einträgen, die in dem Cache-Speicher verwendet werden, umfasst: Überwachen einer Anzahl von Schreiboperationen in dem Cache-Speicher, die das Erzeugen eines Ziels hervorrufen.
  6. Verfahren nach Anspruch 4, wobei Bestimmen, wie häufig auf den Cache-Speicher zugegriffen wird, umfasst: Zählen einer Anzahl an Zugriffen auf den Cache-Speicher unter Anwendung eines Zählers.
  7. Prozessor (415) mit: einem Cache-Speicher (417, 460); einer Cache-Überwachungseinheit (418), die mit dem Cache-Speicher verbunden und ausgebildet ist, eine aktuelle Auslastung des Cache-Speichers zu überwachen und zu bestimmen, ob die aktuelle Auslastung unter einem vorbestimmten Auslastungswert liegt; und einer Konfigurationseinheit (419), die mit der Cache-Überwachungseinheit und dem Cache-Speicher verbunden ist, wobei die Cache-Konfigurationseinheit ausgebildet ist, einen oder mehrere Bereiche des Cache-Speichers in Reaktion darauf selektiv zu deaktivieren, dass die Cache-Überwachungseinheit bestimmt, dass die aktuelle Auslastung unterhalb des vorbestimmten Auslastungswerts liegt.
  8. Verfahren zum dynamischen Konfigurieren eines Verarbeitungsknotens (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.
  9. Verfahren nach Anspruch 1, das ferner umfasst: Bestimmen des aktuellen Auslastungswerts durch Bestimmen einer Anzahl an Einträgen, die in dem Cache-Speicher verwendet werden, und Bestimmen, wie häufig auf den Cache-Speicher zugegriffen wird.
  10. Verarbeitungsknoten (12, 22) mit: mehreren Prozessorkernen (15A, 15B), wovon jeder umfasst: einen Cache-Speicher (17A, 17B, 60); eine Cache-Überwachungseinheit (18A, 18B, 85, 95), die mit dem Cache-Speicher verbunden ist, wobei jede Cache-Überwachungseinheit ausgebildet ist, unabhängig eine aktuelle Auslastung des Cache-Speichers, mit dem die Cache-Überwachungs einheit verbunden ist, zu überwachen und zu bestimmen, ob die aktuelle Auslastung unter einem vorbestimmten Auslastungswert liegt; und eine Konfigurationseinheit (19A, 19B, 50, 65), die mit der Cache-Überwachungseinheit und dem Cache-Speicher verbunden ist, wobei die Cache-Konfigurationseinheit ausgebildet ist, einen oder mehrere Bereiche des entsprechenden Cache-Speichers, mit dem die Konfigurationseinheit verbunden ist, in Reaktion darauf selektiv zu deaktivieren, dass die Cache-Überwachungseinheit bestimmt, dass die aktuelle Auslastung unter dem vorbestimmten Auslastungswert liegt.
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 true DE112005002672T5 (de) 2007-11-29
DE112005002672B4 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
WO2011112523A2 (en) * 2010-03-08 2011-09-15 Hewlett-Packard Development Company, L.P. Data storage apparatus and methods
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
JP5820336B2 (ja) 2011-05-20 2015-11-24 株式会社半導体エネルギー研究所 半導体装置
JP5820335B2 (ja) 2011-05-20 2015-11-24 株式会社半導体エネルギー研究所 半導体装置
CN103597545B (zh) 2011-06-09 2016-10-19 株式会社半导体能源研究所 高速缓冲存储器及其驱动方法
JP6012263B2 (ja) 2011-06-09 2016-10-25 株式会社半導体エネルギー研究所 半導体記憶装置
US8595464B2 (en) * 2011-07-14 2013-11-26 Oracle International Corporation Dynamic sizing of translation lookaside buffer for power reduction
US20130138884A1 (en) * 2011-11-30 2013-05-30 Hitachi, Ltd. Load distribution system
US8868843B2 (en) 2011-11-30 2014-10-21 Advanced Micro Devices, Inc. Hardware filter for tracking block presence in large caches
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 株式会社半導体エネルギー研究所 半導体装置
US10719434B2 (en) * 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode
WO2016097808A1 (en) 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US9798668B2 (en) 2014-12-14 2017-10-24 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode
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

Family Cites Families (24)

* 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
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
US5881311A (en) * 1996-06-05 1999-03-09 Fastor Technologies, Inc. Data storage subsystem with block based data management
EP0856797B1 (de) * 1997-01-30 2003-05-21 STMicroelectronics Limited Cachespeichersystem für gleichzeitig laufende Prozesse
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
EP1182567B1 (de) 2000-08-21 2012-03-07 Texas Instruments France Softwaregesteuerte Cache-Speicherkonfiguration
EP1182559B1 (de) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Mikroprozessor
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
US6922783B2 (en) * 2002-01-16 2005-07-26 Hewlett-Packard Development Company, L.P. Method and apparatus for conserving power on a multiprocessor integrated circuit
US20030145170A1 (en) * 2002-01-31 2003-07-31 Kever Wayne D. Dynamically adjusted cache power supply to optimize for cache access or power consumption
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE69826353T2 (de) Integrierte Schaltung mit Bereitschaftmodussteuerschaltung für Speicher
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE102007006190B4 (de) Techniken zur Verwendung von Speicher-Attributen
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE112007001215B4 (de) Vorhersage der Leistungsnutzung von Rechenplattformspeicher
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE102005063122B4 (de) System und Verfahren zum Power Management von mehreren Informationsverarbeitungssystemen unter Berücksichtigung von systeminternen und systemexternen Steuerungsgrößen
DE102008062692B4 (de) Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
DE112010005821T5 (de) Kontextwechsel
DE112006002154T5 (de) Dynamische Speichergrösseneinteilung zur Leistungsreduktion
DE10297166T5 (de) Mechanismus zur Interrupt-Abwicklung in Computersystemen, welche die gleichzeitige Ausführung mehrerer Threads unterstützen
DE112013000654T5 (de) Verzweigungsvorhersagelogik
DE112007001714T5 (de) Virtualisieren von Leistungszählern
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE102010055267A1 (de) Gemeinsames Benutzen von Ressourcen zwischen einer CPU und GPU
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE112008001223T5 (de) Datenverarbeitung mit einem Cache-Zugriffsmodus mit geringer Leistung
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