-
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.