DE112006003444B4 - Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen - Google Patents

Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen Download PDF

Info

Publication number
DE112006003444B4
DE112006003444B4 DE112006003444T DE112006003444T DE112006003444B4 DE 112006003444 B4 DE112006003444 B4 DE 112006003444B4 DE 112006003444 T DE112006003444 T DE 112006003444T DE 112006003444 T DE112006003444 T DE 112006003444T DE 112006003444 B4 DE112006003444 B4 DE 112006003444B4
Authority
DE
Germany
Prior art keywords
execution
power state
computer system
operating system
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112006003444T
Other languages
English (en)
Other versions
DE112006003444T5 (de
Inventor
Vasudevan Srinivasan
Susumu Arai
Barnes Cooper
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 DE112006003444T5 publication Critical patent/DE112006003444T5/de
Application granted granted Critical
Publication of DE112006003444B4 publication Critical patent/DE112006003444B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Das Verfahren und die Vorrichtung zum Bereitstellen der Erfassung von Prozessor-Übergangszuständen ist in einigen Ausführungsformen beschrieben. Einige Ausführungsformen umfassen zumindest zwei Ausführungsstränge, die die Erfassung für Zustände hoher und niedriger Priorität, welche für Leistungszustands-Übergänge durch das Betriebssystem sorgen, bereitstellen: Der Ausführungsstrang niedriger Priorität wird unmittelbar vor dem Eintritt in einen Leerlaufzustand oder Zustand niedriger Leistung ausgeführt; der Ausführungsstrang hoher Priorität wird ausgeführt, wenn der Leerlaufzustand beendet oder der Zustand höchster Leistung erreicht wird. In einigen Ausführungsformen sorgt die Verwendung dieser Ausführungsstränge für die Erfassung von Prozessorzustands-Übergängen und Leerlaufzeiten unabhängig von dem Betriebssystem. Andere Ausführungsformen werden gleichfalls beschrieben.

Description

  • HINTERGRUND
  • Technisches Gebiet
  • Einige Ausführungsformen der Erfindung betreffen im allgemeinen Prozessorzustands-Übergänge in einem Rechnersystem.
  • Diskussion
  • Der Energieverbrauch von Rechnersystemen entwickelt sich für viele Nutzer zu einem zunehmend heiklen Bereich. Die Nutzer wünschen meistens niedrigere Energierechnungen. Auch können Nutzer Rechnersysteme bevorzugen, die wenig Geräusche und Abwärme erzeugen, und üblicherweise besteht ein positiver Zusammenhang zwischen der Menge der von einem Rechnersystem aufgenommenen Leistung und der Menge der von diesem Rechnersystem erzeugten Geräusche und Abwärme. Für ein batteriebetriebenes Rechnersystem, wie einen Laptop-Computer, ein Mobiltelefon („Handy”), einen Minicomputer (Personal Digital Assistant, PDA) usw. hat die Reduzierung des Energieverbrauchs den nützlichen Effekt, die Batterielaufzeit des Rechnersystems zu erhöhen (d. h., die Zeitspanne zu erhöhen, während der das Rechnersystem verwendet werden kann, bevor die Batterie wieder aufgeladen oder ersetzt werden muss).
  • Ein übliches Rechnersystem umfasst viele verschiedene Bauelemente, wie beispielsweise einen Prozessor oder Mikroprozessor, eine Datenspeichereinrichtung und verschiedene Eingabe-/Ausgabe(E/A)-Einheiten. Wenn ein Rechnersystem nicht ausgeschaltet ist, kann jedes Bauelement innerhalb des Rechnersystems eine gewisse Energie verbrauchen. Die zunehmende Verfeinerung der Mikroprozessor-Architekturen von Rechnersystemen hat darüber hinaus auch Leistungsmanagement-Fragen zu gesteigerter Relevanz verholfen. Die auf Rechnersystemen laufende Logik, wie beispielsweise Software-Anwendungen, kennt den Leistungszustand des Rechnersystems oder seiner Komponenten eventuell nicht. Dies kann dann problematisch sein, wenn die Abläufe der Software-Anwendungen für den Nutzer nicht ohne weiteres offenkundig sind. Darüber hinaus kann die Logik auf unterschiedlichen Betriebssystemen oder Versionen von Betriebssystemen (Operating Systems, OSes) ausgeführt werden und eventuell nicht dazu in der Lage sein, Leistungszustands-Informationen von dem Betriebssystem (Operating System, OS) zu erhalten.
  • In „An Application-Specific and Adaptive Power Management Technique”, First International Workshop an Power-Aware Real-Time Computing, Pisa, Italien, 2004, von Egger, B. et al. wird vorgeschlagen, speichergebundene Code-Regionen zur Laufzeit zu erkennen und den Prozessor in diesen Regionen zu verlangsamen, wenn diese Regionen erneut angetroffen werden. Leistungszustands-Informationen bleiben bei diesem Einsatz jedoch unberührt.
  • Es besteht daher ein Bedürfnis, Wege bereitzustellen, um die Logik von Leistungsverwaltungs-Zuständen des Rechnersystems in Kenntnis zu setzen. Insbesondere besteht für die Logik ein Bedürfnis, in einer vom Betriebssystem unabhängigen Weise zu erfassen, wenn das Betriebssystem im Begriff ist, den Leistungszustand eines Rechnersystems zu ändern.
  • Diese Aufgabe wird durch jeden der nebengeordneten Ansprüche gelöst.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Verschiedene Vorteile von Ausführungsformen der vorliegenden Erfindung werden dem durchschnittlichen Fachmann durch Lesen der nachfolgenden Beschreibung und der angefügten Ansprüche sowie durch Bezugnahme auf die nachfolgenden Figuren ersichtlich, in denen:
  • 1 ein Blockschema eines Beispiels eines Rechnersystems gemäß einiger Ausführungsformen der Erfindung darstellt;
  • 2 ein Blockschema eines Beispiels eines Rechnersystems gemäß einiger Ausführungsformen der Erfindung darstellt;
  • 3 ein Blockschema eines Beispielprozesses und Ausführungsstrang-Prioritäten in einem beispielhaften Betriebssystem mit beispielhaften Ausführungssträngen zur Leistungszustands-Eintritts-/Austrittserfassung gemäß einiger Ausführungsformen der Erfindung darstellt;
  • 4 ein Flussdiagramm eines Beispielprozesses für die Einleitung einer Leistungszustands-Erfassung gemäß einiger Ausführungsformen der Erfindung darstellt;
  • 5 ein Flussdiagramm eines Beispielprozesses zur Erfassung eines Ausführungsstrangs hoher Priorität gemäß einiger Ausführungsformen der Erfindung darstellt; und
  • 6 ein Flussdiagramm eines Beispielprozesses zur Erfassung eines Ausführungsstrangs niedriger Priorität gemäß einiger Ausführungsformen der Erfindung darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Auf einige Ausführungsformen der Erfindung, von denn Beispiele in den beigefügten Zeichnungen veranschaulicht sind, wird Bezug genommen. Obwohl die vorliegende Erfindung in Zusammenhang mit diesen Ausführungsformen beschrieben wird, versteht es sich, dass sie nicht dazu dienen sollen, die Erfindung auf diese Ausführungsformen zu beschränken. Die Erfindung soll im Gegenteil auch Alternativen, Modifikationen und Entsprechungen abdecken, die innerhalb des Geists und Umfangs der durch die beigefügten Ansprüche definierten Erfindung fallen können. In der nachfolgenden ausführlichen Beschreibung der Erfindung werden darüber hinaus zahlreiche spezifische Einzelheiten ausgeführt, um ein tiefgehendes Verständnis der Erfindung zu ermöglichen. Die Erfindung kann allerdings ohne diese spezifischen Einzelheiten zur Ausführung gebracht werden. In anderen Fällen sind wohlbekannte Verfahren, Vorgehensweisen, Bauelemente und Schaltkreise nicht in ihren Einzelheiten beschrieben worden, um Aspekte der Erfindung nicht unnötig zu verdecken.
  • Einige Ausführungsformen der Erfindung zielen auf ein System und ein Verfahren zur Erfassung von Prozessorzustands-Übergängen, beispielsweise, aber nicht beschränkt auf Rechnersysteme, die Prozessoren mit einem oder mehreren Kernen verwenden. Einige Ausführungsformen des Systems können verschiedene Leistungsverwaltungs-Zustände erfassen, die zum effektiven Erfassen der Leerlaufzeiten des Rechnersystems oder einem oder mehreren der Prozessoren mit einem oder mehreren Kernen Verwendung finden können, wie beispielsweise, aber nicht beschränkt auf verschiedene Zustände zur Prozessorleistungsverwaltung, d. h. „C-Zustände”, die von Rechnersystemen unterstützt werden können, die die am 2. September 2004 veröffentlichte Spezifikation Advanced Configuration and Power Interface, ACPI Version 10, verwenden.
  • Eine Bezugnahme auf „eine Ausführungsform” oder „einige Ausführungsformen” der Erfindung in der Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine Funktion, eine Struktur oder ein Kennzeichen, die in Verbindung mit der Ausführungsform beschrieben sind, von wenigstens einer Ausführungsform der Erfindung umfasst wird. Das Auftreten der Ausdrücke „in einer Ausführungsform” oder „gemäß einer Ausführungsform” an verschiedenen Stellen innerhalb der Beschreibung bezieht sich folglich nicht notwendigerweise stets auf die gleiche Ausführungsform.
  • Ausführungsformen der Erfindung können in Rechnersystemen mit Mikroprozessoren mit einzelnen, dualen oder mehrfachen Kernen implementiert werden, die eine zunehmende Verfeinerung erfahren. Diese Mehrkern-Prozessoren umfassen oft individuelle Rechenressourcen, während sie sich einen gemeinsamen Level-2(L2)-Cache-Speicher, eine gemeinsame Paketierung und andere Merkmale teilen. Dies führt zu Fragen der Leistungsverwaltung, wie beispielsweise, aber nicht beschränkt auf die folgenden:
    • a. Die Prozessablaufplanung kann sich verkomplizieren, da Betriebssysteme (OS) eventuell nicht verstehen, dass ein einzelnes Paket von mehreren Prozessoren geteilt wird. Dies führt dazu, dass Prozesse auf den verfügbaren Prozessorkernen ineffizient eingeplant werden, wodurch sich der Energieverbrauch erhöht;
    • b. Auf dem Rechnersystem ausgeführte Anwendungen werden eventuell nicht als interaktive Anwendungen (beispielsweise, aber nicht beschränkt auf ExcelTM oder WordTM von Microsoft®) im Gegensatz zu Hintergrundanwendungen (wie beispielsweise, aber nicht beschränkt auf AntivirusTM oder Personal FirewallTM von Symantec®) kategorisiert. Diese Anwendungen können eventuell nicht die gleiche Gelegenheit zum Ablaufen bekommen, und ihre Ausführung kann unnötig sein und daher eher zu einem Energieverlust führen. Der Energieverlust kann für mobile Rechnersysteme, die unter Verwendung einer Batterie betrieben werden, problematisch sein.
  • Intel® Corporation stellt Prozessoren her, die Technologien zur Unterstützung eines niedrigen Energieverbrauchs und einer Verarbeitung mit hoher Leistungsfähigkeit für ein weites Feld von Diensten umfassen. In einigen Fällen können die Methoden zur Unterstützung eines niedrigen Energieverbrauchs und einer Verarbeitung mit hoher Leistungsfähigkeit in diesen Prozessoren mit Systemen zur Leistungsverwaltung, wie beispielsweise der ACPI-Spezifikation, verträglich sein. Intel® Corporation kann eine oder mehrere Prozessorfamilien vertreiben, die unter unterschiedlichen Produktbezeichnungen oder Modellnummern diese oder ähnliche Technologien aufweisen.
  • Zusätzlich können die Ausführungsformen der hier beschriebenen Erfindung dazu verwendet werden, aus verschiedenen Energiesparmodi Nutzen zu ziehen, die von der System-Hardware unterstützt werden können, sogar falls diese Modi vom Betriebssystem des Systems nicht unterstützt werden. Die Prozessoren der Intel®-Prozessorfamilien PXA26x und PXA27x umfassen Technologien zur Leistungsschaltung (Performance Switching). Ähnliche Technologien sind in verschiedenen von Intel® Corporation vertriebenen mobilen Prozessoren enthalten, beispielsweise in dem als Mobile Intel®Pentium® III Prozessor-M bezeichneten Prozessortyp. Die in diesen Prozessoren enthaltenen Technologien zur Leistungsschaltung können allgemein als Intel SpeedStep®-Technologie bezeichnet werden. Ausführungsformen der vorliegenden Erfindung können dazu verwendet werden, die von solchen Technologien unterstützten Energiesparmöglichkeiten effektiver auszunutzen. Alternative Ausführungsformen der Erfindung können verwendet werden, um die Effizienz von Verarbeitungssystemen zu steigern, die andere Arten von Prozessoren umfassen, einschließlich solcher Prozessoren, die andere Arten von Leistungs- oder Energieverwaltungs-Technologien nutzen.
  • Die hier veranschaulichten Ausführungsformen der Erfindung können Rechnersysteme mit Prozessoren, die die ACPI-Spezifikation unterstützen, oder andere Systeme umfassen. Alternative Ausführungsformen der Erfindung umfassen Rechnersysteme mit anderen Arten von Prozessoren, die von Intel® Corporation oder anderen Herstellern gefertigt sein können.
  • Die 1 und 2 sind Blockschaubilder von Beispielen von Rechnersystemen gemäß Ausführungsformen der Erfindung und liefern Beispiele für die in den 3 bis 5 beschriebenen Operationen. Die nachfolgende Erläuterung soll dazu dienen, eine allgemeine Beschreibung einer geeigneten Umgebung, in der bestimmte Aspekte der Erfindung ausgeführt werden können, zu liefern. Die Bezeichnung „Rechnersystem” soll in dem hier verwendeten Sinn allgemein eine einzelne Maschine oder ein System kommunizierend verbundener zusammenarbeitender Maschinen oder Einheiten umfassen. Beispielhafte Rechnersysteme umfassen ohne Beschränkung verteilte Rechnersysteme, Supercomputer, Rechner-Cluster, Großrechner, Mini-Computer, Client-Server-Systeme, Personal Computer (PCs), Arbeitsplatzrechner, Server, tragbare Rechner, Laptop-Computer, Tablet-Verarbeitungssysteme, Telefone, Personal Digital Assistant-Computer (PDA), Handgeräte, tragbare Handgeräte, Unterhaltungssysteme, wie beispielsweise Audio- und/oder Video-Geräte und andere Geräte zum Verarbeiten oder Übermitteln von Informationen.
  • Die Systeme der 1 und 2 können beispielsweise als ein integrierter Schaltkreis (integrated circuit, IC) ausgeführt sein. Wie der durchschnittliche Fachmann versteht, können die Komponenten des Systems mit einem oder mehreren flüchtigen oder nicht-flüchtigen Datenspeichereinheiten gekoppelt sein. Die Figuren umfassen als solche nicht jeden möglichen Bestandteil eines Rechnersystems. Das Rechnersystem kann auch kommunikativ mit Massenspeicher-Einrichtungen wie einem oder mehreren IDE-Laufwerken (Integrated Drive Electronics), SCSI-Laufwerken (Small Computer Systems Inferface) oder anderen Arten von Festplattenlaufwerken verbunden sein. Gemäß Ausführungsformen der Erfindung können andere Arten von Massenspeicher-Einrichtungen und Speichermedien, die von dem Rechnersystem verwendet werden können, Disketten, optische Speicher, Bänder, Speicher-Sticks, DVDs (Digital Video Disks), biologische Speicher usw. umfassen.
  • Das Rechnersystem kann außerdem eine oder mehrere Busbrücken umfassen. Eine oder mehrere dieser Brücken und der zugehörigen Busse können dazu verwendet werden, den in 1 veranschaulichten Prozessor entweder direkt oder indirekt mit zusätzlichen Baugruppen, wie beispielsweise einer oder mehreren Speichereinrichtungen, Steuereinrichtungen, Eingabe-/Ausgabe(E/A)-Anschlüssen und E/A-Einrichtungen, zu verbinden. Die zusätzlichen Baugruppen können beispielsweise eine Video-Steuereinrichtung, eine SCSI-Steuereinrichtung, eine Netzwerk-Steuereinrichtung, eine USB-Steuereinrichtung (universal serial bus), eine Tastatur-Steuereinrichtung und dergleichen umfassen. In einigen Ausführungsformen der Erfindung können solche Baugruppen als eingebettete Einheiten ausgeführt sein, wobei Baugruppen wie programmierbare oder nicht-programmierbare Logikeinheiten oder Felder, anwendungsspezifische integrierte Schaltkreise (application-specific integrated circuits, ASICs), eingebettete Rechner, Chipkarten oder dergleichen Verwendung finden.
  • 1 zeigt einen Prozessor 110 mit mehreren Kernen 112 (112a112b), wobei jeder Kern vollständig funktionsfähig mit Befehlabrufeinheiten, Befehl-Decodiereinheiten, Level-1(L1)-Cachespeichern 114 (114a114b), Ausführungseinheiten usw. ausgebildet ist. Während der dargestellte Prozessor 110 zwei Kerne 112 aufweist, sind die Ausführungsformen der Erfindung darauf nicht beschränkt. Die hier beschriebenen Methoden können in der Tat für jede Mehrkern-Architektur von Nutzen sein, für die der Energieverbrauch eine Frage von Bedeutung ist. Folglich kann jede beliebige Anzahl von Kernen verwendet werden, ohne den Geist und den Umfang der hier beschriebenen Ausführungsformen zu verlassen.
  • Jeder Kern 112 ist dazu fähig, einen Befehl zu erfassen, der einen Übergang des Kerns 112 in einen Leerlaufzustand anfordert. Der Befehl kann seinen Ursprung intern innerhalb des Kerns 112 oder außerhalb des Kerns 112 haben. Der Leerlaufzustand könnte ein Prozessor-Leistungszustand sein, wie beispielsweise einer der in der ACPI-Spezifikation beschriebenen „C-Zustände”. Im allgemeinen gehen tiefere Leerlaufzustände mit einem niedrigeren Energieverbrauch und größeren Austrittslatenzzeiten einher. Auch andere Zugänge können verwendet werden, wie beispielsweise, aber nicht beschränkt auf die unmittelbare Überwachung der Prozessorfrequenz, der Prozessorspannung usw.
  • Der Prozessor 110 kann einen Level-2(L2)-Cache-Speicher 120 aufweisen, den sich die Kerne 112 teilen. Die L1-Cache-Speicher 114 können andererseits für ihre entsprechenden Kerne 112 reserviert sein. Wie nachstehend in weiteren Einzelheiten ausgeführt wird, bietet die Reservierung der L1-Cache-Speicher 114 eine Möglichkeit zur kernweisen Leistungsverwaltung. Die Kerne 112 weisen auch reservierte Takteingänge 115 (115a115b) auf, die zur Erzielung kernweiser Energieeinsparungen gesperrt werden können. Logik zur Hardware-Koordinierung 116 kann den Energieverbrauch eines gegebenen Kerns 112 auf der Grundlage des Befehls und eines Leerlaufzustand-Status 118 (118a118b) jedes der mehreren Kerne 112 verwalten. Indem er mehrere Kerne 112 und mehrere Leerlaufzustand-Statusse 118 koordiniert, ist der dargestellte Prozessor 110 in der Lage, komplexere Architekturen zu unterstützen und schneller auf Lageänderungen zu reagieren als herkömmliche Software-Ansätze. Der dargestellte Prozessor 110 kann die Koordinierungslogik 116 auch dazu verwenden, Energiesparmaßnahmen vor tatsächlichen Leistungszustands-Übergängen einzuleiten. Im Ergebnis können sich bedeutende Energieeinsparungen ergeben.
  • Beispielsweise kann festgestellt werden, dass wegen eines Mangels an Nutzung der C4-Zustand für den ersten Kern 112a angemessen ist. Der C4-Zustand, der im Vergleich zu den anderen Leistungsverwaltungs-Zuständen tief liegt, wird üblicherweise mit einer geteilten Ressource wie einer paketierungsweiten Spannung und/oder Frequenzfestsetzung verbunden, Der zweite Kern 112b kann sich demgegenüber in einem aktiven Zustand befinden. Unter solchen Bedingungen könnte die Koordinierungslogik 116 den ersten Kern in einen „provisorischen” Zustand überführen, der die Einleitung bestimmter zugeordneter Energiesparmaßnahmen umfasst, sodass der erste Kern 112a weiterhin in der Lage ist, Energie zu sparen. Falls der zweite Kern 112b nachfolgend eine Anforderung empfängt, in den C4-Zustand zu wechseln, kann die Koordinierungslogik 116 überdies auch gemeinsame Energiesparmaßnahmen einleiten, um mehr Energie zu sparen, während die Kerne 112 in den C4-Zustand überführt werden. Ähnliche Vorteile können für die übrigen Leerlauf-Zustände erreicht werden, indem erfasst wird, wenn alle Kerne in denselben Zustand wechseln.
  • Gemäß Ausführungsformen der Erfindung können ein oder mehrere Betriebssysteme (operating systems, OSes) 122 auf dem Prozessor 110 betrieben werden. In einigen Ausführungsformen kann das OS 122 in einen Speicher (nicht gezeigt) geladen werden, wobei der Prozessor 110 auf beide zugreifen kann. Innerhalb des OS 122 kann eine ACPI-Logik 124 eingerichtet sein, um die oben beschriebenen Fähigkeiten bereitzustellen und darüber hinaus die Zustandsinformation für die Ausführungen der Erfindung, wie sie an anderer Stelle der Anmeldung beschrieben sind, bereitzustellen. In einigen Ausführungsformen der Erfindung können das OS 122 und die ACPI-Logik 124 in einer Massenspeichereinrichtung (nicht gezeigt) gespeichert werden, wie beispielsweise, aber nicht beschränkt auf eine Festplatte.
  • 2 zeigt ein System 222 mit einem Prozessor 110', der mehrere Kerne 112 (112a'112b') und eine Hardware-Koordinierungslogik 116, wie schon beschrieben, aufweist. Das gezeigte System 222 umfasst auch eine oder mehrere Eingabe-Ausgabe(E/A)-Einrichtungen 224, einen Arbeitsspeicher (random access memory, RAM) 226 sowie einen Lesespeicher (read only memory, ROM) 228, die über einen Chipsatz 230 an den Prozessor 110' gekoppelt sind. Das RAM 226 und das ROM 228 speichern Befehle 232, die als ein oder mehrere Ausführungsstränge und/oder Prozesse von den Kernen 112' ausgeführt werden können, wobei die Ausführung der Befehle 232 zu erhöhtem Energieverbrauch führen kann. Wenn Leerlauf-zustands-Übergangsbefehle durch die Kerne 112' von dem Chipsatz 230 und/oder dem Betriebssystem empfangen werden, ist die Hardware-Koordinierungslogik 116' in der Lage, den Energieverbrauch für das System 222 deutlich zu verringern.
  • Gemäß Ausführungsformen der Erfindung können auf dem Prozessor 110' ein oder mehrere Betriebssysteme (OSes) 122' betrieben werden. Die ACPI-Logik 124' kann innerhalb des OS 122' eingerichtet sein, um zumindest die oben beschriebenen Fähigkeiten bereitzustellen und darüber hinaus die Zustandsinformation für die Ausführungsformen der Erfindung, wie sie an anderer Stelle beschrieben ist, bereitzustellen. In einigen Ausführungsformen der Erfindung können das OS 122' und die ACPI-Logik 124' in einer Massenspeichereinrichtung (nicht gezeigt) gespeichert werden, wie beispielsweise, aber nicht beschränkt auf eine Festplatte.
  • Ausführungsformen der Erfindung umschließen die Erfassung des Eintritts eines Betriebssystems in (und des Austritts eines Betriebssystems aus) Prozessor-Leistungszuständen wie beispielsweise, aber nicht beschränkt auf Prozessor-Leistungsverwaltungs-Zustände, die den Leerlauf eines Betriebssystems anzeigen. Sobald der Eintritt in/Austritt aus Prozessor-Leistungsverwaltungs-Zuständen erfasst wird, können der Zeitplan-Steuereinheit des Betriebssystems zusammen mit Kenntnissen um Vordergrund- im Vergleich zu Hintergrundanwendungen Plattform- und/oder nutzerspezifische Vorlieben hinzugefügt werden, um die Zeitplan-Steuerung und/oder die Leistungsverwaltung zu lenken.
  • In einigen Ausführungsformen der Erfindung kann das Verfahren und die Vorrichtung die Erfassung des Eintritts in und des Austritts aus Prozessorleistungs-Verwaltungs-Zuständen durch die Leerlauf-Steuerungseinheit des Betriebssystems und/oder die Zeitplan-Steuereinheit des Betriebssystems bewerkstelligen, auf die hier Bezug genommen wird und die innerhalb des Betriebssystems arbeiten. Die Erfindung kann beschrieben werden mit Bezug oder in Verbindung mit assoziierten Daten einschließlich Befehlen, Funktionen, Prozeduren, Datenstrukturen, Anwendungsprogrammen usw., die, wenn auf sie durch eine Maschine zugegriffen wird, dazu führen, dass die Maschine Aufgaben ausführt oder abstrakte Datentypen oder systemnahe Hardware-Kontexte definiert. Die Daten können im allgemeinen als Software bezeichnet und in flüchtigen und/oder nicht-flüchtigen Datenspeichern gespeichert werden.
  • 3 zeigt von einem Betriebssystem zugewiesene Prozess- und Ausführungsstrang-Prioritäten. Wie in Blockdiagramm 300 gezeigt, sind die Prioritäten allein des besseren Verständnisses wegen auf der linken Seite der Figur in vertikaler Anordnung kategorisiert und als Hardware-Prioritäten 302, Versendepriorität 304, Software-Priorität hoch 306, Software-Priorität normal 308 bzw. Software-Priorität niedrig 310 aufgelistet. Entlang der rechten Seite von 3 befinden sich die Ausführungsstränge, die mit einem oder mehreren Prozessen verbunden sind, wie durch die Pfeile angezeigt wird. In einigen Ausführungsformen sind die Dienstunterbrechungs-Routinen 312 mit den Hardware-Prioritäten 302 verbunden; die Betriebssystem-Zeitplansteuereinheit 314 ist mit der Versendepriorität 304 verbunden und weist, wie in dieser Ausführungsform gezeigt, eine höhere Priorität als die Software-Anwendungen auf, die mit den Blöcken 306, 308 und 310 bezeichnet sind. Gemäß Ausführungsformen der Erfindung kann die Betriebssystem-Zeitplansteuereinheit 314 auch entscheiden, welcher Ausführungsstrang und Prozess während des nächsten Zeitschritts ausgeführt werden soll. Typischerweise kann es auch eine Betriebssystem-Leerlaufsteuerungseinheit geben, die bei einer niedrigeren Priorität (einschließlich wenigstens eines der Blöcke 306, 308 und 310) angeordnet und Anwendungen nicht ausgesetzt ist und die bestimmt, wann der Prozessor in einen Zustand niedriger Leistung zu versetzen ist.
  • Wie in 3 auch gezeigt ist, sind Echtzeit-Anwendungen 316 mit der Software-Priorität hoch 306 verbunden. Die Echtzeit-Anwendungen 316 können Software-Anwendungen umfassen, die für den direkten Zugriff durch den Nutzer vorgesehen sind und einen größeren Anteil der Verarbeitungsressourcen des Rechnersystems erfordern. Gemäß einiger Ausführungsformen der Erfindung kann ein Ausführungsstrang des Leistungszustands-Erfassungsprozesses hoher Priorität (Power State Detection Process High Priority Thread) 322 zusammen mit den Echtzeit-Anwendungen 316 instanziiert werden und kann mit der Software-Priorität hoch 306 in Verbindung stehen.
  • Eine oder mehrere Vordergrund-Aufgaben 318 können gemäß Ausführungsformen der Erfindung mit der Software-Priorität normal 308 verbunden sein. Darüber hinaus können in einigen Ausführungsformen der Erfindung Hintergrund-Aufgaben 320 mit der Software-Priorität niedrig 310 verbunden sein. Die Hintergrund-Aufgabe 320 kann Software-Anwendungen umfassen, die nicht für den direkten Zugriff durch den Nutzer vorgesehen sind, und laufen typischerweise ohne Berücksichtigung der Leistungsverwaltung ab. Gemäß einiger Ausführungsformen der Erfindung kann ein Ausführungsstrang des Leistungszustands-Erfassungsprozesses niedriger Priorität 324 zusammen mit den Hintergrund-Aufgaben 320 instanziiert werden und in Verbindung mit der Software-Priorität niedrig 310 stehen.
  • Gemäß Ausführungsformen der Erfindung kann ein Mechanismus in einer vom Betriebssystem unabhängigen Art und Weise näherungsweise erfassen, wann das Betriebssystem davor steht, den Prozessor aufgrund des Leerlaufs in einen Zustand niedriger Leistung zu versetzen, und auch zu erfassen, wann der Prozessor aus dem Zustand niedriger Leistung in einen normalen Betriebszustand erwacht ist, um Anwendungen auszuführen. In einigen Ausführungsformen der Erfindung kann dies erreicht werden, indem wenigstens ein Prozess mit zwei Ausführungssträngen erzeugt wird, wobei ein Ausführungsstrang eine höhere Priorität aufweist als andere Anwendungen auf einem üblichen System und ein anderer Ausführungsstrang die niedrigstmögliche Priorität aufweist, die ein Anwendungsstrang haben kann. Wie in 3 gezeigt, können die Ausführungsstränge 322 und 324 als die höchsten bzw. niedrigsten Ausführungsstränge instanziiert werden.
  • Die vorliegende Erfindung ist überdies nicht auf ein bestimmtes Betriebssystem beschränkt, sondern kann in Rechnersystemen eingesetzt werden, die eine große Auswahl unterschiedlicher Betriebssysteme verwenden.
  • Wie an anderer Stelle der Beschreibung ausgeführt wird, können die Verfahren der 4 bis 6 von einem oder mehreren der Module des mit Bezug auf die 1 und 2 gezeigten und erörterten Rechnersystems ausgeführt werden. Gemäß Ausführungsformen der Erfindung können insbesondere die Betriebssysteme 122 und 122' sowie die ACPI 124 und 124' die Logik für die Erfindung teilweise oder vollständig bereitstellen. Die 4 bis 6 beschreiben Ausführungsformen der Erfindung ohne unnötigen Bezug auf die logischen und physikalischen Module des Rechnersystems, auf dem sie realisiert werden können.
  • 4 zeigt ein Flussdiagramm davon, wie der Eintritt in oder Austritt aus Leistungszuständen durch die Betriebssystem-Leerlaufsteuerungseinheit gemäß einiger Ausführungsformen der Erfindung erfasst werden kann. Wie ersichtlich, kann die Erfassungsverarbeitung durch die beiden Ausführungsstränge erfolgen, die von einer Erfassungsanwendung erzeugt werden. Der Prozess 400 beginnt bei Start 402 und wird bei 404 unmittelbar fortgesetzt mit der Erzeugung eines Ausführungsstrangs hoher Priorität und eines Ausführungsstrangs niedriger Priorität. Der Prozess wird dann fortgesetzt bei 406, wo der Prozess zum Speichern von Leistungszustands-Eintritts-/Austritts-Informationen einen unter den beiden Ausführungssträngen geteilten Speicher erzeugt. In einigen Ausführungsformen der Erfindung führt der Prozess die beiden Ausführungsstränge bis zum Herunterfahren des Systems aus 408. Gemäß einer Ausführungsform der Erfindung kann der Prozess aktualisierte Informationen über den Status der elektronischen Einrichtung empfangen 410. Die elektronische Einrichtung kann das Rechnersystem oder einen oder mehrere Module des Rechnersystems, wie beispielsweise den Mehrkern-Prozessor von 1, umfassen. Der Prozess kann dann bei 410 mit einer Wiederholung fortgesetzt werden, wie in 4 gezeigt.
  • 5 veranschaulicht das Flussdiagramm des Ausführungsstrangs hoher Priorität gemäß einer Ausführungsform der Erfindung. Der Prozess 500 für den Ausführungsstrang beginnt bei 502 und wird umgehend bei 504 fortgesetzt. Bei 504 speichert der Prozess eine Leistungszustands-Austrittszeitmarke in einem gemeinsamen Speicher. Diese Zeitmarke kann Austrittszeit genannt werden. Der Prozess wird dann bei 506 fortgesetzt. Bei 506 errechnet der Prozess eine Leerlaufzeit durch Subtraktion einer Eintrittszeit von der Austrittszeit. In einigen Ausführungsformen der Erfindung wird die Leerlaufzeit vom Ausführungsstrang niedriger Priorität gespeichert. Der Prozess wird dann bei 508 fortgesetzt, wo in einigen Ausführungsformen der Erfindung der Prozess auf der Grundlage von Nutzereingaben und/oder Kenntnissen über Hintergrund- im Gegensatz zu Vordergrund-Prozessen bestimmt, ob irgendwelche weiteren Leistungsverwaltungs- oder Zeitplansteuerungs-Änderungen durchgeführt werden müssen. Der Prozess übergibt dann bei 510 den Prozessor an andere Ausführungsstränge und setzt bei 512 fort. Bei 512 signalisiert der Prozess dem Ausführungsstrang niedriger Priorität, in einen Bereitschaftszustand einzutreten. In Ausführungsformen der Erfindung steht der Prozess mit dem untenstehend beschriebenen Ausführungsstrang niedriger Priorität 600 bei 612 in Verbindung, Der Prozess setzt dann bei 514 fort, um ein Zeitgeber-Warteereignis für das nachfolgende Zeitgabesignal des Betriebssystems festzulegen, und wird dann bei 516 beendet, wobei der Prozess 500 in einigen Ausführungsformen der Erfindung bei Notwendigkeit wiederholt werden kann.
  • 6 veranschaulicht ein Flussdiagramm des Ausführungsstrangs niedriger Priorität gemäß einer Ausführungsform der Erfindung. Der Prozess 600 für den Ausführungsstrang beginnt bei 602 und wird unverzüglich bei 604 fortgesetzt. Bei 604 speichert der Prozess eine Leistungszustands-Eintrittszeitmarke in einem gemeinsamen Speicher. Diese Zeitmarke kann eine Eintrittszeit genannt werden. Der Prozess setzt dann bei 606 fort. Bei 606 errechnet der Prozess eine Belegungszeit durch Subtrahieren einer Austrittszeit von einer Eintrittszeit. In einigen Ausführungsformen der Erfindung wird die Belegungszeit von dem Ausführungsstrang hoher Priorität gespeichert. Der Prozess setzt dann bei 608 fort, wo in einigen Ausführungsformen der Erfindung der Prozess auf der Grundlage von Nutzereingaben und/oder Kenntnissen über Hintergrund- im Gegensatz zu Vordergrund-Prozessen ermittelt, ob irgendwelche anderen Leistungsverwaltungs- oder Zeitplansteuerungs-Änderungen durchgeführt werden müssen. Der Prozess gibt dann bei 610 den Prozessor an andere Ausführungsstränge ab und fährt bei 612 fort. Bei 612 sieht der Prozess gemäß einiger Ausführungsformen der Erfindung ein Warten auf ein Signal von dem Ausführungsstrang hoher Priorität vor, wobei der Prozess 600 mit dem Ausführungsstrang hoher Priorität 500 bei 512 in Verbindung stehen kann. Der Prozess 600 wird dann bei 614 fortgesetzt, wo er endet und bei Notwendigkeit wiederholt werden kann.
  • Gemäß einiger Ausführungsformen der Erfindung kann der Ausführungsstrang niedriger Priorität 600 eine Möglichkeit zum Ablaufen erhalten, wenn beispielsweise die Betriebssystem-Zeitplansteuereinheit auf der Grundlage der Priorität die Zeitplan-Reihenfolge festlegt und wenn der Ausführungsstrang niedriger Priorität als letzter gerade vor dem Eintritt in Leistungszustände, die mit Schlaf, Ruhe oder ähnlichen niedrigen Betriebsniveaus verbunden sind, an die Reihe kommt. Es kann daher ein sehr guter Hinweis sein, dass das nachfolgende Zeitfenster von der Betriebssystem-Leerlauf-Steuerungseinheit verwendet wird und demzufolge einen Eintritt in einen Leistungszustand hervorrufen würde. Da der Ausführungsstrang hoher Priorität 500 dazu eingerichtet sein kann, bei der höchsten Priorität unter allen Anwendungssoftware-Ausführungssträngen ausgeführt zu werden, würde ihm in ähnlicher Weise gemäß Ausführungsformen der Erfindung typischerweise die erste Möglichkeit zur Ausführung zugestanden werden, nachdem alle Hardware-Unterbrechungen bedient sind. Gemäß einigen Ausführungsformen der Erfindung kann das Ergebnis dieses Prozesses einen Hinweis darauf geben, wann das Betriebssystem die Leistungszustände verlässt und wann die Ausführung des Nutzermodus beginnt.
  • In anderen Worten kann der Ausführungsstrang niedriger Priorität in einigen Ausführungsformen unmittelbar vor dem Eintritt in einen Leerlauf- oder Niedrigleistungszustand ablaufen; und der Ausführungsstrang hoher Priorität kann ablaufen, wenn der Leerlaufzustand beendet oder der Zustand höchster Leistung erreicht wird. In einigen Ausführungsformen der Erfindung kann einer der Ausführungsstränge oder können beide Ausführungsstränge an andere Ausführungsstränge abgeben, sobald sie ihre Aufgabe erfüllt haben. Eine Möglichkeit, dies zu erreichen, liegt darin, jene Ausführungsstränge für den vom Betriebssystem minimal zugelassenen Zeitbetrag in einen Schlafzustand zu versetzen. Dies kann jene Ausführungsstränge bis zur nachfolgenden Taktgeber-Unterbrechung im Schlafzustand halten und anderen Ausführungssträngen, einschließlich der Betriebssystem-Leerlaufsteuerungseinheit, eine Möglichkeit der Ausführung eröffnen.
  • In einigen Ausführungsformen der Erfindung kann die Kenntnis der Nutzermodus-Ausführung und ein Hinweis auf Leistungszustands-Übergänge oder andere Aktivität sehr hilfreich dabei sein, die unterschiedlichen Modelle zur Anwendungsausführung zu bestimmen und zu optimieren. In einigen Ausführungsformen der Erfindung kann beispielsweise eine Verwaltungsanwendung zur Zeitplansteuerungsunterstützung mit zusätzlichen Kenntnissen über die spezifische Anwendung, die die Zeitplansteuereinheit des Betriebssystems üblicherweise nicht besitzt, entscheiden, wann und auf welchem Prozessor/Kern, falls mehr als einer vorliegt, ein bestimmter Prozess ablaufen sollte. In einer Ausführungsform der Erfindung kann beispielsweise eine Anwendungsverwaltungskonsole diese Informationen auch verwenden, um in vorteilhafter Weise Hintergrund-Ausführungsstränge auszuführen, wenn ein Prozessor in einer verteilten Prozessor-Topologie aktiv ist. Diese Art der intelligenten Lastverteilung maximiert durch paralleles Ausführen der Prozesse die Paket-Leistungszustandsmöglichkeiten. Diese Art der Methode kann besonders nützlich sein in Prozessoren mit gemeinsamen Spannungsversorgungsträgereinrichtungen.
  • Die hier beschriebene Erfindung könnte in einer Verwaltungsanwendung umgesetzt sein, die die zusätzlichen spezifischen Kenntnisse über jeden der auf einem System ablaufenden Prozesse aufnimmt und die Zeitplansteuerung dieser Anwendungen abändert, um u. a. die Leistungsfähigkeit, den Nutzereindruck, den Energieverbrauch usw. wirkungsvoll zu verbessern.
  • Die Entscheidung, wann der Prozessor im Leerlauf ist und wann er zur Ausführung von Anwendungscode verwendet werden sollte, liegt typischerweise bei dem Betriebssystem. Gemäß Ausführungsformen der Erfindung können das Verfahren und die Vorrichtung jedoch Software außerhalb des Betriebssystems in die Lage versetzen, wirkungsvoll CPU-Leerlaufzeiten zu erfassen. Diese Methode kann es solch einer Lösung erlauben, als Zusatz auf kommerzielle Betriebssysteme aufgesetzt zu werden.
  • Ausführungsformen der Erfindung können ausreichend detailliert beschrieben werden, um dem Fachmann die Ausführung der Erfindung, einschließlich der Ausführung der Erfindung auf einem Rechnersystem oder einer ähnlichen Maschine, die in wesentlichen Teilen hier beschrieben worden ist, zu ermöglichen. Andere Ausführungsformen können genutzt werden, und strukturelle, logische und verstandesmäßige Modifikationen durchzuführen, ohne den Bereich der Erfindung zu verlassen.
  • Im Licht der Prinzipien und der Beispielausführungen, die hier beschrieben und veranschaulicht sind, wird erkannt werden, dass die veranschaulichten Ausführungsformen in ihrer Gestaltung und ihren Einzelheiten modifiziert werden können, ohne von solchen Prinzipien abzuweichen. Obwohl beispielsweise eine oder mehrere beispielhafte Ausführungsformen aus Gründen der Veranschaulichung mit Bezug auf eine batteriebetriebene Einrichtung wie ein Mobiltelefon, PDA, Laptop-Computer, Tablet-Computer oder ein anderes tragbares Verarbeitungssystem beschrieben worden sind, ist die vorliegende Erfindung nicht auf die Verwendung in solchen Systemen beschränkt, sondern kann vorteilhaft auch in vielen anderen Arten von Systemen, wie beispielsweise Desktop-Computern, Servern usw. verwendet werden. Obwohl einer der hauptsächlichen Vorteile für einige Realisierungen oder Ausführungsformen der Erfindung eine verlängerte Batterielaufzeit sein kann, indem Software-Anwendungen von Prozessor-Leistungszustands-Änderungen in Kenntnis gesetzt werden, können andere Vorteile in anderen Realisierungen oder Ausführungen demzufolge wichtiger sein. Beispielsweise kann in einigen Realisierungen oder Ausführungen die Verminderung von Geräuschen oder Wärme der vornehmliche Vorteil sein, und in anderen Realisierungen oder Ausführungen können verminderte Energiekosten ein vornehmlicher Vorteil sein.
  • Alternative Ausführungsformen der Erfindung umfassen auch maschinenlesbare Medien, die die Befehle zur Ausführung der Operationen der Erfindung codieren. Solche Ausführungsformen können auch als Programmerzeugnisse bezeichnet werden. Solche maschinenlesbaren Medien können ohne Beschränkung Speichermedien wie Disketten, Festplatten, CD-ROMs, DVDs, ROM und RAM ebenso umfassen wie Kommunikationsmedien wie Antennen, Leitungen, optische Fasern, Mikrowellen, Radiowellen und andere elektromagnetische oder optische Träger. Befehle und andere Daten können folglich in Form von Paketen, seriellen Daten, parallelen Daten, weitergeleiteten Daten usw. über Übermittlungsumgebungen oder Netze geliefert und in einer verteilten Umgebung genutzt und lokal und/oder nicht-lokal für den Zugriff durch Einzel- oder Mehrfachprozessor-Maschinen gespeichert werden.
  • Es versteht sich auch, dass die hier gezeigten Hardware- und Software-Bauteile funktionale Elemente darstellen, die einigermaßen eigenständig sind, so dass jedes von ihnen im wesentlichen unabhängig von den anderen entworfen, konstruiert oder aktualisiert werden kann. In alternativen Ausführungsformen können viele der Komponenten als Hardware, Software oder Kombinationen aus Hardware und Software ausgeführt werden, um die hier beschriebene und veranschaulichte Funktionalität bereitzustellen.
  • Es versteht sich auch, dass sich verschiedene Ausführungsformen der Erfindung, auch wenn sie untereinander verschieden sind, nicht notwendigerweise gegenseitig ausschließen. Ein in einigen Ausführungsformen beschriebenes bestimmtes Merkmal, Strukturelement oder Kennzeichen kann beispielsweise in anderen Ausführungsformen aufgenommen werden. Aus der vorangehenden Beschreibung kann der Fachmann entnehmen, dass die Methoden der Ausführungsformen der Erfindung in einer Vielzahl von Formen implementiert werden können. Während die Ausführungsformen dieser Erfindung in Verbindung mit spezifischen Beispielen beschrieben worden sind, sollte der wahre Umfang der Ausführungsformen der Erfindung deshalb nicht entsprechend beschränkt werden, da andere Modifikationen dem Fachmann beim Durchsehen der Zeichnungen, Beschreibung und der nachfolgenden Ansprüche offensichtlich werden.

Claims (8)

  1. Rechnersystem mit einem Prozessor mit mehreren Kernen und zumindest einem Betriebssystem, das eingerichtet ist, auf dem Prozessor betrieben zu werden, wobei das Betriebssystem eingerichtet ist, eine ACPI-Logik zur Prozessorleistungsverwaltung auszuführen, Echtzeit-Anwendungssoftware-Ausführungsstränge mit zugewiesenen Prioritäten auszuführen, wobei die Echtzeit-Anwendungssoftware-Ausführungsstränge einen Ausführungsstrang höchster Priorität, einen Ausführungsstrang niedrigster Priorität und andere Ausführungsstränge aufweisen, wobei eine Betriebssystem-Zeitplansteuereinheit die Zeitplan-Reihenfolge der Ausführungsstränge auf der Grundlage der Priorität festlegt, so dass der Ausführungsstrang niedrigster Priorität als letzter vor dem Eintritt in einen Leerlauf-Zustand ausgeführt wird und der Ausführungsstrang höchster Priorität als erster ausgeführt wird, wenn der Leerlauf beendet ist, der Ausführungsstrang niedrigster Priorität eine Leistungszustands-Eintrittszeitmarke in einem gemeinsamen Speicher speichert und danach die Ausführung an andere Ausführungsstränge abgibt und wobei der Ausführungsstrang höchster Priorität eine Leistungszustands-Austrittszeitmarke in dem gemeinsamen Speicher speichert, aus der Differenz der Leistungszustands-Austrittszeit und der Leistungszustands-Eintrittszeit eine Leerlaufdauer berechnet und danach die Ausführung an andere Ausführungsstränge abgibt, eine Verwaltungsanwendung zur Zeitplansteuerungsunterstützung auszuführen, die über zusätzliche Kenntnisse über die Anwendungssoftware-Ausführungsstränge, die die Zeitplansteuereinheit des Betriebssystems nicht besitzt, verfügt und entscheidet, wann und auf welchem Kern ein bestimmter Anwendungssoftware-Ausführungsstrang ablaufen soll.
  2. Rechnersystem nach Anspruch 1, wobei das Betriebssystem ferner eingerichtet ist: Leistungszustands-Eintrittsinformationen in dem gemeinsamen Speicher zu speichern; und Leistungszustands-Austrittsinformationen in dem gemeinsamen Speicher zu speichern.
  3. Rechnersystem nach Anspruch 2, wobei das Betriebssystem ferner eingerichtet ist: die Leistungszustands-Eintrittsinformationen und/oder der Leistungszustands-Austrittsinformationen in dem gemeinsamen Speicher zu aktualisieren.
  4. Rechnersystem nach Anspruch 1, wobei das Ausführen des Ausführungsstrangs höchster Priorität die folgenden Schritte umfasst: Signalisieren an den Ausführungsstrang niedrigster Priorität, in einen Bereitschaftszustand einzutreten; und Festsetzen eines Taktgeber-Warteereignisses.
  5. Rechnersystem nach Anspruch 1, wobei das Ausführen des Ausführungsstrangs niedrigster Priorität die folgenden Schritte umfasst: Errechnen einer Belegungszeit durch Subtrahieren einer Leistungszustands-Austrittszeit von der Leistungszustands-Eintrittszeit; und Festsetzen eines Signalwartezustands zum Warten auf ein Signal von dem Ausführungsstrang höchster Priorität.
  6. Verfahren zur Ausführung auf einem Rechnersystem gemäß einem der vorhergehenden Ansprüche, wobei das Verfahren die Schritte gemäß einem dieser Ansprüche umfasst.
  7. Computerprogramm, das ausführbar auf einem Datenträger gespeichert ist und bei Ausführung auf einem Rechnersystem gemäß einem der Ansprüche 1 bis 5 die Schritte gemäß einem dieser Ansprüche ausführt.
  8. Vorrichtung mit einem auf einem Datenträger ausführbar gespeicherten Computerprogramm, das bei Ausführung auf einem Rechnersystem gemäß einem der Ansprüche 1 bis 5 die Schritte gemäß einem dieser Ansprüche ausführt.
DE112006003444T 2005-12-22 2006-12-08 Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen Expired - Fee Related DE112006003444B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/316,541 2005-12-22
US11/316,541 US7689838B2 (en) 2005-12-22 2005-12-22 Method and apparatus for providing for detecting processor state transitions
PCT/US2006/047033 WO2007078628A2 (en) 2005-12-22 2006-12-08 Method and apparatus for providing for detecting processor state transitions

Publications (2)

Publication Number Publication Date
DE112006003444T5 DE112006003444T5 (de) 2008-10-23
DE112006003444B4 true DE112006003444B4 (de) 2012-12-27

Family

ID=38195320

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006003444T Expired - Fee Related DE112006003444B4 (de) 2005-12-22 2006-12-08 Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen

Country Status (7)

Country Link
US (1) US7689838B2 (de)
JP (1) JP2009520302A (de)
KR (1) KR101029414B1 (de)
CN (1) CN101313284B (de)
DE (1) DE112006003444B4 (de)
TW (1) TWI336448B (de)
WO (1) WO2007078628A2 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
TWI474159B (zh) * 2008-09-05 2015-02-21 Via Tech Inc 多處理器系統及其進入省電模式方法
KR101275698B1 (ko) * 2008-11-28 2013-06-17 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. 데이터 처리 방법 및 장치
FR2941799B1 (fr) * 2009-01-30 2011-03-04 St Nxp Wireless France Procede et systeme de gestion du fonctionnement d'un dispositif de traitement de donnees multicoeurs
US8064197B2 (en) * 2009-05-22 2011-11-22 Advanced Micro Devices, Inc. Heat management using power management information
US8578384B2 (en) * 2009-10-28 2013-11-05 Freescale Semiconductor, Inc. Method and apparatus for activating system components
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US8271812B2 (en) * 2010-04-07 2012-09-18 Apple Inc. Hardware automatic performance state transitions in system on processor sleep and wake events
US9104476B2 (en) * 2010-04-07 2015-08-11 Apple Inc. Opportunistic multitasking of VOIP applications
US8468373B2 (en) 2011-01-14 2013-06-18 Apple Inc. Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
US8949637B2 (en) * 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US9465427B2 (en) * 2011-06-30 2016-10-11 International Business Machines Corporation Software-centric power management by indirectly determining that user is not actively using computer program running on computing device
JP5765423B2 (ja) 2011-07-27 2015-08-19 富士通株式会社 マルチコアプロセッサシステム、およびスケジューリング方法
TWI556092B (zh) * 2011-09-30 2016-11-01 英特爾公司 用以減少電力消耗之基於優先順序的應用程式事件控制技術
US9064253B2 (en) 2011-12-01 2015-06-23 Broadcom Corporation Systems and methods for providing NFC secure application support in battery on and battery off modes
EP2847674A4 (de) * 2012-05-09 2016-01-27 Intel Corp Aufgabenplanung zwischen prozessorkernen
CN102929381B (zh) * 2012-10-22 2015-08-05 威盛电子股份有限公司 电子系统及其电源管理方法
US10007323B2 (en) 2012-12-26 2018-06-26 Intel Corporation Platform power consumption reduction via power state switching
US9336068B2 (en) 2013-06-07 2016-05-10 Apple Inc. Throttling of application access to resources
US20160187958A1 (en) 2014-12-24 2016-06-30 Intel Corporation Techniques for managing power and performance for a networking device
CN104571462B (zh) * 2014-12-30 2017-05-03 深圳先进技术研究院 电池功耗的控制方法和系统
JP6322332B2 (ja) * 2015-03-18 2018-05-09 株式会社日立製作所 エネルギー管理システムおよび業務アプリケーションの実行方法
US10275287B2 (en) * 2016-06-07 2019-04-30 Oracle International Corporation Concurrent distributed graph processing system with self-balance
US10462059B2 (en) 2016-10-19 2019-10-29 Intel Corporation Hash table entries insertion method and apparatus using virtual buckets
JP6927089B2 (ja) * 2018-03-05 2021-08-25 オムロン株式会社 制御装置、システムプログラム、制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6308279B1 (en) * 1998-05-22 2001-10-23 Intel Corporation Method and apparatus for power mode transition in a multi-thread processor
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
US6622253B2 (en) * 2001-08-02 2003-09-16 Scientific-Atlanta, Inc. Controlling processor clock rate based on thread priority
WO2003062988A2 (en) * 2002-01-24 2003-07-31 Koninklijke Philips Electronics N.V. Executing processes in a multiprocessing environment
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US7013400B2 (en) * 2003-04-24 2006-03-14 International Business Machines Corporation Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode
JP4164662B2 (ja) * 2003-06-10 2008-10-15 日本電気株式会社 携帯端末およびgps時刻維持方法
US7617488B2 (en) 2003-12-30 2009-11-10 Intel Corporation Method and apparatus and determining processor utilization
US7272741B2 (en) * 2004-06-02 2007-09-18 Intel Corporation Hardware coordination of power management activities
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Egger, B. et al.: An Application-Specific and Adaptive Power Management Technique. In: First Int'l Workshop on Power-Aware Real-Time Computing, Pisa, ltaly, 2004. URL: http://www.cs.pitt.edu/PARC/program.html(recherchiert am 07.04.10) *

Also Published As

Publication number Publication date
TWI336448B (en) 2011-01-21
WO2007078628A2 (en) 2007-07-12
WO2007078628A3 (en) 2008-02-07
US7689838B2 (en) 2010-03-30
CN101313284B (zh) 2011-04-20
DE112006003444T5 (de) 2008-10-23
KR101029414B1 (ko) 2011-04-14
KR20080079276A (ko) 2008-08-29
TW200813842A (en) 2008-03-16
US20070150759A1 (en) 2007-06-28
CN101313284A (zh) 2008-11-26
JP2009520302A (ja) 2009-05-21

Similar Documents

Publication Publication Date Title
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE102013104329B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE69907512T2 (de) Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE10141626B4 (de) Dynamische Angleichung von Leistungsvermögen und Strombedarf
US7475262B2 (en) Processor power management associated with workloads
US7783907B2 (en) Power management of multi-processor servers
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE102014101633B4 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE102009015495B4 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE102015102684A1 (de) Dynamische leistungssversorgungseinheit- schienenumschaltung
DE112011105590T5 (de) Energieeffiziente Prozessorarchitektur
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE112013005278T5 (de) Dynamisches Abgleichen von Leistung über eine Mehrzahl von Prozessordomänen gemäß Leistungsabgleichsteuerungs-BIAS
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE102009041723A1 (de) Prozessor-Leistungsverbrauchsteuerung und Spannungsabsenkung über eine Mikroarchitektur-Bandbreitenbegrenzung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130328

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee