DE102010045743A1 - Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern - Google Patents
Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern Download PDFInfo
- Publication number
- DE102010045743A1 DE102010045743A1 DE102010045743A DE102010045743A DE102010045743A1 DE 102010045743 A1 DE102010045743 A1 DE 102010045743A1 DE 102010045743 A DE102010045743 A DE 102010045743A DE 102010045743 A DE102010045743 A DE 102010045743A DE 102010045743 A1 DE102010045743 A1 DE 102010045743A1
- Authority
- DE
- Germany
- Prior art keywords
- processing element
- task
- power loss
- processing
- logic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- 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
-
- 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/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- 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/3243—Power saving in microcontroller unit
-
- 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/3246—Power saving characterised by the action undertaken by software initiated power-off
-
- 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/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- 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
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Hardware Redundancy (AREA)
Abstract
Ausführungsformen einer Vorrichtung, um die Leistung für das Event-Handling zu verbessern, werden veranschaulicht. Bei einer Ausführungsform umfasst die Vorrichtung mehrere Verarbeitungselemente und Task-Routing-Logik. Wenn mindestens eines der Verarbeitungselemente in einem Turbomodus ist, wählt die Task-Routing-Logik ein Verarbeitungselement aus, um eine Task basierend auf mindestens einem Vergleich von Leistungsverlusten auszuführen.
Description
- GEBIET DER ERFINDUNG
- Ausführungsformen der Erfindung beziehen sich auf Interrupt-Event-Handling; insbesondere beziehen sich Ausführungsformen der Erfindung auf die Verbesserung der Leistung für das Event-Handling.
- HINTERGRUND DER ERFINDUNG
- Bei einem Mehrkern-Prozessor kann es wünschenswert sein, Prozessorkerne zu steuern, um eine verfügbare Energiereserve zu verwenden und die Leistung zu maximieren. In einer Situation, wo nicht alle Prozessorkerne erforderlich sind, um eine bestimmte Arbeitslast zu verarbeiten, werden die Kerne, die untätig sind, ausgeschaltet, und Energie wird zu den anderen Kernen geleitet, die aktiv sind. Die aktiven Kerne wechseln normalerweise in einen Turbomodus, indem sie auf höheren Frequenzen operieren.
- Die Task- und Event-Handling-Algorithmen in einem Mehrkern-Prozessor sind generell pseudozufällig und berücksichtigen nicht die Auswirkung eines Kerns, wenn er in einem Turbomodus arbeitet. Folglich wird das gesamte Betriebsverhalten des Systems beeinträchtigt.
- KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Erfindungsgemäße Ausführungsformen werden aus der nachstehend gegebenen ausführlichen Beschreibung und aus den begleitenden Zeichnungen von verschiedenen erfindungsgemäßen Ausführungsformen vollständiger verstanden, wobei sie jedoch die Erfindung nicht auf die spezifisch beschriebenen Ausführungsformen beschränken, sondern lediglich der Erläuterung und dem Verständnis dienen.
-
1 zeigt eine Ausführungsform eines Computersystems einschließlich einer Vorrichtung, um ein Verarbeitungselement auszuwählen und eine Task als Antwort auf ein Interrupt-Event auszuführen. -
2 ist ein Ablaufdiagramm einer Ausführungsform eines Prozesses, um ein Verarbeitungselement auszuwählen und eine Task als Antwort auf ein Interrupt-Event auszuführen. -
3 zeigt ein Computersystem für die Verwendung mit einer Ausführungsform der vorliegenden Erfindung. -
4 zeigt ein Punkt-Zu-Punkt-Computersystem für die Verwendung mit einer Ausführungsform der Erfindung. - AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
- Ausführungsformen einer Vorrichtung, um die Leistung für das Event-Handling zu verbessern, werden veranschaulicht. Bei einer Ausführungsform umfasst die Vorrichtung mehrere Verarbeitungselemente und Task-Routing-Logik. Wenn mindestens eines der Verarbeitungselemente in einem Turbomodus ist, wählt die Task-Routing-Logik ein Verarbeitungselement aus, um eine Task basierend mindestens auf einem Vergleich von Leistungsverlusten auszuführen.
- In der folgenden Beschreibung werden zahlreiche Details erläutert, um eine gründlichere Erklärung von Ausführungsformen der vorliegenden Erfindung bereitzustellen. Für einen Fachmann ist es jedoch offensichtlich, dass Ausführungsformen der vorliegenden Erfindung ohne diese spezifischen Details praktiziert werden können. In anderen Fällen werden bekannte Strukturen und Geräte in Form eines Blockdiagramms gezeigt, aber nicht im Detail, um Ausführungsformen der vorliegenden Erfindung nicht zu verschleiern.
- In anderen Fällen sind bekannte Komponenten oder Verfahren, wie z. B. Mikroprozessor-Architektur, Virtual Machine Monitor, Leistungsregelung, Taktausblendung und Betriebsdetails von bekannter Logik nicht im Detail beschrieben worden, um die vorliegende Erfindung nicht zu verschleiern.
- Alle diese und ähnlichen Begriffe sind jedoch mit den passenden physischen Mengen zu verbinden und stellen lediglich geeignete Bezeichnungen dar, die auf diese Mengen angewendet werden. Wenn nicht spezifisch anders angegeben, wie offensichtlich aus der folgenden Erörterung, ist es selbstverständlich, dass sich in der Beschreibung Erörterungen, die die Begriffe, wie z. B. „Verarbeiten” oder „Berechnen” oder „Ausrechnen” oder „Bestimmen” oder „Darlegen” und der gleichen, auf die Handlungen und Prozesse eines Computersystems, oder eines ähnlichen elektronischen Computergeräts beziehen, das Daten, die als physische (elektronische) Mengen innerhalb der Register und Speicher des Computersystems dargestellt sind, in andere Daten transformiert und manipuliert, die gleichermaßen als physische Mengen innerhalb der Computersystemspeicher oder -register oder innerhalb anderer solcher Informationsspeicher, Übertragungs- oder Displaygeräte dargestellt sind.
- Erfindungsgemäße Ausführungsformen beziehen sich ebenfalls auf Vorrichtungen zur Ausführung der Operationen hierin. Einige Vorrichtungen können speziell für die erforderlichen Zwecke aufgebaut sein, oder sie können einen Allzweckcomputer umfassen, der selektiv durch ein in dem Computer gespeichertes Computerprogramm aktiviert oder rekonfiguriert ist. Solch ein Computerprogramm kann in einem computerlesbaren Speichermedium gespeichert sein, wie beispielsweise, aber nicht beschränkt auf, jede Art von Disks, einschließlich Floppy Disks, optische Disks, CD-ROMs und magnetooptische Disks, Festwertspeicher (read-only memories, ROMs), Direktzugriffspeicher (random access memories, RAMs), wie z. B. dynamischer RAM (DRAM), EPROMs, EEPROMs, NVRAMs, magnetische oder optische Karten oder jeden Typ an Medien, der zum Speichern von elektronischen Befehlen geeignet ist, und wobei jedes mit einem Computersystem-Bus gekoppelt ist.
- Das Verfahren und die Vorrichtung, die hier beschrieben sind, dienen zur Auswahl eines Verarbeitungselements für das Event-Handling. Insbesondere wird das Auswählen eines Verarbeitungselements für das Event-Handling primär in Bezug auf Mehrkern-Prozessor-Computersysteme beschrieben. Verfahren und Vorrichtungen, um ein Verarbeitungselement für das Event-Handling auszuwählen, sind jedoch nicht derart begrenzt, da sie auf oder in Verbindung mit irgendeinem Gerät mit integrierter Schaltung oder System, wie beispielsweise Handys, Personal Digital Assistants, eingebettete Controller, mobile Plattformen, Desktop-Plattformen und Server-Plattformen, wie auch in Verbindung mit irgendeiner Art von Verarbeitungselement, wie beispielsweise ein Kern, ein Hardware-Thread, ein Software-Thread oder ein logischer Prozessor, ein Beschleunigerkern oder eine andere Verarbeitungs-Ressource implementiert werden können. Des Weiteren kann das Auswählen eines Verarbeitungselements für das Event-Handling in irgendeinem Umfeld von Hardware/Software, wie beispielsweise einem Betriebssystem oder einer Hypervisor-Ausführung auf einer Hardware stattfinden.
- Überblick
- Ausführungsformen einer Vorrichtung, um die Leistung für das Event-Handling zu verbessern, werden veranschaulicht. Bei einer Ausführungsform umfasst die Vorrichtung mehrere Verarbeitungselemente und Task-Routing-Logik. Wenn mindestens eines der Verarbeitungselemente in einem Turbomodus ist, wählt die Task-Routing-Logik ein Verarbeitungselement aus, um eine Task basierend auf mindestens einem Vergleich von Leistungsverlusten auszuführen.
-
1 zeigt eine Ausführungsform eines Computersystems einschließlich einer Vorrichtung, um ein Verarbeitungselement auszuwählen und eine Task als Antwort auf ein Event auszuführen. Viele zusammenhängende Komponenten wie beispielsweise Busse und Peripheriegeräte sind nicht gezeigt worden, um die Erfindung nicht zu verschleiern. Mit Bezug auf1 umfasst bei einer Ausführungsform Prozessor160 Leistungsrechenlogik110 , Task-Routing-Logik130 , Turbo-Modus-Logik140 und mehrere Verarbeitungselemente, wie beispielsweise die Verarbeitungselemente131 –134 . Bei einer Ausführungsform umfasst die Leistungsrechenlogik weiter Speicher111 . - Bei einer Ausführungsform umfasst ein Verarbeitungselement einen Thread, einen Prozess, einen Kontext, einen logischen Prozessor, einen Hardware-Thread, einen Kern, einen Beschleunigerkern oder irgendein Verarbeitungselement, das sich den Zugriff auf andere Ressourcen des Prozessors
160 teilt, wie beispielsweise Reservierungseinheiten, Ausführungseinheiten, übergeordnete Caches, Speicher usw. Bei einer Ausführungsform ist ein Verarbeitungselement eine Thread-Einheit, d. h. ein Element, das fähig ist, Anweisungen selbstständig für die Ausführung durch einen Software-Thread einzuplanen. Bei einer Ausführungsform ist ein physischer Prozessor eine integrierte Schaltung, die irgendeine Anzahl an anderen Verarbeitungselementen, wie beispielsweise Kerne oder Hardware-Threads umfasst. - Bei einer Ausführungsform ist ein Kern eine Logik, die sich auf einer integrierten Schaltung befindet und einen unabhängigen Architekturzustand in Bezug auf einen anderen Kern aufrechterhalten kann. Jeder selbstständig aufrechterhaltene Architekturzustand ist mit mindestens einigen dedizierten Ausführungsressourcen verbunden. Bei einer Ausführungsform befindet sich ein Hardware-Thread logisch auf einer integrierten Schaltung, die einen unabhängigen Architekturzustand in Bezug auf einen anderen Hardware-Thread aufrechterhalten kann. Jeder selbstständig aufrechterhaltene Hardware-Thread teilt den Zugriff auf Ausführungsressourcen. Bei einigen Ausführungsformen werden ein Kern und ein Hardware-Thread auf auswechselbare Weise verwendet. Bei einer Ausführungsform wird ein Kern oder ein Hardware-Thread auch als ein Verarbeitungselement bezeichnet.
- Bei einer Ausführungsform werden ein Hardware-Thread, ein Kern oder ein Verarbeitungselement von einem Betriebssystem oder einer Managementsoftware als ein individueller logischer Prozessor angesehen. Softwareprogramme sind imstande individuell Operationen auf jedem logischen Prozessor einzuplanen. Zusätzlich umfasst bei einigen Ausführungsformen jeder Kern mehrere Hardware-Threads, um mehrere Software-Threads auszuführen.
- Bei einer Ausführungsform stellt ein Hypervisor (nicht gezeigt) eine Schnittstelle zwischen Software (z. B. virtuelle Maschinen) und Hardware-Ressource (z. B. Prozessor
160 ) bereit. Bei einer Ausführungsform abstrahiert ein Hypervisor Hardware, sodass mehrere virtuelle Maschinen selbstständig parallel laufen. Bei einer Ausführungsform stellt eine virtuelle Maschine eine Softwareausführungsumgebung für ein Programm, wie z. B. eine Task, eine Benutzerebenenanwendung, Gast-Software, ein Betriebssystem, eine weitere virtuelle Maschine, einen Virtual Machine Monitor, anderen ausführbaren Code oder eine beliebige Kombination davon bereit. Bei einer Ausführungsform ordnet ein Hypervisor Hardware-Ressourcen (z. B. einen Kern, Hardware-Thread, ein Verarbeitungselement) unterschiedlichen Programmen zu. - Bei einer Ausführungsform umfasst ein Computersystem Eingang/Ausgang-(I/O)-Puffer, um Signale über die Kopplungsstruktur zu senden und zu empfangen. Beispiele der Kopplungsstruktur umfassen einen Gunning Transceiver Logic-(GTL)-Bus, ein GTL+ Bus, einen Double Data Rate-(DDR)-Bus, einen gepumpten Bus, einen Differenzialbus, einen cachekohärenten Bus, einen Punkt-Zu-Punkt-Bus, einen Multidrop-Bus oder eine andere bekannte Kopplungsstruktur, die irgendein bekanntes Bus-Protokoll implementiert.
- Bei einer Ausführungsform unterstützt ein Computersystem, und insbesondere Prozessor
160 unterschiedliche Energiezustände (z. B. C2-Zustand und C3-Zustand) in Übereinstimmung mit der Advanced Configuration and Power Interface-(ACPI)-Spezifikation (siehe Advanced Configuration and Power Interface-Spezifikation, Revision 3.0b, 10. Okt. 2006). Bei einer Ausführungsform wird ein Schlafzustand (z. B. C2-Zustand und C3-Zustand) auch als Leerlauf bezeichnet. Bei einer Ausführungsform wird ein Verarbeitungselement in einem Leerlaufzustand als ein schlafender Kern, ein untätiger Kern oder ein nicht aktiver Kern bezeichnet. Bei einer Ausführungsform schalten Leistungsgates die Stromversorgung zu einem untätigen Verarbeitungselement ab. Das untätige Verarbeitungselement muss geweckt werden, um die Ausführung eines Programms wieder zu beginnen. - Bei einer Ausführungsform steuert die Turbo-Modus-Logik
140 die Verarbeitungselemente131 –134 , sodass mindestens ein aktives Verarbeitungselement auf einer höheren Frequenz arbeitet, wenn mindestens ein anderes Verarbeitungselement untätig bleibt. Folglich werden die verfügbare Energie und die thermische Reserve durch das aktive Verarbeitungselement verwendet, um die Gesamtleistung des Systems zu erhöhen oder zu verbessern. Bei einer Ausführungsform wird solch eine Betriebsweise hierin als ein Turbo-Modus bezeichnet. Wenn sich Turbo-Modus-Logik140 in einem Turbo-Modus befindet, ordnet sie die Energie und die thermische Reserve von einem oder mehreren untätigen Verarbeitungselementen einem oder mehreren aktiven Verarbeitungselementen neu zu, um die Betriebsfrequenz von dem einen Verarbeitungselement oder den mehreren, die aktiv sind, zu erhöhen. - Bei einer Ausführungsform wird ein Faktor, der einen Prozessor veranlasst, um zu und von einem Turbo-Modus zu wechseln (z. B. zu einem höheren Leistungsniveau oder zu einem niedrigeren Leistungsniveau zu wechseln), hierin als ein Event bezeichnet. Bei einer Ausführungsform ist das Event ein Interrupt-Event, das an die Verarbeitungselemente
131 –134 umleitbar ist. Bei einer Ausführungsform führt Prozessor160 einige entsprechende Tasks oder Dienste als Antwort auf das Event aus. Bei einer Ausführungsform kommen Interrupt-Events von einem Gerät, wie beispielsweise einem Plattenlaufwerk, einer Netzwerkkarte und einem Eingabe-/Ausgabegerät. - Bei einer Ausführungsform berechnet die Leistungsrechenlogik
110 Leistungsverluste, um ein Event zu bedienen. Bei einer Ausführungsform verwendet Prozessor160 zusätzliche Zeit, um eine Arbeitslast aufgrund der Ausführung einer Task oder mehrerer Tasks als Antwort auf das Handling des Events abzuschließen. Bei einer Ausführungsform ist ein Leistungsverlust als ein Prozentsatz repräsentiert. Wenn zum Beispiel eine Arbeitslast10 ms benötigt, um sie auszuführen, würde ein Leistungsverlust von 10% bewirken, dass die Arbeitslast 11,1 ms (d. h. 10 ms/(1–0,10)) benötigt, um abzuschließen. - Bei einer Ausführungsform empfängt Task-Routing-Logik
130 Task101 (infolge eines Events), wenn Prozessor160 sich in einem Turbo-Modus befindet. Bei einer Ausführungsform ist Verarbeitungselement131 beispielsweise in einem Turbo-Modus, während Verarbeitungselement132 in einem untätigen Modus ist. Bei einer Ausführungsform wählt Turborouting-Logik130 eines der Verarbeitungselemente aus basierend auf Leistungsverlusten verbunden mit dem Auswählen zwischen unterschiedlichen Verarbeitungselementen (ob ein aktives Verarbeitungselement oder ein schlafendes Verarbeitungselement), um Task101 abzuschließen. - Bei einer Ausführungsform wird ein Leistungsverlust hierin als Waking Performance Loss (WPL) bezeichnet, wenn ein untätiges Verarbeitungselement verwendet wird, um Task
101 auszuführen. Bei einer Ausführungsform wechselt ein aktives Verarbeitungselement (in einem Turbo-Modus) zu einer niedrigeren Arbeitsfrequenz, sodass Energie kanalisiert wird, um ein schlafendes Verarbeitungselement zu wecken. Bei einer Ausführungsform bestimmt die Leistungsrechenlogik WPL basierend auf einem Absinken einer Arbeitsfrequenz verbunden mit dem aktiven Verarbeitungselement und einem Frequenz-Skalierbarkeitsfaktor des Programms, das durch das aktive Verarbeitungselement ausgeführt wird. Es ist für den Fachmann offensichtlich, dass andere Faktoren und Kombinationen verwendet werden können, um WPL zu bestimmen. - Bei einer Ausführungsform ist ein Frequenz-Skalierbarkeitsfaktor ein Verhältnis, bei dem ein Frequenzanstieg (oder Abfall) zum Leistungsanstieg (oder Abfall) für eine bestimmte Arbeitslast konvertiert wird. Zum Beispiel ist eine Arbeitslast, bei der ein Anstieg von 10% einer Arbeitsfrequenz in einer Zunahme der Leistung von 10% resultiert, äquivalent zu einem Skalierbarkeitsfaktor 1. Zum Beispiel ist ein Absinken von 1% bei einer Arbeitsfrequenz, die in einem Leistungsabfall von 0,75% resultiert, äquivalent zu einem Skalierbarkeitsfaktor 0,75.
- Bei einer Ausführungsform speichert Speicher
111 Information über einen Frequenz-Skalierbarkeitsfaktor eines Programms, das durch ein aktives Verarbeitungselement ausgeführt wird. Bei einer Ausführungsform speichert Speicher111 Information über das Absinken einer Arbeitsfrequenz, wenn ein aktives Verarbeitungselement aus einem Turbo-Modus wechselt. Bei einer Ausführungsform wird eine solche Information von der Überwachungslogik (nicht gezeigt) gesammelt und umfasst durchschnittliche Verlaufswerte, um gegenwärtige Werte vorherzusagen/zu bewerten. - Bei einer Ausführungsform wird ein Leistungsverlust hierin als Active Performance Loss (APL) bezeichnet, wenn ein aktives Verarbeitungselement verwendet wird, um die Task
101 auszuführen. Bei einer Ausführungsform bestimmt die Leistungsrechenlogik110 APL basierend auf einem Betrag an Abarbeitungszeit, um Task101 (als Antwort auf das Event) und einen Auslastungswert verbunden mit dem Programm auszuführen, das durch das aktive Verarbeitungselement ausgeführt wird. Bei einer Ausführungsform wird APL basierend auf einer Abarbeitungszeit bestimmt, um das Event geteilt durch eine Gesamtlaufzeit für die Programm-Arbeitslast zu bedienen. Es ist für den Fachmann offensichtlich, dass andere Faktoren und Kombinationen verwendet werden können, um APL zu bestimmen. - Bei einer Ausführungsform speichert Speicher
111 Information über den Betrag an Abarbeitungszeit, um das Event zu verarbeiten. Bei einer Ausführungsform wird eine solche Information von der Überwachungslogik (nicht gezeigt) gesammelt und umfasst durchschnittliche Verlaufswerte, um gegenwärtige Werte vorherzusagen/zu bewerten. Bei einer Ausführungsform stellt die Überwachungslogik ebenfalls einen Auslastungswert verbunden mit dem Programm bereit, das durch das aktive Verarbeitungselement ausgeführt wird. - Bei einer Ausführungsform bestimmt Task-Routing-Logik
130 ein Verarbeitungselement, um ein auf einem Vergleich von potenziellen Leistungsverlusten basierendes Event zu bedienen, wenn Prozessor160 in einem Turbo-Modus ist. Bei einer Ausführungsform bestimmt die Task-Routing-Logik130 auf Basis der Information von der Turbo-Modus-Logik140 , ob Prozessor160 (oder irgendeines der Verarbeitungselemente131 –134 ) in einem Turbo-Modus ist. - Bei einer Ausführungsform wählt die Task-Routing-Logik
130 ein untätiges Verarbeitungselement aus, um ein Event zu bedienen, wenn WPL kleiner als APL ist. Andernfalls sendet die Task-Routing-Logik130 das Event zu einem aktiven Verarbeitungselement (in einem Turbo-Modus). - Bei einer Ausführungsform sind Verarbeitungselemente unter unterschiedlichen Schlafzuständen im Intervall von flachen C-Zuständen mit kleineren Ausstiegslatenzzeiten und moderater Energieeinsparung (z. B. ACPI C1-Zustand) bis zu tiefen C-Zuständen mit längeren Ausstiegslatenzzeiten und größerer Energieeinsparung (z. B. ACPI C3) betriebsfähig. Folglich ist die Bestimmung von Leistungsverlusten einschließlich WPL und APL basierend auf einem C-Zustand, in dem sich ein schlafender Kern befindet, unterschiedlich. Bei einer Ausführungsform ist es aufwendiger (fällt ein höherer Leistungsverlust an), ein Verarbeitungselement aus einem tiefen C-Zustand aufzuwecken als ein Verarbeitungselement aus einem flachen C-Zustand.
-
2 ist ein Flussdiagramm einer Ausführungsform eines Prozesses, um ein Verarbeitungselement (eines Prozessors) auszuwählen und eine Task als Antwort auf ein Interrupt-Event auszuführen. Der Prozess wird durch die Verarbeitungslogik ausgeführt, die Hardware (Schaltung, dedizierte Logik, usw.), Software (wie sie beispielsweise auf einem Mehrzweckrechner-System oder einer dedizierten Maschine läuft) oder eine Kombination von beiden umfassen kann. Bei einer Ausführungsform wird der Prozess in Verbindung mit einem Controller (z. B. Task-Routing-Logik130 in Bezug auf1 ) ausgeführt. Bei einer Ausführungsform wird der Prozess durch ein Computersystem in Bezug auf3 ausgeführt. - Mit Bezug auf
2 beginnt bei einer Ausführungsform die Verarbeitungslogik durch den Empfang eines umleitbaren Events (Prozess-Block200 ). Die Verarbeitungslogik führt eine Task oder einen Dienst als Antwort auf das Event aus. - Bei einer Ausführungsform bestimmt die Verarbeitungslogik, ob irgendwelche der Verarbeitungselemente (eines Prozessors) in einem Turbo-Modus (Prozess-Block
210 ) arbeiten. Bei einer Ausführungsform wählt die Verarbeitungslogik irgendein Verarbeitungselement aus, um das Event zu bedienen, wenn es kein Verarbeitungselement gibt, das in einem Turbo-Modus (Prozess-Block241 ) arbeitet. Bei einer anderen Ausführungsform wählt die Verarbeitungslogik ein Verarbeitungselement in einem Energiesparmodus, zum Beispiel einen schlafenden Kern, aus, um das Event zu bedienen, wenn es kein Verarbeitungselement gibt, das in einem Turbo-Modus arbeitet. - Andernfalls bestimmt bei einer Ausführungsform die Verarbeitungslogik potenzielle Leistungsverluste, wenn irgendeines der Verarbeitungselemente in einem Turbo-Modus ist.
- Bei einer Ausführungsform bestimmt die Verarbeitungslogik einen WPL, wo ein untätiges Verarbeitungselement verwendet wird, um die Task auszuführen (Prozess-Block
220 ). Bei einer Ausführungsform bestimmt die Verarbeitungslogik WPL basierend auf einer Verminderung einer Arbeitsfrequenz verbunden mit einem aktiven Verarbeitungselement und einem Frequenz-Skalierbarkeitsfaktor eines Programms, das durch das aktive Verarbeitungselement ausgeführt wird. - Bei einer Ausführungsform bestimmt die Verarbeitungslogik einen APL, wo ein aktives Verarbeitungselement verwendet wird, um die Task auszuführen (Prozess-Block
221 ). Bei einer Ausführungsform bestimmt die Verarbeitungslogik APL basierend auf einem Betrag an Verarbeitungszeit zur Ausführung der Task und einem Auslastungswert verbunden mit einem Programm, das durch ein aktives Verarbeitungselement ausgeführt wird. - Bei einer Ausführungsform vergleicht die Verarbeitungslogik WPL mit APL (Prozess-Block
230 ). Bei einer Ausführungsform wählt die Verarbeitungslogik ein untätiges Verarbeitungselement aus, um die Task auszuführen, wenn WPL kleiner als APL ist (Prozess-Block242 ). Andernfalls wählt die Verarbeitungslogik ein aktives Verarbeitungselement in einem Turbo-Modus aus, um die Task auszuführen (Prozess-Block243 ). - Erfindungsgemäße Ausführungsformen können in einer Vielzahl von elektronischen Geräten und Logikschaltungen implementiert werden. Des Weiteren können Geräte oder Schaltungen, die erfindungsgemäße Ausführungsformen beinhalten, innerhalb einer Vielzahl von Computersystemen eingeschlossen sein. Erfindungsgemäße Ausführungsformen können ebenfalls in anderen Computersystemtopologien und -architekturen eingeschlossen sein.
-
3 zeigt zum Beispiel ein Computersystem in Verbindung mit einer Ausführungsform der Erfindung. Prozessor705 greift auf Daten von Level 1-(L1)-Cache-Speicher706 , Level 2-(L2)-Cache-Speicher710 und Hauptspeicher715 zu. Bei anderen Ausführungsformen der Erfindung kann Cache-Speicher706 ein mehrstufiger Cache-Speicher sein, der einen L1-Cache zusammen mit anderem Speicher wie beispielsweise ein L2-Cache innerhalb einer Computersystem-Speicherhierarchie umfasst, und Cache-Speicher710 ist der nachfolgende Cache-Speicher auf niedrigem Niveau, wie beispielsweise ein L3-Cache oder mehr mehrstufiger Cache. Des Weiteren kann bei anderen Ausführungsformen das Computersystem Cache-Speicher710 als einen geteilten Cache für mehr als einen Prozessorkern aufweisen. - Der Prozessor
705 kann irgendeine Anzahl an Prozessorkernen aufweisen. Andere Ausführungsformen der Erfindung können jedoch innerhalb anderer Geräte innerhalb des Systems implementiert oder überall im System in Hardware, Software oder einer Kombination davon verteilt sein. Bei einer Ausführungsform umfasst Prozessor705 eine Logik ähnlich Komponenten, wie beispielsweise Task-Routing-Logik130 in Bezug auf1 . - Der Hauptspeicher
715 kann in verschiedenen Speicherquellen, wie beispielsweise dynamischem RAM (DRAM), Festplattenlaufwerk (HDD)720 , Halbleiterlaufwerk725 basierend auf NVRAM-Technologie oder einer Speicherquelle, die entfernt vom Computersystem über die Netzwerkschnittstelle730 oder über die drahtlose Schnittstelle740 lokalisiert ist und die verschiedene Speichergeräte und Technologien enthält, implementiert sein. Der Cache-Speicher kann entweder innerhalb des Prozessors oder in direkter Nähe zum Prozessor, wie beispielsweise auf dem lokalen Bus von Prozessor707 , angeordnet sein. Des Weiteren kann der Cache-Speicher relativ schnelle Speicherzellen enthalten, wie eine 6-Transistor-(6T)-Zelle oder eine andere Speicherzelle mit etwa gleicher oder schnellerer Geschwindigkeit. - Andere erfindungsgemäße Ausführungsformen können jedoch in anderen Schaltungen, Logik-Einheiten oder Geräten innerhalb des Systems von
3 vorhanden sein. Des Weiteren können einige erfindungsgemäße Ausführungsformen auf mehrere Schaltungen, Logik-Einheiten oder Geräte, wie in3 gezeigt, verteilt sein. - Ähnlich kann mindestens eine Ausführungsform innerhalb eines Punkt-Zu-Punkt-Computersystems implementiert sein.
4 zeigt zum Beispiel ein Computersystem, das in einer Punkt-Zu-Punkt-(PtP)-Konfiguration angeordnet ist. Insbesondere zeigt4 ein System, wo Prozessoren, Speicher und Eingabe-/Ausgabegeräte durch mehrere Punkt-zu-Punkt-Schnittstellen miteinander verbunden sind. - Das System nach
4 kann auch mehrere Prozessoren enthalten, von denen nur zwei, die Prozessoren870 und880 , zur Verdeutlichung gezeigt sind. Die Prozessoren870 und880 können je einen lokalen Memory Controller Hub (MCH)811 ,821 für die Verbindung mit dem Speicher850 ,851 enthalten. Die Prozessoren870 und880 können über eine Punkt-zu-Punkt-(PtP)-Schnittstelle853 unter Verwendung der PtP-Schnittstellenschaltungen812 ,822 Daten austauschen. Bei den Prozessoren870 und880 erfolgt der Datenaustausch mit einem Chipsatz890 über einzelne PtP-Schnittstellen830 ,831 , wobei die Punkt-zu-Punkt-Schnittstellenschaltungen813 ,823 ,860 ,861 verwendet werden. Der Chipsatz890 kann mit einer Hochleistungsgrafikschaltung852 über eine Hochleistungsgrafikschnittstelle862 Daten austauschen. Ausführungsformen der Erfindung können mit dem Computer-Bus (834 oder835 ) gekoppelt sein oder sich innerhalb des Chipsatzes890 befinden oder mit dem Datenspeicher875 oder mit dem Speicher850 von4 gekoppelt sein. - Andere erfindungsgemäße Ausführungsformen können jedoch in anderen Schaltungen, Logik-Einheiten oder Geräten innerhalb des Systems von
4 vorhanden sein. Des Weiteren können bei anderen erfindungsgemäßen Ausführungsformen mehrere Schaltungen, Logik-Einheiten oder Geräte wie in4 gezeigt verteilt sein. - Die Erfindung ist nicht auf die beschriebenen Ausführungsformen begrenzt, sondern kann mit Modifizierungen und Änderungen im Rahmen des Umfangs der angehängten Ansprüche realisiert werden. Es ist z. B. zu verstehen, dass die vorliegende Erfindung für die Verwendung mit allen Arten von Halbleiterchips mit integrierter Schaltung (IC) anwendbar ist. Beispiele dieser IC-Chips beinhalten, sind aber nicht beschränkt auf, Prozessoren, Controller, Chipsatz-Komponenten, Programmable Logic Arrays (PLA), Speicherbausteine, Netzwerkbausteine und dergleichen. Es ist zu verstehen, dass Größen/Modelle/Werte/Bereiche als Beispiele angegeben wurden, obgleich Ausführungsformen der vorliegenden Erfindung nicht auf diese beschränkt sind. Mit der Ausreifung von Fertigungstechniken (z. B. Fotolithografie) im Laufe der Zeit ist zu erwarten, dass immer kleinere Geräte hergestellt werden können.
- Wohingegen viele Abänderungen und Modifikationen der Ausführungsform der vorliegenden Erfindung zweifellos für einen Fachmann offensichtlich werden, nachdem er die vorangehende Beschreibung gelesen hat, sollte man verstehen, dass keine bestimmte Ausführungsform, die anhand einer Darstellung gezeigt und beschrieben wird, dazu beabsichtigt ist, begrenzend zu wirken. Deshalb sind Verweise auf Details von verschiedenen Ausführungsformen nicht dazu beabsichtigt, den Umfang der Ansprüche zu begrenzen, die in sich selbst nur jene Funktionen anführen, die als wesentlich für die Erfindung angesehen werden.
Claims (16)
- Vorrichtung, umfassend: ein erstes Verarbeitungselement; ein zweites Verarbeitungselement; und Task-Routing-Logik, um basierend auf mindestens einem Vergleich von Leistungsverlusten zwischen dem ersten Verarbeitungselement und dem zweiten Verarbeitungselement auszuwählen, um eine Task auszuführen, wenn mindestens eines der Verarbeitungselemente in einem Turbo-Modus ist.
- Vorrichtung nach Anspruch 1, weiter umfassend Speicher, der mit der Task-Routing-Logik gekoppelt ist, um Information über einen Frequenz-Skalierbarkeitsfaktor eines Programms zu enthalten, das durch das erste Verarbeitungselement ausgeführt wird.
- Vorrichtung nach Anspruch 1, weiter umfassend Leistungsrechenlogik, um einen Leistungsverlust basierend auf einer Verminderung einer Arbeitsfrequenz verbunden mit dem ersten Verarbeitungselement und einem Frequenz-Skalierbarkeitsfaktor eines Programms, das durch das erste Verarbeitungselement ausgeführt wird, zu bestimmen.
- Vorrichtung nach Anspruch 1, weiter umfassend Leistungsrechenlogik, um einen Leistungsverlust basierend auf einem Zeitraum zur Ausführung der Task und einem Auslastungswert verbunden mit einem Programm, das durch das erste Verarbeitungselement ausgeführt wird, zu bestimmen.
- Vorrichtung nach Anspruch 1, wobei die Task-Routing-Logik betriebsfähig ist, einen kleineren Leistungsverlust zwischen einem ersten Leistungsverlust und einem zweiten Leistungsverlust verbunden mit dem Auswählen des ersten Verarbeitungselements und dem Auswählen eines zweiten Verarbeitungselements, auszuwählen.
- Vorrichtung nach Anspruch 1, wobei eine Arbeitsfrequenz des ersten Verarbeitungselements abnimmt, wenn das zweite Verarbeitungselement untätig ist und das zweite Verarbeitungselement ausgewählt wird, um die Task auszuführen.
- Vorrichtung nach Anspruch 1, wobei das erste Verarbeitungselement im Turbo-Modus bei einer höheren Frequenz arbeitet als der eines normalen Modus, wenn das erste Verarbeitungselement mehr Energie aufnimmt, weil das zweite Verarbeitungselement untätig ist.
- Vorrichtung nach Anspruch 1, wobei die Task ein umleitbares Event ist, das entweder durch das erste oder durch das zweite Verarbeitungselement ausführbar ist.
- System, umfassend: eine Vielzahl von Verarbeitungselementen, einschließlich eines ersten Verarbeitungselements und eines zweiten Verarbeitungselements; Task-Routing-Logik, um zwischen dem ersten Verarbeitungselement und dem zweiten Verarbeitungselement auszuwählen, um eine Task auszuführen, wenn mindestens eines der Verarbeitungselemente in einem Turbo-Modus ist; und ein Speicher gekoppelt mit der Task-Routing-Logik, um Programme aufzunehmen, die von den mehreren Verarbeitungselementen auszuführen sind.
- System nach Anspruch 9, weiter umfassend Leistungsrechenlogik, um einen Leistungsverlust basierend auf einer Verminderung einer Arbeitsfrequenz verbunden mit dem ersten Verarbeitungselement und einem Frequenz-Skalierbarkeitsfaktor eines Programms, das durch das erste Verarbeitungselement ausgeführt wird, zu bestimmen.
- System nach Anspruch 9, weiter umfassend Leistungsrechenlogik, um einen Leistungsverlust basierend auf einem Zeitraum zur Ausführung der Task und einem Auslastungswert verbunden mit einem Programm, das durch das erste Verarbeitungselement ausgeführt wird, zu bestimmen.
- System nach Anspruch 9, wobei Task-Routing-Logik betriebsfähig ist, einen kleineren Leistungsverlust zwischen einem ersten Leistungsverlust und einem zweiten Leistungsverlust verbunden mit dem Auswählen des ersten Verarbeitungselements und dem Auswählen eines zweiten Verarbeitungselements, auszuwählen.
- Verfahren, umfassend: das Bestimmen, ob irgendeines von einer Vielzahl von Verarbeitungselementen in einem Turbo-Modus arbeitet; und das Auswählen eines ersten Verarbeitungselements, um eine Task auszuführen, wenn mindestens eines der Verarbeitungselemente im Turbo-Modus arbeitet, basierend mindestens auf einem Vergleich von Leistungsverlusten.
- Verfahren nach Anspruch 13, weiter umfassend einen Leistungsverlust zu bestimmen basierend auf einer Verminderung einer Arbeitsfrequenz verbunden mit dem ersten Verarbeitungselement und einem Frequenz-Skalierbarkeitsfaktor eines Programms, das durch das erste Verarbeitungselement ausgeführt wird.
- Verfahren nach Anspruch 13, weiter umfassend das Bestimmen eines Leistungsverlusts basierend auf einer Durchschnittszeitdauer zur Ausführung der Task und einem Auslastungswert, der mit einem Programm, das durch das erste Verarbeitungselement ausgeführt wird, verbunden ist.
- Verfahren nach Anspruch 13, weiter umfassend das Auswählen des ersten Verarbeitungselements, ein aktives Verarbeitungselement, um die Task auszuführen, wenn ein mit dem Auswählen des ersten Verarbeitungselements verbundener erster Leistungsverlust niedriger ist, als ein zweiter Leistungsverlust verbunden mit dem Aufwecken eines zweiten Verarbeitungselements, das in einem Schlafzustand ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/630,438 US9098274B2 (en) | 2009-12-03 | 2009-12-03 | Methods and apparatuses to improve turbo performance for events handling |
US12/630,438 | 2009-12-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102010045743A1 true DE102010045743A1 (de) | 2011-06-09 |
DE102010045743B4 DE102010045743B4 (de) | 2022-10-13 |
Family
ID=43972569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102010045743.4A Active DE102010045743B4 (de) | 2009-12-03 | 2010-09-17 | Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern |
Country Status (5)
Country | Link |
---|---|
US (3) | US9098274B2 (de) |
JP (2) | JP5406149B2 (de) |
CN (4) | CN104239152B (de) |
DE (1) | DE102010045743B4 (de) |
TW (3) | TWI564806B (de) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098274B2 (en) * | 2009-12-03 | 2015-08-04 | Intel Corporation | Methods and apparatuses to improve turbo performance for events handling |
US20120144218A1 (en) * | 2010-12-03 | 2012-06-07 | International Business Machines Corporation | Transferring Power and Speed from a Lock Requester to a Lock Holder on a System with Multiple Processors |
US8862918B2 (en) * | 2011-07-01 | 2014-10-14 | Intel Corporation | Efficient frequency boost operation |
DE112011105590T5 (de) * | 2011-09-06 | 2014-07-03 | Intel Corp. | Energieeffiziente Prozessorarchitektur |
US9652018B2 (en) | 2011-12-30 | 2017-05-16 | Intel Corporation | Adjusting power consumption of a processing element based on types of workloads to be executed |
CN104169832B (zh) | 2012-03-13 | 2017-04-19 | 英特尔公司 | 提供处理器的能源高效的超频操作 |
WO2013137860A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically computing an electrical design point (edp) for a multicore processor |
WO2013137862A1 (en) | 2012-03-13 | 2013-09-19 | Intel Corporation | Dynamically controlling interconnect frequency in a processor |
US9250869B1 (en) * | 2012-03-30 | 2016-02-02 | Emc Corporation | Synchronous business process execution engine for action orchestration in a single execution transaction context |
US9213381B2 (en) * | 2012-05-24 | 2015-12-15 | Ati Technologies Ulc | Voltage regulator dynamically determining whether requested power transition can be supported |
US9218045B2 (en) * | 2012-06-30 | 2015-12-22 | Intel Corporation | Operating processor element based on maximum sustainable dynamic capacitance associated with the processor |
US9460304B1 (en) * | 2012-09-28 | 2016-10-04 | Emc Corporation | Data services generation |
US9164931B2 (en) | 2012-09-29 | 2015-10-20 | Intel Corporation | Clamping of dynamic capacitance for graphics |
US9336057B2 (en) | 2012-12-21 | 2016-05-10 | Microsoft Technology Licensing, Llc | Assigning jobs to heterogeneous processing modules |
US9110735B2 (en) * | 2012-12-27 | 2015-08-18 | Intel Corporation | Managing performance policies based on workload scalability |
US9348401B2 (en) | 2013-06-25 | 2016-05-24 | Intel Corporation | Mapping a performance request to an operating frequency in a processor |
US9250910B2 (en) | 2013-09-27 | 2016-02-02 | Intel Corporation | Current change mitigation policy for limiting voltage droop in graphics logic |
US10079019B2 (en) | 2013-11-12 | 2018-09-18 | Apple Inc. | Always-on audio control for mobile device |
US9514715B2 (en) | 2013-12-23 | 2016-12-06 | Intel Corporation | Graphics voltage reduction for load line optimization |
US10031000B2 (en) * | 2014-05-29 | 2018-07-24 | Apple Inc. | System on a chip with always-on processor |
US9778728B2 (en) | 2014-05-29 | 2017-10-03 | Apple Inc. | System on a chip with fast wake from sleep |
US20160117199A1 (en) * | 2014-10-28 | 2016-04-28 | Samsung Electronics Co., Ltd. | Computing system with thermal mechanism and method of operation thereof |
KR20160054850A (ko) * | 2014-11-07 | 2016-05-17 | 삼성전자주식회사 | 다수의 프로세서들을 운용하는 장치 및 방법 |
US9652027B2 (en) | 2015-04-01 | 2017-05-16 | Microsoft Technology Licensing, Llc | Thread scheduling based on performance state and idle state of processing units |
JP2017016250A (ja) * | 2015-06-29 | 2017-01-19 | 日本電気株式会社 | バリア同期装置、バリア同期方法及びプログラム |
US10296067B2 (en) * | 2016-04-08 | 2019-05-21 | Qualcomm Incorporated | Enhanced dynamic clock and voltage scaling (DCVS) scheme |
US10565079B2 (en) | 2017-09-28 | 2020-02-18 | Intel Corporation | Determination of idle power state |
US10996725B2 (en) * | 2018-08-21 | 2021-05-04 | Nvidia Corporation | Power management in a multiple-processor computing device |
KR20200084987A (ko) * | 2019-01-03 | 2020-07-14 | 삼성전자주식회사 | 전력을 제어하기 위한 전자 회로 |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6865684B2 (en) | 1993-12-13 | 2005-03-08 | Hewlett-Packard Development Company, L.P. | Utilization-based power management of a clocked device |
US5860024A (en) * | 1996-04-15 | 1999-01-12 | Advanced Micro Devices, Inc. | Microprocessor with automatic name generation including performance indication |
US6041400A (en) | 1998-10-26 | 2000-03-21 | Sony Corporation | Distributed extensible processing architecture for digital signal processing applications |
US6377975B1 (en) * | 2000-03-01 | 2002-04-23 | Interactive Intelligence, Inc. | Methods and systems to distribute client software tasks among a number of servers |
US20070192863A1 (en) | 2005-07-01 | 2007-08-16 | Harsh Kapoor | Systems and methods for processing data flows |
US6988211B2 (en) | 2000-12-29 | 2006-01-17 | Intel Corporation | System and method for selecting a frequency and voltage combination from a table using a selection field and a read-only limit field |
US7017060B2 (en) | 2001-03-19 | 2006-03-21 | Intel Corporation | Power management system that changes processor level if processor utilization crosses threshold over a period that is different for switching up or down |
US6845456B1 (en) * | 2001-05-01 | 2005-01-18 | Advanced Micro Devices, Inc. | CPU utilization measurement techniques for use in power management |
US7058824B2 (en) | 2001-06-15 | 2006-06-06 | Microsoft Corporation | Method and system for using idle threads to adaptively throttle a computer |
US7830934B2 (en) | 2001-08-29 | 2010-11-09 | Cymer, Inc. | Multi-chamber gas discharge laser bandwidth control through discharge timing |
US7111178B2 (en) * | 2001-09-28 | 2006-09-19 | Intel Corporation | Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system |
US6813719B2 (en) | 2001-11-16 | 2004-11-02 | Apple Computer, Inc. | Method and apparatus for increasing the operating frequency of an electronic circuit |
US7171570B2 (en) | 2001-11-16 | 2007-01-30 | Apple Computer, Inc. | Method and apparatus for selectively increasing the operating speed of an electronic circuit |
US6804632B2 (en) | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US8645954B2 (en) | 2001-12-13 | 2014-02-04 | Intel Corporation | Computing system capable of reducing power consumption by distributing execution of instruction across multiple processors and method therefore |
US7089430B2 (en) | 2001-12-21 | 2006-08-08 | Intel Corporation | Managing multiple processor performance states |
US7036030B1 (en) * | 2002-02-07 | 2006-04-25 | Advanced Micro Devices, Inc. | Computer system and method of using temperature measurement readings to detect user activity and to adjust processor performance |
JP2003271572A (ja) * | 2002-03-14 | 2003-09-26 | Fuji Photo Film Co Ltd | 処理分散制御装置、分散処理システム、処理分散制御プログラム、処理分散制御方法 |
US6556160B1 (en) | 2002-04-17 | 2003-04-29 | Delphi Technologies, Inc. | Circuit for converting an analog signal to a PWM signal |
US6959297B2 (en) | 2002-04-25 | 2005-10-25 | Winnow Technology, Llc | System and process for searching within a data stream using a pointer matrix and a trap matrix |
JP3825722B2 (ja) | 2002-07-02 | 2006-09-27 | 東芝エルエスアイシステムサポート株式会社 | 半導体回路装置 |
US7076672B2 (en) | 2002-10-14 | 2006-07-11 | Intel Corporation | Method and apparatus for performance effective power throttling |
US7002900B2 (en) | 2002-10-25 | 2006-02-21 | Qualcomm Incorporated | Transmit diversity processing for a multi-antenna communication system |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US7240223B2 (en) | 2003-05-07 | 2007-07-03 | Apple Inc. | Method and apparatus for dynamic power management in a processor system |
US7249268B2 (en) | 2004-06-29 | 2007-07-24 | Intel Corporation | Method for performing performance optimization operations for a processor having a plurality of processor cores in response to a stall condition |
US8190863B2 (en) * | 2004-07-02 | 2012-05-29 | Intel Corporation | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction |
US7219252B1 (en) | 2004-07-09 | 2007-05-15 | Cypress Semiconductor Corp. | Apparatus and method for dynamic overclocking |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
US7966511B2 (en) | 2004-07-27 | 2011-06-21 | Intel Corporation | Power management coordination in multi-core processors |
US7594128B2 (en) | 2004-08-04 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Systems and methods to determine processor utilization |
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 |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US20060109468A1 (en) | 2004-11-24 | 2006-05-25 | Evans Richard W | Devices, methods, and systems for measuring an optical property of a sample |
US7502948B2 (en) | 2004-12-30 | 2009-03-10 | Intel Corporation | Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores |
US8279886B2 (en) * | 2004-12-30 | 2012-10-02 | Intel Corporation | Dataport and methods thereof |
US20060168571A1 (en) * | 2005-01-27 | 2006-07-27 | International Business Machines Corporation | System and method for optimized task scheduling in a heterogeneous data processing system |
US7698417B2 (en) | 2005-06-15 | 2010-04-13 | Microsoft Corporation | Optimized performance counter monitoring |
US7490254B2 (en) | 2005-08-02 | 2009-02-10 | Advanced Micro Devices, Inc. | Increasing workload performance of one or more cores on multiple core processors |
JP5202315B2 (ja) * | 2005-08-09 | 2013-06-05 | サイマー インコーポレイテッド | 放電タイミングによる多室ガス放電レーザの帯域幅制御 |
CN1971523A (zh) | 2005-11-26 | 2007-05-30 | 鸿富锦精密工业(深圳)有限公司 | 中央处理器超频控制系统及方法 |
TW200805047A (en) | 2005-12-23 | 2008-01-16 | Koninkl Philips Electronics Nv | Performance analysis based system level power management |
JP2007328461A (ja) | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
US7650518B2 (en) | 2006-06-28 | 2010-01-19 | Intel Corporation | Method, apparatus, and system for increasing single core performance in a multi-core microprocessor |
US7617403B2 (en) | 2006-07-26 | 2009-11-10 | International Business Machines Corporation | Method and apparatus for controlling heat generation in a multi-core processor |
US7584369B2 (en) | 2006-07-26 | 2009-09-01 | International Business Machines Corporation | Method and apparatus for monitoring and controlling heat generation in a multi-core processor |
JP2008084009A (ja) * | 2006-09-27 | 2008-04-10 | Toshiba Corp | マルチプロセッサシステム |
CN101558383B (zh) | 2006-12-14 | 2012-11-14 | 英特尔公司 | 处理器的电源管理方法和装置 |
US7818596B2 (en) | 2006-12-14 | 2010-10-19 | Intel Corporation | Method and apparatus of power management of processor |
US7930578B2 (en) | 2007-09-27 | 2011-04-19 | International Business Machines Corporation | Method and system of peak power enforcement via autonomous token-based control and management |
US8284205B2 (en) * | 2007-10-24 | 2012-10-09 | Apple Inc. | Methods and apparatuses for load balancing between multiple processing units |
US8032772B2 (en) | 2007-11-15 | 2011-10-04 | Intel Corporation | Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor |
US8578193B2 (en) * | 2007-11-28 | 2013-11-05 | International Business Machines Corporation | Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors |
US7962771B2 (en) * | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US8219993B2 (en) * | 2008-02-27 | 2012-07-10 | Oracle America, Inc. | Frequency scaling of processing unit based on aggregate thread CPI metric |
US8156362B2 (en) * | 2008-03-11 | 2012-04-10 | Globalfoundries Inc. | Hardware monitoring and decision making for transitioning in and out of low-power state |
US20090248988A1 (en) | 2008-03-28 | 2009-10-01 | Mips Technologies, Inc. | Mechanism for maintaining consistency of data written by io devices |
US8010822B2 (en) | 2008-03-28 | 2011-08-30 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
US8281295B2 (en) | 2008-05-23 | 2012-10-02 | International Business Machines Corporation | Computer analysis and runtime coherency checking |
US9032223B2 (en) * | 2008-09-05 | 2015-05-12 | Intel Corporation | Techniques to manage operational parameters for a processor |
US8219994B2 (en) * | 2008-10-23 | 2012-07-10 | Globalfoundries Inc. | Work balancing scheduler for processor cores and methods thereof |
US8261112B2 (en) * | 2008-12-08 | 2012-09-04 | International Business Machines Corporation | Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency |
US8230245B2 (en) * | 2009-01-23 | 2012-07-24 | Dell Products, L.P. | Method and system for operating-system-independent power management using performance verifications |
US9098274B2 (en) * | 2009-12-03 | 2015-08-04 | Intel Corporation | Methods and apparatuses to improve turbo performance for events handling |
-
2009
- 2009-12-03 US US12/630,438 patent/US9098274B2/en active Active
-
2010
- 2010-09-16 TW TW104131628A patent/TWI564806B/zh active
- 2010-09-16 TW TW099131446A patent/TWI420393B/zh active
- 2010-09-16 TW TW102138668A patent/TWI514284B/zh active
- 2010-09-17 DE DE102010045743.4A patent/DE102010045743B4/de active Active
- 2010-09-17 JP JP2010209897A patent/JP5406149B2/ja active Active
- 2010-09-26 CN CN201410483636.6A patent/CN104239152B/zh active Active
- 2010-09-26 CN CN201510202019.9A patent/CN104850209B/zh active Active
- 2010-09-26 CN CN201110193655.1A patent/CN102306111B/zh active Active
- 2010-09-26 CN CN201010293325.5A patent/CN102087619B/zh active Active
-
2011
- 2011-06-08 US US13/156,268 patent/US9092218B2/en active Active
-
2013
- 2013-10-31 JP JP2013226877A patent/JP6074351B2/ja active Active
-
2015
- 2015-05-19 US US14/716,326 patent/US9904346B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5406149B2 (ja) | 2014-02-05 |
CN104239152A (zh) | 2014-12-24 |
CN102306111A (zh) | 2012-01-04 |
JP2014056594A (ja) | 2014-03-27 |
TW201137753A (en) | 2011-11-01 |
DE102010045743B4 (de) | 2022-10-13 |
TWI420393B (zh) | 2013-12-21 |
US9092218B2 (en) | 2015-07-28 |
CN102087619B (zh) | 2017-06-13 |
JP2011118871A (ja) | 2011-06-16 |
TWI514284B (zh) | 2015-12-21 |
TWI564806B (zh) | 2017-01-01 |
CN104850209A (zh) | 2015-08-19 |
CN104850209B (zh) | 2018-03-13 |
US9904346B2 (en) | 2018-02-27 |
JP6074351B2 (ja) | 2017-02-01 |
US20110138388A1 (en) | 2011-06-09 |
CN102306111B (zh) | 2017-12-19 |
US9098274B2 (en) | 2015-08-04 |
TW201407481A (zh) | 2014-02-16 |
CN102087619A (zh) | 2011-06-08 |
US20150253833A1 (en) | 2015-09-10 |
US20110238974A1 (en) | 2011-09-29 |
TW201626221A (zh) | 2016-07-16 |
CN104239152B (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102010045743B4 (de) | Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern | |
DE112004001320B3 (de) | Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren | |
DE102010054337B4 (de) | Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen | |
DE112006003444B4 (de) | Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen | |
DE112011103193B4 (de) | Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung | |
DE102013104328B4 (de) | Aufgabenzuteilung in großen und kleinen Kernen | |
DE102020120019A1 (de) | Proaktive di/dt-spannungs-dachabfall-abschwächung | |
DE112007001987B4 (de) | Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung | |
DE112011105298B4 (de) | Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors | |
DE112012002664B4 (de) | Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor | |
DE102014003798B4 (de) | Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht | |
DE112005002672B4 (de) | Dynamische Neukonfiguration eines Cache-Speichers | |
DE112008000603B4 (de) | Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi | |
DE112012007115T5 (de) | Wahlweise Logikprozessor-Zählung und Typauswahl für eine gegebene Arbeitsbelastung basierend auf Wärme- und Leistungsbudget-Einschränkungen der Plattform | |
DE112011103194B4 (de) | Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen | |
DE102016118210A1 (de) | Granulare Dienstqualität für Computer-Ressourcen | |
DE102020132764A1 (de) | Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive | |
DE112006002056T5 (de) | Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren | |
DE112011102822T5 (de) | Leistungsoptimierte Interrupt-Abgabe | |
DE112013006241T5 (de) | Techniken für Plattform-Arbeitszyklus-Wechsel | |
DE102014003704A1 (de) | Plattform-agnostisches Powermanagement | |
DE102013104329A1 (de) | Aufgabenzuteilung in großen und kleinen Kernen | |
DE112004001887T5 (de) | Optimierung der SMI-Handhabung und -Initialisierung | |
DE102018129330A1 (de) | System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors | |
DE102021117226A1 (de) | Konfigurierbarer reduzierter speicherstart |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R130 | Divisional application to |
Ref document number: 102010064743 Country of ref document: DE |
|
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |