DE112006002056T5 - Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren - Google Patents
Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren Download PDFInfo
- Publication number
- DE112006002056T5 DE112006002056T5 DE112006002056T DE112006002056T DE112006002056T5 DE 112006002056 T5 DE112006002056 T5 DE 112006002056T5 DE 112006002056 T DE112006002056 T DE 112006002056T DE 112006002056 T DE112006002056 T DE 112006002056T DE 112006002056 T5 DE112006002056 T5 DE 112006002056T5
- Authority
- DE
- Germany
- Prior art keywords
- processor core
- level
- maximum
- core
- work
- 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.)
- Ceased
Links
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 18
- 230000002093 peripheral effect Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000001427 coherent effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000007704 transition 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
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- 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
-
- 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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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)
- Software Systems (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
- Debugging And Monitoring (AREA)
Abstract
Verarbeitungsknoten
(12), der in einem einzelnen integrierten Schaltungschip umfasst:
einen ersten Prozessorkern (18A);
einen zweiten Prozessorkern (18B);
ein Betriebssystem (13A, 13B), das auf dem ersten Prozessorkern und/oder dem zweiten Prozessorkern ausgeführt wird und ausgebildet ist, unabhängig ein Arbeitsleistungsniveau des ersten Prozessorkerns und des zweiten Prozessorkerns und in Abhängigkeit von einem Auslastungspegel des ersten Prozessorkerns und/oder des zweiten Prozessorkerns zu steuern.
einen ersten Prozessorkern (18A);
einen zweiten Prozessorkern (18B);
ein Betriebssystem (13A, 13B), das auf dem ersten Prozessorkern und/oder dem zweiten Prozessorkern ausgeführt wird und ausgebildet ist, unabhängig ein Arbeitsleistungsniveau des ersten Prozessorkerns und des zweiten Prozessorkerns und in Abhängigkeit von einem Auslastungspegel des ersten Prozessorkerns und/oder des zweiten Prozessorkerns zu steuern.
Description
- HINTERGRUND DER ERFINDUNG
- Technisches Gebiet
- Diese Erfindung betrifft Multikernprozessoren und betrifft insbesondere die Arbeitsleistung in einer Prozessorumgebung mit mehreren Kernen.
- Hintergrund der Erfindung
- Chipmultiprozessoren (CMPs) werden zunehmend populär. Ein CMP besitzt zwei oder mehrere Prozessorkerne, die in der gleichen integrierten Schaltung eingerichtet sind. CMPs können die Millionen an Transistoren effizienter ausnutzen, die in einer integrierten Schaltung enthalten sind im Vergleich zu beispielsweise einem modernen einzelnen Prozessor.
- In vielen Fällen werden CMPs verwendet, um die Rechenfähigkeit eines Systems zu erhöhen, in dem mehr als ein Prozessor die zentralen Verarbeitungsaufgaben ausführen. Durch die Aufteilung der Arbeitsleistung in einem CMP kann ferner die Verarbeitungseffizienz erhöht werden, wobei dennoch insgesamt das thermische Budget und das Leistungsbudget im Vergleich zu einem Einzelkernprozessor, der bei seiner maximalen Frequenz arbeitet, verringert werden können.
- Jedoch wird ein gewisser Anteil der verfügbaren Verarbeitungsbandbreite in einigen CMPs aufgrund der thermischen Rahmenbedingungen und der Leistungsbeschränkungen, die dem CMP auferlegt werden, verschwendet. Beispielsweise sind in einer Doppelkernausführungsform beide Kerne individuell in der Lage, bei drei Gigahertz (GHz) zu arbeiten. Aufgrund der thermischen Beschränkung im Hinblick auf das Gehäuse oder im Hinblick auf das Leistungsbudget für das System sind jedoch gegebenenfalls beide Prozessorkerne auf eine Arbeitsfrequenz von 2,7 GHz begrenzt.
- ÜBERBLICK ÜBER DIE ERFINDUNG
- Hierin werden diverse Ausführungsformen für einen Multikernverarbeitungsknoten offenbart. Allgemein gesagt, wird hierin ein Verarbeitungsknoten betrachtet, in welchem ein Betriebssystem, das auf einem von mehreren Prozessorkernen, die in den Verarbeitungsknoten integriert sind, ausgeführt wird, die Auslastung jedes der Prozessorkerne überwacht. In Reaktion auf das Erkennen, dass einer oder mehrere der Prozessorkerne unterhalb einer Auslastungsschwelle arbeiten, veranlasst das Betriebssystem den einen oder die mehreren Prozessorkerne in einem Zustand mit geringerer Leistungsfähigkeit zu arbeiten oder nach Bedarf in einen Zustand minimaler Leistung überzugehen. Des Weiteren kann das Betriebssystem ferner die gerade verwendeten Prozessorkerne veranlassen, in einem Arbeitsleistungszustand zu arbeiten, der über einem maximalen Arbeitsleistungszustand des Systems liegt.
- In einer Ausführungsform umfasst ein Verarbeitungsknoten, der in einem einzelnen integrierten Schaltungschip integriert ist, einen ersten Prozessorkern in einen zweiten Prozessorkern. Der Verarbeitungsknoten umfasst ein Betriebssystem, das ähnlich dem ersten Prozessorkern und/oder dem zweiten Prozessorkern ausgeführt wird. Das Betriebssystem ist ausgebildet, eine aktuelle Auslastung des ersten Prozessorkerns und des zweiten Prozessorkerns zu überwachen. Das Betriebssystem ist ferner ausgebildet, den ersten Prozessorkern zu veranlassen, auf einem Arbeitsleistungsniveau zu arbeiten, das geringer ist als ein maximales Arbeitsleistungsniveau des Systems, und um den zweiten Prozessorkern zu veranlassen, bei einem Arbeitsleistungsniveau zu arbeiten, das höher ist als das maximale Arbeitsleistungsniveau des Systems, wenn erkannt wird, dass der erste Prozessorkern unterhalb einer Auslastungsschwelle arbeitet.
- In einer speziellen Ausführungsform besetzt das Betriebssystem, wenn erkannt wird, dass eine Reduzierung des Auslastungspegels des ersten Prozessorkerns bis unterhalb eines minimalen Auslastungsschwellwerts auftritt, den ersten Prozessorkern in einen Zustand minimaler Versorgungsleistung und steigert das Arbeitsleistungsniveau des zweiten Prozessorkerns auf ein maximales Arbeitsleistungsniveau. Zu beachten ist, dass das maximale Systemarbeitsleistungsniveau einer maximalen Frequenz und einem Spannungspegel entsprechen kann, wenn der erste Prozessorkern und der zweite Prozessorkern zusammen betrieben werden und das maximale Arbeitsleistungsniveau des Kerns kann einer maximalen Frequenz und einen maximalen Spannungspegel entsprechen, bei denen der erste Prozessorkern und der zweite Prozessorkern arbeiten können, wenn diese alleine betrieben werden.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine Blockansicht einer Ausführungsform eines Computersystems mit einem Chipmultiprozessor. -
2 ist ein Flussdiagramm, das die Funktionsweise einer Ausführungsform des in1 gezeigten Verarbeitungsknotens darstellt. - Obwohl die Erfindung diversen Modifizierungen und Alternativen unterliegen kann, sind dennoch spezielle Ausführungsformen in den Zeichnungen dargestellt und werden nachfolgend detailliert beschrieben. Es sollte jedoch beachtet werden, dass die Zeichnungen und die detaillierte Beschreibung nicht beabsichtigen, die Erfindung auf die speziell offenbarte Form einzuschränken, sondern die Erfindung soll vielmehr alle Modifizierungen, Äquivalente und Alternativen abdecken, die innerhalb des Grundgedankens und des Schutzpreis der vorliegenden Erfindung liegen, wie sie durch die angefügten Patentansprüche definiert ist. Zu beachten ist, dass die Überschriften nur zur Einteilung dienen und nicht als Begrenzung oder Interpretation der Beschreibung oder der Patentansprüche dienen sollen. Des Weiteren zu beachten ist, dass der Begriff „kann" durchwegs in dieser Anmeldung in einem möglichen Sinne (d. h. hat die Möglichkeit zu, fähig sein zu) verwendet wird, und nicht im Sinne von "ist erforderlich" (d. h. muss) benutzt wird. Der Begriff "enthalten" und Ableitungen davon bedeuten „mit bzw. enthaltend, aber nicht darauf eingeschrä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
-
1 zeigt eine Blockansicht einer Ausführungsform eines Computersystems10 . In der dargestellten Ausführungsform umfasst das Computersystem10 einen Verarbeitungsknoten12 , einen Speicher14 , einen peripheren Knoten16 , ein peripheres Gerät17 , einen Sensor35 , Spannungsregler45A und45B und ein Eingabe/Ausgabebasissystem (BIOS)30 . Der Verarbeitungsknoten12 umfasst Prozessorkerne18A bis18B , die mit einer Knotensteuerung20 verbunden sind, die ferner mit einer Speichersteuerung22 und mehreren Hypertransport-(HAT)Schnittstellenschaltungen24A bis24C (in dieser Ausführungsform über eine HT-Schnittstelle) verbunden sind. Die HT-Schaltung24B ist mit dem peripheren Netzknoten16 verbunden, der mit dem peripheren Gerät17 in einer Prioritätskettenkonfiguration (in dieser Ausführungsform unter Anwendung von HT-Schnittstellen) verbunden ist. Der periphere Netzknoten16 ist mit dem BIOS30 verbunden. Die Speichersteuerung22 ist mit dem Speicher14 verbunden. In einer Ausführungsform enthält jeder Prozessorkern18A bis18B einen entsprechenden Cache-Speicher bzw. mehrere Cache-Speicher (nicht gezeigt). In einer Ausführungsform ist der Verarbeitungsknoten12 ein einzelner integrierter Schaltungschip mit der Schaltung, die in1 gezeigt ist. Das heißt, der Verarbeitungsknoten12 ist ein Chipmultiprozessor (CMP). In anderen Ausführungsformen ist der Verarbeitungsknoten12 als zwei oder mehrere separate integrierte Schaltungen nach Bedarf vorgesehen. Es kann ein beliebiges Niveau an Integration angewendet oder es können diskrete Komponenten verwendet werden. Zu beachten ist, dass in anderen Ausführungsformen eine beliebige Anzahl an Prozessorkernen in dem Knoten12 verwendet werden kann. Des Weiteren ist zu beachten, dass Komponenten mit einem Bezugszeichen, das sowohl eine Zahl als auch einen Buchstaben aufweist, nur durch die Zahl benannt werden können, wenn dies der Einfachheit halber geeignet ist. - Im Allgemeinen weisen die Prozessorkerne
18A und18B Schaltungen auf, die gesteuert sind, um Befehle auszuführen, die in einer gegebenen Befehlssatzarchitektur vorgesehen 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. Die Prozessorkerne18 weisen beliebige gewünschte Konfigurationen auf, wozu eine Super-Pipelinearchitektur, eine superskalare Konfiguration oder Kombinationen davon gehören. Zu anderen Konfigurationen gehören die skalare Konfiguration, die Pipelinekonfiguration bzw. Vektorverarbeitung, keine Vektorverarbeitung, etc. In diversen Ausführungsformen wird die spekulative Ausführung außerhalb der Reihenfolge oder in der Reihenfolge eingesetzt. Der Prozessorkern kann eine Mikrokodierung für einen oder mehrere Befehle oder andere Funktionen in Verbindung mit den oben genannten Funktionen aufweisen. In diversen Ausführungsformen werden eine Vielzahl anderer Gestaltungsmerkmale, etwa Cache-Speicher, "nebenschauende" Übersetzungspuffer (TLB), etc. eingesetzt. - In einer Ausführungsform wird in den Verarbeitungsknoten eine Betriebssystemsversion abgearbeitet, die beide Prozessorkerne
18A ,18B steuert. Der OS-(bzw. Betriebssystems-)Kernel, der als OS13A und OS13B bezeichnet ist, kann auf einem der Prozessorkerne18A bis18B abgearbeitet werden. In einer Ausführungsform ist einer der Prozessorkerne18A bis18B als ein anlauffähiger Kern während der Systeminitialisierung vorgesehen und ein Prozessorkern (möglicherweise der selbe Kern) kann vorgesehen sein, um den OS-Kernel13 für den Knoten12 abzuarbeiten. - In einer Ausführungsform enthält jeder Prozessorkern
18 und das OS13 die Steuerungsmerkmale und Funktionen, die es dem OS13 ermöglichen, das Arbeitsleistungsniveau und den Versorgungsleistungspegel jedes Prozessorkerns zu steuern. Beispielsweise kann durch die Verwendung gewisser Register (beispielsweise Register19A bis19B ) das OS13 jeden Prozessorkern18 veranlassen, bei einer oder mehreren Kombinationen aus Frequenzen und/oder Spannungspegel zu arbeiten. Insbesondere definiert die fortschrittliche Konfigurations- und Leistungsschnittstellen-(ACPI)Spezifikation Versorgungsleistungspegel und Arbeitsleistungsniveaus für Systeme und Systemkomponenten einschließlich von Prozessoren. Somit kann die Prozessorkernfrequenz und Spannung dynamisch während des Betriebs eingestellt werden, um einen effizienten Kompromiss zwischen Versorgungsleistung und Arbeitsleistungsniveau zu erreichen. Beispielsweise sind einige Softwareanwendungen nicht so anspruchsvoll wie andere. Somit kann das OS13 die Frequenz und/oder die Spannung absenken, um eine längere Batteriestandzeit zu erreichen, wobei dennoch eine adäquate Arbeitsleistung bereitgestellt wird. Um ferner die Leistungsaufnahme während der Nichtverwendung zu reduzieren, können diverse Versorgungsleistungszustände definiert werden, die es möglich machen, dass ein Prozessorkern effektiv in einen Zustand minimaler Leistung versetzt wird (beispielsweise Schlafzustand). Des Weiteren ist das OS13 ausgebildet, den Versorgungsleistungszustand und Arbeitsleistungszustand jedes Prozessorkerns18 unabhängig dynamisch einzustellen, wobei dies in Abhängigkeit von Parametern, etwa der Auslastung jedes Prozessorkerns18 , um nur ein Beispiel zu nennen, bewerkstelligt werden kann. - Die Knotensteuerung
20 ist im Wesentlichen ausgebildet, Kommunikationsereignisse von den Prozessorkernen18A bis18B , der Speichersteuerung22 und den HT-Schaltungen24A bis24C zu empfangen und diese Kommunikationsereignisse an die Prozessorkerne18A bis18B , die HT-Schaltungen24A bis24C und die Speichersteuerung22 in Abhängigkeit von der Kommunikationsart, der Adresse des Kommunikationsereignisses, etc. weiterzuleiten. In einer Ausführungsform umfasst die Knotensteuerung20 eine Systemverwaltungseinheit21 , die ausgebildet ist, Systemverwaltungsinformation, etwa die Prozessorknotentemperatur oder andere Systemumgebungsinformationen zu empfangen. Die Systemverwaltungseinheit21 kann eine Schaltung aufweisen, um eine der ACPI entsprechende Funktion bereitzustellen. Wie nachfolgend detailliert erläutert ist, ist die Systemverwaltungseinheit21 in der Knotensteuerung20 ausgebildet, den OS-Kernel13 über gewisse Systemverwaltungsereignisse in Kenntnis zu setzten. In einer Ausführungsform ist eine Systemverwaltungsnachricht eine Anforderung, die die Prozessorkerne18A bis18B veranlasst, in einen speziellen Zustand überzugehen. Beispielsweise kann der Zustand ein Versorgungsleistungsverwaltungszustand oder ein Arbeitsleistungsverwaltungszustand (wie dies oben beschrieben ist) sein. In anderen Ausführungsformen sind andere Systemverwaltungsnachrichten definiert, wie dies nachfolgend beschrieben ist. - In der dargestellten Ausführungsform ist der Sensor
35 eine beliebige Art eines Bauelements, das zum Bewachen von Umgebungsbedingungen verwendet wird. Beispielsweise ist in einer Ausführungsform der Sensor35 ein temperaturempfindliches Bauelement, das ausgebildet ist, die Temperatur am pn-Übergang einer Referenzdiode innerhalb des Verarbeitungsknotens12 zu bestimmen. Der Sensor35 kann ferner ausgebildet sein, eine Angabe über die Temperatur für die Systemverwaltungseinheit21 bereit zu stellen. - In der dargestellten Ausführungsform sind die Spannungsregler
45A und45B ausgebildet, in programmierbarer Weise die Betriebsversorgungsspannung, die den Prozessorkernen18A bzw.18B zugeleitet wird, zu regeln und zu steuern. Beispielsweise sendet in einer Ausführungsform der OS-Kernel13 eine Anforderung für eine Änderung der Betriebsspannung für einen oder beide Kerne an die Knotensteuerung20 . Die Knotensteuerung20 sendet entsprechende Signale zu den Spannungsreglern45A und45B , die eine Spannungsänderung bewirken. In einer derartigen Ausführungsform enthält der Verarbeitungsknoten12 separate Versorgungsspannungsanschlüsse (beispielsweise VDD und Gnd) für jeden der Prozessorkerne18A und18B , um eine unabhängige Spannungssteuerung der Prozessorkerne18A und18B zu ermöglichen. - Im Allgemeinen können in den Prozessorkernen
18A und18B die Schnittstelle (N) zur Verbindung mit der Knotensteuerung20 verwendet werden, um mit anderen Komponenten des Computersystems10 in Verbindung zu treten (beispielsweise dem peripheren Netzknoten16 und dem Gerät17 , mit anderen Prozessorkernen, der Speichersteuerung22 , etc.). Die Schnittstelle kann in einer beliebigen gewünschten Weise aufgebaut sein. Es kann eine mit dem Cache-Speicherkohärenten Kommunikation für die Schnittstelle definiert sein. In einer Ausführungsform findet die Kommunikation an den Schnittstellen zwischen der Knotensteuerung20 und den Prozessorkernen18A bis18B in Form von Paketen, ähnlich, wie sie in den HT-Schnittstellen verwendet werden, statt. In anderen Ausführungsformen wird eine beliebige andere gewünschte Kommunikation eingesetzt (beispielsweise Transaktionen auf einer Busschnittstelle, Pakete in unterschiedlicher Form, etc.). In anderen Ausführungsformen teilen sich die Prozessorkerne18A bis18B eine Schnittstelle zu der Knotensteuerung20 (beispielsweise eine gemeinsam benutzte Busschnittstelle). - Der Speicher
14 umfasst beliebige geeignete Speichereinrichtungen. Beispielsweise umfasst ein Speicher14 , einen oder mehrere RAMBUS DRAMs (RDRAMs), synchrone DRAMs (SDRAMs), Doppeldatenraten-(DDR)SDRAM, statische RAM, etc. Der Adressenraum des Computersystems10 wird unter dem Speicher14 und einem ähnlichen Speicher anderer Verarbeitungsknoten (nicht gezeigt) aufgeteilt. In derartigen Fällen enthält jeder Knoten12 eine Speicherzuordnung (beispielsweise in der Knotensteuerung20 ), um zu bestimmen, welche Adresse welchem Speicher14 zugeordnet ist, und somit welchem Knoten12 eine Speicheranforderung für eine spezielle Adresse zuzuleiten ist. Die Speichersteuerung22 umfasst eine Steuerschaltung zur Kommunikation mit den Speichern14 . Des Weiteren kann die Speichersteuerung22 Anforderungswarteschlangen zum Aufreihen von Speicheranforderungen, etc. enthalten. - Die HT-Schaltungen
24A bis24C umfassen eine Vielzahl von Puffern und Steuerschaltungen, um Pakete von einer HT-Verbindung zu empfangen und Pakete über eine HT-Verbindung zu senden. Die HT-Schnittstelle umfasst unidirektionale Leitungen zum Übermitteln von Paketen. Jede HT-Schaltung24A bis24C kann mit zwei derartigen Verbindungen (eine zum Senden und eine zum Empfangen) verbunden sein. Eine gegebene HT-Schnittstelle kann in einer mit dem Cache-Speicherkohärenten Weise (beispielsweise zwischen zwei Knoten12 ) oder in einer nicht-kohärenten Weise (beispielsweise zu/von peripheren Netzknoten/Geräten16 und17 ) betrieben werden. In der dargestellten Ausführungsform ist die HT-Schaltung24C über kohärente HT-Verbindungen mit einer ähnlichen HT-Schnittstelle oder einem anderen Knoten (nicht gezeigt) zur Kommunikation zwischen den Knoten verbunden. Die HT-Schaltungen24A ist nicht in Verwendung, und die HT-Schaltung24D ist über nicht-kohärente Verbindungen mit dem peripheren Netzknoten/Geräten verbunden. - Der periphere Netzknoten
16 und das periphere Gerät17 können eine beliebige Art von peripheren Einrichtungen sein. Beispielsweise gehören zu den peripheren Netzknoten/Geräten16 und17 Einrichtungen zur Kommunikation mit einem weitere Computersystem, mit dem die Einrichtungen verbunden sind (beispielsweise Netzwerkschnittstellenkarten, Schaltungen zum Einrichten einer Netzwerkschnittstellenfunktion, die auf der Hauptplatine eines Computersystems integriert ist, oder Modems). Ferner können die peripheren Netzknoten/das periphere Gerät16 bzw.17 Videobeschleuniger, Audiokarten, Festplatten oder Diskettenlaufwerke oder Laufswerkssteuerungen, SCSI-(Kleincomputersystemschnittstellen-)Adapter und Telefonkarten, Klangkarten und eine Vielzahl von Datennahmekarten, etwa GPIB- oder Feldbusschnittstellenkarten enthalten. Zu beachten ist, dass der Begriff „peripheres Gerät" Eingabe/Ausgabe-(I/O)Einrichtungen umfassen soll. - Zu beachten ist, dass obwohl in der vorliegenden Ausführungsform die HT-Schnittstelle für die Kommunikation zwischen den Knoten und zwischen einem Knoten und peripheren Geräten verwendet wird, in anderen Ausführungsformen beliebige andere gewünschte Schnittstellen für jede Art von Kommunikation verwendet werden können. Beispielsweise können andere paketbasierte Schnittstellen, Busschnittstellen, diverse periphere Standardschnittstellen und dergleichen eingesetzt werden (beispielsweise periphere Komponentenverbindung (PCI), PCI-Express, etc.)
- Wie zuvor beschrieben ist, wird der OS-Kernel
13 in einem der Prozessorkerne18A bis18B ausgeführt. Der OS-Kernel13 überwacht und steuert Systemfunktionen, bestimmt und weist an, welcher Prozessorkern18 einen speziellen Ausführungspfad ausführen soll, und so weiter. Insbesondere überwacht der OS-Kernel13 die Auslastung jedes Prozessorkerns18A bis18B . Des Weiteren kann abhängig von der Auslastung jedes Prozessorkerns18A bis18B oder in Abhängigkeit anderer Systemparameter der OS-Kernel13 unabhängig sowohl den Versorgungsleistungszustand als auch den Arbeitsleistungszustand jedes Prozessorkerns18A bis18B steuern. -
2A zeigt ein Flussdiagramm, das die Funktion einer Ausführungsform des Verarbeitungsknotens12 aus1 zeigt. Es sei gemeinsam auf1 und2 verwiesen; während einer Systeminitialisierung werden ein Anfangsleistungsniveau und ein Anfangsversorgungsleistungspegel verwendet, um die Verarbeitungsboten18A bis18B zu betreiben (Block205 ). Die anfänglichen Einstellungen können vorgewählte Einstellungen sein, die beispielsweise in die Register19A bis19B geschrieben sind. In einer Ausführungsform sind die Register19A bis19B modellspezifische Register (MSR), obwohl auch beliebige andere Register verwendet werden können. Die Voreinstellungen können fest verdrahtet mittels Sicherungen eingespeist sein oder können über das BIOS während des Hochlaufens oder während einer Selbsttestroutine beim Einschalten (POST) beispielsweise festgelegt werden. In jedem Falle kann das OS13 die in den Registern19A und19B gespeicherten Werte verwenden, um die Betriebsfrequenz, die Spannung und den Versorgungsspannungszustand für jeden Prozessorkern18A bis18B festzulegen. Die anfänglichen Werte oder Voreinstellungswerte können vorbestimmte Werte auf der Grundlage einer Systemanalyse sein. Beispielsweise können die Frequenz und die Spannungswerte für ein maximales Arbeitsleistungsniveau des Systems festgelegt sein. Das maximale Systemarbeitsleistungsniveau entspricht einer Frequenz und einem Spannungspegel, bei denen beide Prozessorkerne18A bis18B zusammen arbeiten, ohne dass das thermische Budget für den Verarbeitungsknoten12 überschritten wird. Das maximale Systemarbeitsleistungsniveau ist typischerweise unterschiedlich von einem maximalen Kernarbeitsleistungsniveau, das einer Frequenz und einem Spannungspegel entspricht, bei der ein bestimmter Prozessorkern18 noch arbeiten kann. Das Kernmaximum kann durch Testen und Qualifizierung während der Herstellung bestimmt werden. - In einer Ausführungsform überwacht während des Betriebs des Verarbeitungsknotens
12 das OS13 eine aktuelle Auslastung jedes Prozessorkerns18 unter Anwendung verfügbarer Hilfsmittel. Des Weiteren kann das OS13 Systemverwaltungsparameter, etwa beispielsweise, ob interne oder externe Systemverwaltungsinterrupte oder Anforderungsnachrichten empfangen wurden, überwachen (Block210 ). - Wenn das OS
13 bestimmt, dass die Auslastung eines Prozessorkerns18A oder18B unter einen vorbestimmten Schwellwert abgesunken ist (Block215 ), bestimmt das OS13 dann, ob dieser Kern unter einen minimalen Schwellwert abgesunken ist (220 ), und das OS13 veranlasst, dass Prozessorkern mit der geringen Auslastung, abgeschaltet wird oder in einem Zustand minimaler Leistung betrieben wird (Block230 ). Des Weiteren kann das OS13 veranlassen, dass der Prozessorkern18 , der gerade benutzt wird, bei dem maximalen Leistungsniveaus des Kerns betrieben wird (Block235 ). - Als Beispiel sei angenommen, dass jeder der Prozessorkerne
18A bis18B in der Lage ist, mit 3 GHz unabhängig von Erfordernissen auf Systemebene oder thermischen Beschränkungen zu arbeiten. Somit beträgt das maximale Kernarbeitsleistungsniveau jedes Prozessorkerns18 3 GHz. Wenn beide Prozessorkerne18 in dem gleichen Gehäuse sind, könnte das thermische Budget überschritten werden, wenn beide zusammen bei 3 GHz arbeiten. Somit kann das maximale Arbeitsleistungsniveau so festgelegt werden, dass die Prozessorkerne18 , wenn sie zusammen betrieben werden, nicht 2,6 GHz überschreiten. - In dieser Situation kann nunmehr eine Anwendung auf dem Prozessorkern
18A alleine abgearbeitet werden, und der Prozessorkern18B kann gegebenenfalls untätig sein, wie dies der Fall ist, wenn eine Anwendung eines einzelnen Verarbeitungspfades abgearbeitet wird. Somit kann das OS13 den Prozessorkern18B abschalten und den Prozessorkern18A veranlassen, bei seinem maximalen Kernarbeitsleistungsniveau zu arbeiten. Auf diese Weise wird das thermische Budget nicht überschritten und die Anwendung kann mit maximaler Arbeitsleistung abgearbeitet werden. - Ferner kann es Fälle geben, in denen die Auslastung nicht so deutlich von dem Minimum und dem Maximum abbegrenzt ist. Folglich kann das OS
13 ausgebildet sein, die aktuelle Auslastung mit diversen Schwellwerten zu vergleichen. Folglich kann das OS13 das Arbeitsleistungsniveau eines Prozessorkerns dynamisch herunterregeln, während das Arbeitsleistungsniveau des anderen Prozessorkerns in unterschiedlichen Stufen erhöht werden kann, ohne dass das thermische Budget überschritten wird. Wenn folglich unter Bezugnahme auf Block220 das OS13 bestimmt, dass der Prozessorkern nicht unterhalb der minimalen Auslastungsquelle ist, sondern unter einem anderen oder mehreren anderen Schwellwerten liegt, kann das OS13 schrittweise das Arbeitsleistungsniveau des Prozessorkerns, der die geringere Auslastung besitzt, senken und das Arbeitsleistungsniveau des Prozessorkerns, der die höhere Auslastung aufweist, erhöhen (Block225 ). Die Funktionsweise geht dann so weiter, wie im Block210 beschrieben ist, wobei das OS13 die aktuelle Auslastung jedes Prozessorkerns18 überwacht. - Es sei wieder auf Block
215 verwiesen; wenn das OS13 bestimmt, dass keiner der Prozessorkerne18 unter einem Auslastungsschwellwert liegt, kann das OS13 bestimmen, ob die Systemtemperatur unterhalb eines minimalen Schwellwerts liegt (Block240 ). Beispielsweise kann eine typische Chipbetriebstemperatur für die Prozessorkerne18 bei 90 Grad Celsius liegen. Diese Temperatur kann von dem Sensor35 überwacht werden. In einer Ausführungsform erfasst der Sensor35 die Temperatur einer Referenzdiode in dem Prozessorkern18A und/oder18B . Der Sensor35 kann Signale für die Systemverwaltungseinheit21 bereitstellen, die die Temperatur angeben. In einer Ausführungsform kann ein minimaler Schwellwert bei 75 Grad Celsius liegen, während eine maximale Schwelle bei 88 Grad Celsius liegt, um ein Beispiel zu nennen. Wenn folglich die Temperatur unter dem minimalen Schwellwert liegt, kann das OS13 das Arbeitsleistungsniveau eines oder beider Prozessorkerne erhöhen (Block245 ), bis die Temperatur zwischen dem minimalen Block240 ) und dem maximalen Schwellwert (Block250 ) liegt. Dies kann in den Blöcken240 und245 iterativ mehrere Male ausgeführt werden, um das gewünschte Arbeitsleistungsniveau und die Temperatur zu erreichen. Der Ablauf geht dann so weiter, wie dies im Block210 beschrieben ist, in welchem das OS13 die aktuelle Auslastung jedes Prozessorkerns18 überwacht. - Wenn gemäß Block
250 die Temperatur über dem maximalen Schwellwert liegt (Block250 ), kann das OS13 ein oder beide Arbeitsleistungsniveaus der Prozessorkerne absenken (Block245 ), bis die Temperatur innerhalb der minimalen und der maximalen Schwelle liegt. Jedoch kann in diesem oberen Grenzfall das OS13 die Schrittweite für das Arbeitsleistungsniveau erhöhen, um damit die Temperatur möglichst schnell zu reduzieren. Der Ablauf geht dann so weiter, wie in Block210 beschrieben ist, wobei das OS13 die aktuelle Auslastung jedes Prozessorkerns18 überwacht. - Zu beachten ist, dass die Betriebsspannung in der gleichen Weise wie die Frequenz schrittweise erhöht und abgesenkt werden kann. In einer Ausführungsform wird die Spannung zusammen mit der Frequenz eingestellt, während in einer weiteren Ausführungsform die Spannung unabhängig von der Frequenz eingestellt wird. Beispielsweise kann, wie zuvor erläutert ist, das OS
13 die Betriebspannung erhöhen oder absenken, indem eine Anforderung an die Knotensteuerung20 gesendet wird. Die Knotensteuerung20 liefert Signale an die Spannungsregler45A und/oder45B , wie dies notwendig ist, um die Spannung zu erhöhen oder abzusenken. - Obwohl die Ausführungsformen detailliert beschrieben sind, können zahlreiche Varianten und Modifizierungen für den Fachmann im Lichte der obigen Offenbarungen ersichtlich sein. Es ist beabsichtigt, dass die folgenden Patentansprüche so interpretiert werden, dass sie alle derartigen Variationen und Modifizierungen umfassen.
- Industrielle Anwendbarkeit
- Diese Erfindung ist im Allgemeinen auf Multikernprozessoren anwendbar.
- Zusammenfassung
- ERHÖHUNG DER ARBEITSLEISTUNG EINES ODER MEHRERER KERNE IN MULTIKERNPROZESSOREN
- Ein Verarbeitungsknoten (
12 ), der in einen einzelnen integrierten Schaltungschip integriert ist, umfasst einen ersten Prozessorkern (18A ) und einen zweiten Prozessorkern (18B ). Der Verarbeitungsknoten umfasst ferner ein Betriebssystem (13A ,13B ), das in dem ersten Prozessorkern und/oder dem zweiten Prozessorkern abgearbeitet wird. Das Betriebssystem überwacht eine aktuelle Auslastung des ersten Prozessorkerns und des zweiten Prozessorkerns. Das Betriebssystem veranlasst den ersten Prozessorkern, bei einem Arbeitsleistungsniveau zu arbeiten, das geringer ist als ein maximales Systemarbeitsleistungsniveau und veranlasst den zweiten Prozessorkern, bei einem Arbeitsleistungsniveau zu arbeiten, das höher ist als das maximale Systemarbeitsleistungsniveau, wenn erkannt wird, dass der erste Prozessorkern unter einem Auslastungsschwellwert arbeitet.
Claims (10)
- Verarbeitungsknoten (
12 ), der in einem einzelnen integrierten Schaltungschip umfasst: einen ersten Prozessorkern (18A ); einen zweiten Prozessorkern (18B ); ein Betriebssystem (13A ,13B ), das auf dem ersten Prozessorkern und/oder dem zweiten Prozessorkern ausgeführt wird und ausgebildet ist, unabhängig ein Arbeitsleistungsniveau des ersten Prozessorkerns und des zweiten Prozessorkerns und in Abhängigkeit von einem Auslastungspegel des ersten Prozessorkerns und/oder des zweiten Prozessorkerns zu steuern. - Verarbeitungsknoten nach Anspruch 1, wobei in Reaktion auf das Erkennen eines Absinkens des aktuellen Auslastungspegels des ersten Prozessorkerns das Betriebssystem ausgebildet ist, das Arbeitsleistungsniveau des ersten Prozessorkerns zu reduzieren und das Arbeitsleistungsniveau des zweiten Prozessorkerns um einen entsprechenden Betrag über ein maximales Systemarbeitsleistungsniveau hinaus zu erhöhen.
- Verarbeitungsknoten nach Anspruch 1, wobei in Reaktion auf das Erkennen einer Verringerung des aktuellen Auslastungspegels des zweiten Prozessorkerns das Betriebssystem ausgebildet ist, das Arbeitsleistungsniveau des zweiten Prozessorkerns zu reduzieren und das Arbeitsleistungsniveau des ersten Prozessorkerns um einen entsprechenden Betrag über ein maximales Systemarbeitsleistungsniveau hinaus zu erhöhen.
- Verarbeitungsknoten nach Anspruch 1, wobei in Reaktion auf das Erkennen einer Reduzierung des aktuellen Auslastungspegels des ersten Prozessorkerns bis unter einen minimalen Auslastungspegel das Betriebssystem ausgebildet ist, den ersten Prozessorkern in einen Zustand minimaler Leistung zu versetzen und das Arbeitsleistungsniveau des zweiten Prozessorkerns auf ein maximales Kernarbeitsleistungsniveau anzuheben.
- Verarbeitungsknoten nach Anspruch 1, wobei das maximale Systemarbeitsleistungsniveau einer maximalen Frequenz und einem maximalen Spannungspegel entspricht, wenn sowohl der erste Prozessorkern als auch der zweite Prozessorkern betrieben werden, wobei das maximale Kernarbeitsleistungsniveau einer maximalen Frequenz und einem maximalen Spannungspegel entspricht, bei welcher der erste Prozessorkern und der zweite Prozessorkern arbeiten können.
- Verfahren mit: Ausführen von Befehlen in einem ersten Prozessorkern (
18A ); Ausführen von Befehlen in einem zweiten Prozessorkern (18B ); Ausführen eines Betriebssystems (13A ,13B ) in dem ersten Prozessorkern und/oder dem zweiten Prozessorkern, wobei das Betriebssystem unabhängig ein Arbeitsleistungsniveau des ersten Prozessorkerns und des zweiten Prozessorkerns in Abhängigkeit eines aktuellen Auslastungspegels des ersten Prozessorkerns und/oder des zweiten Prozessorkerns steuert. - Verfahren nach Anspruch 6, wobei in Reaktion auf das Erkennen einer Verringerung des aktuellen Auslastungspegels des zweiten Prozessorkerns das Betriebssystem das Arbeitsleistungsniveau des ersten Prozessorkerns absenkt und das Arbeitsleistungsniveau des zweiten Prozessorkerns um einen entsprechenden Betrag über ein maximales Systemarbeitsleistungsniveau hinaus anhebt.
- Verfahren nach Anspruch 6, wobei in Reaktion auf das Erkennen einer Verringerung des aktuellen Auslastungspegels des zweiten Prozessorkerns das Betriebssystem das Arbeitsleistungsniveau des zweiten Prozessorkerns absenkt und das Arbeitsleistungsniveau des ersten Prozessorkerns um einen entsprechenden Betrag über ein maximales Systemarbeitsleistungsniveau hinaus anhebt.
- Verfahren nach Anspruch 6, wobei in Reaktion auf das Erkennen einer Verringerung des aktuellen Auslastungspegels des ersten Prozessorkerns bis unter einen minimalen Auslastungspegel das Betriebssystem den ersten Prozessorkern in einen Zustand minimaler Leistung versetzt und das Arbeitsleistungsniveau des zweien Prozessorkerns auf ein maximales Kernarbeitsleistungsniveau anhebt.
- Verfahren nach Anspruch 6, wobei das maximale Systemarbeitsleistungsniveau einer maximalen Frequenz und einem maximalen Spannungspegel entspricht, bei der der erste Prozessorkern und der zweite Prozessorkern arbeiten, und wobei das maximale Kernarbeitsleistungsniveau einer maximalen Frequenz und einem maximalen Spannungspegel entspricht, bei welchem der erste Prozessorkern und der zweite Prozessorkern arbeiten können.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/195,305 US7490254B2 (en) | 2005-08-02 | 2005-08-02 | Increasing workload performance of one or more cores on multiple core processors |
US11/195,305 | 2005-08-02 | ||
PCT/US2006/028199 WO2007019003A2 (en) | 2005-08-02 | 2006-07-20 | Increasing workload performance of one or more cores on multiple core processors |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112006002056T5 true DE112006002056T5 (de) | 2008-07-10 |
Family
ID=37718910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112006002056T Ceased DE112006002056T5 (de) | 2005-08-02 | 2006-07-20 | Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren |
Country Status (8)
Country | Link |
---|---|
US (2) | US7490254B2 (de) |
JP (1) | JP4937260B2 (de) |
KR (1) | KR101310044B1 (de) |
CN (1) | CN101233475B (de) |
DE (1) | DE112006002056T5 (de) |
GB (1) | GB2442919B (de) |
TW (1) | TWI412993B (de) |
WO (1) | WO2007019003A2 (de) |
Families Citing this family (121)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434073B2 (en) | 2004-11-29 | 2008-10-07 | Intel Corporation | Frequency and voltage scaling architecture |
US20070094436A1 (en) * | 2005-10-20 | 2007-04-26 | Keown William F Jr | System and method for thermal management in PCI express system |
US7263457B2 (en) * | 2006-01-03 | 2007-08-28 | Advanced Micro Devices, Inc. | System and method for operating components of an integrated circuit at independent frequencies and/or voltages |
US7774590B2 (en) * | 2006-03-23 | 2010-08-10 | Intel Corporation | Resiliently retaining state information of a many-core processor |
US7636864B2 (en) * | 2006-05-03 | 2009-12-22 | Intel Corporation | Mechanism for adaptively adjusting a direct current loadline in a multi-core processor |
US7650518B2 (en) * | 2006-06-28 | 2010-01-19 | Intel Corporation | Method, apparatus, and system for increasing single core performance in a multi-core microprocessor |
US8051276B2 (en) * | 2006-07-07 | 2011-11-01 | International Business Machines Corporation | Operating system thread scheduling for optimal heat dissipation |
US7949887B2 (en) * | 2006-11-01 | 2011-05-24 | Intel Corporation | Independent power control of processing cores |
US8117478B2 (en) * | 2006-12-29 | 2012-02-14 | Intel Corporation | Optimizing power usage by processor cores based on architectural events |
US8429663B2 (en) * | 2007-03-02 | 2013-04-23 | Nec Corporation | Allocating task groups to processor cores based on number of task allocated per core, tolerable execution time, distance between cores, core coordinates, performance and disposition pattern |
US8185215B2 (en) * | 2007-03-28 | 2012-05-22 | Nytell Software LLC | Electronic device and method determining a workload of an electronic device |
US7900069B2 (en) * | 2007-03-29 | 2011-03-01 | Intel Corporation | Dynamic power reduction |
US8490103B1 (en) * | 2007-04-30 | 2013-07-16 | Hewlett-Packard Development Company, L.P. | Allocating computer processes to processor cores as a function of process utilizations |
US7908493B2 (en) * | 2007-06-06 | 2011-03-15 | International Business Machines Corporation | Unified management of power, performance, and thermals in computer systems |
US8166326B2 (en) * | 2007-11-08 | 2012-04-24 | International Business Machines Corporation | Managing power consumption in a computer |
US8032772B2 (en) | 2007-11-15 | 2011-10-04 | Intel Corporation | Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor |
US20090132842A1 (en) * | 2007-11-15 | 2009-05-21 | International Business Machines Corporation | Managing Computer Power Consumption In A Computer Equipment Rack |
US8041521B2 (en) * | 2007-11-28 | 2011-10-18 | International Business Machines Corporation | Estimating power consumption of computing components configured in a computing system |
US8024590B2 (en) * | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
US20090182657A1 (en) * | 2008-01-15 | 2009-07-16 | Omx Technology Ab | Distributed ranking and matching of messages |
US20090235108A1 (en) * | 2008-03-11 | 2009-09-17 | Gold Spencer M | Automatic processor overclocking |
US20090288092A1 (en) * | 2008-05-15 | 2009-11-19 | Hiroaki Yamaoka | Systems and Methods for Improving the Reliability of a Multi-Core Processor |
US8103884B2 (en) * | 2008-06-25 | 2012-01-24 | International Business Machines Corporation | Managing power consumption of a computer |
US8200999B2 (en) * | 2008-08-11 | 2012-06-12 | International Business Machines Corporation | Selective power reduction of memory hardware |
US20100057404A1 (en) * | 2008-08-29 | 2010-03-04 | International Business Machines Corporation | Optimal Performance and Power Management With Two Dependent Actuators |
US8041976B2 (en) * | 2008-10-01 | 2011-10-18 | International Business Machines Corporation | Power management for clusters of computers |
US8707060B2 (en) * | 2008-10-31 | 2014-04-22 | Intel Corporation | Deterministic management of dynamic thermal response of processors |
US8514215B2 (en) * | 2008-11-12 | 2013-08-20 | International Business Machines Corporation | Dynamically managing power consumption of a computer with graphics adapter configurations |
US8055477B2 (en) * | 2008-11-20 | 2011-11-08 | International Business Machines Corporation | Identifying deterministic performance boost capability of a computer system |
US8689017B2 (en) * | 2009-03-12 | 2014-04-01 | Cisco Technology, Inc. | Server power manager and method for dynamically managing server power consumption |
WO2010138031A1 (en) | 2009-05-26 | 2010-12-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and scheduler in an operating system |
JP5223804B2 (ja) * | 2009-07-22 | 2013-06-26 | 東京エレクトロン株式会社 | 成膜方法及び成膜装置 |
JP5564564B2 (ja) * | 2009-07-24 | 2014-07-30 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置 |
US20110022356A1 (en) * | 2009-07-24 | 2011-01-27 | Sebastien Nussbaum | Determining performance sensitivities of computational units |
US8452991B2 (en) * | 2009-08-20 | 2013-05-28 | International Business Machines Corporation | Partition level power management using fully asynchronous cores with software that has limited asynchronous support |
KR101620103B1 (ko) * | 2009-10-21 | 2016-05-13 | 삼성전자주식회사 | 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법 |
US9098274B2 (en) | 2009-12-03 | 2015-08-04 | Intel Corporation | Methods and apparatuses to improve turbo performance for events handling |
US8775830B2 (en) * | 2009-12-16 | 2014-07-08 | Qualcomm Incorporated | System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature |
US8689037B2 (en) * | 2009-12-16 | 2014-04-01 | Qualcomm Incorporated | System and method for asynchronously and independently controlling core clocks in a multicore central processing unit |
US8909962B2 (en) * | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US20110145559A1 (en) * | 2009-12-16 | 2011-06-16 | Thomson Steven S | System and method for controlling central processing unit power with guaranteed steady state deadlines |
US8650426B2 (en) * | 2009-12-16 | 2014-02-11 | Qualcomm Incorporated | System and method for controlling central processing unit power in a virtualized system |
US9563250B2 (en) | 2009-12-16 | 2017-02-07 | Qualcomm Incorporated | System and method for controlling central processing unit power based on inferred workload parallelism |
US9176572B2 (en) | 2009-12-16 | 2015-11-03 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9104411B2 (en) | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US9128705B2 (en) * | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
US8352759B2 (en) * | 2010-01-11 | 2013-01-08 | Qualcomm Incorporated | System and method of monitoring a central processing unit in real time |
US8549339B2 (en) * | 2010-02-26 | 2013-10-01 | Empire Technology Development Llc | Processor core communication in multi-core processor |
US8935549B2 (en) | 2010-06-30 | 2015-01-13 | Via Technologies, Inc. | Microprocessor with multicore processor power credit management feature |
US9600059B2 (en) * | 2010-09-20 | 2017-03-21 | Apple Inc. | Facilitating power management in a multi-core processor |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US8612781B2 (en) * | 2010-12-14 | 2013-12-17 | Advanced Micro Devices, Inc. | Method and apparatus for application of power density multipliers optimally in a multicore system |
US9063730B2 (en) | 2010-12-20 | 2015-06-23 | Intel Corporation | Performing variation-aware profiling and dynamic core allocation for a many-core processor |
US8984305B2 (en) | 2010-12-21 | 2015-03-17 | Intel Corporation | Method and apparatus to configure thermal design power in a microprocessor |
US9201707B2 (en) * | 2011-02-02 | 2015-12-01 | Nec Corporation | Distributed system, device, method, and program |
US8949637B2 (en) * | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US8924752B1 (en) | 2011-04-20 | 2014-12-30 | Apple Inc. | Power management for a graphics processing unit or other circuit |
US8793515B2 (en) | 2011-06-27 | 2014-07-29 | Intel Corporation | Increasing power efficiency of turbo mode operation in a processor |
US20130000871A1 (en) * | 2011-06-30 | 2013-01-03 | Ian Olson | Systems and Methods for Extending Operating Temperatures of Electronic Components |
US9098561B2 (en) | 2011-08-30 | 2015-08-04 | Intel Corporation | Determining an effective stress level on a processor |
US8769316B2 (en) | 2011-09-06 | 2014-07-01 | Intel Corporation | Dynamically allocating a power budget over multiple domains of a processor |
US8688883B2 (en) * | 2011-09-08 | 2014-04-01 | Intel Corporation | Increasing turbo mode residency of a processor |
CN102999150B (zh) * | 2011-09-14 | 2016-02-03 | 宏碁股份有限公司 | 电子系统与效能控制方法 |
US8862917B2 (en) * | 2011-09-19 | 2014-10-14 | Qualcomm Incorporated | Dynamic sleep for multicore computing devices |
US9074947B2 (en) | 2011-09-28 | 2015-07-07 | Intel Corporation | Estimating temperature of a processor core in a low power state without thermal sensor information |
KR20130040485A (ko) * | 2011-10-14 | 2013-04-24 | 삼성전자주식회사 | 휴대 단말기에서 중앙처리장치를 제어하는 장치 및 방법 |
US9026815B2 (en) | 2011-10-27 | 2015-05-05 | Intel Corporation | Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor |
US8924758B2 (en) * | 2011-12-13 | 2014-12-30 | Advanced Micro Devices, Inc. | Method for SOC performance and power optimization |
US8856566B1 (en) | 2011-12-15 | 2014-10-07 | Apple Inc. | Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened |
US9977482B2 (en) * | 2011-12-21 | 2018-05-22 | Intel Corporation | Method and apparatus for setting an I/O bandwidth-based processor frequency floor |
US9569278B2 (en) * | 2011-12-22 | 2017-02-14 | Intel Corporation | Asymmetric performance multicore architecture with same instruction set architecture |
US9354689B2 (en) * | 2012-03-13 | 2016-05-31 | Intel Corporation | Providing energy efficient turbo operation of a processor |
WO2013137860A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically computing an electrical design point (edp) for a multicore processor |
US9323316B2 (en) * | 2012-03-13 | 2016-04-26 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
KR101677115B1 (ko) * | 2012-03-31 | 2016-11-18 | 인텔 코포레이션 | 멀티-코어 환경들에서의 전력 소비 제어 |
US9390461B1 (en) | 2012-05-08 | 2016-07-12 | Apple Inc. | Graphics hardware mode controls |
ES2531450B2 (es) | 2012-05-30 | 2015-08-11 | Schweitzer Engineering Laboratories, Inc. | Gestión térmica de un transceptor de comunicaciones en un dispositivo eléctrico de comunicaciones |
US9250665B2 (en) * | 2012-06-07 | 2016-02-02 | Apple Inc. | GPU with dynamic performance adjustment |
US9229524B2 (en) | 2012-06-27 | 2016-01-05 | Intel Corporation | Performing local power gating in a processor |
US8862824B2 (en) * | 2012-09-26 | 2014-10-14 | Intel Corporation | Techniques for managing power and performance of multi-socket processors |
CN103810141A (zh) * | 2012-11-09 | 2014-05-21 | 辉达公司 | 处理器和包括其的电路板 |
US9323300B2 (en) * | 2012-11-27 | 2016-04-26 | International Business Machines Corporation | Computing system voltage control |
US9218044B2 (en) * | 2012-11-27 | 2015-12-22 | International Business Machines Corporation | Computing system frequency target monitor |
KR102005765B1 (ko) | 2012-12-17 | 2019-07-31 | 삼성전자주식회사 | 시스템-온 칩과, 이의 동작 방법 |
US9052885B2 (en) * | 2012-12-21 | 2015-06-09 | Advanced Micro Devices, Inc. | Using temperature margin to balance performance with power allocation |
US9639372B2 (en) | 2012-12-28 | 2017-05-02 | Intel Corporation | Apparatus and method for heterogeneous processors mapping to virtual cores |
US9672046B2 (en) * | 2012-12-28 | 2017-06-06 | Intel Corporation | Apparatus and method for intelligently powering heterogeneous processor components |
US9766678B2 (en) | 2013-02-04 | 2017-09-19 | Intel Corporation | Multiple voltage identification (VID) power architecture, a digital synthesizable low dropout regulator, and apparatus for improving reliability of power gates |
US9727345B2 (en) | 2013-03-15 | 2017-08-08 | Intel Corporation | Method for booting a heterogeneous system and presenting a symmetric core view |
US9430346B2 (en) * | 2013-03-26 | 2016-08-30 | Texas Instruments Incorporated | Processor power measurement |
US9317389B2 (en) | 2013-06-28 | 2016-04-19 | Intel Corporation | Apparatus and method for controlling the reliability stress rate on a processor |
JP6142709B2 (ja) * | 2013-07-23 | 2017-06-07 | 富士通株式会社 | 計測方法、計測プログラム、携帯情報端末、及びその制御方法 |
CN104424156A (zh) * | 2013-09-09 | 2015-03-18 | 中兴通讯股份有限公司 | 处理器的核处理方法、装置及终端 |
WO2015039320A1 (en) * | 2013-09-19 | 2015-03-26 | Intel Corporation | Techniques for distributed processing task portion assignment |
US9395788B2 (en) | 2014-03-28 | 2016-07-19 | Intel Corporation | Power state transition analysis |
JP5986138B2 (ja) * | 2014-05-09 | 2016-09-06 | レノボ・シンガポール・プライベート・リミテッド | 複数のプロセッサに電力を供給する電源装置の出力を制御する方法、電源システムおよび情報処理装置 |
US10025361B2 (en) * | 2014-06-05 | 2018-07-17 | Advanced Micro Devices, Inc. | Power management across heterogeneous processing units |
US9600058B2 (en) * | 2014-06-24 | 2017-03-21 | Intel Corporation | Enhancing power-performance efficiency in a computer system when bursts of activity occurs when operating in low power |
US9904339B2 (en) | 2014-09-10 | 2018-02-27 | Intel Corporation | Providing lifetime statistical information for a processor |
US9906497B2 (en) | 2014-10-06 | 2018-02-27 | Cryptzone North America, Inc. | Multi-tunneling virtual network adapter |
US9898071B2 (en) * | 2014-11-20 | 2018-02-20 | Apple Inc. | Processor including multiple dissimilar processor cores |
US9704598B2 (en) | 2014-12-27 | 2017-07-11 | Intel Corporation | Use of in-field programmable fuses in the PCH dye |
US9779058B2 (en) * | 2015-07-13 | 2017-10-03 | Google Inc. | Modulating processsor core operations |
US20170147053A1 (en) * | 2015-11-23 | 2017-05-25 | Mediatek Inc. | Application driven dynamic voltage and frequency scaling method and associated machine readable medium |
US10013392B2 (en) | 2016-01-26 | 2018-07-03 | Intel Corporation | Providing access from outside a multicore processor SoC to individually configure voltages |
US10412048B2 (en) | 2016-02-08 | 2019-09-10 | Cryptzone North America, Inc. | Protecting network devices by a firewall |
US10296067B2 (en) * | 2016-04-08 | 2019-05-21 | Qualcomm Incorporated | Enhanced dynamic clock and voltage scaling (DCVS) scheme |
US9560015B1 (en) | 2016-04-12 | 2017-01-31 | Cryptzone North America, Inc. | Systems and methods for protecting network devices by a firewall |
WO2018032334A1 (zh) * | 2016-08-16 | 2018-02-22 | 陈银芳 | 手机多核多线程调度方法及系统 |
US10659168B2 (en) | 2016-08-23 | 2020-05-19 | Schweitzer Engineering Laboratories, Inc. | Low-power fiber optic transceiver |
US10528118B2 (en) * | 2017-04-21 | 2020-01-07 | Intel Corporation | Dynamically power on/off register files during execution |
CN111435267A (zh) * | 2019-01-15 | 2020-07-21 | 海信集团有限公司 | 功耗自动调整的方法、装置、设备及计算机可读存储介质 |
US11086081B2 (en) | 2019-03-21 | 2021-08-10 | Schweitzer Engineering Laboratories, Inc. | Conductive cooling for small form-factor pluggable (SFP) fiber optic transceivers |
US11073888B2 (en) * | 2019-05-31 | 2021-07-27 | Advanced Micro Devices, Inc. | Platform power manager for rack level power and thermal constraints |
US11487339B2 (en) * | 2019-08-29 | 2022-11-01 | Micron Technology, Inc. | Operating mode register |
CN114816033A (zh) * | 2019-10-17 | 2022-07-29 | 华为技术有限公司 | 处理器的调频方法及装置、计算设备 |
US11392418B2 (en) | 2020-02-21 | 2022-07-19 | International Business Machines Corporation | Adaptive pacing setting for workload execution |
US20230205606A1 (en) * | 2020-05-29 | 2023-06-29 | Intel Corporation | Systems, apparatus, and methods to workload optimize hardware |
TWI777320B (zh) | 2020-12-04 | 2022-09-11 | 神雲科技股份有限公司 | 功耗校調方法與伺服器 |
US20230205306A1 (en) * | 2021-12-24 | 2023-06-29 | Advanced Micro Devices, Inc | Default Boost Mode State for Devices |
CN115622592B (zh) * | 2022-12-20 | 2023-03-10 | 翱捷科技(深圳)有限公司 | 音频数据获取方法、系统及存储介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04215168A (ja) * | 1990-12-13 | 1992-08-05 | Nec Corp | コンピュータシステム |
ATE200357T1 (de) | 1991-07-08 | 2001-04-15 | Seiko Epson Corp | Risc-prozessor mit dehnbarer architektur |
CN1121003C (zh) * | 1999-03-24 | 2003-09-10 | 新巨企业股份有限公司 | 具有多处理器控制装置的电源供应器 |
US6823516B1 (en) * | 1999-08-10 | 2004-11-23 | Intel Corporation | System and method for dynamically adjusting to CPU performance changes |
JP2001109729A (ja) * | 1999-10-12 | 2001-04-20 | Nec Corp | マルチプロセッサシステムにおける消費電力制御装置および方法 |
JP2002189540A (ja) * | 2000-12-20 | 2002-07-05 | Pfu Ltd | 装置電源の節電制御装置および節電制御方法並びに記録媒体 |
US6704687B2 (en) * | 2001-01-31 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Historical results based method for automatically improving computer system performance |
US6895520B1 (en) * | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US7017060B2 (en) * | 2001-03-19 | 2006-03-21 | Intel Corporation | Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down |
US7111178B2 (en) | 2001-09-28 | 2006-09-19 | Intel Corporation | Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system |
US8645954B2 (en) * | 2001-12-13 | 2014-02-04 | Intel Corporation | Computing system capable of reducing power consumption by distributing execution of instruction across multiple processors and method therefore |
US7100056B2 (en) | 2002-08-12 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | System and method for managing processor voltage in a multi-processor computer system for optimized performance |
US6908227B2 (en) | 2002-08-23 | 2005-06-21 | Intel Corporation | Apparatus for thermal management of multiple core microprocessors |
US7272732B2 (en) * | 2003-06-30 | 2007-09-18 | Hewlett-Packard Development Company, L.P. | Controlling power consumption of at least one computer system |
JP4549652B2 (ja) * | 2003-10-27 | 2010-09-22 | パナソニック株式会社 | プロセッサシステム |
EP1555595A3 (de) * | 2004-01-13 | 2011-11-23 | LG Electronics, Inc. | Vorrichtung zur Stromversorgungssteuerung eines eine Mehrzahl von Kernen aufweisenden Prozessors und entsprechendes Steuerungsverfahren |
US8190863B2 (en) * | 2004-07-02 | 2012-05-29 | Intel Corporation | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US20060091061A1 (en) | 2004-11-02 | 2006-05-04 | Baldwin Filters, Inc. | Filter assembly with sealing system |
US7536567B2 (en) * | 2004-12-10 | 2009-05-19 | Hewlett-Packard Development Company, L.P. | BIOS-based systems and methods of processor power management |
KR101108397B1 (ko) | 2005-06-10 | 2012-01-30 | 엘지전자 주식회사 | 멀티-코어 프로세서의 전원 제어 장치 및 방법 |
-
2005
- 2005-08-02 US US11/195,305 patent/US7490254B2/en active Active
-
2006
- 2006-07-20 CN CN2006800280754A patent/CN101233475B/zh active Active
- 2006-07-20 KR KR1020087005317A patent/KR101310044B1/ko active IP Right Grant
- 2006-07-20 WO PCT/US2006/028199 patent/WO2007019003A2/en active Application Filing
- 2006-07-20 DE DE112006002056T patent/DE112006002056T5/de not_active Ceased
- 2006-07-20 GB GB0802801A patent/GB2442919B/en active Active
- 2006-07-20 JP JP2008524998A patent/JP4937260B2/ja active Active
- 2006-08-01 TW TW095128098A patent/TWI412993B/zh active
-
2009
- 2009-01-22 US US12/357,635 patent/US20090187777A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
GB2442919B (en) | 2010-03-10 |
JP4937260B2 (ja) | 2012-05-23 |
KR20080038389A (ko) | 2008-05-06 |
KR101310044B1 (ko) | 2013-09-17 |
CN101233475A (zh) | 2008-07-30 |
JP2009503728A (ja) | 2009-01-29 |
WO2007019003A2 (en) | 2007-02-15 |
CN101233475B (zh) | 2011-05-18 |
TWI412993B (zh) | 2013-10-21 |
US20090187777A1 (en) | 2009-07-23 |
WO2007019003A3 (en) | 2007-05-18 |
GB2442919A (en) | 2008-04-16 |
TW200719217A (en) | 2007-05-16 |
US7490254B2 (en) | 2009-02-10 |
GB0802801D0 (en) | 2008-03-26 |
US20070033425A1 (en) | 2007-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112006002056T5 (de) | Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren | |
DE112005002672B4 (de) | Dynamische Neukonfiguration eines Cache-Speichers | |
DE112011103193B4 (de) | Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung | |
DE112004001320B3 (de) | Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren | |
DE112007001987B4 (de) | Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung | |
DE112008000758B4 (de) | Dynamische Stromreduzierung | |
DE112006003444B4 (de) | Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen | |
DE112006003575B4 (de) | Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand | |
DE102013104328B4 (de) | Aufgabenzuteilung in großen und kleinen Kernen | |
DE112012006377B4 (de) | Energieverbrauch und Leistung von Computersystemen steuern | |
DE102010045743B4 (de) | Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern | |
DE112007003113B4 (de) | Reduzieren von Leerlauf-Verlustleistung in einem integrierten Schaltkreis | |
DE69907512T2 (de) | Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit | |
DE112007001215B4 (de) | Vorhersage der Leistungsnutzung von Rechenplattformspeicher | |
DE102014101633B4 (de) | Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten | |
DE69517712T2 (de) | Verfahren und Vorrichtung zur Reduzierung der Leistungsaufnahme in einem Rechnersystem | |
DE112008001223B4 (de) | Datenverarbeitung mit einem Cache-Zugriffsmodus mit geringer Leistung | |
DE112015002522B4 (de) | System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt | |
DE112013007279T5 (de) | Ereignisausgelöstes speichern von Daten in einem nicht flüchtigen Speicher | |
DE112013005278T5 (de) | Dynamisches Abgleichen von Leistung über eine Mehrzahl von Prozessordomänen gemäß Leistungsabgleichsteuerungs-BIAS | |
DE112006000545T5 (de) | System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren | |
DE112010002425B4 (de) | Delegieren einer Anfrageoperation an eine ander Einrichtung | |
DE102010034555A1 (de) | Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus | |
DE102009015495A1 (de) | Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit | |
DE112006002154T5 (de) | Dynamische Speichergrösseneinteilung zur Leistungsreduktion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R002 | Refusal decision in examination/registration proceedings | ||
R003 | Refusal decision now final |
Effective date: 20120612 |