DE102006028307B4 - Powermanagement von mehreren Prozessoren - Google Patents
Powermanagement von mehreren Prozessoren Download PDFInfo
- Publication number
- DE102006028307B4 DE102006028307B4 DE102006028307A DE102006028307A DE102006028307B4 DE 102006028307 B4 DE102006028307 B4 DE 102006028307B4 DE 102006028307 A DE102006028307 A DE 102006028307A DE 102006028307 A DE102006028307 A DE 102006028307A DE 102006028307 B4 DE102006028307 B4 DE 102006028307B4
- Authority
- DE
- Germany
- Prior art keywords
- processors
- physical processors
- usage
- information processing
- program
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 claims abstract description 59
- 238000000034 method Methods 0.000 claims description 20
- 238000005265 energy consumption Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
Images
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
- 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/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- 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
- 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/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- 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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
Ein Informationsverarbeitungssystem mit einer Mehrzahl von physischen Prozessoren, die in der Lage sind, in entweder einem Zustand niedriger Leistung oder einem Zustand hoher Leistung zu arbeiten und in der Lage sind, logische Prozessoren zu betreiben, die Programm-Threads ausführen können. Jeder Programm-Thread wird zur Ausführung einem jeweiligen logischen Prozessor zugeordnet. Die Zuordnung eines jeden Programm-Threads zu dem jeweiligen logischen Prozessor wird dadurch bestimmt, ob der Programm-Thread eine hohe Nutzung oder eine niedrige Nutzung der Mehrzahl von physischen Prozessoren in dem Informationsverarbeitungssystem benötigt. Um Energie in dem Informationsverarbeitungssystem zu sparen, werden Programm-Threads hoher Nutzung zugeordnet, um in logischen Prozessoren ausgeführt zu werden, die in physischen Prozessoren laufen, die in dem Zustand hoher Leistung betrieben werden, und Programm-Threads niedriger Nutzung werden physischen Prozessoren zugeordnet, die in dem Zustand niedriger Leistung betrieben werden. Um die Ausführungsgeschwindigkeit von Programm-Threads in dem Informationsverarbeitungssystem zu maximieren, werden Programm-Threads hoher Nutzung zugeordnet, um in logischen Prozessoren ausgeführt zu werden, die in anderen physischen Prozessoren laufen, die in dem Zustand hoher Leistung betrieben werden, und Programm-Threads niedriger Nutzung werden irgendeinem physischen Prozessor zugeordnet.
Description
- Technisches Gebiet
- Die vorliegende Offenbarung betrifft allgemein Informationsverarbeitungssysteme und insbesondere das Powermanagement von mehreren Prozessoren in dem Informationsverarbeitungssystem.
- Hintergrund
- Während der Wert und der Gebrauch von Informationen anhaltend wachsen, suchen Einzelpersonen und Unternehmen nach zusätzlichen Wegen, um Informationen zu verarbeiten und zu speichern. Dem Nutzer zugängliche Möglichkeiten sind Informationsverarbeitungssysteme. Ein Informationsverarbeitungssystem verarbeitet, übersetzt, speichert und/oder übermittelt im Allgemeinen Informationen oder Daten für geschäftliche, persönliche oder andere Zwecke, wobei es den Nutzern erlaubt, einen Vorteil aus dem Wert der Informationen zu ziehen. Da der Bedarf und die Anforderungen an Technologie- und Informationsverarbeitung zwischen verschiedenen Nutzern und Anwendungen variieren, können Informationsverarbeitungssysteme ebenso variieren in Bezug darauf, welche Informationen. verarbeitet werden, wie die Informationen verarbeitet werden, wie viele Informationen verarbeitet, gespeichert oder übermittelt werden und wie schnell und effizient die Informationen verarbeitet, gespeichert oder übermittelt werden können. Die Abweichungen zwischen Informationsverarbeitungssystemen erlauben es, dass Informationssysteme allgemein oder für einen bestimmten Nutzen oder einen bestimmten Gebrauch konfiguriert sind, wie z. B. die Abwicklung von Finanztransaktionen, Fluglinienreservierungen, Speicherung von Unternehmensdaten oder globale Kommunikation. Darüber hinaus können Informationsverarbeitungssysteme eine Vielzahl von Hardware- und Softwarekomponenten umfassen, die so konfiguriert werden können, dass sie Informationen verarbeiten, speichern und übermitteln und ein oder mehrere Computersysteme, z. B. Computer, Personal Computer Workstations, tragbare Computer, Computerserver, Druckerserver, Netzwerk-Router, Netzwerk-Hub, Netzwerk-Switch, Plattenanordung eines Netzspeichergebiets, RAID-Plattensysteme und Telekommunikationsschalter umfassen können.
- Ein Informationsverarbeitungssystem kann eine Mehrzahl von digitalen Prozessoren, wie z. B. Mikroprozessoren umfassen. Diese digitalen Prozessoren (im Folgenden „Prozessoren”) sind in der Lage, zwischen verschiedenen Taktfrequenzen und Betriebsspannungen zu schalten bzw. zu wechseln mit vernachlässigbarem Einfluss auf die Software, die auf diesen Prozessoren läuft. Ein Betriebssystem kann Energie in dem Informationsverarbeitungssystem sparen, indem wenigstens einer der Mehrzahl von Prozessoren mit einer niedrigeren Taktfrequenz und/oder Betriebsspannung arbeitet, wenn wenigstens ein Prozessor nicht voll genutzt wird.
- Jeder aus der Mehrzahl von Prozessoren (im Folgenden: „physische Prozessoren”) kann als eine Mehrzahl von „logischen Prozessoren” betrieben werden. Dies wird auch als „hyper threading” bezeichnet. Wenn allerdings die Betriebsspannungen von irgendeinem der physischen Prozessoren gewechselt werden, wie z. B. der Leistungszustand, müssen alle logischen Prozessoren, die dem physischen Prozessor zugeordnet sind, unter demselben Leistungszustand arbeiten, da jeder physische Prozessor nur einen Satz von Leistungszustandsregistern hat (power state registers).
- Ein Informationsverarbeitungssystem kann z. B. zwei physische Hyper Threading Prozessoren haben, wobei jeder dieser physischen Prozessoren zwei Leistungszustände hat, z. B. niedrige und hohe Leistung. Ein Betriebssystem, das die zwei physischen Prozessoren steuert, muss drei Threads (Programmanweisungsschritte) gleichzeitig ausführen, wobei zwei dieser Threads eine hohe Prozessornutzung benötigen (Betrieb mit hoher Leistung) und der dritte Thread nur eine niedrige Prozessornutzung benötigt (Betrieb mit niedriger Leistung). Die Einsparung von Energie ist z. B. beim Batteriebetrieb von tragbaren Geräten von hoher Wichtigkeit.
- Da das Betriebssystem nicht weiß, welcher logische Prozessor welchem physischen Prozessor zugeordnet ist, kann das Betriebssystem einen Thread mit hoher Nutzung und einen Thread mit niedriger Nutzung zu einem physischen Prozessor zuordnen, und der verbleibende Thread mit hoher Nutzung dem anderen physischen Prozessor. Dieses Szenario würde bedeuten, dass beide physischen Prozessoren in einem Zustand hoher Leistung betrieben werden.
- Um Energie zu sparen, wäre es zu bevorzugen, dass die zwei Threads mit hoher Nutzung auf einem physischen Prozessor laufen, der in dem Zustand der hohen Leistung betrieben wird, und der Thread mit niedriger Nutzung auf dem anderen physischen Prozessor betrieben wird, der nun in dem Zustand mit niedriger Leistung betrieben werden kann.
- Die
US 2003/0041228 A1 - Die
US 2002/0188877 A1 - Übersicht über die Erfindung
- Wenn das Betriebssystem die logisch-zu-physische Prozessorzuordnung kennen würde, könnte es die Threads mit hoher Nutzung jeweils logischen Prozessoren zuordnen, die einem physischen Prozessor zugeordnet wären, der in dem Zustand hoher Leistung läuft, und der verbleibende Thread mit niedriger Nutzung einem entsprechenden logischen Prozessor zuordnen, der dem anderen physischen Prozessor zugeordnet ist, der nur in dem Zustand niedriger Leistung laufen muss. Somit würde Energie gespart, ohne Leistung einzubüßen.
- Umgekehrt, wenn eine maximale Betriebsleistung gewünscht ist, wenn z. B. der Energieverbrauch nicht von besonderer Bedeutung ist, dann wäre das Zuordnen von nur einem Thread mit hoher Nutzung zu jedem physischen Prozessor und das Betreiben beider dieser physischen Prozessoren in dem Zustand hoher Leistung wünschenswerter. Das Betreiben eines jeden Threads mit hoher Nutzung auf unterschiedlichen physischen Prozessoren kann die Performance des Informationsverarbeitungssystems erhöhen. Um eine optimale Performance zu erreichen, wird daher die Zuordnung von jedem Thread mit hoher Nutzung zu einem zugehörigen logischen Prozessor, der auf unterschiedlichen physischen Prozessoren läuft, die beste Performance ergeben. Dies liegt daran, dass jeder der physischen Prozessoren nun in dem Zustand hoher Leistung läuft. Der Thread mit niedriger Nutzung kann jedem logischen Prozessor zugeordnet werden, der auf einem der physischen Prozessoren betrieben wird.
- Ein Thread kann, während er ausgeführt wird, von einer hohen Nutzung zu einer niedrigen Nutzung und umgekehrt wechseln. Zum Beispiel kann ein Thread einen Prozessor weniger verwenden, wenn er auf I/O-Geräte zugreift (Platten, Netzwerk, etc.), und dann würde er einen Prozessor mehr verwenden, wenn er Berechnungen von Daten durchführt. Angenommen ein Thread wechselt zwischen dem Lesen von Daten aus dem Netzwerk für eine Zeit (niedrige Nutzung) und anschließend dem Durchführen von Berechnungen basierend auf diesen Daten für eine anschließende Zeit (hohe Nutzung). Das Betriebssystem kann den Thread nun auf unterschiedliche physische Prozessoren neu zuordnen, während der Thread in Antwort auf die Änderungen in seinen Nutzungsanforderungen ausgeführt wird.
- Gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung kann eine logisch-zu-physische Zuordnung unter Verwendung eines Advanced-Configuration-and-Power-Interface-Objekts (ACPI) implementiert werden in Übereinstimmung mit der ACPI-Spezifikation, dritte Überarbeitung, welche jeweils durch Bezugnahme darauf für alle Anwendungen hier aufgenommen wird. Das „_PSD” (P-state dependancy (P-Zustandsabhängigkeit)) Objekt kann verwendet werden, um das Betriebssystem darüber zu informieren, welche logischen Prozessoren derselben „Domain” zugeordnet sind. Jeder der logischen Prozessoren in einer Domain teilt sich eine Abhängigkeit mit den logischen Prozessoren in dieser Domain. Eine Domain kann als ein physischer Prozessor definiert werden und/oder eine Mehrzahl von physischen Prozessoren, wobei jede Domain einen bestimmten Leistungszustand hat. Das Betriebssystem kann somit wissen, welche logischen Prozessoren jedem physischen Prozessor (Domain) zugeordnet sind. Das Betriebssystem kann außerdem den Leistungszustand für jeden physischen Prozessor kennen und in der Lage sein, diesen zu steuern. Das Informationsverarbeitungssystem kann somit für eine optimale Niedrigleistungsanwendung konfiguriert werden oder für optimale Performance, wenn die Leistungsaufnahme nicht von besonderer Bedeutung ist.
- Ein Informationsverarbeitungssystem zum Reduzieren der Leistungsaufnahme während der Ausführung von Programm-Threads gemäß einer spezifischen beispielhaften Ausführungsform dieser Offenbarung umfasst: eine Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Niedrigleistungs- oder einem Hochleistungszustand zu arbeiten, und wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, logische Prozessoren zu betreiben; und ein Betriebssystem zur Steuerung von Programm-Thread-Ausführungen durch die logischen Prozessoren, die in der Mehrzahl von physischen Prozessoren laufen, wobei das Betriebssystem die Ausführung von Programm-Threads mit hoher Nutzung den logischen Prozessoren zuordnet, die in einem von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand mit hoher Leistung arbeiten und die Ausführung von Programm-Threads mit niedriger Nutzung den logischen Prozessoren zuordnet, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand niedriger Leistung arbeiten.
- Ein Informationsverarbeitungssystem zur Maximierung der Ausführungsgeschwindigkeit von Programm-Threads gemäß einer weiteren spezifischen beispielhaften Ausführungsform dieser Offenbarung umfasst: eine Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Niedrigleistungs- oder einem Hochleistungszustand zu arbeiten, und wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, logische Prozessoren zu betreiben; und ein Betriebssystem zur Steuerung der Ausführung von Programm-Threads durch die logischen Prozessoren, die in der Mehrzahl von physischen Prozessoren laufen, wobei das Betriebssystem die Ausführung von Programm-Threads mit hoher Nutzung den logischen Prozessoren zuordnet, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten.
- Ein Informationsverarbeitungssystem, das auswählbare Hochgeschwindigkeits- und Niedrigleistungssystem-Moden zur Ausführung von Programm-Threads hat, gemäß noch einer weiteren spezifischen beispielhaften Ausführungsform dieser Offenbarung umfasst: eine Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Zustand niedriger Leistung oder einem Zustand hoher Leistung zu arbeiten und wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, logische Prozessoren zu betreiben; und ein Betriebssystem zur Steuerung der Ausführung von Programm-Threads durch die logischen Prozessoren, die in der Mehrzahl von physischen Prozessoren laufen, wobei das Betriebssystem, wenn in einem Systemmodus niedriger Leistung gearbeitet wird, die Ausführung von Programm-Threads mit hoher Nutzung den logischen Prozessoren zuordnet, die in einem von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten und die Ausführung von Programm-Threads niedriger Nutzung den logischen Prozessoren zuordnet, die in den anderen von der Mehrzahl von physische Prozessoren laufen, die in dem Zustand niedriger Leistung arbeiten und, wenn in einem Hochgeschwindigkeitssystem-Modus gearbeitet wird, das Betriebssystem die Ausführung von Programm-Threads hoher Nutzung den logischen Prozessoren zuordnet, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten.
- Ein Verfahren zur Reduzierung des Energieverbrauchs während der Ausführung von Programm-Threads in einem Informationsverarbeitungssystem gemäß noch einer weiteren spezifischen beispielhaften Ausführungsform dieser Offenbarung umfasst: Betreiben von logischen Prozessoren in einer Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Zustand niedriger Leistung oder einem Zustand hoher Leistung zu arbeiten; Ausführung von Programm-Threads hoher Nutzung mit den logischen Prozessoren, die in einem von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten; und Ausführung von Programm-Threads niedriger Nutzung mit den logischen Prozessoren, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand niedriger Leistung arbeiten.
- Ein Verfahren zur Maximierung der Ausführungsgeschwindigkeit von Programm-Threads in einem Informationsverarbeitungssystem gemäß einer breiteren spezifischen beispielhaften Ausführungsform dieser Offenbarung umfasst: Betreiben von logischen Prozessoren in einer Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Zustand niedriger Leistung oder einem Zustand hoher Leistung zu arbeiten; Ausführung von Programm-Threads hoher Nutzung mit den logischen Prozessoren, die in den anderen von der Mehrzahl von physischen Prozessoren betrieben werden, die in dem Zustand hoher Leistung arbeiten; und Ausführen von Programm-Threads niedriger Nutzung mit den logischen Prozessoren, die in irgendeinem von der Mehrzahl von physischen Prozessoren laufen.
- Kurze Beschreibung der Zeichnungen
- Ein vollständigeres Verständnis der vorliegenden Offenbarung kann unter Bezugnahme auf die folgende Beschreibung erlangt werden, die in Verbindung mit den beigefügten Zeichnungen zu sehen ist, wobei:
-
1 ein schematisches Blockdiagramm eines Informationsverarbeitungssystems gemäß einer spezifischen beispielhaften Ausführungsform der vorliegenden Offenbarung ist; -
2 ein schematisches Blockdiagramm einer Mehrzahl von logischen Prozessoren ist, die in zugeordneten physischen Prozessoren laufen; -
3 ein schematisches Blockdiagramm einer Mehrzahl von Programm-Threads ist, die in zugeordneten logischen Prozessoren laufen, die für einen Betrieb mit minimaler Leistungsaufnahme ausgewählt sind, gemäß einer spezifischen beispielhaften Ausführungsform der vorliegenden Offenbarung; und -
4 ein schematisches Blockdiagramm einer Mehrzahl von Programm-Threads ist, die in zugeordneten logischen Prozessoren laufen, die für eine maximale Programmausführungsgeschwindigkeit gewählt sind, gemäß einer weiteren spezifischen beispielhaften Ausführungsform der vorliegenden Erfindung. - Während die vorliegende Offenbarung verschiedenen Modifikationen und alternativen Ausführungsformen unterworfen werden kann, sind spezifische beispielhafte Ausführungsformen derselben in den Zeichnungen gezeigt und hier im Detail beschrieben. Es sollte jedoch klar sein, dass die Beschreibung von spezifischen beispielhaften Ausführungsformen nicht dazu gedacht ist, die Offenbarung auf die spezifischen offenbarten Ausführungsformen zu beschränken, sondern im Gegenteil, dass diese Offenbarung alle Modifikationen und Äquivalente abdecken soll, wie sie durch die beigefügten Ansprüche definiert sind.
- Detaillierte Beschreibung
- Für die Zwecke dieser Offenbarung kann ein Informationsverarbeitungssystem beliebige Mittel oder Aggregate von Mitteln beinhalten, die betriebsbereit sind, jede Form von Informationen, Nachrichten oder Daten für geschäftliche, wissenschaftliche, Steuerungs- oder andere Zwecke zu berechnen, zu klassifizieren, zu verarbeiten, zu übermitteln, zu empfangen, abzufragen, zu erzeugen, zu schreiben, zu speichern, darzustellen, bekannt zu machen, zu ermitteln, aufzunehmen, zu reproduzieren, zu verarbeiten oder zu nutzen. Zum Beispiel kann ein Informationsverarbeitungssystem ein Personal Computer, ein Netzwerkspeichergerät oder jedes andere geeignete Gerät sein und in Größe, Form, Leistung, Funktionalität und Preis variieren. Das Informationsverarbeitungssystem kann Random Access Memory (RAM) aufweisen, eine oder mehrere Verarbeitungsressourcen, wie etwa eine zentrale Prozessoreinheit (CPU) oder Hardware- oder Software-Steuerlogik, ROM und/oder andere Typen von nicht-flüchtigem Speicher. Zusätzliche Komponenten des Informationsverarbeitungssystems können umfassen: ein oder mehrere Plattenlaufwerke, ein oder mehrere Netzwerkanschlüsse zur Kommunikation mit externen Geräten, sowie verschiedene Eingabe- und Ausgabe-(I/O)Geräte, wie etwa eine Tastatur, eine Maus und einen Bildschirm. Das Informationsverarbeitungssystem kann auch einen oder mehrere Busse aufweisen, die betriebsbereit sind, um Nachrichten zwischen den verschiedenen Hardwarekomponenten zu übermitteln.
- Nun auf die Zeichnungen Bezug nehmend werden die Details von spezifischen beispielhaften Ausführungsformen schematisch dargestellt. Gleiche Elemente in den Zeichnungen werden durch gleiche Zahlen angezeigt und ähnliche Elemente werden durch gleiche Zahlen mit einem unterschiedlichen tiefgestellten Buchstabenanhang versehen.
- Bezug nehmend auf
1 ist ein Informationsverarbeitungssystem dargestellt, bei dem elektronische Komponenten auf wenigstens einer gedruckten Leiterplatte (printed circuit board (PCB) (mother board)) montiert sind und wobei Daten- und Steuerungssignale über Signalbusse übertragen werden gemäß einer spezifischen beispielhaften Ausführungsform der vorliegenden Offenbarung. In einer beispielhaften Ausführungsform ist das Informationsverarbeitungssystem ein Computersystem. Das Informationsverarbeitungssystem, allgemein mit dem Bezugzeichen100 bezeichnet, umfasst eine Mehrzahl von physischen Prozessoren110 , die allgemein durch Prozessoren110a bis110n dargestellt sind, die an einen Host-Bus120 angebunden sind. Eine Northbridge140 , die auch als ein Speichersteuerungs-Hub (memory controller hub) oder eine Speichersteuerung (memory controller) bezeichnet werden kann, ist mit einem Hauptsystemspeicher150 verbunden. Die Northbridge140 ist mit der Mehrzahl von Prozessoren110 über den Host-Bus (Busse)120 verbunden. Die Northbridge140 wird allgemein als ein anwendungsspezifischer Chipsatz angesehen, der Verbindungsmöglichkeiten zu verschiedenen Bussen bereitgestellt und andere Systemfunktionen, wie z. B. eine Speicherschnittstelle integriert. Zum Beispiel bietet ein Intel 820 E und/oder 815 E Chipsatz, der von der Intel Corporation von Santa Clara Kalifornien verfügbar ist, wenigstens einen Teil der Northbridge140 . Der Chipsatz kann auch als ein Application Specific Integrated Circuit (ASIC) zusammengefasst werden. Die Northbridge140 umfasst typischerweise Funktionalitäten, um den Hauptsystemspeicher150 mit anderen Geräten innerhalb des Informationsverarbeitungssystems100 zu verbinden. Daher finden sich Speichersteuerungsfunktionen, wie z. B. die Hauptspeichersteuerungsfunktionen, typischerweise in der Northbridge140 . Zusätzlich bietet die Northbridge140 eine Bussteuerung, um Übertragungen zwischen dem Host-Bus120 und einem zweiten Bus (Busse) zu handhaben, z. B. einem PCI-Bus170 , AGP-Bus171 , die mit einer Videografikschnittstelle172 verbunden sind, welche eine Videoanzeige174 antreibt. Ein dritter Bus (Busse)168 kann auch andere Industriestandardbusse oder proprietäre Busse umfassen, wie z. B. ISA, SCSI, ICC, SPI, USB-Busse durch eine Southbridge(s) (Busschnittstelle162 ). Eine Plattensteuerung160 (disc controller) und Eingabe/Ausgabe-Schnittstelle164 können mit dem dritten Bus (Busse)168 verbunden sein. - Bezug nehmend auf
2 ist ein schematisches Blockdiagramm von einer Mehrzahl von logischen Prozessoren dargestellt, die in zugeordneten physischen Prozessoren laufen. Jeder der physischen Prozessoren110 kann eine Mehrzahl von logischen Prozessoren210 haben, die gleichzeitig darin laufen. Dies erlaubt es jedem aus der Mehrzahl von logischen Prozessoren210 , einen anderen Programm-Thread im Wesentlichen gleichzeitig auszuführen. Jeder der physischen Prozessoren110 kann unter verschiedenen Bedingungen arbeiten, wie z. B. Spannung, Strom, Taktfrequenzen etc., allerdings werden alle logischen Prozessoren210 , die einem physischen Prozessor110 zugeordnet sind, gleich arbeiten, basierend auf den Betriebsparametern des physischen Prozessors110 , wie z. B. Zustände niedriger oder hoher Leistung. - Wenn ein physischer Prozessor
110 in einem Zustand hoher Leistung ist, kann die Programm(Thread)-Ausführung durch den zugeordneten logischen Prozessor210 bei höheren Durchgangsraten arbeiten, als wenn der physische Prozessor110 in einem Zustand niedriger Leistung ist. Wenn z. B. ein Thread hoher Nutzung in einem physischen Prozessor ausgeführt wird, der bei höheren Frequenzen/Spannungen läuft, gibt es eine für den Anwender merkbare Leistungssteigerung. Wenn allerdings ein Thread niedriger Nutzung in einem physischen Prozessor ausgeführt wird, der bei höheren Frequenzen/Spannungen läuft, gibt es für den Anwender nur eine vernachlässigbare Leistungssteigerung. Daher sind die Programm-Threads202 und204 Threads hoher Nutzung, die vorzugsweise mit logischen Prozessoren210 verarbeitet werden sollten, die in einem physischen Prozessor110 laufen, der in dem Zustand hoher Leistung arbeiten, z. B. bei höheren Taktfrequenzen und/oder Spannungen. Der Programm-Thread206 ist ein Thread niedriger Nutzung, der mit einem logischen Prozessor210 ausreichend verarbeitet werden kann, der in einem physischen Prozessor110 läuft, der in dem Zustand niedriger Leistung arbeiten, z. B. bei niedrigeren Taktfrequenzen/Spannungen. - Ein Thread kann von einer hohen Nutzung zu einer niedrigen Nutzung oder umgekehrt wechseln, während er ausgeführt wird, wenn z. B. alle Threads zu Threads niedriger Nutzung werden, kann das Betriebssystem alle physischen Prozessoren zu dem Zustand niedriger Leistung schalten. Zum Beispiel kann ein Thread einen Prozessor weniger nutzen, wenn er auf I/O-Geräte zugreift (Platte, Netzwerk etc.), und dann würde er einen Prozessor mehr nutzen, wenn er die Berechnung von Daten durchführt. Angenommen ein Thread wechselt zwischen dem Lesen von Daten aus dem Netzwerk für eine Zeit (niedrige Nutzung) und führt dann Berechnungen basierend auf diesen Daten für eine darauf folgende Zeit (hohe Nutzung) aus. Das Betriebssystem kann den Thread, während der Thread ausgeführt wird, in Antwort auf die Änderungen in seinen Nutzungsanforderungen unterschiedlichen physischen Prozessoren neu zuordnen.
- Eine logisch-zu-physisch Zuordnung für jeden logischen Prozessor
210 und physischen Prozessor110 kann unter Verwendung eines Advanced Configuration and Power Interface (ACPI) Objekts implementiert werden, in Übereinstimmung mit den ACPI-Spezifikationen, Revision 3, welche hierdurch durch Bezugnahme darauf für alle Zwecke aufgenommen wird. Ein P-Zustandabhängigkeit („_PSD”)-Objekt kann verwendet werden, um das Betriebssystem darüber zu informieren, welche logischen Prozessoren210 denselben physischen Prozessoren bzw. Prozessor110 zugeordnet sind, z. B. den „Domain(s)”. Das _PSD-Objekt entspricht mehreren Zuständen des Prozessors, und bietet dem Betriebssystem des Programms Steuerungsinformationen über den Leistungszustand des Prozessors. Das _PSD-Objekt kann eine gepackte Liste von Informationen auswerten, die mit den Leistungszustandsinformationen der physischen Prozessoren110 (z. B. Domains) korreliert. Jeder Eintrag der gepackten Liste kann eine abhängige Domainnummer für die Leistungszustände identifizieren, die jedem logischen Prozessor210 zugeordnet sind, den Koordinierungstyp für diese Leistungszustände und die Anzahl von logischen Prozessoren, die zu einer Domain gehören. Das Betriebssystem kann dann Programm-Threads basierend auf der Nutzungsanforderung eines jeden Programm-Threads und verfügbare logische Prozessoren210 einander zuordnen, die in einem physischen Prozessor laufen, der in einem geeigneten Leistungszustand arbeiten. - Jeder der logischen Prozessoren einer physischen Prozessordomain teilt eine Abhängigkeit mit den anderen logischen Prozessoren
210 in dieser Domain des physischen Prozessors, z. B. wenn eine Domain eines physischen Prozessors den Leistungszustand wechseln, ändern alle logischen Prozessoren210 innerhalb dieser Domain des physischen Prozessors zu diesem Leistungszustand der Domain. Eine Domain eines physischen Prozessors kann definiert werden als ein physischer Prozessor110 und/oder eine Mehrzahl von physischen Prozessoren110 , wobei jede Domain einen bestimmten Leistungszustand hat. Somit kann das Betriebssystem Kenntnis davon haben, welche logischen Prozessoren210 mit jedem physischen Prozessor110 (Domain) verbunden sind. Das Betriebssystem kann auch den Leistungszustand für jeden physischen Prozessor110 kennen und in der Lage sein, diesen zu steuern. Somit kann das Informationsverarbeitungssystem für eine optimale Niedrigleistungsverwendung optimiert sein oder für eine optimale Performance, wenn die Leistungsaufnahme nicht von besonderer Bedeutung ist. - Nun Bezug nehmend auf
3 ist ein schematisches Blockdiagramm einer Mehrzahl von Programm-Threads dargestellt, die in zugehörigen logischen Prozessoren laufen, die für einen Betrieb mit minimaler Leistungsaufnahme ausgewählt sind, gemäß einer spezifischen beispielhaften Ausführungsform der vorliegenden Offenbarung. Die Programm-Threads202 und204 werden in logischen Prozessoren210a ausgeführt, die im zugehörigen physischen Prozessor110a laufen. Der physische Prozessor110a wird in dem Zustand hoher Leistung betrieben und die Programm-Threads202 und204 hoher Nutzung werden bei im Wesentlichen maximaler Durchsatzleistung betrieben für zwei gleichzeitig laufende Programm-Threads hoher Nutzung. Da der Programm-Thread206 niedriger Nutzung für eine korrekte Ausführung keine hohe Durchsatzleistung benötigt, ist ein logischer Prozessor210n , der in einem physischen Prozessor110n läuft, der in dem Zustand niedriger Leistung arbeiten, ausreichend. Durch Zuordnung der zwei Programm-Threads202 und204 hoher Nutzung zum logischen Prozessor210a , der in demselben physischen Prozessor110a läuft, und durch Zuordnen des Threads206 niedriger Nutzung zu einem logischen Prozessor210n , der in einem anderen physischen Prozessor110n läuft, muss nur der physische Prozessor110a in dem Zustand hoher Leistung betrieben werden. Der andere physische Prozessor110n kann in einem Zustand niedriger Leistung verbleiben, und somit Energie in dem Informationsverarbeitungssystem einsparen. - Bezug nehmend auf
4 ist ein schematisches Blockdiagramm einer Mehrzahl von Programm-Threads dargestellt, die in zugeordneten logischen Prozessoren laufen, die für eine maximale Programmausführungsgeschwindigkeit ausgewählt sind, gemäß einer weiteren spezifischen beispielhaften Ausführungsform der vorliegenden Erfindung. Der Programm-Thread202 wird in einem logischen Prozessor210a ausgeführt und der Programm-Thread204 wird in einem logischen Prozessor210n ausgeführt. Der logische Prozessor210a läuft in dem physischen Prozessor110a und der logische Prozessor210n läuft in dem physischen Prozessor110n . Beide physischen Prozessoren110a und110n werden in dem Zustand hoher Leistung betrieben. Der Programm-Thread206 kann in jedem von den logischen Prozessoren210a oder210n ausgeführt werden (Prozessor210a ist gezeigt). Da Thread206 ein Programm-Thread niedriger Nutzung ist, wird er nicht wesentlich die Ausführungsgeschwindigkeiten der logischen Prozessoren210 beeinträchtigen, die in dem zugehörigen physischen Prozessor110 laufen. Durch Zuordnen jedes der Programm-Threads202 und204 hoher Nutzung zu individuellen logischen Prozessoren210 , die in unterschiedlichen physischen Prozessoren110 laufen, und durch Zuordnen des Threads206 niedriger Nutzung zu einem logischen Prozessor210 , der in irgendeinem der physischen Prozessoren110 läuft, wird eine maximale Programmdurchsatzleistung in dem Informationsverarbeitungssystem100 erreicht.
Claims (37)
- Ein Informationsverarbeitungssystem zur Reduzierung des Energieverbrauchs während der Ausführung von Programmthreads, welches System umfasst: eine Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, entweder in einem Zustand niedriger Leistung oder in einem Zustand hoher Leistung zu arbeiten, und wobei jeder aus der Mehrzahl physischer Prozessoren in der Lage ist, logische Prozessoren zu betreiben; und ein Betriebssystem zur Steuerung der Ausführung von Programmthreads durch die logischen Prozessoren, die in der Mehrzahl von physischen Prozessoren laufen, wobei das Betriebssystem die Ausführung von Programmthreads hoher Nutzung den logischen Prozessoren zuordnet, die in denen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten, und die Ausführung von Programmthreads niedriger Nutzung zu den logischen Prozessoren zuordnet, die in den anderen der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand niedriger Leistung arbeiten.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei der Zustand hoher Leistung eine Mehrzahl von Zuständen hoher Leistung umfasst.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei der Zustand niedriger Leistung eine Mehrzahl von Zuständen niedriger Leistung umfasst.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei das Betriebssystem den Leistungszustand eines jeden von der Mehrzahl von physischen Prozessoren erkennt.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei das Betriebssystem den Leistungszustand eines jeden von der Mehrzahl von physischen Prozessoren steuert.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei das Betriebssystem erkennt, welcher von den logischen Prozessoren welchem von der Mehrzahl von physischen Prozessoren zugeordnet ist.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei das Betriebssystem den Leistungszustand für jeden von der Mehrzahl von physischen Prozessoren steuert, basierend darauf, wie viele Programmthreads hoher Nutzung und Programmthreads niedriger Nutzung ausgeführt werden.
- Das Informationsverarbeitungssystem nach Anspruch 4, wobei die logischen Prozessoren Domains zugeordnet sind, und jede der Domains einen von der Mehrzahl von physischen Prozessoren darstellt.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei die Programmthreads hoher Nutzung logischen Prozessoren zugeordnet sind, die in physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten, bevor die Programmthreads niedriger Nutzung zugeordnet werden.
- Das Informationsverarbeitungssystem nach Anspruch 9, wobei die logischen Prozessoren, welche die Programmthreads hoher Nutzung ausführen, so ausgewählt sind, um die Anzahl von physischen Prozessoren zu minimieren, die in dem Zustand hoher Leistung betrieben werden müssen.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei, wenn ein Programmthread hoher Nutzung ein Programmthread niedriger Nutzung wird, das Betriebssystem die Ausführung desselben zu einem von der Mehrzahl von physischen Prozessoren neu zuordnet, die in dem Zustand niedriger Leistung arbeiten.
- Das Informationsverarbeitungssystem nach Anspruch 1, wobei, wenn ein Programmthread niedriger Nutzung ein Programmthread hoher Nutzung wird, das Betriebssystem die Ausführung desselben zu einem von der Mehrzahl von physischen Prozessoren neu zuordnet, die in dem Zustand hoher Leistung arbeiten.
- Ein Informationsverarbeitungssystem zur Maximierung der Ausführungsgeschwindigkeit von Programmthreads, welches System umfasst: eine Mehrzahl von physischen Prozessoren, wobei jeder aus der Mehrzahl von physischen Prozessoren in der Lage ist, entweder in einem Zustand niedriger Leistung oder in einem Zustand hoher Leistung zu arbeiten, und wobei jeder aus der Mehrzahl physischer Prozessoren in der Lage ist, logische Prozessoren zu betreiben; und ein Betriebssystem zur Steuerung der Programmthreadausführung durch die logischen Prozessoren, die in der Mehrzahl von physischen Prozessoren laufen, wobei das Betriebssystem die Ausführung von Programmthreads hoher Nutzung den logischen Prozessoren zuordnet, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei der Zustand hoher Leistung eine Mehrzahl von Zuständen hoher Leistung umfasst.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei der Zustand niedriger Leistung eine Mehrzahl von Zuständen niedriger Leistung umfasst.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei das Betriebssystem die Ausführung von Programmthreads niedriger Nutzung logischen Prozessoren zuordnet, die in irgendeinem von der Mehrzahl von physischen Prozessoren laufen.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei das Betriebssystem den Leistungszustand von jedem von der Mehrzahl von physischen Prozessoren entdeckt.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei das Betriebssystem den Leistungszustand von jedem von der Mehrzahl von physischen Prozessoren steuert.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei das Betriebssystem entdeckt, welcher von den logischen Prozessoren welchem von der Mehrzahl von physischen Prozessoren zugeordnet ist.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei das Betriebssystem den Leistungszustand von jedem von der Mehrzahl von physischen Prozessoren steuert, basierend darauf, wie viele Programmthreads hoher Nutzung und wie viele Programmthreads niedriger Nutzung ausgeführt werden.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei die Programmthreads hoher Nutzung den logischen Prozessoren zugeordnet werden, die in unterschiedlichen physischen Prozessoren laufen, die in dem Zustand hoher Leistung arbeiten, bevor die Programmthreads niedriger Nutzung zugeordnet werden.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei, wenn ein Programmthread hoher Nutzung ein Programmthread niedriger Nutzung wird, das Betriebssystem die Ausführung desselben neu zuordnet.
- Das Informationsverarbeitungssystem nach Anspruch 13, wobei, wenn ein Programmthread niedriger Nutzung ein Programmthread hoher Nutzung wird, das Betriebssystem die Ausführung desselben neu zuordnet.
- Ein Informationsverarbeitungssystem, das auswählbare Hochgeschwindigkeits- und Niedrigleistungssystemmoden zur Ausführung von Programmthreads hat, wobei das System umfasst: eine Mehrzahl von physischen Prozessoren, wobei jeder von der Mehrzahl von physischen Prozessoren in der Lage ist, entweder in einem Zustand niedriger Leistung oder in einem Zustand hoher Leistung zu arbeiten, und wobei jeder aus der Mehrzahl physischer Prozessoren in der Lage ist, logische Prozessoren zu betreiben; und ein Betriebssystem zur Steuerung der Programmthreadausführung durch die logischen Prozessoren, die in der Mehrzahl von physischen Prozessoren laufen, wobei wenn der Betrieb in einem Niedrigleistungssystemmodus stattfindet das Betriebssystem die Ausführung von Programmthreads hoher Nutzung den logischen Prozessoren zuordnet, die in anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung betrieben werden, und die Ausführung von Programmthreads niedriger Nutzung den logischen Prozessoren zuordnet, die in anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand niedriger Leistung betrieben werden, und wenn in einem Hochleistungssystemmodus gearbeitet wird, ordnet das Betriebssystem die Ausführung von Programmthreads hoher Nutzung den logischen Prozessoren zu, die in anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung betrieben werden.
- Das Informationsverarbeitungssystem nach Anspruch 23, wobei der Zustand hoher Leistung eine Mehrzahl von Zuständen hoher Leistung umfasst.
- Das Informationsverarbeitungssystem nach Anspruch 23, wobei der Zustand niedriger Leistung eine Mehrzahl von Zuständen niedriger Leistung umfasst.
- Das Informationsverarbeitungssystem nach Anspruch 23, wobei, wenn ein Programmthread hoher Nutzug ein Programmthread niedriger Nutzung wird, das Betriebssystem die Ausführung desselben neu zuordnet.
- Das Informationsverarbeitungssystem nach Anspruch 23, wobei, wenn ein Programmthread niedriger Nutzung ein Programmthread hoher Nutzung wird, das Betriebssystem die Ausführung desselben neu zuordnet.
- Das Informationsverarbeitungssystem nach Anspruch 23, wobei das Betriebssystem den Leistungszustand eines jeden von der Mehrzahl von physischen Prozessoren steuert, abhängig davon, wie viele Programmthreads niedriger Nutzung und hoher Nutzung ausgeführt werden.
- Ein Verfahren zur Reduzierung des Energieverbrauchs während der Ausführung von Programmthreads in einem Informationsverarbeitungssystem, wobei das Verfahren die folgenden Schritte umfasst: das Betreiben von logischen Prozessoren in einer Mehrzahl von physischen Prozessoren, wobei jeder von der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Zustand niedriger Leistung oder einem Zustand hoher Leistung zu arbeiten; Ausführen von Programmthreads hoher Nutzung mit den logischen Prozessoren, die in einem von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung betrieben werden; und Ausführen von Programmthreads niedriger Nutzung mit den logischen Prozessoren, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand niedriger Leistung betrieben werden.
- Das Verfahren gemäß Anspruch 29, weiter umfassend den Schritt des Neuzuordnens der Threadausführung, wenn ein Programmthread hoher Nutzung ein Programmthread niedriger Nutzung wird.
- Das Verfahren gemäß Anspruch 29, weiter umfassend den Schritt des Neuzuordnens der Threadausführung, wenn ein Programmthread niedriger Nutzung ein Programmthread hoher Nutzung wird.
- Das Verfahren nach Anspruch 29, weiter aufweisend den Schritt des Steuerns eines Leistungszustands eines jeden von der Mehrzahl von physischen Prozessoren, abhängig davon, wie viele Programmthreads niedriger Nutzung und hoher Nutzung ausgeführt werden.
- Ein Verfahren zur Maximierung der Ausführungsgeschwindigkeit von Programmthreads in einem Informationsverarbeitungssystem, wobei das Verfahren die folgenden Schritte umfasst: das Betreiben von logischen Prozessoren in einer Mehrzahl von physischen Prozessoren, wobei jeder von der Mehrzahl von physischen Prozessoren in der Lage ist, in entweder einem Zustand niedriger Leistung oder einem Zustand hoher Leistung zu arbeiten; Ausführen von Programmthreads hoher Nutzung mit den logischen Prozessoren, die in den anderen von der Mehrzahl von physischen Prozessoren laufen, die in dem Zustand hoher Leistung betrieben werden; und Ausführen von Programmthreads niedriger Nutzung mit den logischen Prozessoren, die in irgendeinem von der Mehrzahl von physischen Prozessoren laufen.
- Das Verfahren nach Anspruch 33, weiter aufweisend den Schritt des Neuzuordnens der Threadausführung, wenn ein Programmthread hoher Nutzung ein Programmthread niedriger Nutzung wird.
- Das Verfahren nach Anspruch 33, weiter umfassend den Schritt des Neuzuordnens der Threadausführung, wenn ein Programmthread niedriger Nutzung ein Programmthread hoher Nutzung wird.
- Das Verfahren nach Anspruch 33, weiter aufweisend den Schritt des Steuerns des Leistungszustands von jedem von der Mehrzahl von physischen Prozessoren, abhängig davon, wie viele Programmthreads niedriger Nutzung und hoher Nutzung ausgeführt werden.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/165,880 US20060294401A1 (en) | 2005-06-24 | 2005-06-24 | Power management of multiple processors |
US11/165,880 | 2005-06-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102006028307A1 DE102006028307A1 (de) | 2007-02-22 |
DE102006028307B4 true DE102006028307B4 (de) | 2011-01-20 |
Family
ID=36803569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102006028307A Active DE102006028307B4 (de) | 2005-06-24 | 2006-06-20 | Powermanagement von mehreren Prozessoren |
Country Status (8)
Country | Link |
---|---|
US (1) | US20060294401A1 (de) |
CN (1) | CN100570534C (de) |
DE (1) | DE102006028307B4 (de) |
FR (1) | FR2888957A1 (de) |
GB (1) | GB2427724B (de) |
HK (1) | HK1099589A1 (de) |
SG (1) | SG128624A1 (de) |
TW (1) | TWI346278B (de) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596709B2 (en) * | 2000-12-30 | 2009-09-29 | Intel Corporation | CPU power management based on utilization with lowest performance mode at the mid-utilization range |
EP1996993B1 (de) * | 2006-01-10 | 2015-03-11 | Cupp Computing As | Stromsparendes datenverarbeitungssystem mit zweifacher betriebsart |
WO2007098424A2 (en) * | 2006-02-17 | 2007-08-30 | Qualcomm Incorporated | System and method for multi-processor application support |
US7802073B1 (en) * | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US8384700B2 (en) * | 2007-01-26 | 2013-02-26 | Microsoft Corporation | Linked shell |
US7925900B2 (en) | 2007-01-26 | 2011-04-12 | Microsoft Corporation | I/O co-processor coupled hybrid computing device |
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 |
US7797512B1 (en) | 2007-07-23 | 2010-09-14 | Oracle America, Inc. | Virtual core management |
WO2009015432A1 (en) * | 2007-07-30 | 2009-02-05 | Clear Falls Pty Ltd | A method and system for reactively assigning computational threads of control between processors |
US8281303B2 (en) * | 2007-10-31 | 2012-10-02 | Hewlett-Packard Development Company, L.P. | Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine |
GB2454914B (en) | 2007-11-22 | 2012-07-25 | Icera Inc | Clock control |
JP5433837B2 (ja) * | 2007-12-05 | 2014-03-05 | 株式会社日立製作所 | 仮想計算機システム、仮想計算機の制御方法及びプログラム |
US8615647B2 (en) | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US8862786B2 (en) * | 2009-08-31 | 2014-10-14 | International Business Machines Corporation | Program execution with improved power efficiency |
US8484495B2 (en) * | 2010-03-25 | 2013-07-09 | International Business Machines Corporation | Power management in a multi-processor computer system |
CN103034539A (zh) * | 2011-09-30 | 2013-04-10 | 英业达股份有限公司 | 伺服器系统及其电源管理方法 |
US20160154649A1 (en) * | 2014-12-01 | 2016-06-02 | Mediatek Inc. | Switching methods for context migration and systems thereof |
WO2018018494A1 (zh) * | 2016-07-28 | 2018-02-01 | 张升泽 | 基于多区间分配的功率分配方法及系统 |
US10503238B2 (en) | 2016-11-01 | 2019-12-10 | Microsoft Technology Licensing, Llc | Thread importance based processor core parking and frequency selection |
US10372494B2 (en) * | 2016-11-04 | 2019-08-06 | Microsoft Technology Licensing, Llc | Thread importance based processor core partitioning |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188877A1 (en) * | 2001-06-07 | 2002-12-12 | Buch Deep K. | System and method for reducing power consumption in multiprocessor system |
US20030041228A1 (en) * | 2001-08-27 | 2003-02-27 | Rosenbluth Mark B. | Multithreaded microprocessor with register allocation based on number of active threads |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063500A (en) * | 1988-09-29 | 1991-11-05 | Ibm Corp. | System for executing segments of application program concurrently/serially on different/same virtual machine |
US5201049A (en) * | 1988-09-29 | 1993-04-06 | International Business Machines Corporation | System for executing applications program concurrently/serially on different virtual machines |
US5142684A (en) * | 1989-06-23 | 1992-08-25 | Hand Held Products, Inc. | Power conservation in microprocessor controlled devices |
US5978831A (en) * | 1991-03-07 | 1999-11-02 | Lucent Technologies Inc. | Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates |
EP0727728A1 (de) * | 1995-02-15 | 1996-08-21 | International Business Machines Corporation | Leistungssteuerung eines Computersystems |
US6308279B1 (en) * | 1998-05-22 | 2001-10-23 | Intel Corporation | Method and apparatus for power mode transition in a multi-thread processor |
JP2000020187A (ja) * | 1998-07-07 | 2000-01-21 | Fujitsu Ltd | 情報処理装置及び電力制御方法並びに記録媒体 |
GB9828383D0 (en) * | 1998-12-22 | 1999-02-17 | Medical Res Council | Cell lineage markers |
US6442700B1 (en) * | 1999-08-10 | 2002-08-27 | Intel Corporation | Thermal control within systems having multiple CPU performance states |
EP1330699B1 (de) * | 2000-10-31 | 2010-12-22 | Millennial Net, Inc | Vernetztes verarbeitungssystem mit optimiertem leistungswirkungsgrad |
US6986066B2 (en) * | 2001-01-05 | 2006-01-10 | International Business Machines Corporation | Computer system having low energy consumption |
US6993669B2 (en) * | 2001-04-18 | 2006-01-31 | Gallitzin Allegheny Llc | Low power clocking systems and methods |
US20030079151A1 (en) * | 2001-10-18 | 2003-04-24 | International Business Machines Corporation | Energy-aware workload distribution |
US7203943B2 (en) * | 2001-10-31 | 2007-04-10 | Avaya Technology Corp. | Dynamic allocation of processing tasks using variable performance hardware platforms |
US7254812B1 (en) * | 2002-05-31 | 2007-08-07 | Advanced Micro Devices, Inc. | Multi-processor task scheduling |
US7076671B2 (en) * | 2002-08-12 | 2006-07-11 | Hewlett-Packard Development Company, L.P. | Managing an operating frequency of processors in a multi-processor computer system |
US7496494B2 (en) * | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
US7007183B2 (en) * | 2002-12-09 | 2006-02-28 | International Business Machines Corporation | Power conservation by turning off power supply to unallocated resources in partitioned data processing systems |
US7191349B2 (en) * | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
US7761876B2 (en) * | 2003-03-20 | 2010-07-20 | Siemens Enterprise Communications, Inc. | Method and system for balancing the load on media processors based upon CPU utilization information |
JP4196333B2 (ja) * | 2003-05-27 | 2008-12-17 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
US7444632B2 (en) * | 2003-09-25 | 2008-10-28 | International Business Machines Corporation | Balancing computational load across a plurality of processors |
US20050132239A1 (en) * | 2003-12-16 | 2005-06-16 | Athas William C. | Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution |
US7802255B2 (en) * | 2003-12-19 | 2010-09-21 | Stmicroelectronics, Inc. | Thread execution scheduler for multi-processing system and method |
US7197652B2 (en) * | 2003-12-22 | 2007-03-27 | International Business Machines Corporation | Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring |
US20050240934A1 (en) * | 2004-04-21 | 2005-10-27 | Hewlett-Packard Development Company, L.P. | Task management based on system utilization |
US7152171B2 (en) * | 2004-04-28 | 2006-12-19 | Microsoft Corporation | Task-oriented processing as an auxiliary to primary computing environments |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US7426648B2 (en) * | 2004-09-30 | 2008-09-16 | Intel Corporation | Global and pseudo power state management for multiple processing elements |
US20060107262A1 (en) * | 2004-11-03 | 2006-05-18 | Intel Corporation | Power consumption-based thread scheduling |
US7526661B2 (en) * | 2004-12-02 | 2009-04-28 | Intel Corporation | Performance state-based thread management |
US20060206902A1 (en) * | 2005-03-14 | 2006-09-14 | Sujat Jamil | Variable interleaved multithreaded processor method and system |
US7917907B2 (en) * | 2005-03-23 | 2011-03-29 | Qualcomm Incorporated | Method and system for variable thread allocation and switching in a multithreaded processor |
US7827554B2 (en) * | 2005-06-20 | 2010-11-02 | Microsoft Corporation | Multi-thread multimedia processing |
US7694107B2 (en) * | 2005-08-18 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Dynamic performance ratio proportionate distribution of threads with evenly divided workload by homogeneous algorithm to heterogeneous computing units |
US7721127B2 (en) * | 2006-03-28 | 2010-05-18 | Mips Technologies, Inc. | Multithreaded dynamic voltage-frequency scaling microprocessor |
-
2005
- 2005-06-24 US US11/165,880 patent/US20060294401A1/en not_active Abandoned
-
2006
- 2006-06-20 DE DE102006028307A patent/DE102006028307B4/de active Active
- 2006-06-20 GB GB0612230A patent/GB2427724B/en active Active
- 2006-06-20 SG SG200604138A patent/SG128624A1/en unknown
- 2006-06-21 TW TW095122341A patent/TWI346278B/zh active
- 2006-06-21 FR FR0605506A patent/FR2888957A1/fr not_active Withdrawn
- 2006-06-23 CN CNB200610093187XA patent/CN100570534C/zh active Active
-
2007
- 2007-06-22 HK HK07106704.7A patent/HK1099589A1/xx unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188877A1 (en) * | 2001-06-07 | 2002-12-12 | Buch Deep K. | System and method for reducing power consumption in multiprocessor system |
US20030041228A1 (en) * | 2001-08-27 | 2003-02-27 | Rosenbluth Mark B. | Multithreaded microprocessor with register allocation based on number of active threads |
Also Published As
Publication number | Publication date |
---|---|
GB2427724B (en) | 2007-10-17 |
DE102006028307A1 (de) | 2007-02-22 |
GB2427724A (en) | 2007-01-03 |
TW200707170A (en) | 2007-02-16 |
CN100570534C (zh) | 2009-12-16 |
GB0612230D0 (en) | 2006-08-02 |
CN1885232A (zh) | 2006-12-27 |
TWI346278B (en) | 2011-08-01 |
HK1099589A1 (en) | 2007-08-17 |
IE20060460A1 (en) | 2007-02-07 |
SG128624A1 (en) | 2007-01-30 |
FR2888957A1 (fr) | 2007-01-26 |
US20060294401A1 (en) | 2006-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102006028307B4 (de) | Powermanagement von mehreren Prozessoren | |
DE102012219907B4 (de) | Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme | |
DE102011015555B4 (de) | Verfahren und vorrichtung für interrupt-power-management | |
DE102013104328B4 (de) | Aufgabenzuteilung in großen und kleinen Kernen | |
DE112011103193B4 (de) | Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung | |
DE112011101633B4 (de) | Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen | |
DE112004001320B3 (de) | Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren | |
DE102013106154B4 (de) | Speichersystem und Ein-Chip-System mit linearer Adress-Remapping-Logik | |
DE112013005287B4 (de) | Prozessor mit heterogenen physischen Kernen und in einem Prozessor mit heterogenen physischen Kernen implementiertes Verfahren | |
DE112017004808T5 (de) | Dynamische zuteilung virtueller cpu-kerne | |
DE202010017669U1 (de) | Befehls- und Interrupt-Gruppierung bei einer Datenspeichervorrichtung | |
DE112015007188T5 (de) | Batch-Migration virtueller Maschinen während des aktiven Bertriebs | |
DE102009058426A1 (de) | Verfahren und Vorrichtung zum Power-Management eines Prozessors | |
DE112013003745T5 (de) | Techniken zur dynamischen Partitionierung von physikalischem Speicher | |
DE112012007115T5 (de) | Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform | |
DE102008059790A1 (de) | Verfahren, Vorrichtung und Befehle zum Verarbeiten von Vektordaten | |
DE112012005209T5 (de) | Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang | |
DE112020001586T5 (de) | System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors | |
DE112019000693T5 (de) | System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor | |
DE102020134491A1 (de) | System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften | |
DE112020004661T5 (de) | Ermitteln einer optimalen Anzahl von Threads pro Kern in einem Mehrkern-Prozessorkomplex | |
DE102020129549A1 (de) | Leistungsüberwachung in heterogenen systemen | |
DE112019001001T5 (de) | System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen | |
DE112017006367T5 (de) | Aufgabenmanagement mit dynamischer Laufzeit | |
DE112018004329T5 (de) | Steuerblöcke zur prozessorleistungsverwaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R020 | Patent grant now final |
Effective date: 20110420 |