DE102010034097B4 - Verfahren und Vorrichtung für Energiesparbetrieb von Mehrkern-Prozessoren - Google Patents

Verfahren und Vorrichtung für Energiesparbetrieb von Mehrkern-Prozessoren Download PDF

Info

Publication number
DE102010034097B4
DE102010034097B4 DE102010034097.9A DE102010034097A DE102010034097B4 DE 102010034097 B4 DE102010034097 B4 DE 102010034097B4 DE 102010034097 A DE102010034097 A DE 102010034097A DE 102010034097 B4 DE102010034097 B4 DE 102010034097B4
Authority
DE
Germany
Prior art keywords
processor cores
processor
cores
software threads
core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102010034097.9A
Other languages
English (en)
Other versions
DE102010034097A1 (de
Inventor
Guy M. Therien
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010034097A1 publication Critical patent/DE102010034097A1/de
Application granted granted Critical
Publication of DE102010034097B4 publication Critical patent/DE102010034097B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

Verfahren, umfassend:
Empfangen (302) einer Anforderung in einen Energiesparmodus einzutreten;
Kontinuierlich Erkennen (304) eines oder mehrerer nicht zugeteilter Software-Threads für eine aktive Arbeitsauslastung im Energiesparmodus;
Erkennen von Energiemerkmalen oder Wärmemerkmalen für jeden der Mehrzahl von Kernen eines Mehrkern-Prozessors;
Auswählen eines Satzes von Prozessorkernen basierend auf den erkannten Energiemerkmalen oder Wärmemerkmalen;
Kontinuierlich Zuteilen (306) des einen oder der mehreren erkannten nicht-zugeteilten Software-Threads für die aktive Arbeitsbelastung, um auf dem Satz der ausgewählten Prozessorkerne des Mehrkern-Prozessors zu laufen, wobei der ausgewählte Satz an Prozessorkernen weniger als eine Gesamtanzahl an Prozessorkernen des Mehrkern-Prozessors umfasst;
Verringern der Anzahl von Prozessorkernen in dem Satz von Prozessorkernen;
Zuteilen des einen oder der mehreren nicht-zugeteilten Software-Threads, um auf dem verringerten Satz an Prozessorkernen zu laufen; und
Verringern der Prozessorleistungszustände für einen oder mehrere der Prozessorkerne in dem Satz an Prozessorkernen.

Description

  • HINTERGRUND
  • Die Leistung von modernen Computersystemen ist in den letzten Jahren rapide gestiegen. Ein besonderer Bereich, in dem die Leistung sich weiterentwickelt hat, ist Prozessortechnologie. Viele Prozessoren in Computersystemen beinhalten heutzutage eine Vielzahl von Kernen. Der Anstieg der Verarbeitungsleistung, die von Mehrkern-Prozessoren bereitgestellt wird, hat ebenfalls zu erhöhtem Energieverbrauch und Wärmeerzeugung bei Computersystemen geführt, die weiterhin in der Größe abnehmen. Da die Rechenleistung und Anzahl an Kernen in Mehrkern-Prozessoren weiterhin steigt, wird eine Senkung bei Energieverbrauch und Wärmeerzeugung eine wichtige Überlegung. Folglich ist es wünschenswert, Mehrkern-Prozessoren wenn möglich so anzupassen, dass sie Energie einsparen und Wärmeerzeugung verringern. Demzufolge gibt es einen wesentlichen Bedarf an Techniken, um Energieverbrauch und Wärmeerzeugung für Mehrkern-Prozessor-Systeme zu skalieren.
  • US 2009/0187909 offenbart Thread-Scheduling basierend auf gemeinsam genutzten Ressourcen, wobei die Ausführung von Threads durch einen oder mehrere Kerne abhängig davon geplant wird, ob es wünschenswert ist, den Energieverbrauch zu minimieren oder die Leistung zu maximieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht eine Ausführungsform einer Vorrichtung.
  • 2 veranschaulicht eine Ausführungsform eines ersten Logik-Diagramms.
  • 3 veranschaulicht eine Ausführungsform eines zweiten Logik-Diagramms.
  • 4 veranschaulicht eine Ausführungsform eines Systems.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Ausführungsformen sind im Allgemeinen auf Techniken gerichtet, die so ausgelegt sind, Energieverbrauch und Wärmeerzeugung bei Computersystemen zu verringern, die Mehrkern-Prozessoren einsetzen. Verschiedene Ausführungsformen stellen Techniken bereit, die ein Power Management-Modul beinhalten, um einen Energiesparmodus für ein Computersystem zu initialisieren, einen oder mehr nicht-zugeteilte Software-Threads zu erkennen, und den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf einem Satz an Prozessorkernen eines Mehrkern-Prozessors zu laufen, wobei der Satz an Prozessorkernen weniger als eine Gesamtanzahl an Prozessorkernen des Mehrkern-Prozessors umfasst. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Da die Nutzung von Mehrkern-Prozessoren im Laufe der Zeit fortgeschritten ist, ist der Energieverbrauch, wenn aktive Arbeitslasten betrieben werden, stetig angestiegen. Während Mehrkern-Prozessoren wesentliche Leistungsvorteile geliefert haben, hat der damit verbundene Energieverbrauch, wenn aktive Arbeitslasten betrieben werden, Computersysteme dazu veranlasst, bei höheren Temperaturen zu arbeiten und mehr Geräusche aufgrund der Verwendung von Ventilatoren und anderen Kühlgeräten während des Betriebs zu erzeugen. Außerdem stellen viele gängige moderne Betriebssysteme kein Mittel bereit, um Prozessorkerne ohne Vorbereitung hinzuzufügen oder zu entfernen. Des Weiteren umfasst das Hinzufügen und das Entfernen von Prozessoren einen hohen Arbeitsaufwand, wohingegen beispielsweise erzwungene Zuteilung oftmals einen geringeren Arbeitsaufwand umfasst.
  • Bei herkömmlichen Computersystemen können die derzeit einzig verfügbaren Mittel zum Verringern des Energieverbrauchs so sein, dass sie alle Kerne eines Mehrkern-Prozessors in niedrigere Leistungszustände zwingen (z. B. P-Zustände) und anschließend die Kerne drosseln, um zu versuchen, Energie und/oder Temperatur unter einem bestimmten Niveau zu halten. Bei Mehrkern-Betrieb ist die maximal verfügbare Drosselmenge oftmals nicht ausreichend, um den Energieverbrauch zu verringern, um einen kühlen und leisen Grenzwert zu erreichen, da ein getakteter Kernverlust wesentlich sein kann. Bei herkömmlichen Computersystemen kann das einzig verfügbare Mittel zur weiteren Verringerung der Energie derart ausgelegt sein, den Kern in einem Energiespar- oder ungetakteten Zustand anzuordnen. Als solches gibt es heutzutage kein effizientes Mittel, um Energieverbrauch von Mehrkern-Prozessoren, die aktive Arbeitslasten ausführen, einzuschränken. Demzufolge stellen verschiedene hierin beschriebene Ausführungsformen ein effizientes Mittel bereit, um Energieverbrauch und Wärmeerzeugung bei Mehrkern-Prozessoren zu verringern, wenn aktive Arbeitslasten ausgeführt werden, wodurch ein kühler und leiser Betrieb von Mehrkern-Prozessor-Systemen ermöglicht wird.
  • Ausführungsformen können ein oder mehr Elemente beinhalten. Ein Element kann jede Strukturanordnung zur Ausführung bestimmter Operationen umfassen. Jedes Element kann als Hardware, Software oder jede Kombination davon, wie für einen vorgegebenen Satz an Designparametern oder Leistungsbegrenzungen gewünscht, implementiert werden. Obwohl Ausführungsformen mit speziellen Elementen in bestimmten Anordnungen als Beispiel beschrieben werden können, können Ausführungsformen andere Kombinationen von Elementen in wechselnden Anordnungen beinhalten.
  • Es ist wichtig zu beachten, dass jeglicher Verweis auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristik, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform enthalten ist. Die Verwendung des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf die gleiche Ausführungsform.
  • 1 veranschaulicht eine Ausführungsform einer Vorrichtung. 1 veranschaulicht ein Blockdiagramm einer Vorrichtung 100. Vorrichtung 100 kann bei einigen Ausführungsformen ein Computersystem umfassen. Wie in 1 gezeigt, umfasst Vorrichtung 100 mehrere Elemente, wie z. B. Power Management-Modul 102, Speicher 104, Betriebssystem 106 und Mehrkern-Prozessor 108 einschließlich Kerne 108-1-m. Die Ausführungsformen sind jedoch nicht auf die in dieser Figur gezeigten Elemente oder die Konfiguration beschränkt.
  • Bei verschiedenen Ausführungsformen kann Mehrkern-Prozessor 108 einen Hauptprozessor beinhalten, der einen oder mehr Prozessorkerne 108-1-m beinhaltet. Der Prozessor 108 kann jede Art Verarbeitungseinheit beinhalten, wie z. B. CPU, Multi-Verarbeitungseinheit, einen RISC-Rechner (reduced instruction set computer, RISC), einen Prozessor mit Pipeline, einen CISC-Rechner (complex instruction set computer, CISC), digitalen Signalprozessor (digital signal processor, DSP) und so weiter.
  • Bei verschiedenen Ausführungsformen kann Speicher 104 jede geeignete Art Speichereinheit, Speichergerät, Speicherprodukt und/oder Speichermedium beinhalten, beispielsweise Speicher, Wechseldatenträger oder nicht austauschbarer Datenträger, flüchtiger oder Permanentspeicher, löschbarer oder nicht löschbarer Datenträger, beschreibbarer oder nicht beschreibbarer Datenträger, digitaler oder analoger Datenträger, Festplatte, Diskette, CD-ROM (Compact Disk Read Only Memory), CD-R (Compact Disk Recordable), CD-RW (Compact Disk Rewriteable), optische Disk, magnetischer Datenträger, magnetooptische Datenträger, entfernbare Speicherkarten oder -disketten, verschiedene Arten DVDs (Digital Versatile Disks), ein Band, eine Kassette oder dergleichen.
  • Betriebssystem (operating system, OS) 106 kann bei einigen Ausführungsformen eine Schnittstelle zwischen verschiedenen Hardware-Komponenten von Vorrichtung 100 und einem Benutzer umfassen. Bei verschiedenen Ausführungsformen kann OS 106 für die Verwaltung und Koordination von Aktivitäten und das gemeinsame Benutzen der Ressourcen des Computersystems 100 verantwortlich sein. Bei einigen Ausführungsformen kann OS 106 als ein Host für eine Vielzahl von Computer-Anwendungen dienen, die auf Computersystem 100 laufen. Beispielsweise kann OS 106 bei einigen Ausführungsformen ein Windows©-Betriebssystem der Microsoft Corporation© aus Redmond, Washington umfassen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei verschiedenen Ausführungsformen kann Power Management-Modul 102 einen Software-Treiber oder eine Software-Anwendung umfassen, um Energie und Wärmeerzeugung für Computersystem 100 zu verwalten. Bei einigen Ausführungsformen kann Power Management-Modul 102 einen Software-Treiber umfassen, der unter OS 106 läuft, der Eintritt in und Verwaltung eines spezifischen Energieplans steuert, wie z. B. ein kühler und leiser Energieplan oder ein Energiesparplan. Der Energiesparplan kann bei verschiedenen Ausführungsformen einen konfigurierbaren Plan umfassen, der den Energieverbrauch des Prozessors während aktiven Arbeitslasten verringert. Es ist selbstverständlich, dass, während Power Management-Modul 102 als separate Komponente in Computersystem 100 gezeigt ist, es in Speicher 104 als Teil von OS 106 oder an jedem anderen Ort oder Konfiguration eingeschlossen sein kann und immer noch in den Umfang der beschriebenen Ausführungsformen fällt. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei einigen Ausführungsformen kann Power Management-Modul 102 betrieben werden, um einen Energiesparmodus für Computersystem 100 zu initialisieren. Energiesparmodus (oder kühler und leiser Modus) kann einen konfigurierbaren Energieplan umfassen, der so angepasst ist, um es Computersystem 100 zu ermöglichen, mit verringertem Energieverbrauch, verringerter Wärmeerzeugung und verringerten Geräuschen betrieben zu werden, im Vergleich zu einem normalen oder herkömmlichen Betriebsmodus.
  • Initialisieren des Energiesparmodus kann durch Drücken eines Knopfes durch einen Benutzer oder den Eintritt in einen spezifischen Energieplan, basierend auf erkannter Systemleistung- und/oder System- oder Komponentenbedingungen, erfolgen. Beispielsweise kann bei einigen Ausführungsformen Power Management-Modul 102 Informationen empfangen, die den Energieverbrauch und/oder das Wärme- oder Geräuschniveau betreffen, das derzeit von verschiedenen Komponenten von Computersystem 100 erzeugt wird, und kann automatisch in den Energiesparmodus eintreten. Bei einigen Ausführungsformen kann ein Benutzer den Energiesparmodus manuell initiieren, indem er entweder bei der Hardware oder Software einen Knopf drückt, um den Energiesparmodus zu ermöglichen, oder durch Ermöglichen oder Aktivieren von System-Voreinstellungen hinsichtlich Energiesparmodus. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei verschiedenen Ausführungsformen kann Power Management-Modul 102 aktive Arbeitslasten überwachen, und kann bestimmte Arbeitslasten bei Eintritt in den Energiesparmodus umverteilen. Beispielsweise kann Power Management-Modul 102 Software-Threads überwachen, die mit einer oder mehr aktiven Anwendungen verbunden sind, die auf dem Computersystem 100 laufen. Software-Threads können beispielsweise Befehle umfassen, die zur Ausführung von Tasks ausgeführt werden. Bei einigen Ausführungsformen, bei einem Mehrkern-System, wie z. B. Computersystem 100, können die Threads oder Tasks gleichzeitig (z. B. parallel) laufen, wobei jeder Prozessor 108 oder jeder Prozessorkern 108-1-m einen bestimmten Thread oder Task betreibt. Während manche herkömmlichen Computersysteme in der Lage sind, Threads zuzuteilen, ist diese Fähigkeit typischerweise nicht implementiert, da spezialisiertes Systemfachwissen oftmals erforderlich ist, um einen wesentlichen Nutzen zu erreichen. Bei vielen herkömmlichen Systemen teilen die meisten Anwendungen ihre Tasks spezifischen Prozessoren nicht zu. Beispielsweise kann bei herkömmlichen Systemen ein OS-Scheduler ganz frei nach Ermessen einen Software-Thread auf Logik-Prozessoren laufen lassen. Anders ausgedrückt, ein OS-Scheduler kann bei einem herkömmlichen Computersystem Threads schedulen, um auf allen verfügbaren Logik-Prozessoren (z. B. Prozessorkerne 108-1-m) zu laufen.
  • Power Management-Modul 102 kann betrieben werden, um bei einigen Ausführungsformen einen oder mehr nicht-zugeteilte Software-Threads zu erkennen. Beispielsweise kann Power Management-Modul 102 eine OS-Umgebung durchgängig überwachen, wie z. B. OS 106, hinsichtlich Thread-Erstellung, Löschung und/oder Modusänderungen, und kann Threads identifizieren, die nicht zugeteilt sind und die nicht anderweitig von der Zuteilung befreit oder ausgeschlossen sind. Bei verschiedenen Ausführungsformen kann Power Management-Modul 102 betrieben werden, um den einen oder mehr nicht-zugewiesene Software-Threads zuzuteilen, auf einem Satz an Prozessorkernen von Mehrkern-Prozessor 108 zu laufen. Beispielsweise kann Power Management-Modul 102 einen oder mehr nicht-zugeteilte Software-Threads zuteilen, auf weniger als einer Gesamtanzahl an Prozessorkernen des Mehrkern-Prozessors 108 zu laufen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei einigen Ausführungsformen kann Power Management-Modul 102, wenn im Energiesparmodus, alle nicht-zugeteilten Software-Threads durchgängig einem konfigurierten spezifischen Satz an Logik-Prozessoren zuteilen. Bei verschiedenen Ausführungsformen, wenn die Prozessor-Topologie bekannt ist, kann der Satz an Prozessorkernen, dem die Software-Threads für den Betrieb zugeteilt sind, eingestellt oder ausgewählt werden, sodass Logik-Prozessoren ausgeschlossen werden, die mit spezifischen physikalischen Prozessorkernen verbunden sind. Power Management-Modul 102 kann beispielsweise betrieben werden, um Energiemerkmale oder Wärmemerkmale für jeden der Prozessorkerne 108-1-m des Mehrkern-Prozessors 108 zu erkennen, und um den Satz an Prozessorkernen auszuwählen, der für die Zuteilung verwendet wird, basierend auf den Energiemerkmalen oder Wärmemerkmalen.
  • Bei einigen Ausführungsformen, wenn der OS-Scheduler aufgrund eines Aufrufs des Energiesparmodus aufhört, Arbeit auf bestimmten Kernen zu schedulen, treten die Kerne auf natürliche Weise in den Leerlauf und treten in Energiesparzustände des Prozessors ein. Während dies beispielsweise eine höhere Auslastung auf einer geringeren Anzahl an Prozessorkernen zur Folge haben kann, kann die Gesamtleistung von Computersystem 100 gemeinsam mit Energieverbrauch, Wärmeerzeugung und Geräuscherzeugung verringert werden. Außerdem kann bei einigen Ausführungsformen Power Management-Modul 102 betrieben werden, um nacheinander die Anzahl an Prozessorkernen in dem ausgewählten Satz an Prozessorkernen zu verringern, und den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf dem verringerten Satz an Prozessorkernen zu laufen, um durchgängig Energieverbrauch sowie Wärme- und Geräuscherzeugung zu verringern. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei verschiedenen Ausführungsformen kann der niedrigste Energiebetrieb für ein Computersystem dadurch verursacht werden, dass alle Software-Threads einem Prozessorkern zugeteilt werden, wodurch effektiv das nachgeahmt wird, was durch eine Prozessor-Hot-Remove-Operation erreicht werden würde. Beispielsweise kann Power Management-Modul 102 bei einigen Ausführungsformen betrieben werden, um den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf einem aus der Vielzahl von Prozessorkernen 108-1-m des Mehrkern-Prozessors 108 zu laufen.
  • Zuteilen aller Software-Threads zu einem Prozessorkern kann zu verringertem Energieverbrauch sowie verringerter Wärme- und Geräuscherzeugung für Computersystem 100 führen. Bei einigen Ausführungsformen kann der Energieverbrauch sowie Wärme- und Geräuscherzeugung jedoch weiter verringert werden, indem der Gebrauch des OS 106 von Prozessorleistungszuständen auf eine konfigurierte Anzahl an Energiesparzuständen verringert wird, sobald effektiver Einzelkernbetrieb erreicht worden ist. Beispielsweise kann das Power Management-Modul 102 betrieben werden, um Prozessorleistungszustände für einen oder mehr der Prozessorkerne 108-1-m in dem Satz an Prozessorkernen, die für Thread-Zuteilung ausgewählt wurden, zu verringern. Bei verschiedenen Ausführungsformen kann Energiesparbetrieb durch Einschränken des OS P-Zustands auf den niedrigsten Energiespan-P-Zustand für den/die verbliebenen Kern(e) erreicht werden. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei einigen Ausführungsformen kann eine weitere Energieverringerung der aktiven Arbeitslast durch lineares Drosseln erreicht werden, nachdem alle Threads zur Ausführung auf einem Einzelprozessorkern zugeteilt wurden, und dieser Kern wird in seinem niedrigsten P-Zustand betrieben. Beispielsweise kann Power Management-Modul 102 betrieben werden, um lineares Drosseln bei einem oder mehr der Prozessorkerne in dem Satz an Prozessorkernen anzuwenden. Bei verschiedenen Ausführungsformen kann die lineare Drossel-Operation selbst jedoch einen Energieaufwand bedeuten, der sich auf die Systemleistung auswirkt. Folglich kann Auslastung erkannt werden und ein Drosseln kann nur angewendet werden, wenn beispielsweise die Auslastung einen konfigurierbaren Grenzwert überschreitet. Beispielsweise kann Power Management-Modul 102 betrieben werden, um das lineare Drosseln basierend auf einem Auslastungsgrenzwert anzuwenden.
  • Bei einigen Ausführungsformen kann der Auslastungsgrenzwert für das System an der Stelle der positiven Rückkehr gesetzt werden (z. B. die Stelle, wo das Drosseln Energie verringert und diese nicht erhöht).
  • 2 veranschaulicht eine Ausführungsform eines Logikflusses 200. Der Logikfluss 200 kann von verschiedenen Systemen und/oder Geräten ausgeführt werden, und kann als Hardware, Software, Firmware und/oder jeder Kombination davon implementiert werden, wie für einen gegebenen Satz an Designparametern oder Leistungsbegrenzungen gewünscht. Beispielsweise können eine oder mehr Operationen des Logikflusses 200 durch ausführbare Programmierung oder computerlesbare Befehle, die von einem Logikgerät (z. B. Computer, Prozessor) ausgeführt werden sollen, implementiert sein. Logikfluss 200 kann die Energiesparmerkmale beschreiben, wie vorstehend unter Bezugnahme auf Vorrichtung 100 und Energiesparmodul 102 beschrieben.
  • Bei verschiedenen Ausführungsformen kann bei 202 in einen Energiesparmodus eingetreten werden oder dieser kann dort initialisiert werden. Beispielsweise kann ein Benutzer einen Energiesparmodus auswählen, indem er einen Knopf drückt oder anderweitig anzeigt, dass er den Wunsch hat, in einen Energiesparmodus in einem Computersystem einzutreten. Bei 204 kann ein oder mehr Software-Threads erkannt werden. Beispielsweise kann ein Gerätetreiber oder anderes Anwendungsprogramm konfiguriert werden, um durchgängig Software-Threads zu überwachen und zu erkennen, die für Ausführung durch einen Mehrkern-Prozessor geschedult sind. Bei 206 wird bestimmt, ob die erkannten Software-Threads zugeteilt sind oder nicht. Wenn einer oder mehr Threads bereits zugeteilt sind oder anderweitig von der Zuteilung befreit oder ausgeschlossen sind, wird die Zuteilung dieser Threads nicht angepasst. Wenn nicht-zugeteilte Threads erkannt werden, kann ein durchgängiges Überwachen und Erkennen von Software-Threads eintreten.
  • Bei einigen Ausführungsformen, wenn ein oder mehr Threads nicht-zugeteilt sind und von der Zuteilung nicht befreit oder ausgeschlossen sind, können die Threads bei 206 zugeteilt werden. Beispielsweise können die nicht-zugeteilten Threads zur Ausführung auf weniger als einer Gesamtanzahl an verfügbaren Kernen auf einem Mehrkern-Prozessor geschedult sein. Infolge der erzwungenen Zuteilung der erkannten nicht-zugeteilten Threads wird bei 210 bestimmt, ob eine statische oder dynamische Konfiguration ermöglicht und/oder gewünscht wird. Beispielsweise kann eine statische Konfiguration ausgewählt werden, die vorbestimmte Leistungskriterien beinhaltet, oder eine dynamische Konfiguration kann ausgewählt werden, die Leistungsziele beinhaltet, die erreicht werden, unabhängig von der sich ergebenden Konfiguration. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Wenn die statische Konfiguration ausgewählt ist, werden bei 222 vorbestimmte Leistungszustände (z. B. P-Zustände) für die verbleibenden Prozessoren oder Prozessorkerne ausgewählt. Bei 224 wird bestimmt, ob der niedrigste P-Zustand ausgewählt wurde, und wenn ja, wird bei 226 bestimmt, ob ein Auslastungsgrenzwert erreicht worden ist. Wenn ja, kann bei 228 ein Drosseln angewendet werden. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei verschiedenen Ausführungsformen, wenn die dynamische Konfiguration ausgewählt ist, wird bei 212 bestimmt, ob weitere Energieeinsparungen gewünscht sind oder ob aufgestellte Wärme- und Akustikziele erreicht worden sind. Wenn zusätzliche Energieeinsparungen gewünscht sind oder Ziele nicht erreicht worden sind, können die Leistungszustände (z. B. P-Zustände) für die Kerne, die für die Zuteilung der Software-Threads ausgewählt wurden, bei 214 verringert werden. Bei verschiedenen Ausführungsformen wird bei 216 bestimmt, ob weitere Energieeinsparungen gewünscht sind oder ob Energie-, Wärme- oder Akustikziele immer noch nicht erreicht worden sind. Wenn zusätzliche Energieeinsparungen gewünscht werden oder Ziele nicht erreicht worden sind, wird bei 218 bestimmt, ob ein Auslastungsgrenzwert überschritten worden ist oder nicht, und wenn ja, kann bei 220 lineares Drosseln angewendet werden.
  • Bei einigen Ausführungsformen kann die dynamische Konfiguration ein Zuteilen der Threads beinhalten, um Logik-Prozessoren nacheinander einzusetzen, bis die Ziele erreicht sind. Beispielsweise kann die dynamische Konfiguration eine nacheinander stattfindende Verringerung der Anzahl an eingesetzten Kernen beinhalten, bis die Ziele erreicht sind. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei verschiedenen Ausführungsformen kann aus dem Energiesparmodus aus unterschiedlichen Gründen zu jeder Zeit ausgetreten werden, u. a. benutzergewählter Austritt oder leistungsbasierter Austritt. Bei einigen Ausführungsformen kann bei 240 ein Austreten aus dem Energiesparmodus erkannt werden. Bei verschiedenen Ausführungsformen kann der Austritt bei der dynamischen Konfiguration geschehen, wenn z. B. das Drosseln und die P-Zustände und der Kerngebrauch zurückgefahren werden und/oder wenn die Ziele erreicht worden sind. Im Falle eines Austretens aus dem Energiesparmodus können die zugeteilten Threads bei 242 nicht-zugeteilt werden, und das System kann bei 244 den normalen Betrieb wieder aufnehmen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Während bestimmte Ausführungsformen hinsichtlich eines Software-Threads beschrieben sind, ist es selbstverständlich, dass jede Anzahl an Threads und jede Anzahl an Kernen eines Mehrkern-Prozessors verwendet werden kann und immer noch im Umfang der beschriebenen Ausführungsformen liegt. Außerdem ist es selbstverständlich, dass bei einigen Ausführungsformen Logikfluss 200 implementiert oder angeordnet sein kann, um Tasks parallel auszuführen, einschließlich Verarbeiten einer Vielzahl von Threads und Steuern einer Vielzahl von Kernen, was im Wesentlichen gleichzeitig passiert. Des Weiteren ist es ebenfalls selbstverständlich, dass der Logikfluss 200 nur ein Beispiel eines Logikflusses ist, und dass unterschiedliche Mengen, Reihenfolgen und/oder Anordnungen der Operationen, beschrieben in Logikfluss 200, implementiert sein können und immer noch im Umfang der beschriebenen Ausführungsformen liegen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • 3 veranschaulicht eine Ausführungsform eines zweiten Logikflusses 300. Wie vorstehend unter Bezugnahme auf Logikfluss 200 beschrieben, kann der Logikfluss 300 durch verschiedene Systeme und/oder Geräte ausgeführt werden, und kann als Hardware, Software, Firmware und/oder jede Kombination davon implementiert werden, wie für einen vorgegebenen Satz an Designparametern oder Leistungsbegrenzungen gewünscht. Beispielsweise können eine oder mehr Operationen des Logikflusses 300 durch ausführbare Programmierung oder computerlesbare Befehle implementiert werden, die von einem Logik-Gerät ausgeführt werden sollen (z. B. Computer, Prozessor).
  • Bei einer Ausführungsform kann bei 302 ein Energiesparmodus initialisiert werden. Beispielsweise kann Power Management-Modul 102 einen Energiespar- oder kühlen und leisen Betriebsmodus für Computersystem 100 initialisieren. Bei 302 können ein oder mehrere nicht-zugeteilte Software-Threads erkannt werden. Beispielsweise kann Power Management-Modul 102 einen oder mehr nicht-zugeteilte Software-Threads erkennen, die zur Ausführung durch Mehrkern-Prozessor 108 geschedult sind.
  • Bei verschiedenen Ausführungsformen können bei 306 der eine oder mehr nicht-zugeteilte Software-Threads zugeteilt werden, auf einem Satz an Prozessorkernen eines Mehrkern-Prozessors zu laufen. Bei einigen Ausführungsformen umfasst der Satz an Prozessorkernen weniger als eine Gesamtanzahl an Prozessorkernen des Mehrkern-Prozessors. Beispielsweise können bei einer Ausführungsform der eine oder mehr nicht-zugeteilte Software-Threads zugeteilt werden, auf einem von einer Vielzahl von Prozessorkernen 108-1-m des Mehrkern-Prozessors 108 zu laufen. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • Bei einigen Ausführungsformen können Energiemerkmale und/oder Wärmemerkmale für jeden der Prozessorkerne des Mehrkern-Prozessors erkannt werden, und der Satz an Prozessorkernen kann ausgewählt werden, basierend auf den Energiemerkmalen und/oder Wärmemerkmalen. Beispielsweise kann Power Management-Modul 102 verschiedene Komponenten von Computersystem 100 überwachen und den Satz an Prozessorkernen 108-1-m auswählen, die für die Zuteilung der Software-Threads verwendet werden, basierend auf Merkmalen der Komponenten.
  • Bei verschiedenen Ausführungsformen kann die Anzahl an Prozessorkernen in dem Satz an Prozessorkernen nacheinander verringert werden, und der eine oder mehr nicht-zugeteilte Software-Thread können zugeteilt werden, auf dem verringerten Satz an Prozessorkernen zu laufen. Beispielsweise kann Power Management-Modul 102 betrieben werden, um Mehrkern-Prozessor 108 und jeden Software-Thread, der von Mehrkern-Prozessor 108 ausgeführt wird oder zur Ausführung geschedult ist, durchgängig zu überwachen, und kann, wenn gewährleistet, weiter den Satz an ausgewählten Kernen, die zur Zuteilung von Software-Threads verwendet werden, verringern.
  • Bei einigen Ausführungsformen, wenn weitere Energieeinsparungen zusätzlich zu den Einsparungen erwünscht sind, die mittels Thread-Zuteilung erreicht wurden, können Leistungszustände für einen oder mehr der Prozessorkerne in dem Satz an Prozessorkernen verringert werden. Wenn beispielsweise ein Einzelkern von Mehrkern-Prozessor 108 verwendet wird, um eine Vielzahl von Software-Threads auszuführen, können zusätzliche Energieeinsparungen erreicht werden, indem der P-Zustand des Einzelkerns verringert wird. Noch weitere Energieeinsparungen können erreicht werden, wenn lineares Drosseln auf einen oder mehr Prozessorkerne in dem Satz an Prozessorkernen angewendet wird. Bei verschiedenen Ausführungsformen wird das lineare Drosseln basierend auf einem Auslastungsgrenzwert angewendet. Weitere Ausführungsformen sind beschrieben und werden beansprucht.
  • 4 ist ein Diagramm einer beispielhaften Ausführungsform eines Systems. Insbesondere ist 4 ein Diagramm, das ein System 400 zeigt, das verschiedene Elemente beinhalten kann. Beispielweise zeigt 4, dass System 400 einen Prozessor 402, einen Chipsatz 404, ein Eingangs/Ausgangs-(I/O-Input/Output)-Gerät 406, einen Direktzugriffsspeicher (random access memory, RAM) (wie z. B. einen dynamischen RAM (DRAM)) 408 und einen Festspeicher (read only memory, ROM) 410 und verschiedene Plattformkomponenten 414 (z. B. einen Lüfter, ein Querstromgebläse, einen Kühlkörper, ein DTM-System, Kühlung, Gehäuse, Entlüfter und so weiter) beinhalten kann. Diese Elemente können in Hardware, Software, Firmware oder jeder Kombination davon implementiert sein. Die Ausführungsformen sind jedoch nicht auf diese Elemente beschränkt.
  • Wie in 4 gezeigt, sind I/O-Gerät 406, RAM 408 und ROM 410 mit Prozessor 402 mittels Chipsatz 404 gekoppelt. Chipsatz 404 kann durch einen Bus 412 mit Prozessor 402 gekoppelt sein. Demnach kann Bus 412 mehrere Leitungen beinhalten.
  • Prozessor 402 kann ein Hauptprozessor mit einem oder mehr Prozessorkernen sein und kann jede Anzahl an Prozessoren mit jeder Anzahl an Prozessorkernen beinhalten. Der Prozessor 402 kann jede Art Verarbeitungseinheit beinhalten, wie z. B. CPU, Multi-Verarbeitungseinheit, einen RISC-Rechner (reduced instruction set computer, RISC), einen Prozessor mit Pipeline, einen CISC-Rechner (complex instruction set computer, CISC), digitalen Signalprozessor (digital signal processor, DSP) und so weiter.
  • Obwohl nicht gezeigt, kann das System 400 verschiedene Schnittstellenschaltungen, wie z. B. eine Ethernet-Schnittstelle und/oder eine Universelle-Serielle-Bus-(Universal Serial Bus, USB)-Schnittstelle und/oder dergleichen, beinhalten. Bei einigen beispielhaften Ausführungsformen kann das I/O-Gerät 406 ein oder mehr Eingabegeräte, die mit Schnittstellenschaltungen verbunden sind, umfassen, um Daten und Befehle in das System 400 einzugeben. Beispielsweise können die Eingabegeräte eine Tastatur, Maus, Touchscreen, Trackpad, Trackball, Isopoint, ein Spracherkennungssystem und/oder dergleichen beinhalten. Ebenso kann das I/O-Gerät 406 ein oder mehr Ausgabegeräte, die mit Schnittstellenschaltungen verbunden sind, umfassen, um Informationen an einen Bediener auszugeben. Beispielsweise können die Ausgabegeräte ein oder mehr Displays, Drucker, Lautsprecher und/oder andere Ausgabegeräte beinhalten, wenn gewünscht. Beispielsweise kann eines der Ausgabegeräte ein Display sein. Das Display kann ein Röhrenmonitor (cathode ray tube, CRT), Flüssigkristallbildschirme (liquid crystal displays, LCDs) oder jede andere Art Display sein.
  • Das System 400 kann ebenfalls eine drahtgebundene oder drahtlose Netzwerkschnittstelle aufweisen, um Daten mit anderen Geräten über eine Verbindung zu einem Netzwerk auszutauschen. Die Netzwerkverbindung kann jede Art Netzwerkverbindung sein, wie beispielsweise eine Ethernet-Verbindung, eine DSL-(digital subscriber line)-Leitung, eine Telefonleitung, ein Koaxialkabel etc. Das Netzwerk kann jede Art Netzwerk sein, wie z. B. das Internet, ein Telefonnetz, ein Kabelnetz, ein Drahtlos-Netzwerk, ein paketvermitteltes Netzwerk, ein leitungsvermitteltes Netzwerk und/oder dergleichen.
  • Zahlreiche spezifische Details wurden hierin gegeben, um ein gründliches Verständnis der Ausführungsformen bereitzustellen. Es ist jedoch für einen Fachmann selbstverständlich, dass die Ausführungsformen ohne diese spezifischen Details betrieben werden können. In anderen Fällen wurden wohlbekannte Operationen, Komponenten und Schaltungen nicht im Detail beschrieben, um die Ausführungsformen nicht in den Hintergrund rücken zu lassen. Es ist selbstverständlich, dass die hierin offenbarten spezifischen strukturellen und funktionalen Details repräsentativ sein können und nicht notwendigerweise den Umfang der Ausführungsformen einschränken.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardware-Elementen, Software-Elementen oder einer Kombination beider implementiert werden. Beispiele von Hardware-Elementen können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktionsspulen und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (application specific integrated circuits, ASIC), programmierbare Logikeinheiten (programmable logic devices, PLD), digitale Signalprozessoren (digital signal processors, DSP), Field Programmable Gate Array (FPGA), Logikgatter, Register, ein Halbleitergerät, Chips, Mikrochips, Chipsätze und so weiter beinhalten. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Hilfsprogramme, Unterprogramme, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Programmierschnittstellen (application program interfaces, API), Befehlssätze, EDV-Code, Computercode, Codesegmente, Computercodesegmente, Worte, Werte, Symbole oder jede Kombination davon beinhalten. Die Bestimmung, ob eine Ausführungsform unter Verwendung von Hardware-Elementen und/oder Software-Elementen implementiert wird, kann in Übereinstimmung mit einer beliebigen Anzahl an Faktoren variieren, wie beispielsweise gewünschte Rechengeschwindigkeit, Energieniveaus, Wärmetoleranzen, Budget der Verarbeitungszyklen, Eingabedatengeschwindigkeiten, Ausgabedatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Beschränkungen bezüglich Design oder Leistung.
  • Einige Ausführungsformen können unter Verwendung des Begriffes „gekoppelt” und „verbunden” zusammen mit ihren Ableitungen beschrieben werden. Diese Begriffe sind jedoch nicht als Synonyme füreinander zu verstehen. Einige Ausführungsformen können beispielsweise unter Verwendung der Begriffe „verbunden” und/oder „gekoppelt” beschrieben werden, um anzuzeigen, dass zwei oder mehr Elemente in direktem physischen oder elektrischen Kontakt miteinander stehen. Der Begriff „gekoppelt” kann jedoch auch bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander stehen, aber dennoch miteinander arbeiten oder interagieren.
  • Einige Ausführungsformen können beispielsweise unter Verwendung eines maschinenlesbaren oder computerlesbaren Mediums oder Produkts implementiert sein, das einen Befehl, einen Befehlssatz oder computerausführbaren Code speichern kann, der, wenn er von einer Maschine oder einem Prozessor ausgeführt wird, die Maschine oder den Prozessor veranlassen kann, ein Verfahren und/oder Operationen in Übereinstimmung mit den Ausführungsformen auszuführen. Solch eine Maschine kann beispielsweise jede geeignete Verarbeitungsplattform, EDV-Plattform, jedes EDV-Gerät, Verarbeitungsgerät, Computersystem, Verarbeitungssystem, jeden Computer, Prozessor oder dergleichen beinhalten und kann unter Verwendung jeder geeigneten Kombination von Hardware und/oder Software implementiert sein. Das maschinenlesbare Medium oder Produkt kann beispielsweise jede geeignete Art von Speichereinheit, Speichergerät, Speicherprodukt und/oder Speichermedium beinhalten, beispielsweise Speicher, Wechseldatenträger oder nicht austauschbarer Datenträger, flüchtiger oder Permanentspeicher, löschbarer oder nicht löschbarer Datenträger, beschreibbarer oder wieder beschreibbarer Datenträger, digitaler oder analoger Datenträger, Festplatte, Diskette, CD-ROM (Compact Disk Read Only Memory), CD-R (Compact Disk Recordable), CD-RW (Compact Disk Rewriteable), optische Disk, magnetischer Datenträger, magnetooptischer Datenträger, entfernbare Speicherkarten oder -disketten, verschiedene Arten von DVDs (Digital Versatile Disks), ein Band, eine Kassette oder dergleichen. Die Befehle können jede geeignete Art von Code beinhalten, beispielsweise Quellcode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code, verschlüsselter Code und dergleichen, und können unter Verwendung jeder geeigneten höheren, maschinenorientierten, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert werden.
  • Soweit nicht ausdrücklich anderweitig festgelegt, kann es selbstverständlich sein, dass Begriffe wie beispielsweise „verarbeiten”, „berechnen”, „ermitteln”, „bestimmen” oder dergleichen sich auf die Aktion und/oder Prozesse eines Computers oder Computersystems oder eines ähnlichen elektronischen EDV-Gerätes beziehen, die Daten, als physikalische (z. B. elektronische) Größen innerhalb der Register und/oder Speicher des Computersystems dargestellt, in andere Daten, die ebenso als physikalische Größen innerhalb der Speicher, Register oder anderer solcher Informationsspeicher-, Übertragungs- oder Anzeigegeräte des Computersystems dargestellt sind, handhaben und/oder umwandeln. Die Ausführungsformen sind in diesem Kontext nicht eingeschränkt.
  • Es sollte beachtet werden, dass die hierin beschriebenen Verfahren nicht in der beschriebenen Reihenfolge oder in irgendeiner bestimmten Reihenfolge ausgeführt werden müssen. Außerdem können verschiedene Aktivitäten, die hinsichtlich der hierin identifizierten Verfahren beschrieben sind, nacheinander oder parallel ausgeführt werden.

Claims (17)

  1. Verfahren, umfassend: Empfangen (302) einer Anforderung in einen Energiesparmodus einzutreten; Kontinuierlich Erkennen (304) eines oder mehrerer nicht zugeteilter Software-Threads für eine aktive Arbeitsauslastung im Energiesparmodus; Erkennen von Energiemerkmalen oder Wärmemerkmalen für jeden der Mehrzahl von Kernen eines Mehrkern-Prozessors; Auswählen eines Satzes von Prozessorkernen basierend auf den erkannten Energiemerkmalen oder Wärmemerkmalen; Kontinuierlich Zuteilen (306) des einen oder der mehreren erkannten nicht-zugeteilten Software-Threads für die aktive Arbeitsbelastung, um auf dem Satz der ausgewählten Prozessorkerne des Mehrkern-Prozessors zu laufen, wobei der ausgewählte Satz an Prozessorkernen weniger als eine Gesamtanzahl an Prozessorkernen des Mehrkern-Prozessors umfasst; Verringern der Anzahl von Prozessorkernen in dem Satz von Prozessorkernen; Zuteilen des einen oder der mehreren nicht-zugeteilten Software-Threads, um auf dem verringerten Satz an Prozessorkernen zu laufen; und Verringern der Prozessorleistungszustände für einen oder mehrere der Prozessorkerne in dem Satz an Prozessorkernen.
  2. Das Verfahren nach Anspruch 1, umfassend: Anwenden von linearem Drosseln auf einen oder mehr der Prozessorkerne in dem Satz an Prozessorkernen.
  3. Das Verfahren nach Anspruch 2, umfassend: Anwenden des linearen Drosselns, basierend auf einem Auslastungsgrenzwert.
  4. Das Verfahren nach Anspruch 1, umfassend: Zuteilen des einen oder der mehreren nicht-zugeteilten Software-Threads, auf einem aus der Vielzahl von Prozessorkernen des Mehrkern-Prozessors zu laufen.
  5. Vorrichtung, umfassend: ein Power Management-Modul (102), das betrieben werden kann, um eine Anforderung zu empfangen, in einen Energiesparmodus einzutreten, kontinuierlich einen oder mehrere nicht-zugeteilte Software-Threads für den Energiesparmodus zu erkennen, um Energiemerkmale oder Wärmemerkmale für jeden einer Mehrzahl von Kernen (108-1, 108-2, 108-3, 108-m) eines Mehrkern-Prozessors (108) zu erkennen, um einen Satz von Prozessorkernen (108-1, 108-2, 108-3, 108-m) basierend auf den erkannten Energiemerkmalen oder Wärmemerkmalen auszuwählen, um kontinuierlich den einen oder die mehreren nicht-zugeteilten Software-Threads für die aktive Arbeitsauslastung zuzuteilen, um auf dem ausgewählten Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) eines Mehrkern-Prozessors (108) zu laufen, wobei der ausgewählte Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) weniger als eine Gesamtanzahl an Prozessorkernen (108-1, 108-2, 108-3, 108-m) des Mehrkern-Prozessors (108) umfasst, um nacheinander die Anzahl von Prozessorkernen (108-1, 108-2, 108-3, 108-m) in dem Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) zu verringern, um den einen oder mehrere nicht-zugeteilten Software-Threads zuzuteilen, auf dem verringerten Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) zu laufen und um Prozessorleistungszustände für einen oder mehrere der Prozessorkerne (108-1, 108-2, 108-3, 108-m) in dem Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) zu verringern.
  6. Die Vorrichtung nach Anspruch 5, wobei das Power Management-Modul (102) betrieben werden kann, um lineares Drosseln auf einen oder mehr der Prozessorkerne (108-1, 108-2, 108-3, 108-m) in dem Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) anzuwenden.
  7. Die Vorrichtung nach Anspruch 6, wobei das Power Management-Modul (102) betrieben werden kann, um das lineare Drosseln basierend auf einem Auslastungsgrenzwert anzuwenden.
  8. Die Vorrichtung nach Anspruch 5, wobei das Power Management-Modul (102) betrieben werden kann, um den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf einem aus der Vielzahl von Prozessorkernen (108-1, 108-2, 108-3, 108-m) des Mehrkern-Prozessors (108) zu laufen.
  9. Produkt, umfassend ein computerlesbares Speichermedium, das Befehle aufweist, die, wenn sie durch einen Prozessor ausgeführt werden, ein System in die Lage versetzen: eine Anforderung, in einen Energiesparmodus einzutreten, zu empfangen, kontinuierlich einen oder mehrere nicht-zugeteilte Software-Threads für den Energiesparmodus zu erkennen (304); Energiemerkmale oder Wärmemerkmale für jeden der Prozessorkerne eines Mehrkern-Prozessors zu erkennen; einen Satz an Prozessorkernen basierend auf den erkannten Energiemerkmalen oder Wärmemerkmalen auszuwählen; kontinuierlich den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen (306), auf dem ausgewählten Satz an Prozessorkernen eines Mehrkern-Prozessors zu laufen, wobei der ausgewählte Satz an Prozessorkernen weniger als eine Gesamtanzahl an Prozessorkernen des Mehrkern-Prozessors umfasst, nacheinander die Anzahl an Prozessorkernen im Satz an Prozessorkernen zu verringern; den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf dem verringerten Satz an Prozessorkernen zu laufen; und Prozessorleistungszustände für einen oder mehrere der Prozessorkerne im Satz an Prozessorkernen zu verringern.
  10. Das Produkt nach Anspruch 9, umfassend Befehle, die, wenn sie ausgeführt werden, das System in die Lage versetzen, lineares Drosseln auf einen oder mehr der Prozessorkerne in dem Satz an Prozessorkernen anzuwenden.
  11. Das Produkt nach Anspruch 10, umfassend Befehle, die, wenn sie ausgeführt werden, das System in die Lage versetzen, lineares Drosseln, basierend auf einem Auslastungsgrenzwert, anzuwenden.
  12. Das Produkt nach Anspruch 9, umfassend Befehle, die, wenn sie ausgeführt werden, das System in die Lage versetzen, den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf einem aus der Vielzahl von Prozessorkernen des Mehrkern-Prozessors zu laufen.
  13. System, umfassend: einen Mehrkern-Prozessor (108); und ein Power Management-Modul (102), das betrieben werden kann, um eine Anforderung zu empfangen, in einen Energiesparmodus einzutreten, um kontinuierlich einen oder mehrere nicht-zugeteilte Software-Threads für einen Energiesparmodus zu erkennen, um Energiemerkmale oder Wärmemerkmale für jeden der Mehrzahl von Prozessor-Kernen (108-1, 108-2, 108-3, 108-m) eines Mehrkern-Prozessors (108) zu erkennen, um einen Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) basierend auf den erkannten Energiemerkmalen oder Wärmemerkmalen auszuwählen; kontinuierlich den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf dem ausgewählten Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) des Mehrkern-Prozessors (108) zu laufen, wobei der ausgewählte Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) weniger als eine Gesamtanzahl an Prozessorkernen (108-1, 108-2, 108-3, 108-m) des Mehrkern-Prozessors (108) umfasst, um nacheinander die Anzahl an Prozessorkernen (108-1, 108-2, 108-3, 108-m) in dem Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) zu verringern, um den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf dem verringerten Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) zu laufen, und um Prozessorleistungszustände für einen oder mehrere der Prozessorkerne (108-1, 108-2, 108-3, 108-m) im Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) zu verringern.
  14. Das System nach Anspruch 13, wobei das Power Management-Modul (102) betrieben werden kann, um lineares Drosseln auf einen oder mehr der Prozessorkerne (108-1, 108-2, 108-3, 108-m) in dem Satz an Prozessorkernen (108-1, 108-2, 108-3, 108-m) anzuwenden.
  15. Das System nach Anspruch 14, wobei das Power Management-Modul (102) betrieben werden kann, um das lineare Drosseln basierend auf einem Auslastungsgrenzwert anzuwenden.
  16. Das System nach Anspruch 13, wobei das Power Management-Modul (102) betrieben werden kann, um den einen oder die mehreren nicht-zugeteilten Software-Threads zuzuteilen, auf einem aus der Vielzahl von Prozessorkernen(108-1, 108-2, 108-3, 108-m) des Mehrkern-Prozessors (108) zu laufen.
  17. Das System nach Anspruch 13, umfassend: einen flüchtigen Speicher (104), um das Power Management-Modul (102) zu speichern.
DE102010034097.9A 2009-09-26 2010-08-12 Verfahren und Vorrichtung für Energiesparbetrieb von Mehrkern-Prozessoren Expired - Fee Related DE102010034097B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US56777509A 2009-09-26 2009-09-26
US12/567,775 2009-09-26

Publications (2)

Publication Number Publication Date
DE102010034097A1 DE102010034097A1 (de) 2011-04-07
DE102010034097B4 true DE102010034097B4 (de) 2016-01-07

Family

ID=43705796

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010034097.9A Expired - Fee Related DE102010034097B4 (de) 2009-09-26 2010-08-12 Verfahren und Vorrichtung für Energiesparbetrieb von Mehrkern-Prozessoren

Country Status (1)

Country Link
DE (1) DE102010034097B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130155081A1 (en) * 2011-12-15 2013-06-20 Ati Technologies Ulc Power management in multiple processor system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187909A1 (en) * 2008-01-22 2009-07-23 Russell Andrew C Shared resource based thread scheduling with affinity and/or selectable criteria

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090187909A1 (en) * 2008-01-22 2009-07-23 Russell Andrew C Shared resource based thread scheduling with affinity and/or selectable criteria

Also Published As

Publication number Publication date
DE102010034097A1 (de) 2011-04-07

Similar Documents

Publication Publication Date Title
DE102011015555B4 (de) Verfahren und vorrichtung für interrupt-power-management
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE102009058426B4 (de) Verfahren und Vorrichtung zum Power-Management eines Prozessors
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
JP5746271B2 (ja) 低電力動作のための方法、装置、コンピュータプログラム及びシステム
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE102006028307B4 (de) Powermanagement von mehreren Prozessoren
US8892916B2 (en) Dynamic core pool management
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102009019824A1 (de) Auslastungsbasierte Bestimmung von betrieblichen Kennlinien
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112007000446T5 (de) Verfahren und Vorrichtung zum Verwenden dynamischer Arbeitsmengenmerkmale, um die Skalierung von Frequenz und Spannung einer CPU zu steuern
DE102009051387A1 (de) Power Management für Mehrprozessorkerne
DE10196656B4 (de) Verfahren zum Steuern der Betriebstemperatur eines Mikroprozessors
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE112012003701T5 (de) Dynamisches Zuordnen eines Leistungsbudgets über mehrere Domänen eines Prozessors
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE10296549T5 (de) Ein Verfahren zum Bestimmen von Überführungspunkten bei Mikroprozessoren mit mehreren Leistungszuständen
DE112007001433B4 (de) Verfahren, Vorrichtung und System zum Wärmemanagement unter Verwendung einer Leistungdichte-Rückmeldung
DE112005002626T5 (de) Computer und Verfahren zum Realisieren einer Anwendung eines Haushaltsgeräts mit niedrigem Energie-bzw. Stromverbrauch
DE112015004564T5 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE102013109250B4 (de) Anwendungsausführung mit geringer Leistung in einer Datenverarbeitungseinrichtung mit geringer Auslastung einer Grafikverarbeitungseinheit
DE102010034097B4 (de) Verfahren und Vorrichtung für Energiesparbetrieb von Mehrkern-Prozessoren

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
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee