-
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 (112a–112b), wobei jeder Kern vollständig funktionsfähig mit Befehlabrufeinheiten, Befehl-Decodiereinheiten, Level-1(L1)-Cachespeichern 114 (114a–114b), 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 (115a–115b) 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 (118a–118b) 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.