DE112005002672T5 - Dynamische Neukonfiguration eines Cache-Speichers - Google Patents
Dynamische Neukonfiguration eines Cache-Speichers Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 116
- 238000012544 monitoring process Methods 0.000 claims abstract description 49
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 21
- 230000002093 peripheral effect Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/27—Using a specific cache architecture
- G06F2212/271—Non-uniform cache access [NUCA] architecture
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
Ü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 aus4 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 Computersystems10 . In der dargestellten Ausführungsform umfasst das Computersystem10 einen Verarbeitungsknoten12 , der mit einem Speicher14 und mit Peripheriegeräten13A –13B verbunden ist. Der Knoten12 umfasst Prozessorkerne15A –15B , die mit einer Knotensteuerung20 verbunden sind, die ferner mit einer Speichersteuerung22 und mehreren HyperTransportTM(HT)-Schnittstellenschaltungen24A –24C verbunden ist. Die Prozessorkerne15A –15B sind ferner mit einem gemeinsamen Cache-Speicher bzw. schnellem Zwischenspeicher60 der Ebene Drei (L3) verbunden, der mit einer L3-Cache-Überwachungseinheit85 und einer Konfigurationseinheit50 verbunden ist. Die HT-Schaltung24C ist mit dem Peripheriegerät16A verbunden, das mit dem Peripheriegerät16B in einer Prioritätskettenkonfiguration (in dieser Ausführungsform unter Anwendung von HT-Schnittstellen) verbunden ist. Die restlichen HT-Schaltungen24A –24B sind mit anderen ähnlichen Verarbeitungsknoten (nicht gezeigt) über weitere HT-Schnittstellen (nicht gezeigt) verbunden. Die Speichersteuerung22 ist mit dem Speicher14 verbunden. In einer Ausführungsform ist der Knoten12 ein einzelner integrierter Schaltungs-Chip mit der Schaltung, die in1 gezeigt ist. Das heißt, der Knoten12 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 Verarbeitungsknoten12 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 Prozessorkerne15A und15B miteinander, mit anderen Knoten und mit dem Speicher zu verbinden. Die Knotensteuerung20 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 Prozessorkernen15A –15B , der Speichersteuerung22 und den HT-Schaltungen24A –24C in Abhängigkeit von der Kommunikationsart, der Adresse der Kom munikation etc., weitergeleitet werden. In einer Ausführungsform umfasst die Knotensteuerung20 eine Systemanforderungswarteschlange (SRQ), in die empfangene Kommunikationsaktivitäten von der Knotensteuerung20 geschrieben werden. Die Knotensteuerung20 kann Kommunikationsereignisse aus der SRQ für die Weiterleitung zum Ziel oder zu Zielen aus den Prozessorkernen15A –15B , den HT-Schaltungen24A –24C und der Speichersteuerung22 disponieren. Die Funktionsweise des Knotens12 und seiner Komponenten wird nachfolgend detaillierter erläutert. - Im Allgemeinen können die Prozessorkerne
15A –15B die Schnittstelle(n) zu der Knotensteuerung20 verwenden, um mit anderen Komponenten des Computersystems10 zu kommunizieren (beispielsweise mit dem Peripheriegerät16A –16B , anderen Prozessorkernen (nicht gezeigt), der Speichersteuerung22 , 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 Knotensteuerung20 und den Prozessorkernen15A –15B 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 Prozessorkerne15A –15B eine gemeinsame Schnittstelle zur Verbindung mit der Knotensteuerung20 (beispielsweise eine gemeinsam genutzte Busschnittstelle). Im Allgemeinen können die Kommunikationsaktivitäten von den Prozessorkernen15A –15B 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 Speicher14 einen oder mehrere RAMBUS-DRAMs (RDRAMSs), synchrone DRAMs (SDRAMs), SDRAMs mit doppelter Datenrate (DDR), statische RAMs, etc. aufweisen. Die Speichersteuerung22 kann eine Steuerschaltung zur Verbindung mit den Speichern14 umfassen. Zusätzlich kann die Speichersteuerung22 Anforderungswarteschlangen zum Aneinanderreihen von Speicheranforderungen, etc. enthalten. - Die HT-Schaltungen
24A –24C 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-Schaltung24A –24C 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äten16A –16B ). In der dargestellten Ausführungsform sind die HT-Schaltungen24A –24B nicht in Verwendung, und die HT-Schaltung24C ist über nicht-kohärente Verbindungen mit den Peripheriegeräten16A –16B verbunden. - Die Peripheriegeräte
16A –16B können eine beliebige Art von peripheren Geräten bzw. Einrichtungen sein. Zum Beispiel können die Peripheriegeräte16A –16B 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äte16A –16B 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
15A –15B 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 Prozessorkernen15A –15B eingerichtet sein. Die Prozessorkerne15A –15B 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-Speicher17A . In ähnlicher Weise enthält der Prozessorkern15B einen L2-Cache-Speicher17B . 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-Speicher17A –17B 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
17A –17B mit einer L2-Cache-Überwachungseinheit18A –18B und einer Konfigurationseinheit19A –19B verbunden. In einer Ausführungsform ist jede Cache-Überwachungseinheit (beispielsweise18A ,19A ,85 ) ausgebildet, die Auslastung des entsprechenden damit verbundenen Cache-Speichers zu überwachen. Beispielsweise kann die L2-Cache-Überwachungseinheit18A die Auslastung bzw. Nutzung des L2-Cache-Speichers17A überwachen. In der dargestellten Ausführungsform überwacht jede Cache-Überwachungseinheit Schaltungen (beispielsweise40A ,40B ,86 ), die die aktuelle Cache-Auslastung bestimmen und ermitteln, ob die aktuelle Auslastung innerhalb einer gegebenen Auslastungsgrenze liegt. Genauer gesagt, kann die Cache-Überwachungseinheit18A beispielsweise bestimmen, ob die aktuelle Auslastung des L2-Cache-Speichers17A unterhalb eines vorbestimmten Schwellwerts liegt. Wenn dies der Fall ist und benachrichtigt die Cache-Überwachungseinheit18A die Konfigurationseinheit19A . - In einer Ausführungsform umfasst die Konfigurationseinheit
19A einen oder mehrere Speicher, die als42A bezeichnet sind, etwa programmierbare Register, die Werte speichern können, die den diversen bevorzugten Konfigurationen und Zuständen des L2-Cache-Speichers17A entsprechen. Abhängig von den in den Speichereinrichtungen42A gespeichert Werten kann die Konfigurationseinheit19A programmiert sein, um selektiv einen oder mehrere der unabhängig steuerbaren Speicherblöcke des L2-Cache-Speichers17A in Reaktion auf die Benachrichtigung aus der L2-Cache-Überwachungseinheit18A zu aktivieren oder zu deaktivieren. Des Weiteren können die in den Speichern42A 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-Speicher17A 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 Prozessorkern15A den L2-Cache-Speicher17B des Prozessorkerns15B mitbenutzt und umgekehrt, abhängig von den darin gespeicherten Konfigurationswerten. Zum Beispiel kann in Reaktion darauf, dass die Cache-Überwachungseinheit40A bestimmt, dass die aktuelle Auslastung des L2-Cache-Speichers17A über einem oberen Schwellwert liegt, die Konfigurationseinheit12A Zugriff auf den L2-Cache-Speicher17B anfordern. In derartigen Fällen kann die Konfigurationseinheit42B den gemeinsamen Zugriff zulassen, wenn der L2-Cache-Speicher17B Blöcke aufweist, die deaktiviert und damit gemeinsam nutzbar sind. - In einer Ausführungsform können die Speichereinrichtungen
42A ,42B und51 der Konfigurationseinheiten19A ,19B und50 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 und51 unter Anwendung von Software programmiert werden. Zum Beispiel können spezielle Befehle verwendet werden, um auf die Speicher42A ,42B und51 zuzugreifen. In einer weiteren Ausführungsform können die Speicher42A ,42B und51 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 Speicher42A ,42B und51 mittels Konfigurationsanschlüssen44A ,44B und54 ü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 und85 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 von40A ,40B und86 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 Schaltung40A 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 Computersystem10 einen einzelnen Verarbeitungsknoten12 aufweist, in anderen Ausführungsformen eine andere Anzahl an Verarbeitungsknoten eingerichtet sein kann. In ähnlicher Weise kann ein Verarbeitungsknoten, etwa der Knoten12 , eine beliebige Anzahl an Prozessorkernen in diversen anderen Ausführungsformen aufweisen. In weiteren Ausführungsformen des Computersystems10 können eine unterschiedliche Anzahl an HT-Schnittstellen pro Knoten12 und unterschiedliche Anzahlen an Peripheriegeräten16 , die mit dem Knoten verbunden sind, und dergleichen, enthalten sein. -
2 ist eine Blockansicht einer weiteren Ausführungsform eines Computersystems20 . Komponenten, die in1 gezeigt sind, sind der Klarheit und der Einfachheit halber mit gleichen Bezugszahlen belegt. Ähnlich zu dem Computersystem10 aus1 umfasst das Computersystem20 aus2 einen Verarbeitungsknoten22 , der mit einem Speicher14 und Peripheriegeräten13A –13B verbunden ist. Der Verarbeitungsknoten22 enthält ähnliche Funktionen wie der Knoten12 aus1 . Folglich werden nur die unterschiedlichen Funktionen beschrieben, während die Funktionen, die gleich sind zu dem Knoten12 , der Kürze halber weggelassen werden. Zu beachten ist, dass der Verarbeitungsknoten22 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 Verarbeitungsknoten12 auch der Verarbeitungsknoten22 Prozessorkerne15A –15B , die mit einer Knotensteuerung20 verbunden sind, die wiederum mit einer Speichersteuerung22 und mehreren HyperTransportTM(HT)-Schnittstellenschaltungen24A –24C verbunden ist. Des Weiteren sind die Prozessorkerne15A –15B auch mit einem gemeinsamen Cache-Speicher der Ebene Drei (L3)60 verbunden. Jedoch ist der L3-Cache-Speicher60 mit einer Cache-Überwachungseinheit95 und einer Konfigurationseinheit65 verbunden. In einer Ausführungsform ist der Knoten22 ein einzelner integrierter Schaltungs-Chip, der die in2 gezeigte Schaltung enthält. Das heißt, der Knoten22 ist ein Chip-Multiprozessor (CMP). - In der dargestellten Ausführungsform ist im Gegensatz zu der Ausführungsform aus
1 jeder der L2-Cache-Speicher17A –17B auch mit der Cache-Überwachungseinheit95 und der Konfigurationseinheit65 verbunden. In einer Ausführungsform ist die Cache-Überwachungseinheit95 ausgebildet, die Auslastung aller Cache-Speicher, die mit ihr verbunden sind (beispielsweise L2-Cache-Speicher17A –17B und L3-Cache-Speicher60 ) zu überwachen, wobei eine Funktion eingesetzt wird, wie dies zuvor in Bezug mit der1 beschrieben ist. - In einer Ausführungsform enthält, ähnlich wie dies zuvor beschrieben ist, die Konfigurationseinheit
65 einen oder mehrere Speicher, die als61 bezeichnet sind, etwa programmierbare Register, die Werte enthalten, die den diversen bevorzugten Konfigurationen und Zuständen der L2-Cache-Speicher17A –17B und des L3-Cache-Speichers60 entsprechen. Abgesehen von den in den Speichern61 abgelegten Werten kann die Konfigurationseinheit65 programmiert sein, um einen oder mehrere der unabhängig steuerbaren Speicherblöcke der L2-Cache-Speicher17A –17B und des L3-Cache-Speichers60 in Reaktion auf die Benachrichtigung von der Cache-Überwachungseinheit95 zu aktivieren oder zu deaktivieren. In ähnlicher Weise können die in den Speichern61 abgelegten Werte bestimmen, ob die Leistungszufuhr für einen gegebenen Block abgeschaltet oder dessen Spannung abgesendet werden soll. Zu beachten ist, dass der Speicher61 in ähnlicher Weise wie die Speicher42A ,42B und51 , die zuvor beschrieben sind, programmiert werden kann. - Des Weiteren kann die Konfigurationseinheit
60 so ausgebildet sein, dass es dem Prozessorkern15A ermöglicht wird, den L2-Cache-Speicher17B des Prozessorkerns15B , 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-Speichers17A über einem oberen Schwellwert liegt, die Konfigurationseinheit65 Zugriff auf den L2-Cache-Speicher17B durch den Prozessorkern15A ermöglichen. In derartigen Fällen kann die Konfigurationseinheit65 den gemeinsamen Zugriff erlauben, wenn der L2-Cache-Speicher17B Blöcke besitzt die deaktiviert und damit gemeinsam nutzbar sind. -
3 zeigt ein Flussdiagramm, in welchem die Funktionsweise einer Ausführungsform des Verarbeitungsknotens12 beschrieben ist. Es sei nun gemeinsam auf1 und3 verwiesen; in einer Ausführungsform werden, wenn der Knoten12 zunächst eingeschaltet wird oder aus dem Reset-Zustand anläuft, die in der Konfigurationseinheit42A gespeicherten Konfigurationswerte ausgelesen und verwendet, um den L2-Cache-Speicher17A zu konfigurieren. In ähnlicher Weise können die in der Konfigurationseinheit42B gespeicherten Konfigurationswerte ausgelesen und verwendet werden, um den L2-Cache-Speicher17B zu konfigurieren, und die in der Konfigurationseinheit50 gespeicherten Konfigurationswerte können ausgelesen und verwendet werden, um den L3-Cache-Speicher60 zu konfigurieren. Bei einem Betrieb des Knotens12 sind die Cache-Überwachungseinheiten18A ,18B und85 ausgebildet, die aktuelle Auslastung jedes jeweiligen Cache-Speichers zu überwachen (Block300 ). Wie beispielsweise zuvor beschrieben ist, können die Cache-Überwachungseinheiten18A ,18b und85 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-Überwachungseinheit85 , ob die entsprechende aktuelle Auslastung innerhalb vorbestimmter Grenzen liegt. In einer Ausführungsform vergleicht die Cache-Überwachungseinheit85 die aktuelle Auslastung des L3-Cache-Speichers60 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-Speichers60 so fort, wie dies zuvor in Block300 beschrieben ist. Wenn jedoch die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte liegt und unterhalb des unteren Schwellwerts liegt (Block305 ), gibt die Überwachungseinheit85 eine Nachricht an die Konfigurationseinheit50 aus (Block310 ). Die Konfigurationseinheit50 kann selektiv einen oder mehrere Blöcke des L3-Cache-Speichers60 deaktivieren (Block315 ). In einer Ausfüh rungsform deaktiviert die Konfigurationseinheit50 Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern51 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 Prozessorkernen15A –15B entfernt sind, da diese Blöcke die längsten Verzögerungswege repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzt die Cache-Überwachungseinheit85 die Überwachung der Auslastung fort, wie dies zuvor in Block300 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-Überwachungseinheit85 eine Nachricht an die Konfigurationseinheit50 aus (Block320 ). Die Konfigurationseinheit50 kann selektiv einen oder mehrere deaktivierte Blöcke des L3-Cache-Speichers60 aktivieren (Block315 ), wenn deaktivierte Blöcke vorhanden sind. In einer Ausführungsform aktiviert die Konfigurationseinheit50 Blöcke entsprechend bevorzugten Konfigurationen, die in den Speichern51 abgelegt sind. Sobald die ausgewählten Blöcke erneut aktiviert sind, setzt die Cache-Überwachungseinheit85 die Überwachung der Auslastung fort, wie dies zuvor in Block300 beschrieben ist. - Im Block
330 bestimmen die Cache-Überwachungseinheiten18A und18B 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-Überwachungseinheiten18A –18B die aktuelle Auslastung der L2-Cache-Speicher17A –17B mit einem oberen Schwellwert und einem untere Schwellwert vergleichen. - Wenn die aktuelle Auslastung innerhalb der vorbestimmten Schwellwerte liegt, setzen die Cache-Überwachungseinheiten
18A –18B , die Überwachung der Auslastung der L2-Cache-Speicher17A –17B fort, wie dies in Block300 zuvor beschrieben ist. Wenn jedoch die aktuelle Auslastung eines Cache-Speichers nicht innerhalb der vorbestimmten Schwellwerte liegt und unter dem unteren Schwellwert liegt (Block330 ), liefert die entsprechende Cache-Überwachungseinheit18A –18B eine entsprechende Nachricht an die Konfigurationseinheit19A –19B (Block335 ). Die Konfigurationseinheiten19A –19B deaktivieren selektiv einen oder mehrere Blöcke der entsprechenden L2-Cache-Speicher17A –17B (Block340 ). In einer Ausführungsform deaktivieren die Konfigurationseinheiten19A –19B Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern42A –42B 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 Prozessorkerne15A –15B entfernt sind, da diese Blöcke die längsten Verzögerungsstrecken repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzen die Cache-Überwachungseinheiten18A –18B die Überwachung der Auslastung in der in Block300 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-Überwachungseinheiten18A –18B eine Nachricht für die Konfigurationseinheiten19A –19B (Block345 ). Wenn einer der L2-Blöcke in dem betroffenen L2-Cache-Speicher deaktiviert ist (Block350 ), kann die Konfigurationseinheit19A –19B selektiv einen oder mehrere Blöcke der L2-Cache-Speicher17A –17B aktivieren (Block355 ). In einer Ausführungsform deaktivieren die Konfigurationseinheiten19A –19B Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern42A –42B 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örnern15A –15B entfernt sind, da diese Blöcke die längsten Verzögerungsstrecken repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzen die Cache-Überwachungseinheiten18A –18B die Überwachung der Auslastung fort, wie dies zuvor in Block300 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-Überwachungseinheit18B erkennt, dass die aktuelle Auslastung des L2-Cache-Speichers17B über dem oberen Schwellwert liegt, kann die Konfigurationseinheit19B Zugriff von der Konfigurationseinheit19A für den L2-Cache-Speicher17A anfordern. In Reaktion auf die Anforderung bestimmt die Konfigurationseinheit19A , ob der L2-Cache-Speicher17A deaktivierte Blöcke für eine gemeinsame Benutzung aufweist (Block360 ). Wenn dies der Fall ist, gewährt die Konfigurationseinheit19A Zugriff für den Prozessorkern15B , um die deaktivierten Blöcke des L2-Cache-Speichers17A gemeinsam zu nutzen (Block365 ). Die deaktivierten Blöcke können dann reaktiviert werden. Der Ablauf geht dann weiter, wie dies zuvor in Block300 beschrieben ist. - Die Beschreibungen der
4 und5 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 Mikroprozessor415 enthält eine Prozessorkernlogik450 , die mit einem L1-Cache-Speicher475 , einem L2-Cache-Speicher417 und einem L3-Cache-Speicher460 verbunden ist. Der Mikroprozessor415 enthält ferner eine Cache-Überwachungseinheit418 , die mit dem L2-Cache-Speicher417 und dem L3-Cache-Speicher460 verbunden ist. Ferner enthält der Mikroprozessor415 eine Konfigurationseinheit419 , die mit der Cache-Überwachungseinheit418 und mit jeweils dem L1-Cache-Speicher475 , dem L2-Cache-Speicher417 und dem L3-Cache-Speicher460 verbunden ist. Zu beachten ist, dass der Mikroprozessor415 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 Konfigurationseinheit419 ähnlich zu jener der L2-Cache-Überwachungseinheit95 und der Konfigurationseinheit65 , die zuvor in Verbindung mit2 und3 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 aus4 beschrieben ist. Es sei gemeinsam auf4 und5 verwiesen; in einer Ausführungsform werden, wenn der Mikroprozessor415 zunächst eingeschaltet oder aus dem Reset-Zustand hochgefahren wird, die in den Speichern442 der Konfigurationseinheit419 gespeicherten Konfigurationswerte ausgelesen und verwendet, um den L2-Cache-Speicher417 zu konfigurieren. In ähnlicher Weise werden die in der Konfigurationseinheit419 gespeicherten Konfigurationswerte ausgelesen und verwendet, um den L3-Cache-Speicher460 zu konfigurieren. Während des Betriebs des Mikroprozessors415 ist die Cache-Überwachungseinheit418 ausgebildet, die aktuelle Auslastung jedes Cache-Speichers zu überwachen (Block500 ). Wie beispielsweise zuvor beschrieben ist, kann die Cache-Überwachungseinheit418 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-Überwachungseinheit418 , ob die entsprechende aktuelle Auslastung jedes Cache-Speichers innerhalb vorbestimmter Grenzen liegt und in einer Ausführungsform vergleicht die Cache-Überwachungseinheit418 die aktuelle Auslastung des L2-Cache-Speichers417 und die aktuelle Auslastung des L3-Cache-Speichers460 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-Speichers417 und des L3-Cache-Speichers460 in der zuvor in Block500 beschriebenen Weise fort. Wenn jedoch die aktuelle Auslastung nicht innerhalb der vorbestimmten Schwellwerte liegt und unter dem unteren Schwellwert ist (Block505 ), gibt die Cache-Überwachungseinheit418 eine Benachrichtigung an die Konfigurationseinheit419 aus (Block510 ). Die Konfigurationseinheit419 kann selektiv einen oder mehrere Blöcke des L2-Cache-Speichers417 oder des L3-Cache-Speichers460 deaktivieren (Block515 ). In einer Ausführungsform deaktiviert die Konfigurationseinheit419 Blöcke entsprechend den bevorzugten Konfigurationen, die in den Speichern442 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 Prozessorkernlogik450 liegen, da diese Blöcke die längsten Verzögerungsstrecken repräsentieren. Sobald die ausgewählten Blöcke deaktiviert sind, setzt die Cache-Überwachungseinheit418 die Überwachung der Auslastung fort, wie dies zuvor in Block500 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-Überwachungseinheit418 eine Benachrichtigung an die Konfigurationseinheit419 (Block320 ). Die Konfigurationseinheit419 aktiviert einen oder mehrere deaktivierte Blöcke des L2-Cache-Speichers417 und des L3-Cache-Speichers460 in selektiver Weise (Block525 ), wenn deaktivierte Blöcke vorhanden sind. In einer Ausführungsform aktiviert die Konfigurationseinheit419 Blöcke gemäß den bevorzugten Konfigurationen, die in dem Speicher442 abgelegt sind. Sobald die ausgewählten Blöcke erneut aktiviert sind, setzt die Ca che-Überwachungseinheit418 die Überwachung der Auslastung fort, wie dies zuvor in Block500 beschrieben ist. - Ähnlich zu der zuvor angegebenen Beschreibung werden in einer Ausführungsform die Speicher
440 und442 unter Anwendung von Software programmiert. Beispielsweise können spezielle Befehle angewendet werden, um auf die Speicher440 und442 zuzugreifen. In einer weiteren Ausführungsform werden die Speicher440 und442 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 Speicher440 und442 mittels einem Konfigurationsanschluss44A ü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)
- 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. - Verfahren nach Anspruch 1, das ferner Speichern des vorbestimmten Auslastungswerts in einem konfigurierbaren Speicher (
442 ) umfasst. - Verfahren nach Anspruch 1, wobei Bestimmen, ob die Auslastung unterhalb eines vorbestimmten Auslastungswerts liegt, umfasst: Vergleichen des vorbestimmten Auslastungswerts mit der aktuellen Auslastung.
- 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.
- 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.
- 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.
- 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. - 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. - 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.
- 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.
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)
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)
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 |
-
2004
- 2004-10-01 US US10/956,560 patent/US7257678B2/en active Active
-
2005
- 2005-09-21 WO PCT/US2005/033671 patent/WO2006039153A1/en active Application Filing
- 2005-09-21 CN CN2005800330956A patent/CN101048763B/zh active Active
- 2005-09-21 JP JP2007534653A patent/JP4456154B2/ja not_active Expired - Fee Related
- 2005-09-21 GB GB0705275A patent/GB2432695B/en not_active Expired - Fee Related
- 2005-09-21 DE DE112005002672T patent/DE112005002672B4/de active Active
- 2005-09-21 KR KR1020077007488A patent/KR101136141B1/ko active IP Right Grant
- 2005-09-26 TW TW094133304A patent/TWI403899B/zh active
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 |