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 PDF

Info

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
Application number
DE102010045743A
Other languages
English (en)
Other versions
DE102010045743B4 (de
Inventor
Ryan D. Folsom Wells
Ohad Falik
Jose P. Davis Allarey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010045743A1 publication Critical patent/DE102010045743A1/de
Application granted granted Critical
Publication of DE102010045743B4 publication Critical patent/DE102010045743B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing 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 auf 1 umfasst bei einer Ausführungsform Prozessor 160 Leistungsrechenlogik 110, Task-Routing-Logik 130, Turbo-Modus-Logik 140 und mehrere Verarbeitungselemente, wie beispielsweise die Verarbeitungselemente 131134. Bei einer Ausführungsform umfasst die Leistungsrechenlogik weiter Speicher 111.
  • 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 Verarbeitungselemente 131134, 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-Logik 140 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 131134 umleitbar ist. Bei einer Ausführungsform führt Prozessor 160 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 Prozessor 160 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 Arbeitslast 10 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 Task 101 (infolge eines Events), wenn Prozessor 160 sich in einem Turbo-Modus befindet. Bei einer Ausführungsform ist Verarbeitungselement 131 beispielsweise in einem Turbo-Modus, während Verarbeitungselement 132 in einem untätigen Modus ist. Bei einer Ausführungsform wählt Turborouting-Logik 130 eines der Verarbeitungselemente aus basierend auf Leistungsverlusten verbunden mit dem Auswählen zwischen unterschiedlichen Verarbeitungselementen (ob ein aktives Verarbeitungselement oder ein schlafendes Verarbeitungselement), um Task 101 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 Speicher 111 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 Leistungsrechenlogik 110 APL basierend auf einem Betrag an Abarbeitungszeit, um Task 101 (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 Prozessor 160 in einem Turbo-Modus ist. Bei einer Ausführungsform bestimmt die Task-Routing-Logik 130 auf Basis der Information von der Turbo-Modus-Logik 140, ob Prozessor 160 (oder irgendeines der Verarbeitungselemente 131134) 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-Logik 130 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-Logik 130 in Bezug auf 1) ausgeführt. Bei einer Ausführungsform wird der Prozess durch ein Computersystem in Bezug auf 3 ausgeführt.
  • Mit Bezug auf 2 beginnt bei einer Ausführungsform die Verarbeitungslogik durch den Empfang eines umleitbaren Events (Prozess-Block 200). 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-Block 241) 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-Block 242). Andernfalls wählt die Verarbeitungslogik ein aktives Verarbeitungselement in einem Turbo-Modus aus, um die Task auszuführen (Prozess-Block 243).
  • 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. Prozessor 705 greift auf Daten von Level 1-(L1)-Cache-Speicher 706, Level 2-(L2)-Cache-Speicher 710 und Hauptspeicher 715 zu. Bei anderen Ausführungsformen der Erfindung kann Cache-Speicher 706 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-Speicher 710 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-Speicher 710 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 Prozessor 705 eine Logik ähnlich Komponenten, wie beispielsweise Task-Routing-Logik 130 in Bezug auf 1.
  • Der Hauptspeicher 715 kann in verschiedenen Speicherquellen, wie beispielsweise dynamischem RAM (DRAM), Festplattenlaufwerk (HDD) 720, Halbleiterlaufwerk 725 basierend auf NVRAM-Technologie oder einer Speicherquelle, die entfernt vom Computersystem über die Netzwerkschnittstelle 730 oder über die drahtlose Schnittstelle 740 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 Prozessor 707, 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 in 3 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 zeigt 4 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 Prozessoren 870 und 880, zur Verdeutlichung gezeigt sind. Die Prozessoren 870 und 880 können je einen lokalen Memory Controller Hub (MCH) 811, 821 für die Verbindung mit dem Speicher 850, 851 enthalten. Die Prozessoren 870 und 880 können über eine Punkt-zu-Punkt-(PtP)-Schnittstelle 853 unter Verwendung der PtP-Schnittstellenschaltungen 812, 822 Daten austauschen. Bei den Prozessoren 870 und 880 erfolgt der Datenaustausch mit einem Chipsatz 890 über einzelne PtP-Schnittstellen 830, 831, wobei die Punkt-zu-Punkt-Schnittstellenschaltungen 813, 823, 860, 861 verwendet werden. Der Chipsatz 890 kann mit einer Hochleistungsgrafikschaltung 852 über eine Hochleistungsgrafikschnittstelle 862 Daten austauschen. Ausführungsformen der Erfindung können mit dem Computer-Bus (834 oder 835) gekoppelt sein oder sich innerhalb des Chipsatzes 890 befinden oder mit dem Datenspeicher 875 oder mit dem Speicher 850 von 4 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 in 4 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Vorrichtung nach Anspruch 1, wobei die Task ein umleitbares Event ist, das entweder durch das erste oder durch das zweite Verarbeitungselement ausführbar ist.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
DE102010045743.4A 2009-12-03 2010-09-17 Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern Active DE102010045743B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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