DE69630327T2 - Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer - Google Patents

Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer Download PDF

Info

Publication number
DE69630327T2
DE69630327T2 DE69630327T DE69630327T DE69630327T2 DE 69630327 T2 DE69630327 T2 DE 69630327T2 DE 69630327 T DE69630327 T DE 69630327T DE 69630327 T DE69630327 T DE 69630327T DE 69630327 T2 DE69630327 T2 DE 69630327T2
Authority
DE
Germany
Prior art keywords
cpu
clock
temperature
activity
processing unit
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 - Lifetime
Application number
DE69630327T
Other languages
English (en)
Other versions
DE69630327D1 (de
Inventor
Lavaughn F. Temple Watts
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Application granted granted Critical
Publication of DE69630327D1 publication Critical patent/DE69630327D1/de
Publication of DE69630327T2 publication Critical patent/DE69630327T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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
    • 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

Description

  • HINTERGRUND DER ERFINDUNG
  • Einsatzgebiet der Erfindung
  • Diese Erfindung bezieht sich auf Echtzeit-Wärme-Management und Echtzeit-Leistungseinsparung bei Computern, und im Besonderen auf eine Vorrichtung und ein Verfahren zur Verminderung und Erhöhung der Taktzeit einer Zentraleinheit (CPU), basierend auf Temperatur- und Echtzeit-Aktivitätspegel in der CPU eines tragbaren Computers.
  • Beschreibung des verwandten Fachgebiets
  • Während den Entwicklungsphasen von Personal-Computern ist der transportable oder tragbare Computer sehr beliebt geworden. Ein solcher tragbarer Computer verwendet ein großes Netzteil und stellt in Wirklichkeit einen kleinen Desktop-Personal-Computer dar. Tragbare Computer sind kleiner und leichter als ein Desktop-Personal-Computer und ermöglichen es dem Anwender, dieselbe Software einzusetzen, die auf einem Desktop-Computer verwendet wird.
  • Die erste Generation „tragbarer" Computer konnte nur durch Wechselstrom aus der Steckdose betrieben werden. Mit fortschreitender Entwicklung der Personal-Computer wurden batteriebetriebene Computer konzipiert. Ferner wurde echte Tragbarkeit durch die Entwicklung einer neuen Anzeigetechnologie, besseren Plattenspeichers und leichterer Komponenten ermöglicht. Leider war die entwickelte Software so konzipiert, dass sie auf Desktop-Computern lief, ohne die batteriebetriebenen tragbaren Computer zu berücksichtigen, die nur begrenzte Leistungskapazitäten für kurze Zeitspannen zur Verfügung hatten. Weder die Software, noch das Betriebssystem (MS-DOS), noch das Basisdatenaustauschsystem (BIOS), noch die Anwendungssoftware anderer Hersteller berücksichtigten im speziellen eine Verringerung des Leistungsverbrauchs für diese tragbaren Computer.
  • Mit der Entwicklung von immer mehr hochfunktionellen Softwarepaketen erlebten die Anwender von Desktop-Computern eine erhöhte Rechnerleistung durch die Einführung von CPUs mit höherer Rechenfähigkeit, größerem Speicher und schnelleren Hochleistungs-Plattenlaufwerken. Leider konnten tragbare Computer nach wie vor nur durch Wechselstrom oder mit Hilfe von schweren, großen Batterien betrieben werden. In dem Versuch, mit den Leistungsanforderungen der Desktop-Computer und der neuen Software mitzuhalten, wurden teuere Komponenten verwendet, um die Anforderungen an die Leistung herabzusetzen. Trotzdem konnten die schweren Batterien nicht sehr lange Strom liefern. Dies bedeutete, dass die Anwender von tragbaren Computern sich mit Wechselstrombetrieb oder sehr kurzem Batteriebetrieb zufrieden geben mussten, um die von der externen Software erwartete Leistungsfähigkeit zu haben.
  • Die Entwickler von tragbaren Computern drosselten die Leistung auf das Niveau von 8088er- und 8086er-Prozessoren, um den Leistungsverbrauch herabzusetzen. Die unterstützenden Stromkreise und die CPU benötigten weniger Leistung für den Betrieb, wodurch leichtere Batterien verwendet werden konnten. Leider lief die neue Software, die Anweisungen in der Art eines 80286er-Prozessor benötigte, die in den älteren, langsameren 8088/8086er CPUs nicht vorhanden waren, nicht. In einem Versuch, einen tragbaren Computer zu konzipieren, der Leistung einsparen konnte, und dadurch zu einem längeren Batteriebetrieb, kleineren Geräten und weniger Gewicht führte, gingen einige Entwickler von tragbaren Computern dazu über, den Leistungsverbrauch eines tragbaren Computers zu verringern, während ein Anwender den Computer nicht verwendet. Die Entwickler erreichen zum Beispiel eine Verringerung des Leistungsverbrauchs, indem sie das Plattenlaufwerk nach einer vorher festgelegten Zeitspanne der Inaktivität verlangsamen oder anhalten; wenn das Plattenlaufwerk nicht verwendet wird, wird es abgeschaltet, oder einfach in den Bereitschafts-Modus versetzt. Wenn der Anwender das Laufwerk wieder benötigt, muss die Bedienungsperson warten, bis das Plattenlaufwerk anläuft und das Computersystem wieder für volle Leistungsfähigkeit bereitsteht, bevor die Bedienungsperson mit der Bedienung fortfahren kann.
  • Andere Hersteller von tragbaren Computern verringern den Leistungsverbrauch, indem sie den Computerbildschirm ausschalten, wenn die Tastatur nicht benutzt wird. Im normalen Betrieb hat der Computer jedoch den vollen Leistungsverbrauch. Anders ausgedrückt ist diese Methode der Leistungseinsparung nur praktisch, wenn der Anwender die Komponenten des Systems nicht verwendet.
  • Es ist jedoch sehr wahrscheinlich, dass der Anwender den Computer ausschaltet, wenn er ihn nicht verwendet. Trotzdem wird eine wesentliche Leistungseinsparung benötigt, während die Bedienungsperson den Computer für wichtige Arbeiten verwendet. Wenn die Bedienungsperson den Computer verwendet, wird der uneingeschränkte Betrieb aller Komponenten benötigt. In den Zeitabschnitten, in denen die Bedienungsperson den Computer nicht verwendet, könnte der Computer jedoch ausgeschaltet oder verlangsamt werden, um den Leistungsverbrauch zu verringern. Es ist kritisch für die Aufrechterhaltung der Leistungsfähigkeit, den Zeitpunkt zu bestimmen, an dem der Computer verlangsamt oder abgeschaltet wird, bis er wieder zum Betrieb benötigt wird, ohne die Arbeit des Anwenders zu unterbrechen oder die externe Software oder das Betriebssystem durcheinander zu bringen.
  • Außerdem, während ein Anwender darauf warten kann, bis das Plattenlaufwerk wie oben beschrieben wieder anläuft, können Anwendungs-Softwarepakete nicht darauf warten, bis die CPU wieder „anläuft" und bereit ist. Die CPU muss dann bereit sein, wenn das Anwendungsprogramm Berechnungen durchführen muss. Das Umschalten auf vollen Betrieb muss schnell abgeschlossen sein, ohne dass das Anwendungsprogramm beeinträchtigt wird. Dieser unmittelbare Übergang muss sowohl für den Anwender als auch für das momentan aktive Anwendungsprogramm transparent sein. Verzögerungen verursachen sowohl Betriebs-Probleme für den Anwender in Hinsicht auf Antwortzeiten und Softwarekompatibilität, als auch allgemeine Fehlfunktionen des Computers bei der exakten Ausführung eines benötigten Programms.
  • Andere Versuche zur Leistungseinsparung bei tragbaren Computern beinhalten die Bereitstellung eines „Ausschaltmodus" oder „Bereitschaftsmodus" des Betriebes. Das Problem ist wiederum, dass der Computer während dieser Zeitspanne von der Bedienungsperson nicht verwendet werden kann. Die Bedienungsperson könnte genauso gut den Netzschalter des Gerätes betätigen, um das Gerät auszuschalten und dadurch Energie zu sparen. Diese Art der Leistungseinsparung erlaubt es dem tragbaren Computer lediglich, „sich auszuschalten" und dadurch Energie zu sparen, wenn die Bedienungsperson vergisst, den Netzschalter zu betätigen, oder wenn er den Computer für die programmierte Zeitspanne verlässt. Der Vorteil dieser Art der Leistungseinsparung im Vergleich zum Betätigen des Netzschalters liegt in der viel schnelleren Wiederherstellung der vollen Betriebsbereitschaft. Diese Methode der Leistungseinsparung ist jedoch immer noch keine intelligente Art der Leistungseinsparung in Echtzeit während der Computer angeschaltet ist und Daten verarbeitet, die weder das Betriebssystem, noch das BIOS, noch jegliche momentan auf dem Computer laufende externe Softwareprogramme stört.
  • Ein Versuch, diese Anforderungen zu erfüllen, wurde von den VLSI-Herstellern unternommen, indem sie Schaltkreise zur Verfügung stellten, die entweder die Taktsignale der CPU unterbrachen, wenn der Anwender die Tastatur nicht benutzte, und den Computer bei Bedarf aufweckten, wenn eine Taste gedrückt wurde. Beide dieser Vorgehensweisen verringern den Leistungsverbrauch, aber während dieser Zeitspanne ist der Computer tot (unbenutzbar). Im Hintergrund laufende Vorgänge wie zum Beispiel die Aktualisierung der Systemuhr, der Kommunikationsvorgänge, der Spool-Funktionen u. ä., können nicht ausgeführt werden. Einige verfügbare tragbare Computer setzen diese Schaltkreise ein. Nach einer programmierten Zeitspanne der Nichtbenutzung schaltet sich der Computer selbständig ab. Die Bedienungsperson muss das System wieder einschalten, aber er muss nicht das Betriebssystem und das Anwendungsprogramm erneut hochfahren. Der Vorteil dieser Schaltlogik ist, wie im Falle der bestehenden „Ausschalt-Funktion", eine schnelle Wiederherstellung der Betriebsbereitschaft, ohne den Computer neu zu starten. Trotzdem verringert diese Methode den Leistungsverbrauch nur, wenn der Anwender den Computer verlässt, und sie führt zu keiner tatsächlichen Verlängerung des Batteriebetriebs.
  • Die Überhitzung von CPUs und anderen zugehörigen Baugruppen stellt ein weiteres Problem dar, das von den Herstellern tragbarer Computer noch angesprochen werden muss. CPUs sind für den Betrieb innerhalb bestimmter Temperaturbereiche ausgelegt (unterschiedlich, abhängig von CPU-Typ, Hersteller, Qualität usw.). Die Leistung und die Geschwindigkeit von CPUs nehmen ab, wenn die Grenzen der Betriebstemperaturbereiche überschritten werden, besonders der obere Temperaturbereich. Dieses Problem ist besonders bei CPUs akut, die mit CMOS-Technologie hergestellt werden, wo Temperaturen oberhalb des oberen Temperaturbereiches zu verringerter CPU-Leistung und Geschwindigkeit führen. Bestehende Techniken zur Leistungseinsparung verringern zwar den Leistungsverbrauch, aber sie messen und kontrollieren nicht auf intelligente Weise die Temperatur der CPU und/oder die Temperatur verwandter Baugruppen.
  • EP 0 566 395 offenbart ein Computersystem, bei dem der Adressbus überwacht wird, und, wenn sich wiederholende Zyklen erkannt werden, die Geschwindigkeit des an die CPU gelieferten Taktes herabgesetzt wird. Auch wenn die von einem Sensor angezeigte Temperatur der CPU einen Schwellwert überschreitet, wird die Geschwindigkeit herabgesetzt, unabhängig davon, was die Überwachung des Adressbusses anzeigt.
  • US 5 189 314 offenbart ein Computersystem, das einen Aktivitätsmonitor, einen Wärmeeinsparungsspeicher und eine Taktfrequenzauswahleinrichtung für die CPU aufweist. Ein Schätzwert von im System erzeugter Wärme wird im Speicher gehalten. Eine hohe Taktfrequenz wird ausgewählt, wenn eine Wärmeeinsparung durch einen früheren Betrieb bei niedrigerer Geschwindigkeit gespeichert wurden, eine normale Taktfrequenz wird ausgewählt, wenn das System aktiv ist, aber keine Wärmeeinsparung gespeichert wurden, und eine niedrige Frequenz wird benutzt, wenn das System inaktiv ist.
  • US 5 287 292 offenbart ein Computersystem, das einen Schätzwert an erzeugter Wärme speichert, der auf Busaktivität und Taktgeschwindigkeit basiert. Wenn der gespeicherte Wert einen Schwellwert erreicht, dann wird eine Kühlung durch Herabsetzung der Taktgeschwindigkeit ausgelöst.
  • EP 0 426 410 offenbart ein Computersystem, das die Aktivität überwacht und für die Verringerung des Leistungsverbrauchs das Verhältnis zwischen der Zeit, während der eine niedrige Taktgeschwindigkeit an die CPU angelegt wird (oder während der der Prozessor angehalten wird), und der Zeit, während der eine hohe Taktgeschwindigkeit angelegt wird, verändert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird eine Anordnung bereitgestellt, wie sie im unabhängigen Patentanspruch 1 definiert ist.
  • Im Hinblick auf die oben genannten Probleme, die mit dem verwandten Fachgebiet verbunden sind, ist es auch ein Ziel der vorliegenden Erfindung, eine Vorrichtung und Methode für die Leistungseinsparung und Das Wärme-Management für Computersysteme in Echtzeit bereitzustellen, die keine Herabsetzung der Leistungsfähigkeit in Echtzeit mit sich bringt, wobei die Verringerung des Leistungsverbrauchs und das Wärme-Management für den Anwender transparent bleibt.
  • Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung einer Vorrichtung und Methode für die Vorhersage von Aktivitäts- und Temperaturpegeln der CPU, die für automatische Maßnahmen zur Leistungseinsparung und zur Kontrolle der Temperatur verwendet wird.
  • Noch ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung einer Vorrichtung und Methode, die Änderungen an automatischen Vorhersagen bezüglich der Aktivitäts- und Temperaturpegel durch den Anwender zulässt, und diese veränderten Vorhersagen für automatische Maßnahmen zur Leistungseinsparung und zur Kontrolle der Temperatur verwendet.
  • Ein weiteres Ziel der vorliegenden Erfindung ist die Bereitstellung einer Vorrichtung und Methode für die Herabsetzung und Wiederherstellung von Taktgeschwindigkeiten in Echtzeit, wodurch die CPU nach einem für Softwareprogramme transparenten Zeitabschnitt der Inaktivität auf volle Verarbeitungsgeschwindigkeit zurückkehrt.
  • Diese Ziele werden in einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung durch eine Vorrichtung und Methode erreicht, die feststellt, ob eine CPU ruhen darf (inklusive jeglicher PCI Busse, die mit der CPU verbunden sind), und zwar basierend auf CPU-Aktivität und Temperaturpegeln, und die auf Grundlage dieser Feststellung eine Hardwareauswahleinrichtung aktiviert. Wenn die CPU ruhen oder schlafen darf, legt die Hardwareauswahleinrichtung Schwingungen auf Schlaftaktpegel an; wenn die CPU aktiv sein muss, legt die Hardwareauswahleinrichtung Schwingungen auf einem hohen Geschwindigkeitspegel an.
  • Im bevorzugten Ausführungsbeispiel prüft die vorliegende Erfindung den Status der CPU und der Temperatur, und auch die Aktivität sowohl der Bedienungsperson als auch jeglicher momentan aktiver Anwendungssoftware. Diese Abtastung der Aktivität und der Temperatur wird in Echtzeit ausgeführt, wodurch der Leistungspegel des Computers für die Steuerung der Leistungseinsparung, der CPU Temperatur und der Rechnerleistung angepasst wird. Diese Anpassungen werden innerhalb der CPU-Arbeitstakte ausgeführt und beeinträchtigen nicht die Wahrnehmung des Anwenders in Hinblick auf die Leistungsfähigkeit.
  • Wenn die Bedienungsperson der externen Software auf dem Betriebssystem/BIOS den Computer nicht verwendet, wird somit die vorliegende Erfindung im bevorzugten Ausführungsbeispiel ein schnelles Abschalten oder Verlangsamen der CPU auslösen, bis sie wieder benötigt wird, wodurch der Leistungsverbrauch und die CPU-Temperatur verringert werden, und sie wird bei Bedarf sofort die volle CPU-Betriebsbereitschaft wiederherstellen, ohne die wahrgenommene Leistungsfähigkeit zu beeinträchtigen. Dieses Zurückschalten auf volle Betriebsbereitschaft vom „Langsam-Modus" geschieht, ohne dass der Anwender dies anfordern muss, und ohne jegliche Verzögerung im Betrieb des Computers während darauf gewartet wird, dass der Computer wieder in den „Bereit-Modus" zurückgekehrt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die neuartigen Merkmale, die als charakteristisch für die Erfindung angesehen werden, sind in den beigefügten Patentansprüchen dargelegt. Die Erfindung selbst jedoch, genau wie ihre anderen Merkmale und Vorteile, können am besten unter Bezug auf die folgende genaue Beschreibung in Verbindung mit den begleitenden Zeichnungen zu verstanden werden, wobei:
  • 1 ist ein Ablaufdiagramm, das den Selbstabstimmungsaspekt eines bevorzugten Ausführungsbeispiels der vorliegenden Erfindung darstellt.
  • 2a2d sind Ablaufdiagramme, die die von der vorliegenden Erfindung eingesetzte aktive Überwachung der Leistungseinsparung darstellen.
  • 3 ist ein vereinfachtes schematisches Diagramm, das die mit der aktiven Leistungseinsparung verbundene Hardware darstellt, die von der vorliegenden Erfindung eingesetzt wird.
  • 4 ist ein Schema der Schlaf-Hardware für ein Ausführungsbeispiel der vorliegenden Erfindung.
  • 5 ist ein Schema der Schlaf-Hardware für ein weiteres Ausführungsbeispiel der Erfindung.
  • GENAUE BESCHREIBUNG DES BEVORZUGTEN AUSFÜHRUNGSBEISPIELS
  • Wenn man in einem beliebigen System die Zeitspanne der Computeraktivität untersucht, haben die CPU und die zugehörigen Komponenten einen Nutzungs grad. Wenn der Anwender mit der Tastatur Daten eingibt, dann ist die Zeit zwischen den Tastaturanschlägen sehr lange in Bezug auf den CPU-Arbeitstakt. Während dieser Zeit kann der Computer viele Sachen erledigen, wie z. B. einen Bericht ausdrucken. Sogar während des Druckvorganges eines Berichts bleibt immer noch Zeit für zusätzliche Arbeitsschritte, wie zum Beispiel das Aktualisieren der Uhrzeit-/Kalender-Anzeige im Hintergrund. Trotzdem gibt es fast immer Leerlaufzeit, während denen die CPU nicht verwendet wird. Wenn der Computer während dieser Leerlaufzeit ausgeschaltet oder verlangsamt wird, so wird eine Leistungseinsparung in Echtzeit erreicht. Eine derartige Leistungseinsparung in Echtzeit verlängert die Dauer des Batteriebetriebs und senkt die Temperatur der CPU.
  • Gemäß eines Ausführungsbeispiels der vorliegenden Erfindung wird für die Leistungseinsparung und für eine niedrigere CPU Temperatur unter MS-DOS, aber auch unter anderen Betriebssystemen, wie z. B. OS/2, XENIS und den Betriebssystemen für Apple Computer, eine Kombination aus Hardware und Software benötigt. Da die vorliegende Erfindung in jedem beliebigen System funktioniert, während die Implementierung von System zu System leicht abweichen kann, sollte berücksichtigt werden, dass der Umfang der vorliegenden Erfindung nicht auf Computersysteme begrenzt werden darf, die unter MS/DOS betrieben werden.
  • Das Verlangsamen oder das Anhalten von Komponenten in Computersystemen verringert den Leistungsverbrauch und senkt die Temperatur der CPU, obwohl die Höhe der gesparten Leistung und die Senkung der Temperatur der CPU unterschiedlich sein können. Gemäß der vorliegenden Erfindung senkt daher das Anhalten des Taktes (sofern dies möglich ist, da die Taktgeber bei einigen CPUs nicht angehalten werden können) den Leistungsverbrauch und die Temperatur der CPU in größerem Maße, als das bloße Verlangsamen des Taktes.
  • Im Allgemeinen kann die Anzahl von Arbeitsschritten (oder Anweisungen) pro Sekunde als ungefähr proportional zum Prozessortakt angesehen werden: Anweisungen/Sekunde = Anweisungen/Arbeitstakt*Arbeitstakte/Sekunde
  • Wenn man der Einfachheit halber annimmt, dass dieselbe Arbeitsanweisung wiederholt ausgeführt wird, so dass Arbeitsanweisungen/Sekunde konstant ist, kann die Beziehung folgendermaßen ausgedrückt werden: Fq = K1*Clkwobei Fq die Arbeitsanweisungen/Sekunde darstellt, K1 ist die Konstante Arbeitsanweisungen/Arbeitstakt, und Clk ist gleich der Anzahl an Arbeitstakte/Sekunde. Grob ausgedrückt steigt folglich die Ausführungsgeschwindigkeit mit zunehmender Taktfrequenz der CPU.
  • Der Leistungsverbrauch zu einem beliebigen Zeitpunkt, hängt auch von der Taktfrequenz der CPU ab, und dadurch von der Ausführungsgeschwindigkeit. Im Allgemeinen kann diese Abhängigkeit folgendermaßen ausgedrückt werden: P = K2 + (K3*Clk)wobei P die Leistung in Watt ist, K2 ist eine Konstante in Watt, K3 ist eine Konstante, die die Anzahl der Watt-Sekunden/Arbeitstakt ausdrückt, und Clk ist gleich der Anzahl der Arbeitstakte/Sekunde des CPU-Taktes. Folglich kann auch festgestellt werden, dass der Leistungsverbrauch zu einem beliebigen Zeitpunkt ansteigt, wenn die Taktfrequenz der CPU erhöht wird.
  • Nehmen wir an, dass eine vorgegebene Zeitspanne T in N Abschnitte unterteilt wird, so dass die Leistung P während jedem Abschnitt konstant ist. Dann wird die Höhe der Energie E, die während T aufgewendet wird folgendermaßen berechnet: E = P(1) delta T1 + P(2) delta T2 ... P(N) delta TN
  • Nehmen wir weiter an, dass der CPU-Takt „CLK" nur zwei verschiedene Zustände kennt, entweder „AN" oder „AUS". Zum Zwecke dieser Erörterung stellt der Zustand „AN" die höchste Taktfrequenz der CPU dar, während der Zustand „AUS" die niedrigste Taktfrequenz darstellt, bei der die CPU betrieben werden kann (dieser Wert kann für CPUs, deren Taktsignal unterbrochen werden kann, Null betragen). Für den Zustand, in dem die Taktfrequenz der CPU immer auf „AN" steht, ist jedes P(i) in der vorhergehenden Gleichung gleich und die Gesamtenergie beträgt: E(max) = P(an)*(delta T1 + delta T2 ... delta TN) = P(an)*T
  • Dieser Wert stellt den maximalen Leistungsverbrauch des Computers dar, wenn keinerlei Maßnahmen zur Verringerung des Leistungsverbrauchs angewendet werden. Wenn der CPU-Taktgeber während eines Teils der Abschnitte auf „AUS" steht, dann gibt es zwei mögliche Leistungspegel pro Abschnitt. P(an) entspricht der Leistung, die verbraucht wird, wenn der Taktgeber auf „AN" steht, während P(aus) der Leistung entspricht, die verbraucht wird, wenn der Taktgeber auf „AUS" steht. Wenn alle Zeitabschnitte, in denen der Taktgeber auf „AN" steht, zur Größe „T(an)" zusammenaddiert werden und die „AUS"-Abschnitte zur Größe „T(aus)" zusammenaddiert werden, dann folgt daraus: T = T(an) + T(aus)
  • Jetzt kann die Energie, die während der Zeitspanne T verbraucht wird, folgendermaßen geschrieben werden: E = [P(an)*T(an)] + [P(aus)*T(aus)]
  • Unter diesen Bedingungen kann die verbrauchte Gesamtenergie durch eine Erhöhung der T(aus)-Abschnitte verringert werden. Folglich kann die verbrauchte Energiemenge, verrnigert werden, indem man die Zeitabschnitte steuert, während denen der Taktgeber auf „AUS" steht. Wenn die T(aus)-Zeitspanne in eine große Anzahl von Zeitabschnitten während der Zeitspanne T unterteilt wird, dann ist der Energieverbrauch am höchsten, je mehr die Länge jedes Abschnitts gegen Null geht. Umgekehrt verringert sich der Energieverbrauch je länger die T(aus)-Abschnitte werden.
  • Wenn die „AUS"-Abschnitte so angeordnet werden, dass sie mit den Zeitspannen übereinstimmen, während denen die CPU normalerweise inaktiv ist, dann kann der Anwender keinerlei Verringerung der Leistungsfähigkeit wahrnehmen, und der gesamte Energieverbrauch wird im Vergleich zum E(max)-Zustand verringert. Um die T(aus)-Abstände mit den Zeitspannen der Ruhezustände der CPU zu synchronisieren, werden die Aktivitäts- und Temperaturpegel in der CPU dazu verwendet, die Länge der T(aus)-Abstände in einer endlosen Schleife zu bestimmen. 1 zeigt eine derartige endlose Schleife. Der Aktivitäts-Pegel in der CPU wird in Schritt 10 bestimmt. Wenn dieser Pegel eine Verringerung im Vergleich zu einem direkt davor bestimmten Zustand darstellt (Schritt 22), dann erhöht die vorliegende Erfindung den T(aus)-Abstand (Schritt 20) und fährt fort, den Aktivitätspegel in der CPU zu bestimmen. Wenn andererseits dieser Aktivitätspegel eine Erhöhung im Vergleich zu einem direkt davor bestimmten Zustand darstellt (Schritt 22), wird festgestellt, ob die Temperatur der CPU Besorgnis erregend ist oder nicht (Schritt 24). Wenn die Temperatur der CPU nicht Besorgnis erregend ist, verringert die vorliegende Erfindung den T(aus)-Abstand (Schritt 30) und beginnt erneut damit, den Aktivitätspegel in der CPU zu bestimmen. Wenn andererseits die Temperatur der CPU Besorgnis erregend ist, wird festgestellt, ob die CPU kritische E/A verarbeitet, eine kritische Funktion oder einen kritischen Echtzeitvorgang ausführt oder nicht (Schritt 26). Wenn kritische E/A verarbeitet, eine kritische Funktion oder ein kritischer Echtzeitvorgang ausgeführt wird, verringert die vorliegende Erfindung den T(aus)-Abstand (Schritt 30) und beginnt erneut damit, den Aktivitätspegel in der CPU zu bestimmen. Wenn keine kritische E/A verarbeitet werden, erhöht die vorliegende Erfindung den T(aus)-Abschnitt (Schritt 20) und fährt fort, den Aktivitätspegel in der CPU zu bestimmen. Folglich werden die T(aus)-Abstände kontinuierlich angepasst, um dem System-Aktivitätspegel zu entsprechen und um den Temperaturpegel in der CPU zu kontrollieren.
  • Das Kontrollieren der CPU-Temperatur (Wärme-Management) ist notwendig, da CPUs für den Betrieb innerhalb bestimmter Temperaturbereiche konzipiert sind. Die Leistungsfähigkeit und die Geschwindigkeit von CPUs nehmen ab, wenn die Obergrenzen der Betriebstemperatur überschritten werden (besonders bei mit CMOS-Technologie hergestellten CPUs, wo Temperaturen über dem oberen Temperaturbereich zu verringerter CPU-Geschwindigkeit führen). Die Wärmeabgabe einer CPU steht in direkter Verbindung mit der Leistung, die von der CPU verbraucht wird, und der Wärme, die sie von sich in unmittelbarer Nähe befindlichen Bauteilen und Schaltkreisen aufnimmt. Der Leistungsverbrauch einer CPU steigt mit zunehmender Taktgeschwindigkeit der CPU und mit zunehmender Anzahl der von der CPU pro Sekunde auszuführenden Anweisungen. Als Folge dessen werden Probleme, die auf Wärme zurückzuführen sind, immer häufiger, je mehr schnellere und komplexere CPUs vorgestellt und in elektronische Geräte eingebunden werden.
  • In jedem Betriebssystem gibt es zwei Schlüsselpunkte in der Logik: eine LEERLAUF- oder „tu-nichts"-Schleife innerhalb des Betriebssystems und einen Anforderungskanal des Betriebssystems, der normalerweise für die Dienste verfügbar ist, die von der Anwendungssoftware benötigt werden. Indem man die Logik nach diesen Logikpunkten ausrichtet, kann die An der von einer Anwendungssoftware getätigten Aktivitätsanforderung, ausgewertet werden, die Leistungseinsparung und das Wärme-Management können aktiviert werden und Zeitscheiben können festgestellt werden. Eine Zeitscheibe ist das Verhältnis von T(an)- zu T(aus)-Abschnitten im Zeitablauf, das auf Grundlage der Aktivitäts- und Temperaturpegel in der CPU berechnet wurde. Um den Aktivitätspegel in der CPU zu bestimmen, kann man eine Annahme treffen: Softwareprogramme, die Dienste benötigen, benötigen normalerweise auch zusätzliche Dienste, und die Zeitspanne zwischen den Anforderungen der Dienste kann dafür verwendet werden, um den Aktivitätspegel einer beliebigen auf dem Computer ausgeführten Anwendungssoftware festzustellen und dadurch Zeitscheiben für die Leistungseinsparung gemäß der vorliegenden Erfindung bereitzustellen. Eine weitere Annahme, die getroffen werden kann, ist die, dass jede CPU einen für diese CPU einzigartigen Wärmekoeffizienten hat – CPU-Temperatur-Anstiegszeit, maximale CPU-Betriebstemperatur, CPU-Temperatur-Abnahmezeit und für das Wärme-Management benötigte Eingriffszeit. Wenn diese Informationen nicht vom Hersteller der CPU bereitgestellt werden, dann muss die verwendete CPU getestet werden (oder eine andere CPU desselben Fabrikats und Ausführungstyps, die unter ähnlichen Bedingungen getestet wurde), um genaue Informationen zu erhalten.
  • Sobald die CPU während einer Leistungseinsparungs- und Wärme-Management-Scheibe (T(aus)) unterbrochen wird, speichert die CPU den Zustand der unterbrochenen Routinen, bevor sie ihn an die unterbrechende Software vektorisiert. Da die Software für die Leistungseinsparung und Das Wärme-Management während dieses Vorgangs aktiv war, wird natürlich die Kontrolle an die aktive Schleife zur Leistungseinsparung und zum Wärme-Management zurückgegeben (Überwachungsprogramm 40), die einfach den Takt der CPU überwacht, um für den Modus zur Leistungseinsparung und zum Wärme-Management eine Voraussetzung zum Verlassen zu bestimmen, wodurch vom T(aus)-Zustand in den T(an)-Zustand gewechselt wird. Der Abschnitt des nächsten Zustandes der Leistungseinsparung und des Wärme-Managements wird vom Aktivitätspegel-Überwachungsprogramm so angepasst, wie oben in Zusammenhang mit 1 beschrieben. Einige Implementierungen können durch die Hardware-Logik ein automatisches Verlassen des T(aus)-Abschnitts schaffen, wodurch die Schleife zur Leistungseinsparung und zum Wärme-Management automatisch verlassen und ein Abschnitt T(an) ausgeführt wird.
  • Im speziellen sehen wir uns nun die 2a2d an, die das aktive Überwachungsprogramm 40 zur Leistungseinsparung und zum Wärme-Management der vorliegenden Erfindung zeigt. Die CPU installiert das Überwachungsprogramm 40 entweder durch ein Programm, das im Festwertspeicher (ROM) der CPU gespeichert ist, oder es lädt sie von einem externen Gerät, das dieses Programm gespeichert hat, in den Arbeitsspeicher (RAM). Sobald die CPU Überwachungsprogramm 40 geladen hat, fährt es bei INIT 50 mit der Initialisierung der System-Unterbrechung, mit dem Anwender-Konfigurations-Setup und der system-/anwendungsspezifischen Initialisierung fort. LEERLAUF Zweig 60 (näher beschrieben in 2b) wird bei einer LEERLAUF- oder „tu-nichts"-Funktion von einer Hardware- oder Software-Unterbrechung ausgeführt. Diese An von Unterbrechung wird von der CPU ausgelöst, wenn sie entweder eine LEERLAUF- oder eine „tu-nichts"-Funktion beginnt. Diese Art von Unterbrechung wird von der CPU ausgelöst, wenn sie entweder eine LEERLAUF- oder eine „tu-nichts"-Schleife (d. h., geplante Inaktivität) beginnt. Der AKTIVITÄT Zweig 70 des Ablaufdiagramms, näher beschrieben unten in Bezug auf 2d, wird auf Grund einer Anforderung des Betriebssystems oder eines E/A-Dienstes, eines Anwendungsprogramms oder einer internen Betriebssystemfunktion, von einer Hardware- oder Software-Unterbrechung ausgeführt. Eine von einem Programm getätigte E/A-Dienstanforderung kann zum Beispiel ein Platten-E/A-Vorgang sein, oder ein Befehl zum lesen, drucken, laden etc. Unabhängig vom ausgewählten Zweig wird die Kontrolle letztendlich wieder zum CPU Betriebssystem bei RÜCKSPRUNG 80 zurückgegeben. Der INIT Zweig 50 dieses Ablaufdiagramms, wie in 2a abgebildet, wird nur einmal ausgeführt, wenn es durch ein Programm in den ROM geladen wurde, oder es wird jedes mal während dem Hochfahren ausgeführt, wenn es von einem externen Gerät in den RAM geladen wurde. Sobald dieser Zweig der aktiven Überwachung des Leistungs- und Wärme-Managements 40 vollständig ausgeführt wurde, wird jedes mal, wenn die Kontrolle vom Betriebssystem an den Modus zur Leistungseinsparung und zum Wärme-Management übergeben wird, entweder der Zweig LEERLAUF 60 oder der Zweig AKTIVITÄT 70 ausgewählt, je nach der Art der CPU-Aktivität: Der Zweig LEERLAUF 60 zur Leistungseinsparung und zum Wärme-Management während geplanter Inaktivität und der Zweig AKTIVITÄT 70 zur Leistungseinsparung und zum Wärme-Management während CPU-Aktivität.
  • Bei näherer Betrachtung des Zweiges INIT 50, nachdem alle System-Unterbrechungen und Variablen initialisiert wurden, fährt die Routine bei Schritt 90 fort und setzt den Leistungs_Pegel gleich dem STANDARD_PEGEL. In Betriebssystemen, bei denen der Anwender eine Eingabesteuerung für den Leistungs_Pegel hat, untersucht das Programm in Schritt 100, ob ein Anwender_Pegel ausgewählt wurde. Wenn der Anwender_Pegel kleiner als Null oder größer als der MAXIMAL_PEGEL ist, verwendet das System den STANDARD_PEGEL. Anderenfalls fährt es mit Schritt 110 fort, wo es den Leistungs_Pegel gleich dem Anwender_Pegel setzt.
  • Gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung setzt das System in Schritt 120 die Variable Leerlauf_Signal auf Null und die Variable Aktivitäts_Signal auf Null. Bei einer MS/DOS-Implementierung. Leerlauf_Signal bezieht sich auf die Anzahl der Unterbrechungen, die in einer „tu-nichts"-Schleife gezählt wurden. Aktivitäts_Signal bezieht sich auf die Anzahl der Unterbrechungen, die von einer Aktivitätsunterbrechung verursacht wurden, was wiederum den Aktivitätspegel in der CPU bestimmt. Die Signalzahl stellt einen Zeitunterschied für die nächste Unterbrechung dar. Leerlauf_Signal ist ein konstanter Zeitunterschied von einem Signal zu einem anderen (Unterbrechung), sofern es nicht von einer Software-Unterbrechung überschrieben wurde. Eine Software-Unterbrechung kann den Zeitunterschied zwischen den Unterbrechungen umprogrammieren.
  • Nachdem die Variablen auf Null gesetzt wurden, fährt die Routine mit Setup 130 fort; zu diesem Zeitpunkt erfolgt die Feineinstellung jeglicher anwendungsspezifischer Konfigurationen in Bezug auf systemspezifische Details, und das System wird initialisiert. Als nächstes macht die Routine den Unterbrechungs-E/A (Schritt 140) mit Anweisungen für die Hardware bereit, die anzeigen, dass die Hardware die Kontrolle bei der nächsten Unterbrechung übernehmen kann. Der Zweig INIT 50 gibt dann bei RÜCKSPRUNG 80 an das Betriebssystem zurück oder dahin, von wo ursprünglich die aktive Überwachung des Leistungs- und Wärme-Managements aufgerufen wurde.
  • Sehen wir uns nun den Zweig LEERLAUF 60 des aktiven Überwachungsprogramms 40 des Leistungs- und Wärme-Managements an, das näher unter 2b beschrieben ist. Als Antwort auf eine geplante Inaktivität der CPU überprüft das Überwachungsprogramm 40 (nicht explizit in dieser Abbildung gezeigt), ob der Zugang zum Zweig LEERLAUF 60 gestattet ist, indem es erst feststellt, ob die Aktivitäts-Unterbrechung momentan tätig ist. Wenn TÄTIG_A gleich TÄTIG_FLAG (Schritt 150) ist, das ein Wiedereintritts-Flag ist, dann ist die CPU tätig und kann jetzt nicht in den Schlafmodus versetzt werden. Deshalb fährt das Überwachungsprogramm 40 sofort mit RÜCKSPRUNG L 160 fort und verlässt die Routine. RÜCKSPRUNG L 160 ist ein indirekter Vektor zur vorhergehenden Betriebssystem-LEERLAUF-Vektor-Unterbrechung für normale Verarbeitung, der vor dem Eintritt von Überwachungsprogramm 40 gespeichert wurde. (D. h., dies verursacht einen Unterbrechungs-Rücksprung zum letzten verketteten Vektor.)
  • Wenn das TÄTIG_A Unterbrechungs-Flag nicht tätig ist, dann überprüft das Überwachungsprogramm 40, ob das Tätig_Leerlauf Unterbrechungs-Flag, TÄTIG_L, gleich TÄTIG)_FLAG (Schritt 170) ist. In diesem Fall zeigt dies, dass sich das System bereits im Zweig LEERLAUF 60 des Überwachungsprogramms 40 befindet und das System sich daher nicht selbst unterbrechen sollte. Wenn TÄTIG_L = TÄTIG_FLAG ist, verlässt das System die Routine beim indirekten Vektor 160 RÜCKSPRUNG_L.
  • Wenn jedoch weder Tätig_A Wiedereintritts-Flag, noch TÄTIG_L Wiedereintritts-Flag gesetzt wurden, dann setzt die Routine das TATIG_L-Flag in Schritt 180 auf Wiedereintrittsschutz (TÄTIG_L = TÄTIG_FLAG). In Schritt 190 wird das Leerlauf Signal um eins erhöht. Leerlauf Signal ist die Anzahl von T(an)-Abschnitten vor einem T(off)-Abschnitt und wird von LEERLAUF-Unterbrechungen, Setup-Unterbrechungen und Aktivitäts- und Temperaturpegeln in der CPU bestimmt. Leerlauf_Signal wird um eins erhöht, um die Glättung von Vorgängen zu ermöglichen, wodurch eine kritische E/A-Aktivität die Glättung kontrollieren kann.
  • In Schritt 200 überprüft das Überwachungsprogramm 40, ob Leerlauf Signal gleich LEERLAUF_MAXSIGNALE ist. LEERLAUF_MAXSIGNALE ist eine der Konstanten, die in Setup 130 des Zweiges INIT 50 initialisiert wurden, sie bleibt für ein System konstant und sie ist verantwortlich für die Selbstabstimmung der Aktivitäts- und Temperaturpegel. Wenn Leerlauf_Signal ungleich LEERLAUF_MAXSIGNALE ist, wird das TÄTIG_L-Flag in Schritt 210 gelöscht und verlässt die Schleife, um beim indirekten Vektor 160 RÜCKSPRUNG L fort zu fahren. Wenn jedoch Leerlauf_Signal gleich LEERLAUF_MAXSIGNALE ist, wird Leerlauf_Signal mit LEERLAUF_AUSGANGS_SIGNALE (Schritt 220) gleichgesetzt. LEERLAUF_AUSGANGS_SIGNALE ist eine Konstante, die Null betragen darf, aber nicht muss (davon abhängig, ob der Takt der betreffenden CPU unterbrochen werden kann). Dieser Schritt stellt die Selbstabstimmung in Bezug darauf fest, wie oft die restlichen Schlaf-Funktionen ausgeführt werden dürfen. Indem man LEERLAUF_AUSGANGS_SIGNALE gleich setzt mit LEERLAUF_MAXSIGNALE minus eins, kann ein kontinuierlicher T(aus)-Abschnitt erreicht werden. In Schritt 230 wird der Leistungs_Pegel überprüft. Wenn er gleich Null ist, löscht das Überwachungsprogramm das TÄTIG_L-Flag (Schritt 210), verlässt die Routine bei RÜCKSPRUNG L 160 und gibt dem Betriebssystem die Kontrolle zurück, damit es damit weitermachen kann, was es ursprünglich getan hat, bevor es in das aktive Leistungs-Überwachungsprogramm 40 eingetreten ist.
  • Wenn jedoch der Leistungs_Pegel bei Schritt 240 nicht gleich Null ist, stellt die Routine fest, ob eine Unterbrechungs-Maske vorhanden ist. Eine Unterbrechungs-Maske wird von der System/Anwendungssoftware gesetzt und stellt fest, ob für das Überwachungsprogramm 40 Unterbrechungen vorhanden sind. Wenn Unterbrechungen NICHT_VERGÜGBAR sind, wird das TÄTIG_L Wiedereintritts-Flag gelöscht und die Kontrolle dem Betriebssystem zurückgegeben, damit es damit weitermachen kann, was es ursprünglich getan hat, bevor es in das Überwachungsprogramm 40 eingetreten ist. Betriebssysteme, wie auch Anwendungssoftware, können einen T(an)-Abschnitt festsetzen, um einen kontinuierlichen T(an)-Zustand zu haben, indem sie die Unterbrechungsmaske gleich NICHT_VERFÜGBAR setzen.
  • Nehmen wir an, dass eine Unterbrechung VERFÜGBAR ist, dann fährt das Überwachungsprogramm 40 mit der LEISTUNG EINSPAREN Subroutine 250 fort, die während eines vom Hardware-Zustand ausgelösten T(aus)-Abstandes vollständig durchlaufen wird. (Im bevorzugten Ausführungsbeispiel, zum Beispiel, ist die längstmögliche Zeitspanne 18 ms; das ist die längste Zeit zwischen zwei Signalen oder Unterbrechungen des Echtzeit-Taktes.) Während der LEISTUNG EINSPAREN Subroutine 250 wird der CPU-Takt auf einen Schlaftaktpegel heruntergesetzt.
  • Sobald ein kritischer E/A-Vorgang die T(an)-Abschnitte erzwingt, tendiert der Zweig LEERLAUF 60 Unterbrechung dazu, für zusätzliche kritische E/A-Anforderungen bereit zu sein. Wenn die CPU mit einem kritischen E/A-Vorgang beschäftigt ist, sind weniger T(aus)-Abstände verfügbar. Umgekehrt sind mehr T(aus)-Abstände verfügbar, wenn die kritischen E/A-Anforderungen abnehmen, und die Zeitabschnitte zwischen ihnen zunehmen. Der Zweig LEERLAUF 60 ist ein sich selbst abstimmendes System, das auf Rückmeldungen von den CPU-Aktivitäts- und Temperatur-Unterbrechungen basiert, und das dazu neigt, mehr T(aus)-Abstände bereit zu stellen, wenn die Aktivitätspegel sinken und/oder die CPU-Temperatur Besorgnis erregend ist. Sobald das Überwachungsprogramm 40 die LEISTUNG EINSPAREN Subroutine 250 vollständig abgeschlossen hat, wie in 2c gezeigt und näher im folgenden beschrieben, wird das TÄTIG_L Wiedereintritts-Flag gelöscht (Schritt 210) und die Kontrolle wird bei RÜCKSPRUNG L 160 an das Betriebssystem zurückgegeben, das ursprünglich das Überwachungsprogramm 40 angefordert hat.
  • Sehen wir uns nun 2c an, ein Ablaufdiagramm, das die LEISTUNG EINSPAREN Subroutine 250 abbildet. Das Überwachungsprogramm 40 stellt den Wert des E/A Hardware Hochgeschwindigkeitstaktes in Schritt 260 fest. Es setzt die MOMENTANE_TAKTFREQUENZ gleich mit dem relevanten Hochgeschwindigkeitstakt und speichert diesen Wert, damit er für CPUs mit mehreren Hochgeschwindigkeitstakten verwendet werden kann. Somit, wenn eine bestimmte CPU Hochgeschwindigkeitstakte von 12 MHz und 6 MHz hat, muss das Überwachungsprogramm 40 feststellen, mit welchem Hochgeschwindigkeitstakt die CPU betrieben wird, bevor das Überwachungsprogramm 40 die Leistung reduziert, damit es den richtigen Hochgeschwindigkeitstakt für die CPU wiederherstellen kann, wenn die CPU aufgeweckt wird. In Schritt 270 wird die Gespeicherte_Taktfrequenz mit der festgestellten MOMENTANEN_TAKT-FREQUENZ gleichgesetzt. Gespeicherte_Taktfrequenz 270 wird nicht verwendet, wenn es nur einen Hochgeschwindigkeitstakt für die CPU gibt. Das Überwachungsprogramm 40 fährt nun mit SCHLAFTAKT 280 fort, wo ein Impuls an die Hardwareauswahleinrichtung (abgebildet in 3) gesendet wird, um die CPU in den Schlafzustand zu versetzen (d. h. die Taktfrequenz zu verlangsamen oder zu unterbrechen). Der E/A-Anschluss Hardware-Schlaftakt hat viel niedrigere Schwingungen, als der normalerweise anliegende CPU-Takt.
  • An diesem Punkt können zwei verschiedene Ereignisse eintreten. Eine System-/Anwendungs-Unterbrechung kann eintreten, oder eine Echtzeit-Taktunterbrechung kann eintreten. Wenn eine System-/Anwendungs-Unterbrechung 290 eintritt, fährt das Überwachungsprogramm 40 mit der Unterbrechungsroutine 300 fort, verarbeitet die Unterbrechung schnellstmöglich, macht die E/A Unterbrechung in Schritt 310 bereit und kehrt dazu zurück, festzustellen, ob es eine Unterbrechung gab (Schritt 320). Da es in diesem Fall eine Unterbrechung gab, wird die Gespeicherte_Taktfrequenz (Schritt 330) dazu verwendet, festzustellen, zu welchem Hochgeschwindigkeitstakt die CPU zurückkehren soll, und die LEISTUNG EINSPAREN Subroutine 250 wird bei RÜCKSPRUNG 340 verlassen. Wenn jedoch keine System-/Anwendungs-Unterbrechung empfangen wird, wird die LEISTUNG EINSPAREN Subroutine 250 so lange warten, bis eine Echtzeit-Taktunterbrechung eingetreten ist (Schritt 320). Sobald eine solche Unterbrechung eintritt, wird die LEISTUNG EINSPAREN Subroutine 250 die Unterbrechungsschleife 320 mehrere Male ausführen. Wenn jedoch die Kontrolle übergeben wird, wenn die Schlaftaktfrequenz Null war, anders ausgedrückt, es gab keinen Takt dann wird die LEISTUNG EINSPAREN Subroutine 250 die Unterbrechungsschleife 320 einmal ausführen, bevor sie den CPU-Takt auf den Wert von Gespeicherte_Taktfrequenz 330 zurücksetzt und die Routine verlässt (Schritt 340).
  • Sehen wir uns nun 2d an, ein Ablaufdiagramm, das den Zweig AKTIVITÄT 70 zeigt, der von einer Anwendungs-/System-Aktivitätsanforderung durch eine Dienstanforderungsunterbrechung des Betriebssystems ausgelöst wird. Der Zweig AKTIVITÄT 70 beginnt mit einem Wiedereintrittsschutz. Das Überwachungsprogramm 40 stellt in Schritt 350 fest, ob TÄTIG_L auf TÄTIG_FLAG festgesetzt wurde. Wenn ja, dann bedeutet dies, dass das System sich schon im Zweig AKTIVITÄT 70 befindet und nicht unterbrochen werden kann. Wenn TÄTIG_L = TÄTIG_FLAG, dann kehrt das Überwachungsprogramm 40 zu RÜCKSPRUNG L 160 zurück, das ein indirekter Vektor zu einer alten Aktivitäts-Vektor-Unterbrechung für normale Verarbeitung ist, und zwar durch einen Unterbrechungsvektor, nachdem das Betriebssystem den angeforderten Dienst ausgeführt hat.
  • Wenn jedoch TÄTIG_L nicht gleich TÄTIG_FLAG ist, was bedeutet, dass der Zweig AKTIVITÄT 70 nicht aufgerufen wurde, dann stellt das Überwachungsprogramm 40 in Schritt 360 fest, ob das TÄTIG_A Flag gleich dem TÄTIG_FLAG gesetzt wurde. Wenn ja, dann wird die Kontrolle dem System an diesem Punkt zurückgegeben, da der Zweig AKTIVITÄT 70 schon benutzt wird und nicht unterbrochen werden kann. Wenn das Tätig_A Flag nicht gesetzt wurde, anders ausgedrückt, Tätig_A ist nicht gleich TÄTIG_FLAG, dann setzt das Überwachungsprogramm 40 Tätig_A gleich TÄTIG_FLAG in Schritt 370, damit es nicht während der Ausführung des Zweiges AKTIVITÄT 70 unterbrochen wird. In Schritt 380 wird der Leistungs Pegel festgestellt. Wenn der Leistungs_Pegel gleich Null ist, verlässt das Überwachungsprogramm 40 den Zweig AKTIVITÄT 70, nachdem es das Tätig_A Wiedereintrittsflag gelöscht hat (Schritt 390). Wenn jedoch der Leistungs_Pegel nicht gleich Null ist, wird die MOMENTANE_TAKTFREQUENZ der E/A Hardware als nächstes bestimmt. Wie auch im Falle von Schritt 270 in 2c verwendet Schritt 400 in 2d die MOMENTANE_TAKTFREQUENZ, wenn es bei einer bestimmten CPU mehrere Hochgeschwindigkeitstakte gibt. Sonst ist die MOMENTANE_TAKTFREQUENZ immer gleich dem CPU Hochgeschwindigkeitstakt. Nachdem die MOMENTANE_TAKTFREQUENZ festgestellt wurde (Schritt 400), wird in Schritt 410 Leerlauf Signal gleichgesetzt mit der Konstante AUSGANGS_SIGNALE, die für die vorher bestimmte MOMENTANE_TAKT FREQUENZ festgelegt wurde. T(aus) Abschnitte werden auf Grundlage des momentan aktiven Hochgeschwindigkeitstaktes festgelegt.
  • Das Überwachungsprogramm 40 stellt als nächsten Schritt fest, dass eine Anforderung vorliegt. Eine Anforderung ist eine Eingabe von einer auf einem Computer laufenden Anwendungssoftware, die auf eine bestimmte Art eines benötigten Dienstes abzielt. In Schritt 420 stellt das Überwachungsprogramm 40 fest, ob die Anforderung ein KRITISCHER E/A ist. Wenn die Anforderung ein KRITISCHER E/A ist, wird es T(an) kontinuierlich dazu bringen, sich zu verlängern, bis die Anzahl von T(an) größer ist als die von T(aus), und das Überwachungsprogramm 40 verlässt den Zweig AKTIVITÄT 70, nachdem es das Tätig_A Wiedereintrittsflag gelöscht hat (Schritt 390). Wenn andererseits die Anforderung kein KRITISCHER E/A ist, dann wird das Aktivitäts Signal in Schritt 430 um eins erhöht. Es wird dann in Schritt 440 festgestellt, ob das Aktivitäts_Signal jetzt gleich AKTIVITÄTS_MAXSIGNALE ist. Schritt 440 erlaubt eine Glättung von einem KRITISCHEN E/A und bereitet das System vor, und zwar von einem anderen KRITISCHEN E/A während den Aktivitäts_Signal-T(an)-Abschnitten. Nehmen wir an, dass Aktivitäts Signal nicht gleich AKTIVITÄTS_MAXSIGNALE ist, dann wird der Zweig AKTIVITÄT 70 verlassen, nachdem das Tätig_A Wiedereintrittsflag gelöscht wurde (Schritt 390). Wenn andererseits das Aktivitäts Signal gleich der Konstante AKTIVITÄTS_MAXSIGNALE ist, dann wird das Aktivitäts_Signal in Schritt 450 mit der Konstante PEGEL_MAXSIGNALE gleichgesetzt, die für den betroffenen Leistungs_Pegel in Schritt 380 festgelegt wurde.
  • Jetzt stellt das Überwachungsprogramm 40 fest, ob eine Unterbrechungsmaske existiert (Schritt 460). Eine Unterbrechungsmaske wird von der System/Anwendungssoftware gesetzt. Wenn es auf NICHT_VERFÜGBAR gesetzt wird, wird ein kontinuierlicher T(an)-Status geschaffen. Wenn die Unterbrechungsmaske gleich NICHT_VERFÜGBAR ist, sind zu diesem Zeitpunkt keine Unterbrechungen verfügbar und das Überwachungsprogramm 40 verlässt den Zweig AKTIVITÄT 70, nachdem es das Tätig_A Wiedereintrittsflag gelöscht hat (Schritt 390). Wenn jedoch eine Unterbrechung VERFÜGBAR ist, stellt das Überwachungsprogramm 40 in Schritt 470 fest, ob die in Schritt 420 identifizierte Anforderung eine LANGSAME E/A_UNTERBRECHUNG forderte. Langsame E/A-Anforderungen können eine Verzögerung haben, bis das E/A-Gerät „bereit" ist. Während dem „Bereitmachungs"-Vorgang, kann ein kontinuierlicher T(aus) Abschnitt festgesetzt und ausgeführt werden, um Leistung einzusparen. Folglich, wenn die Anforderung keine LANGSAME E/A_UNTERBRECHUNG ist, wird der Zweig AKTIVITÄT 70 verlassen, nachdem das Tätig_A Wiedereintrittsflag gelöscht wurde (Schritt 390). Wenn jedoch die Anforderung eine LANGSAME E/A_UNTERBRECHUNG ist, und wenn noch Zeit vorhanden ist, bevor das E/A-Gerät „bereit" ist, stellt das Überwachungsprogramm 40 dann in Schritt 480 fest, ob die E/A-Anfrage KOMPLETT ist (d. h. ist das E/A-Gerät bereit?). Wenn das E/A-Gerät nicht bereit ist, dann bringt das Überwachungsprogramm 40 T(aus) kontinuierlich dazu, sich zu verlängern, wodurch die CPU gezwungen wird, zu warten oder zu schlafen, bis das LANGSAME E/A-Gerät bereit ist. Zu diesem Punkt hat es Zeit, Leistung einzusparen und der Zweig AKTIVITÄT 70 tritt in die LEISTUNG EINSPAREN Subroutine 250 ein, die vorhergehend in Verbindung mit 2c beschrieben wurde. Wenn jedoch die E/A-Anforderung KOMPLETT ist, wird dem Betriebssystem die Kontrolle zurückgegeben, sobald das Überwachungsprogramm 40 den Zweig AKTIVITÄT 70 verlassen hat, nachdem es das Tätig_A Wiedereintrittsflag gelöscht hat (Schritt 390).
  • Selbstabstimmung ist innerhalb des Kontrollsystems von kontinuierlichen Rückführkreisen inhärent. Die Software der vorliegenden Erfindung kann feststellen, wann die Aktivität der CPU niedrig und/oder die Temperatur der CPU so hoch ist, dass sie Besorgnis erregend ist, und dadurch, wann der Aspekt der Leistungseinsparung und des Wärme-Managements der vorliegenden Erfindung zu aktivieren sind. Um festzustellen, wann die Temperatur der CPU so hoch ist, dass sie Besorgnis erregend ist, überwacht die Leistungs- und Wärme-Management-Software einen Thermistor, der sich neben der CPU auf der PWB-Platine befindet (oder direkt auf oder in der CPU befestigt ist, wenn die CPU einen Thermistor aufweist). In einem Ausführungsbeispiel der vorliegenden Erfindung überwacht die Software den Thermistor 18 mal pro Sekunde durch einen A/D-Wandler. Wenn keine Leistung eingespart wird und die Temperatur des Thermistors innerhalb akzeptabler Parameter liegt, dann wird die Überwachung mit derselben Geschwindigkeit fortgesetzt. Wenn jedoch die Temperatur des Thermistors ansteigt, wird ein Alarmsignal ausgelöst, um dem System mitzuteilen, dass die Temperatur der CPU auf mögliche Wärme-Management-Maßnahmen verfolgt wird. Jede CPU hat einen Temperatur-Koeffizienten, der eindeutig für diese bestimmte CPU ist. Informationen darüber, wie lange es dauert, die Temperatur anzuheben, und an welchem Punkt eingegriffen werden muss, um eine Verschlechterung der Leistungsfähigkeit zu verhindern, muss von der Information abgeleitet werden, die mit der CPU geliefert wurde oder von Tests.
  • Gemäß einem Ausführungsbeispiel der Erfindung wird in die Hardware ein Zähler gesetzt, um eine Ad-hoc-Unterbrechung zu liefern (der Zähler basiert auf dem Koeffizienten des Temperaturanstiegs). Das Wärme-Management-System muss wissen, wie lange es dauert, bis die Temperatur der CPU abfällt, um den Temperatur-Effekt zu minimieren. Wenn der Zähler rückwärts zählt und eine aktive Leistungsunterbrechung empfängt, wird die Ad-hoc-Unterbrechung abgeschaltet, weil die Kontrolle durch das aktive Leistungs- und Wärme-Management wiedererlangt wurde. Das Ergebnis ist eine unbemerkte praktisch ausführbare Leistungseinsparung. Die Ad-hoc-Unterbrechung k ann aufgehoben oder abgeändert werden, und zwar durch die aktive Leistungsunterbrechung, die die Art der Steigung, d. h. nach oben oder nach unten, und die Zählung überprüft, und die das Ad-hoc-Verfahren des Hoch- und Hinunterzählens in Echtzeit auf der Basis dessen anpassen kann, womit die CPU gerade beschäftigt ist. Wenn es keine Echtzeit-Unterbrechungen gibt, dann übernimmt der Zeitgeber-Abschnitt kontinuierlich die Aufgabe, den allmählichen Temperaturanstieg zu überwachen, und er wird den Ad-hoc-Zähler nach oben oder unten anpassen, wie es gerade benötigt wird. Das Ergebnis ist ein dynamisches Feedback des aktiven Leistungs- und Wärme-Managements zum Ad-hoc-Zähler, wobei diese Information mit der dynamischen Anpassung abgeglichen wird, basierend auf dem Anstieg oder Absinken der Temperatur zu einem beliebigen Zeitpunkt und basierend darauf, wie lange es dauert, bis diese Temperatur durch den Gefahrenpunkt gefallen oder gestiegen ist. Dies ist ein anderes Konzept, als lediglich einen Ad-hoc-Zeitgeber einzusetzen und ihn laufen zu lassen.
  • Nehmen wir zum Beispiel an, dass die eingesetzte CPU eine maximale sichere Betriebstemperatur von 95 Grad C hat (basierend auf dem Datenblatt der CPU oder auf tatsächlichen Tests). Nehmen wir weiter an, dass sich ein Thermistor neben der CPU befindet, und dass wenn das Gehäuse der CPU eine Temperatur von 95 Grad C hat, der Thermistor eine niedrigere Temperatur haben kann, da er mit einem Zwischenraum von der CPU angeordnet ist (wie z. B. 57 Grad C). Es sollte herausgefunden werden, wie lange die CPU gebraucht hat, bis sie 95 Grad erreichte. Wenn es eine Stunde gedauert hat, kann das System entscheiden, den Thermistor alle 45 Minuten abzutasten. Sobald die CPU bei 95 Grad ist, muss die Temperatur der CPU eventuell jede Minute abgetastet werden, um sicher zu stellen, dass die Temperatur absinkt, sonst könnte die Temperatur zunehmen, d. h. auf 96 Grad. Wenn es 5 Minuten dauert, um die Temperatur der CPU von 95 auf 96 Grad zu erhöhen, dann muss das Abtasten der Temperatur der CPU in einem Abstand von weniger als 5 Minuten geschehen – d. h. alle 3 Minuten oder jede Minute. Wenn die Temperatur nicht absinkt, dann sollte die Dauer der restlichen Zyklen erhöht werden. Eine kontinuierliche Auswertung der abgelesenen Wärmekonstante ist der Schlüssel dazu, um zu wissen, wann die Temperatur der CPU zum Problem wird, wann ein Eingriff des Wärme-Managements angebracht ist, und wie viel Zeit anderen Vorgängen im System bewilligt werden kann. Diese Entscheidung muss gefällt werden, bevor die Zieltemperatur erreicht wird. Sobald die Temperatur der CPU anfängt, zu sinken, ist es in Ordnung, zur normalen Wärmekonstantezahl zurückzukehren, da 1) der richtige Scheiben-Abschnitt gewählt wurde oder 2) der aktive Leistungsanteil des aktiven Leistungs- und Wärme-Managements übernommen hat, und somit die Abtastfrequenz verringert werden kann.
  • Beispiele für Quellcode, der im ROM der CPU oder in einem externen RAM-Gerät gespeichert werden kann, gemäß einem Ausführungsbeispiel der Erfindung sind unter dem Kapitel COMPUTERPROGRAMME AUFLISTUNG aufgelistet unter: 1) Unterbrechung 8 Zeitgeber-Unterbrechungsdienst-aufgelistet auf Seiten 37 bis 42; 2) CPU Schlafroutine – aufgelistet auf Seite 43; 3) FILE=FORCE5.ASM – aufgelistet auf Seiten 44 bis 48; und 4) FILE=Thermal.EQU – aufgelistet auf Seite 49.
  • Unter Verwendung des o. a. Quellcodes und unter der Annahme, dass Unterbrechung 8 Zeitgeber-Unterbrechungsdient die Unterbrechungsmaske ist, die in Schritt 240 der Schleife LEERLAUF 60 oder in Schritt 460 der Schleife AKTIVITÄT 70 aufgerufen wird, ist das Verfahren zum Wärme-Management nach dem Motto „wende Wärme-Management bei Bedarf an" aufgebaut, nach dem das System entscheiden muss, ob genug Zeit für das Wärme-Management vorhanden ist „Zeit für Wärme-Management?". Wenn Zeit für das Wärme-Management vorhanden ist, ruft das System die Datei „force_sleep" auf sofern Zeit zum Schlafen vorhanden ist (was auch jeden PCI-Bus, der an die CPU gekoppelt ist, schlafen schickt), oder es kann alternativ einen STI Leerbefehl und einen Stopp ausführen – was einen alternativen Weg darstellt und keine PCI-Bauteile beeinflusst, und auch keinen Rückführkreis von den Systemen zum Leistungs- und Wärme-Management aufweist. Die Datei „force_sleep" erhält Feedback von den anderen Leistungssystemen. Force_sleep springt zu force5.asm, welches das PCI Mehrfach-Schlafprogramm ist. Sind Lautsprecher im System in Gebrauch? Gehen andere Dinge im System vor, die aus der Perspektive der Leistungskontrolle her von Bedeutung sind? Sind DMAs im System in Gebrauch? Der Schlafzustand ist möglicherweise während eines Klangablaufs nicht gewünscht. Die Leistungskontrolle muss wissen, was im System vor sich geht, um einen intelligenten Schlafmodus auszuführen. Das Wärme-Management kümmert sich um die CPU und um alle anderen betroffenen Bauteile, da jedes von ihnen im Zusammenspiel Wärme erzeugt.
  • Es gibt einige Gleichungen in dem Programm, die funktionieren – andere können funktionieren, müssen aber nicht. „tk" ist die Anzahl von abgetasteten Unterbrechungen pro Sekunde multipliziert mit dem Zeitabstand der Abtastung. „it" stellt eine Wärmeabtastkonstante dar, die in dem vorliegenden Ausführungsbeispiel 5 beträgt. In dem Quellcode wird die Wärmeabtastkonstante später in Abhängigkeit von der Temperatur dynamisch angepasst. Folglich ist dies der Ausgangszeitabschnitt der Wärmeabtastung, aber mit zunehmender Temperatur sollte der Wert öfter abgelesen werden, und wenn die Temperatur niedriger ist, sollte der Wert weniger häufig als alle 5 Minuten abgelesen werden – z. B. alle 10 Minuten. Die Wärmeabtastkonstante wird sich anpassen. TP1 oder TP2 stellen dar, mit welchem Prozentsatz der CPU-Takte abgetastet werden soll – zum Beispiel TP7 festgesetzt auf 50 = die Anzahl von Unterbrechungen, die während eines Zeitabschnittes auftreten müssen, so dass diese Zahl darstellt, wie viele Taktzyklen vergehen, bevor wir die Abtastung vornehmen und die CPU in den Schlafmodus versetzen. Diese Gleichungen sind variabel. Andere Gleichungen können auch verwendet werden.
  • Folglich ist ein Konzept der vorliegenden Erfindung, dass es verschiedene Temperaturpegel gibt, die in Bezug auf den wärmsten zu kontrollierenden Punkt untersucht werden müssen. Der Abtastungs-Zeitabschnitt wird sich je nach Temperatur und aktivem Feedback ändern. Aktives Feedback kann auch dann benötigt werden, wenn das Wärme-Management festgestellt hat, dass die Temperatur der CPU zu hoch ist und verringert werden sollte (durch Verlangsamung oder Unterbrechung des CPU Taktes). Die Taktgeschwindigkeit der CPU wird möglicherweise nicht verringert, da andere Vorgänge im System ablaufen – das Ergebnis ist intelligentes Feedback. Die Systeme zur Leistungseinsparung und zum Wärme-Management stellen der CPU Fragen, wie z. B. bist du gerade mit etwas beschäftigt, dass ich nicht übernehmen kann? Wenn nicht, gehe bitte schlafen. Wenn ja, schlafe nicht und komme zu mir zurück, damit ich meinen Zähler auf Null zurücksetzen kann. Das Ergebnis ist ein abgestufter Aufwärtseffekt und ein abgestufter Abwärtseffekt, und die Zeitspanne der Wärmeabtastkonstante passt sich in Abhängigkeit der Temperatur der CPU selbst an. Die Leistungsfähigkeit, die dem Anwender während der Kontrolle durch die Leistungseinsparung und das Wärme-Management entzogen wird, wird gegen kritische E/A-Vorgänge, die im System ablaufen, abgewogen.
  • Das aktive Leistungs- und Wärme-Management arbeitet mit dem standardmäßigen Powermanagement der CPU zusammen, so dass, wenn das standardmäßige Powermanagement eine Möglichkeit zur Übernahme der Kontrolle erhält, damit begonnen werden kann, das aktive Feedback langsam abzubauen, obwohl die Temperatur noch nicht gesunken ist. Bestehende Systeme des Leistungs/Wänne-Management schalten sich ein und bleiben aktiv, bis die Temperatur sinkt. Unglücklicherweise kommt dies anderen Dingen im System zuvor. Dies ist im Umfeld der vorliegenden Erfindung nicht der Fall. Derselbe Schlafzustand-Manager arbeitet in Verbindung mit der Leistungseinsparung und dem Wärme-Management – der Schlafzustand-Manager verfügt über umfassende Kontrolle. Zum Beispiel: Wenn die Temperatur in der CPU ansteigt oder schon auf einen Besorgnis erregenden Pegel angestiegen ist, verarbeitet das System eventuell einen kritischen E/A-Vorgang, wie z. B. das Abspielen einer Wave-Datei. Bei kritischen E/A-Vorgängen fährt das System der vorliegenden Erfindung damit fort, die Wave-Datei ohne Unterbrechung abzuspielen, obwohl das Ergebnis eine erhöhte Temperatur der CPU sein kann. Normalerweise überhitzen CPUs nicht ganz plötzlich. Es gibt einen Temperaturzunahme-Gradienten. Das System der vorliegenden Erfindung nutzt den Temperaturzunahme-Gradienten dazu, dem Anwender Dinge bereit zu stellen, die die Anwender-Zeitscheibe beeinflussen, und ihm diese Dinge wegzunehmen, wenn die Zeitscheibe nicht beeinflusst wird.
  • Wärme-Management kann auch erreicht werden, indem man einen Vorhersagemodus anwendet. Der Vorhersagemodus verwendet keine Sensoren oder Thermistoren, und auch keine Erkenntnisse über die tatsächliche Temperatur in der CPU. Der Vorhersagemodus verwendet eine Schätzung – das heißt, dass das System die Ad-hoc-Unterbrechung einmal pro 5 Sekunden oder 50 mal pro Sekunde (=Konstante) benötigt, und diese dann erhöhen oder verringern kann, je nach dem was das System mit dem aktiven Leistungs- und Wärme-Management macht. Die Vorhersagetheorie kann auch mit einer tatsächlichen Überwachung der Temperatur in der CPU kombiniert werden.
  • Sobald die Leistungseinsparungs- und Wärme-Management-Überwachung aktiviert ist, ist eine plötzliche Rückkehr zur vollen Betriebsgeschwindigkeit des CPU-Taktes innerhalb des Zeitabschnittes möglich, so dass die Leistungsfähigkeit des Computers nicht verschlechtert wird. Um diese plötzliche Rückkehr zur vollen Betriebsgeschwindigkeit des CPU-Taktes zu ermöglichen, verwendet das bevorzugte Ausführungsbeispiel der vorliegenden Erfindung einige zugehörige Hardwarekomponenten.
  • Wenden wir uns nun 3 zu, die eine vereinfachte schematische Darstellung der zugehörigen Hardware zeigt, die von der vorliegenden Erfindung für aktive Leistungseinsparung und Wärme-Management verwendet wird. Wenn das Überwachungsprogramm 40 (nicht abgebildet) feststellt, dass die CPU bereit ist, in den Schlafzustand zu wechseln, schreibt es auf einen E/A-Anschluss (nicht abgebildet), der einen Impuls auf der SCHLAF Leitung auslöst. Die Anstiegsflanke dieses Impulses auf der SCHLAF Leitung veranlasst die Kippschaltung 500 dazu, ein Hoch an Q zu registrieren und ein Tief an Q_. Dies veranlasst die UND/ODER Logik (UND Gatter 510, 520, ODER Gatter 530) dazu, die Impulse, die auf der SCHLAFTAKT Leitung vom SCHLAFTAKT Oszillator 540 wandern, auszuwählen und an den CPU TAKT gesendet und dort verwendet zu werden. Der SCHLAFTAKT Oszillator 540 ist ein langsamerer Takt, als der CPU-Takt, der während normaler CPU-Aktivität verwendet wird. Das Hoch, das vom Q der Kippschaltung 500 kommt, unter Anwendung der UND-Funktion (510) auf die Impulse, die vom SCHLAFTAKT Oszillator 540 kommen, unter Anwendung der ODER-Funktion (530) auf das Ergebnis des Tiefs an Q_ der Kippschaltung 500, und unter Anwendung der UND-Funktion (520) auf den Impuls, der entlang der HOCHGESCHWINDIGKEITSTAKT Leitung vom HOCHGESCHWINDIG-KEITSTAKT Oszillator 550 erzeugt wird, ergibt den CPU TAKT. Wenn der E/A-Anschluss den SCHLAFTAKT bestimmt, dann ist der CPU TAKT gleich dem Wert des SCHLAFTAKT Oszillators 540. Wenn andererseits eine Unterbrechung eintritt, löscht ein Unterbrechungswert die Kippschaltung 500, wodurch die UND/ODER Auswahleinrichtung (die 510, 520 und 530 umfasst) dazu gezwungen wird, den Wert HOCHGESCHWINDIGKEITSTAKT auszuwählen, und er setzt den Wert CPU TAKT zurück auf den Wert der vom HOCHGESCHWINDIGKEITSTAKT Oszillator 550 kommt. Daher wird die Feststellung einer beliebigen Unterbrechung im System während irgendeiner Operation zur Leistungseinsparung und/oder zum Wärme-Management den Betrieb der CPU bei voller Geschwindigkeit wiederherstellen, bevor die Unterbrechung vektorisiert und verarbeitet wird.
  • Es sollte beachtet werden, dass die benötigte zugehörige Hardware, extern zu jeder CPU für jedes beliebige System, unterschiedlich sein kann, und zwar abhängig vom verwendetem Betriebssystem oder davon, ob die CPU unterbrochen werden kann usw. Trotzdem sollte der Umfang der vorliegenden Erfindung nicht begrenzt sein durch systemspezifische Änderungen, die eventuell benötigt werden, um es der vorliegenden Erfindung zu ermöglichen, aktiv Leistung einzusparen und die Temperatur der CPU in den zahlreichen verfügbaren tragbaren Computersystemen zu kontrollieren. Als Beispiel sind zwei aktuelle Implementierungen in den 4 und 5 abgebildet, wie unten beschrieben.
  • Viele VSLI-Konzepte heutzutage erlauben es, eine Änderung der Taktgeschwindigkeit der CPU vorzunehmen. Die Logik, von einem unterbrochenen oder langsamen Takt auf einen hohen Takt zu schalten, folgt derselben Logik, die es dem Anwender erlaubt, die Geschwindigkeit durch ein Tastaturkommando zu ändern. Die hinzugefügte Logik des Überwachungsprogramms 40, das eine solche Umschaltlogik anwendet, verursacht eine sofortige Rückkehr zu einem schnellen Takt, sobald eine Unterbrechung festgestellt wird. Diese einfache Logik ist der Schlüssel zur benötigten Unterstützung durch die Hardware, um die CPU zu unterbrechen, und dadurch die Verarbeitung der Unterbrechung bei voller Geschwindigkeit zuzulassen.
  • Das Verfahren, um den Leistungsverbrauch unter MS-DOS zu verringern, verwendet die Signalfalle der MS-DOS LEERLAUF Schleife, um Zugriff auf die „tu-nichts"-Schleife zu erhalten. Die LEERLAUF Schleife gewährt speziellen Zugriff auf Anwendungssoftware und Betriebssystem-Abläufe, die sich in einem Zustand von LEERLAUF oder geringer Aktivität befinden. Eine genaue Untersuchung wird benötigt, um den Aktivitätspegel an irgendeinem Punkt innerhalb des Systems festzustellen. Feedbackschleifen von der Dienstanforderung der Unterbrechung 21H werden verwendet, um den Aktivitätspegel festzustellen. Die Vorhersage des Aktivitätspegels wird auf Grund der Anforderungen der Unterbrechung 21H getroffen, durch die die vorliegende Erfindung die Zeitscheiben für den „Schlafzustand" (Verlangsamung oder Unterbrechung) der CPU festsetzt. Ein zusätzliches Feature erlaubt es dem Anwender, die Scheibe je nach Aktivitätslevel der Unterbrechung 21H zu ändern. Das Verfahren, eine Leistungseinsparung unter WINDOWS zu erreichen, setzt reale und abgesicherte Modi ein, um die Leistungsunterbrechung zu speichern, die vom Betriebssystem jedes Mal aufgerufen wird, wenn WINDOWS nichts zu tun hat.
  • Sehen wir uns nun 4 an, die eine schematische Darstellung einer tatsächlichen Implementierung einer Schlafzustands-Hardware für ein System, wie den Intel 80386 zeigt (der Takt der CPU kann nicht unterbrochen werden). Adressenanhängungsbus 600 und Adressbus 610 versorgen den Demultiplexer 620 mit CPU-Input. Der Output von Demultiplexer 620 wird entlang der Leitung SCHLAFCS- gesendet und als Input für die ODER Gatter 630, 640 bereitgestellt. Der andere Input an die ODER Gatter 630, 640 ist jeweils die E/A Schreibkontrollleitung und die E/A Lesekontrollleitung. Der Output dieser Gatter, zusätzlich zum NOR Gatter 650, werden an D der Kippschaltung 660 angelegt, um den Anschluss zu dekodieren. „UNTR" ist der Input der Unterbrechung vom E/A-Anschluss (Peripheriegeräte) in das NOR Gatter 650, was die Hardwarelogik dazu veranlasst, zurück auf den Hochgeschwindigkeitstakt zu schalten. Der Output von Kippschaltung 660 wird dann zusammen mit dem Output vom ODER Gatter 630 zum Puffer 670, der drei Zustände kennt, geleitet, um diesem zu ermöglichen, die Informationen am Anschluss abzurufen. Die komplette oben identifizierte Hardware wird vom lese/schreib E/A-Anschluss (Peripheriegeräte) dazu verwendet, um die leistungseinsparende „Schlaff"-Operation auszuwählen. Der Output „LANGSAM_" entspricht „SCHLAF" in 2 und wird in die Kippschaltung 680 eingegeben, wie später beschrieben.
  • Der Output von SCHLAFTAKT Oszillator 690 wird von D der Kippschaltungen 700, 710 in zwei langsamere Takte geteilt. In dieser bestimmten in 4 abgebildeten Implementierung wird der 16 MHz Schlaftakt-Oszillator 690 in Takte von 4 MHz und 8 MHz aufgeteilt. Jumper J1 wählt aus, welcher Takt der „SCHLAFTAKT" sein soll.
  • In dieser bestimmten Implementierung ist der Hochgeschwindigkeits-Oszillator 720 ein 32 MHz Oszillator, obwohl diese bestimmte Geschwindigkeit keine Voraussetzung für die vorliegende Erfindung ist. Der 32 MHz Oszillator wird mit einem Widerstand (33 Ohm für die gezeigte Implementierung) in Reihe geschalten, der in Reihe mit zwei parallelen Kondensatoren (10 pF) geschalten ist. Das Ergebnis solcher Oszillationen ist mit den Takten von D der Kippschaltungen 730, 740 verknüpft.
  • D der Kippschaltungen 680, 730, 740 sind synchronisierende Kippschaltungen; 680, 730 wurden in der vereinfachten Schlafzustands-Hardware der 2 nicht gezeigt. Diese Kippschaltungen werden verwendet, um sicher zu gehen, dass das Umschalten des Taktes nur am Ende eines Taktes erfolgt. Wie 4 entnommen werden kann, genau wie mit Kippschaltung 500 in 2, aktiviert der Output von Kippschaltung 740 entweder das ODER Gatter 750 oder das ODER Gatter 760, je nach dem, ob die CPU schlafen („ERHÖHEN_") oder aufwachen („VERLANGSAMEN_") soll.
  • Die ODER Gatter 750, 760 und das UND Gatter 770 sind die zweckmäßigen Entsprechungen zu den UND/ODER Auswahleinrichtungen in 2. Sie sind dafür verantwortlich, entweder den „langstkt" (langsamer Takt, auch bekannt als SCHLAFTAKT) oder den Hochgeschwindigkeitstakt (auf der Eingangsleitung als 32 MHz bestimmt). In dieser Implementierung beträgt der langsame Takt entweder 4 MHz oder 8 MHz, je nach Jumper J1, und der Hochgeschwindigkeitstakt beträgt 32 MHz. Der Output des UND Gatters 770 (ATUTKT) setzt die Taktrate der CPU fest und entspricht CPU TAKT in 2. (Wenn das Gerät einen PCI-Bus hat, kann der Output des UND Gatters 770 auch mit dem PCI-Bus gekoppelt werden, wenn dieser das Taktsignal verwenden soll.)
  • Sehen wir uns nun 5 an, die eine schematische Darstellung einer weiteren tatsächlichen Implementierung einer Schlafzustands-Hardware für ein System, wie den Intel 80286 zeigt (der Takt der CPU kann unterbrochen werden). Der Western Digital FE3600 VLSI wird für das Umschalten der Geschwindigkeit mit einem speziellen externen PAL 780 verwendet, um die Unterbrechungssteuerung zu kontrollieren, die die CPU bei jeder Unterbrechung aufweckt. Die Leistungseinsparungssoftware gemäß der vorliegenden Erfindung überwacht die Annahme von Unterbrechungen und aktiviert den nächsten P(i)deltaTi Abschnitt nach der Unterbrechung.
  • Jegliche Unterbrechungs-Anforderung an die CPU lässt das System in den normalen Betriebszustand zurückkehren. Eine Unterbrechungs-Anforderung („INTRQ") an die CPU veranlasst den PAL dazu, ein Wecksignal auf der RESCPU Leitung an den FE3001 (nicht abgebildet) abzugeben, was es wiederum der CPU und dem DMA Taktgeber ermöglicht, das System zurück zum normalen Zustand zu bringen. Dies ist die Entsprechung zu „INterrupt_" in 2. Die Unterbrechungs-Anforderung wird synchronisiert, um zu vermeiden, dass der Status des Systems verwechselt wird, so dass eine Unterbrechung (INT-DET) nur erkannt wird, wenn der Zyklus aktiviert ist. Die Anstiegsflanke von RESCPU weckt den FE3001 auf, was wiederum das komplette System vom Schlafzustands-Modus befreit.
  • Die Implementierung für den 386SX unterscheidet sich nur in der externen Hardware- und Software-Leistungseinsparungsschleife. Die Softwareschleife bestimmt, dass die externe Hardware bei Unterbrechung auf Hochgeschwindigkeitstakt schaltet, bevor sie die Unterbrechung vektorisiert. Sobald auf die Leistungseinsparungssoftware zurückgekehrt wurde, wird der Hochgeschwindig keitstaktzyklus entdeckt, und die Hardware wird auf volle Betriebsgeschwindigkeit zurückgesetzt.
  • Die Implementierung für OS/2 verwendet die „tu-nichts"-Schleife programmiert als ein THREAD, der als Hintergrundvorgang mit niedriger Priorität läuft. Sobald der THREAD aktiviert wird, wird die Schlaf- oder Niedrigtakt-Operation der CPU aktiviert, bis eine Unterbrechung stattfindet, wodurch die CPU auf die ursprüngliche Taktgeschwindigkeit zurückgesetzt wird.
  • Obwohl im bevorzugten Ausführungsbeispiel der vorliegenden Erfindung Unterbrechungen verwendet wurden, um die CPU aufzuwecken, sollte erkannt werden, dass jede periodische Aktivität innerhalb des Systems, oder von außen angelegt, ebenso für dieselbe Funktion verwendet werden könnte.
  • Obwohl mehrere Implementierungen des bevorzugten Ausführungsbeispiels der Erfindung aufgezeigt und beschrieben wurden, wird der Fachmann verschiedene Abwandlungen und alternative Ausführungsbeispiele erkennen. Dementsprechend ist es beabsichtigt, dass die Erfindung lediglich im Hinblick auf die angehängten Patentansprüche beschränkt wird.
  • COMPUTERPROGRAMME AUFLISTUNG
    • 1) Unterbrechung 8 Zeitgeber-Unterbrechungsdienst -Seite 37 bis 42. Unterbrechung 8 Zeitgeber-Unterbrechungsdienst wird in den ROM der CPU oder auf einen externen RAM geladen, und er ist eine Unterbrechungsmaske, die in Schritt 240 der Schleife LEERLAUF 60 oder in Schritt 460 der Schleife AKTIVITÄT 70 aufgerufen werden kann.
    • 2) CPU Schlafroutine – Seite 43. CPU Schlafroutine wird in den ROM der CPU oder auf einen externen RAM geladen, und sie ist eine Datei, die in Schritt 250 der Schleife LEERLAUF 60 oder der Schleife AKTIVITÄT 70 aufgerufen werden kann.
    • 3) FILE=FORCE5.ASM -Seite 44 bis 48. FILE=FORCE5.ASM ist ein PCI Mehrfach-Schlafprogramm, das in den ROM der CPU oder auf einen externen RAM geladen wird, und es ist eine Datei, die in Schritt 250 der Schleife LEERLAUF 60 oder der Schleife AKTIVITÄT 70 aufgerufen werden kann.
    • 4) FILE=Therma1.EQU – Seite 49. FILE=Therma1.EQU wird in den ROM der CPU oder auf einen externen RAM geladen, und sie ist eine Datei, die in Schritt 240 der Schleife LEERLAUF 60 oder in Schritt 460 der Schleife AKTIVITÄT 70 aufgerufen werden kann.
  • Figure 00360001
  • Figure 00370001
  • Figure 00380001
  • Figure 00390001
  • Figure 00400001
  • Figure 00410001
  • Figure 00420001
  • Figure 00430001
  • Figure 00440001
  • Figure 00450001
  • Figure 00460001
  • Figure 00470001
  • Figure 00480001

Claims (17)

  1. Vorrichtung, mit einer Zentraleinheit (CPU); CPU-Aktivitäts- und CPU-Temperaturdetektormitteln (10); und einem CPU-Schlafzustand-Manager (20, 30), der so beschaffen ist, daß er die erfaßte CPU-Aktivität und die erfaßte CPU-Temperatur von den CPU-Aktivitäts- und CPU-Temperaturdetektormitteln empfängt und Taktsignale, die an die Zentraleinheit (CPU) geschickt werden, auf der Grundlage der Echtzeit-Aktivitäts- und Echtzeit-Temperaturpegel in der Zentraleinheit (CPU) wahlweise unterbricht oder abwandelt, wobei die Unterbrechung oder Abwandlung der Taktsignale den Leistungsverbrauch der Zentraleinheit steuert, dadurch gekennzeichnet, daß der CPU-Schlafzustand-Manager feststellt, wenn die Temperatur der Zentraleinheit besorgniserregend ist und ob eine kritische Operation ausgeführt wird, und in Reaktion darauf die Taktsignale abwandelt oder unterbricht, um den Leistungsverbrauch der CPU zu verringern, falls die Temperatur der Zentraleinheit besorgniserregend ist, jedoch die Taktsignale nicht abwandelt oder unterbricht, um den Leistungsverbrauch zu verringern, falls eine kritische Operation ausgeführt wird.
  2. Vorrichtung nach Anspruch 1, bei der eine kritische Operation, für die der Leistungsverbrauch nicht verringert wird, eine kritische Eingabe/Ausgabe-Operation ist.
  3. Vorrichtung nach Anspruch 1 oder Anspruch 2, bei der eine kritische Operation, für die der Leistungsverbrauch nicht verringert wird, ein kritisches Echtzeit-Ereignis ist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, bei der die Zentraleinheit (CPU) entweder ein erstes Taktsignal mit einer ersten Rate oder ein zweites Taktsignal mit einer zweiten Rate empfängt; und der CPU-Schlafzustand-Manager (20, 30) so beschaffen ist, daß er angibt, welches der ersten und zweiten Taktsignale die Zentraleinheit (CPU) empfängt.
  5. Vorrichtung nach einem der Ansprüche 1 bis 4, bei der der CPU-Schlafzustand-Manager die Taktrate der Zentraleinheit (CPU) in Reaktion auf einen verringerten Echtzeit-Aktivitätspegel in der Zentraleinheit (CPU) verringert.
  6. Vorrichtung nach einem der Ansprüche 1 bis 4, bei der der CPU-Schlafzustand-Manager die Taktrate der Zentraleinheit (CPU) in Reaktion auf einen erhöhten Echtzeit-Aktivitätspegel und eine hohe CPU-Temperatur in der Zentraleinheit (CPU) verringert.
  7. Vorrichtung nach einem vorhergehenden Anspruch, bei der die Zentraleinheit (CPU) ein Teil eines Computers ist.
  8. Vorrichtung nach einem vorhergehenden Anspruch, bei der der Schlafzustand-Manager Zeitspannen steuert, in denen der Takt in einem AUS-Zustand ist, so daß die Länge dieser Zeitspannen, in denen der Takt in einem AUS-Zustand ist, an den Nutzungsgrad angepaßt ist.
  9. Vorrichtung nach einem vorhergehenden Anspruch, bei der der Schlafzustand-Manager Zeitspannen steuert, in denen der Takt in einem AUS-Zustand ist, so daß die Länge dieser Zeitspannen, in denen der Takt in einem AUS-Zustand ist, erhöht wird, um die CPU-Temperatur zu verringern.
  10. Vorrichtung nach Anspruch 6 oder Anspruch 7, bei der die Zeitspannen, in denen der Takt in einem AUS-Zustand ist, kontinuierlich eingestellt werden, um den Nutzungsgrad anzupassen oder die Temperatur zu steuern.
  11. Vorrichtung nach einem der Ansprüche 8, 9 oder 10, bei der der AUS-Zustand die minimale Taktrate, bei der die Zentraleinheit arbeiten kann, oder null für jene Zentraleinheiten, deren Takte unterbrochen werden können, repräsentiert.
  12. Vorrichtung nach einem vorhergehenden Anspruch, bei der der CPU-Schlafzustand-Manager ferner einen mit der Anordnung gekoppelten Bus steuert.
  13. Vorrichtung nach Anspruch 12, bei der der CPU-Schlafzustand-Manager ferner irgendwelche anderen CPUs, die an den Bus angeschlossen sind, in den Schlafzustand versetzt.
  14. Vorrichtung nach einem vorhergehenden Anspruch, bei der der Schlafzustand-Manager eine Hardware-Taktauswahleinrichtung steuert.
  15. Vorrichtung nach einem vorhergehenden Anspruch, bei der die CPU-Aktivitäts- und CPU-Temperaturüberwachungsmittel Mittel zum Vorhersagen der Aktivität und der Temperatur enthalten.
  16. Vorrichtung nach einem vorhergehenden Anspruch, bei der der Schlafzustand-Manager ein schnelles Verlangsamen des Betriebs der Zentraleinheit (CPU) ausführt, wenn die Bedienungsperson oder eine externe Software oder das Betriebssystem/BIOS den Computer nicht verwendet, wodurch der Leistungsverbrauch und die CPU-Temperatur verringert werden, und den CPU-Betrieb mit voller Geschwindigkeit umgehend wiederherstellt, wenn dies erforderlich ist.
  17. Vorrichtung nach Anspruch 16, bei der der Schlafzustand-Manager die Wiederherstellung ohne Anwendereingriff ausführt.
DE69630327T 1995-02-28 1996-02-26 Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer Expired - Lifetime DE69630327T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/395,335 US6158012A (en) 1989-10-30 1995-02-28 Real-time power conservation and thermal management for computers
US395335 1995-02-28

Publications (2)

Publication Number Publication Date
DE69630327D1 DE69630327D1 (de) 2003-11-20
DE69630327T2 true DE69630327T2 (de) 2004-07-15

Family

ID=23562614

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69637817T Expired - Lifetime DE69637817D1 (de) 1995-02-28 1996-02-26 Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer
DE69630327T Expired - Lifetime DE69630327T2 (de) 1995-02-28 1996-02-26 Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69637817T Expired - Lifetime DE69637817D1 (de) 1995-02-28 1996-02-26 Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer

Country Status (6)

Country Link
US (8) US6158012A (de)
EP (2) EP1361501B1 (de)
JP (1) JPH0922317A (de)
KR (1) KR960032148A (de)
DE (2) DE69637817D1 (de)
TW (1) TW307838B (de)

Families Citing this family (118)

* 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
US6158012A (en) * 1989-10-30 2000-12-05 Texas Instruments Incorporated Real-time power conservation and thermal management for computers
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US6029119A (en) * 1996-01-16 2000-02-22 Compaq Computer Corporation Thermal management of computers
US5862394A (en) * 1996-03-21 1999-01-19 Texas Instruments Incorporated Electronic apparatus having a software controlled power switch
US5870614A (en) * 1996-09-25 1999-02-09 Philips Electronics North America Corporation Thermostat controls dsp's temperature by effectuating the dsp switching between tasks of different compute-intensity
US6349385B1 (en) * 1998-11-20 2002-02-19 Compaq Computer Corporation Dual power supply fan control—thermistor input or software command from the processor
US6535798B1 (en) * 1998-12-03 2003-03-18 Intel Corporation Thermal management in a system
JP4121653B2 (ja) 1999-01-21 2008-07-23 株式会社ソニー・コンピュータエンタテインメント 消費電力低減方法、該方法を用いた携帯用電子機器及びエンタテインメントシステム
JP3049051B1 (ja) * 1999-03-31 2000-06-05 新潟日本電気株式会社 中央処理装置の温度制御回路
US6737591B1 (en) * 1999-05-25 2004-05-18 Silverbrook Research Pty Ltd Orientation sensing device
US6830196B1 (en) * 1999-05-25 2004-12-14 Silverbrook Research Pty Ltd Identity-coded surface region
JP2001147730A (ja) * 1999-09-10 2001-05-29 Sony Computer Entertainment Inc 電子機器
ATE277378T1 (de) 1999-10-25 2004-10-15 Texas Instruments Inc Intelligente leistungssteuerung in verteilten verarbeitungssystemen
US7100061B2 (en) 2000-01-18 2006-08-29 Transmeta Corporation Adaptive power control
US6574739B1 (en) * 2000-04-14 2003-06-03 Compal Electronics, Inc. Dynamic power saving by monitoring CPU utilization
JP3438135B2 (ja) * 2000-05-19 2003-08-18 富士通株式会社 情報機器及び省電力モード切替方法及び省電力モード切替プログラムを格納した記録媒体
US7137117B2 (en) * 2000-06-02 2006-11-14 Microsoft Corporation Dynamically variable idle time thread scheduling
US7849463B2 (en) 2000-06-02 2010-12-07 Microsoft Corporation Dynamically variable idle time thread scheduling
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US20070245165A1 (en) * 2000-09-27 2007-10-18 Amphus, Inc. System and method for activity or event based dynamic energy conserving server reconfiguration
US7260731B1 (en) 2000-10-23 2007-08-21 Transmeta Corporation Saving power when in or transitioning to a static mode of a processor
US7174194B2 (en) * 2000-10-24 2007-02-06 Texas Instruments Incorporated Temperature field controlled scheduling for processing systems
US7000130B2 (en) * 2000-12-26 2006-02-14 Intel Corporation Method and apparatus for thermal throttling of clocks using localized measures of activity
US20020087904A1 (en) 2000-12-28 2002-07-04 Zhong-Ning (George) Cai Method and apparatus for thermal sensitivity based dynamic power control
US20020108064A1 (en) * 2001-02-07 2002-08-08 Patrick Nunally System and method for optimizing power/performance in network-centric microprocessor-controlled devices
US20020138159A1 (en) * 2001-03-26 2002-09-26 Atkinson Lee W. Temperature responsive power supply to minimize power consumption of digital logic without reducing system performance
US6622253B2 (en) 2001-08-02 2003-09-16 Scientific-Atlanta, Inc. Controlling processor clock rate based on thread priority
JP2003067080A (ja) 2001-08-30 2003-03-07 Matsushita Electric Ind Co Ltd クロック切り換え装置及びマイクロコントローラ
US7111179B1 (en) * 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US6791298B2 (en) * 2001-11-05 2004-09-14 Shakti Systems, Inc. Monolithic battery charging device
WO2003041249A1 (en) * 2001-11-05 2003-05-15 Shakti Systems, Inc. Dc-dc converter with resonant gate drive
US6816977B2 (en) * 2001-12-03 2004-11-09 Hewlett-Packard Development Company, L.P. Power reduction in computing devices using micro-sleep intervals
US6823240B2 (en) * 2001-12-12 2004-11-23 Intel Corporation Operating system coordinated thermal management
US7036030B1 (en) * 2002-02-07 2006-04-25 Advanced Micro Devices, Inc. Computer system and method of using temperature measurement readings to detect user activity and to adjust processor performance
US6957352B2 (en) * 2002-03-15 2005-10-18 Intel Corporation Processor temperature control interface
US7670224B2 (en) * 2002-04-03 2010-03-02 Igt Gaming apparatus with power saving feature
US7336090B1 (en) 2002-04-16 2008-02-26 Transmeta Corporation Frequency specific closed loop feedback control of integrated circuits
US7180322B1 (en) 2002-04-16 2007-02-20 Transmeta Corporation Closed loop feedback control of integrated circuits
US7941675B2 (en) 2002-12-31 2011-05-10 Burr James B Adaptive power control
US6948082B2 (en) * 2002-05-17 2005-09-20 International Business Machines Corporation Method and apparatus for software-assisted thermal management for electronic systems
DE10223772A1 (de) * 2002-05-28 2003-12-18 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Bereitstellung einer Ausgangsspannung aus einer Eingangsspannung
ITTO20020508A1 (it) * 2002-06-14 2003-12-15 Fiat Ricerche Sistema e procedimento per il monitoraggio di saldature laser
US7321942B2 (en) * 2002-11-12 2008-01-22 Arm Limited Performance counter for adding variable work increment value that is dependent upon clock frequency
US7152169B2 (en) * 2002-11-29 2006-12-19 Intel Corporation Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US7219241B2 (en) * 2002-11-30 2007-05-15 Intel Corporation Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode
US6847010B1 (en) * 2002-12-04 2005-01-25 Xilinx, Inc. Methods and circuits for measuring the thermal resistance of a packaged IC
US6757352B1 (en) * 2002-12-25 2004-06-29 Faraday Technology Corp. Real time clock with a power saving counter for embedded systems
US7953990B2 (en) * 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
US7949864B1 (en) 2002-12-31 2011-05-24 Vjekoslav Svilan Balanced adaptive body bias control
US7786756B1 (en) 2002-12-31 2010-08-31 Vjekoslav Svilan Method and system for latchup suppression
US7228242B2 (en) * 2002-12-31 2007-06-05 Transmeta Corporation Adaptive power control based on pre package characterization of integrated circuits
US7642835B1 (en) 2003-11-12 2010-01-05 Robert Fu System for substrate potential regulation during power-up in integrated circuits
US7205758B1 (en) * 2004-02-02 2007-04-17 Transmeta Corporation Systems and methods for adjusting threshold voltage
EP1584020B1 (de) * 2003-01-13 2011-08-10 ARM Limited Datenverarbeitungsleistungssteuerung
US20040215912A1 (en) * 2003-04-24 2004-10-28 George Vergis Method and apparatus to establish, report and adjust system memory usage
US7240223B2 (en) 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
TWI220700B (en) * 2003-08-20 2004-09-01 Delta Electronics Inc Programmable logic controller with an auxiliary processing unit
US7308596B1 (en) * 2003-10-30 2007-12-11 Integrated Device Technology, Inc. Controlling a clock divider by selecting a preset value
US7129771B1 (en) 2003-12-23 2006-10-31 Transmeta Corporation Servo loop for well bias voltage source
US7012461B1 (en) 2003-12-23 2006-03-14 Transmeta Corporation Stabilization component for a substrate potential regulation circuit
US7692477B1 (en) 2003-12-23 2010-04-06 Tien-Min Chen Precise control component for a substrate potential regulation circuit
US7649402B1 (en) 2003-12-23 2010-01-19 Tien-Min Chen Feedback-controlled body-bias voltage source
US7816742B1 (en) 2004-09-30 2010-10-19 Koniaris Kleanthes G Systems and methods for integrated circuits comprising multiple body biasing domains
US7859062B1 (en) * 2004-02-02 2010-12-28 Koniaris Kleanthes G Systems and methods for integrated circuits comprising multiple body biasing domains
US7529947B2 (en) * 2004-03-31 2009-05-05 Marvell International Ltd. Determining power consumption of an application
US7774625B1 (en) 2004-06-22 2010-08-10 Eric Chien-Li Sheng Adaptive voltage control by accessing information stored within and specific to a microprocessor
US7562233B1 (en) 2004-06-22 2009-07-14 Transmeta Corporation Adaptive control of operating and body bias voltages
US7281145B2 (en) * 2004-06-24 2007-10-09 International Business Machiness Corporation Method for managing resources in a CPU by allocating a specified percentage of CPU resources to high priority applications
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US8538997B2 (en) 2004-06-25 2013-09-17 Apple Inc. Methods and systems for managing data
US8521720B2 (en) * 2004-06-25 2013-08-27 Apple Inc. Methods and systems for managing data
JP4251117B2 (ja) * 2004-07-02 2009-04-08 日本電気株式会社 携帯通信端末及びその発熱対策方法
CN1985232B (zh) * 2004-07-15 2011-03-02 诺基亚公司 自适应电压调节
US7543161B2 (en) * 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US7693491B2 (en) * 2004-11-30 2010-04-06 Broadcom Corporation Method and system for transmitter output power compensation
US7464277B2 (en) * 2005-01-28 2008-12-09 Dell Products, L.P. Microprocessor performance mode control utilizing sensed temperature as an indication of microprocessor utilization
US7353414B2 (en) * 2005-03-30 2008-04-01 Intel Corporation Credit-based activity regulation within a microprocessor based on an allowable activity level
US7522941B2 (en) 2005-05-23 2009-04-21 Broadcom Corporation Method and apparatus for reducing standby power consumption of a handheld communication system
US7401243B2 (en) * 2005-06-21 2008-07-15 Dell Products L.P. Demand-based dynamic clock control for transaction processors
US7475262B2 (en) * 2005-06-29 2009-01-06 Intel Corporation Processor power management associated with workloads
CN100346268C (zh) * 2005-08-18 2007-10-31 复旦大学 信息安全SoC中基于门控时钟的动态功耗管理方法
US7464278B2 (en) * 2005-09-12 2008-12-09 Intel Corporation Combining power prediction and optimal control approaches for performance optimization in thermally limited designs
US7924708B2 (en) * 2005-12-13 2011-04-12 Intel Corporation Method and apparatus for flow control initialization
US8108863B2 (en) * 2005-12-30 2012-01-31 Intel Corporation Load balancing for multi-threaded applications via asymmetric power throttling
US7574613B2 (en) * 2006-03-14 2009-08-11 Microsoft Corporation Scaling idle detection metric for power management on computing device
KR100849224B1 (ko) * 2007-02-01 2008-07-31 삼성전자주식회사 메모리 카드 시스템의 메모리 카드에 전원을 공급하는 방법및 메모리 카드 시스템
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US8725488B2 (en) * 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage
US8949635B2 (en) * 2007-09-28 2015-02-03 Intel Corporation Integrated circuit performance improvement across a range of operating conditions and physical constraints
US20090259865A1 (en) * 2008-04-11 2009-10-15 Qualcomm Incorporated Power Management Using At Least One Of A Special Purpose Processor And Motion Sensing
US8028183B2 (en) * 2008-09-18 2011-09-27 International Business Machines Corporation Power cap lower bound exploration in a server environment
US8276015B2 (en) * 2009-02-23 2012-09-25 International Business Machines Corporation Managing the power-performance range of an application
CN101853060B (zh) * 2009-04-03 2012-04-18 建兴电子科技股份有限公司 电源检测模块及其计算机外设设备与其电源检测方法
DE102010025884B3 (de) * 2010-07-02 2011-07-07 Siemens Aktiengesellschaft, 80333 Verfahren zum Betrieb eines Prozessors in einer Echtzeitumgebung
US20120042313A1 (en) * 2010-08-13 2012-02-16 Weng-Hang Tam System having tunable performance, and associated method
US8996330B2 (en) * 2011-01-06 2015-03-31 Qualcomm Incorporated Method and system for managing thermal policies of a portable computing device
US8504753B2 (en) * 2011-02-14 2013-08-06 Qnx Software Systems Limited Suspendable interrupts for processor idle management
US9207730B2 (en) * 2011-06-02 2015-12-08 Apple Inc. Multi-level thermal management in an electronic device
TWI486763B (zh) * 2011-07-18 2015-06-01 Wistron Corp 電腦系統之過熱保護方法及相關裝置
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) * 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
CN103513585A (zh) * 2012-06-29 2014-01-15 福建闽冠伟业智能科技有限公司 智能用电执行器
US9404812B2 (en) * 2013-03-14 2016-08-02 Samsung Electronics Co., Ltd. Method for detecting environmental value in electronic device and electronic device
CN105573463A (zh) * 2014-10-17 2016-05-11 深圳市中兴微电子技术有限公司 一种功耗管理方法及装置
US9785218B2 (en) * 2015-04-20 2017-10-10 Advanced Micro Devices, Inc. Performance state selection for low activity scenarios
US9618998B2 (en) * 2015-06-10 2017-04-11 International Business Machines Corporation Identification of idle servers using power consumption
KR102599653B1 (ko) 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
US10168752B2 (en) * 2016-03-08 2019-01-01 Qualcomm Incorporated Systems and methods for determining a sustained thermal power envelope comprising multiple heat sources
KR102643797B1 (ko) * 2017-01-10 2024-03-05 삼성전자주식회사 동적 발열 관리 방법
US10056289B1 (en) 2017-04-20 2018-08-21 International Business Machines Corporation Fabrication of vertical transport fin field effect transistors with a self-aligned separator and an isolation region with an air gap
US11226663B2 (en) * 2018-06-29 2022-01-18 Intel Corporation Methods, systems, articles of manufacture and apparatus to reduce temperature of a networked device
CN112612305B (zh) * 2020-12-04 2022-04-08 格力电器(武汉)有限公司 温度的调整方法、装置、设备、存储介质和空调系统

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US522229A (en) * 1894-07-03 Sprinkling apparatus
US287577A (en) * 1883-10-30 Self and j
US3453601A (en) * 1966-10-18 1969-07-01 Philco Ford Corp Two speed arithmetic calculator
US3623017A (en) * 1969-10-22 1971-11-23 Sperry Rand Corp Dual clocking arrangement for a digital computer
NL7207216A (de) * 1972-05-27 1973-11-29
US3922526A (en) 1973-02-02 1975-11-25 Texas Instruments Inc Driver means for lsi calculator to reduce power consumption
US3941989A (en) * 1974-12-13 1976-03-02 Mos Technology, Inc. Reducing power consumption in calculators
US3922528A (en) * 1975-03-10 1975-11-25 Rama Corp Thermostat heater
JPS533120A (en) * 1976-06-30 1978-01-12 Canon Inc Control circuit
GB1561961A (en) * 1977-04-20 1980-03-05 Int Computers Ltd Data processing units
JPS54144152A (en) * 1978-04-28 1979-11-10 Sharp Corp Integrated circuit device
US4279020A (en) * 1978-08-18 1981-07-14 Bell Telephone Laboratories, Incorporated Power supply circuit for a data processor
US4381552A (en) * 1978-12-08 1983-04-26 Motorola Inc. Stanby mode controller utilizing microprocessor
US4254475A (en) * 1979-03-12 1981-03-03 Raytheon Company Microprocessor having dual frequency clock
US4361873A (en) * 1979-06-11 1982-11-30 Texas Instruments Incorporated Calculator with constant memory
US4758945A (en) * 1979-08-09 1988-07-19 Motorola, Inc. Method for reducing power consumed by a static microprocessor
US4748559A (en) * 1979-08-09 1988-05-31 Motorola, Inc. Apparatus for reducing power consumed by a static microprocessor
US4316247A (en) * 1979-10-30 1982-02-16 Texas Instruments, Inc. Low power consumption data processing system
US4293927A (en) * 1979-12-12 1981-10-06 Casio Computer Co., Ltd. Power consumption control system for electronic digital data processing devices
US4317180A (en) * 1979-12-26 1982-02-23 Texas Instruments Incorporated Clocked logic low power standby mode
US4409665A (en) * 1979-12-26 1983-10-11 Texas Instruments Incorporated Turn-off-processor between keystrokes
US4317181A (en) * 1979-12-26 1982-02-23 Texas Instruments Incorporated Four mode microcomputer power save operation
JPS6017130B2 (ja) * 1980-06-06 1985-05-01 日本電気株式会社 アドレス制御装置
US4361552A (en) * 1980-09-26 1982-11-30 Board Of Regents, The University Of Texas System Wound dressing
JPS5865950A (ja) * 1981-10-14 1983-04-19 Nippon Denso Co Ltd 内燃機関の制御方法
JPS59135569A (ja) * 1983-01-24 1984-08-03 Sharp Corp マルチプロセツサの制御方式
JPS59200327A (ja) * 1983-04-26 1984-11-13 Nec Corp 周辺装置の制御方式
JPS59200326A (ja) * 1983-04-26 1984-11-13 Nec Corp データ処理装置
JPS59231966A (ja) * 1983-06-14 1984-12-26 Tamura Electric Works Ltd 公衆電話機の処理制御方式
US4616006A (en) * 1983-09-26 1986-10-07 Ortho Pharmaceutical Corporation Triphasic oral contraceptive
US4698748A (en) * 1983-10-07 1987-10-06 Essex Group, Inc. Power-conserving control system for turning-off the power and the clocking for data transactions upon certain system inactivity
US4893271A (en) * 1983-11-07 1990-01-09 Motorola, Inc. Synthesized clock microcomputer with power saving
US4780843A (en) * 1983-11-07 1988-10-25 Motorola, Inc. Wait mode power reduction system and method for data processor
US4819164A (en) * 1983-12-12 1989-04-04 Texas Instruments Incorporated Variable frequency microprocessor clock generator
JPS60198618A (ja) * 1984-03-21 1985-10-08 Oki Electric Ind Co Ltd ダイナミツク論理回路
US4670837A (en) * 1984-06-25 1987-06-02 American Telephone And Telegraph Company Electrical system having variable-frequency clock
US5179693A (en) * 1985-03-29 1993-01-12 Fujitsu Limited System for controlling operation of processor by adjusting duty cycle of performance control pulse based upon target performance value
US4821229A (en) * 1985-12-12 1989-04-11 Zenith Electronics Corporation Dual operating speed switchover arrangement for CPU
US5086387A (en) * 1986-01-17 1992-02-04 International Business Machines Corporation Multi-frequency clock generation with low state coincidence upon latching
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US4688386A (en) * 1986-02-07 1987-08-25 Lane Robert C Linear release ice machine and method
GB2194082A (en) * 1986-08-18 1988-02-24 Philips Nv Data processing apparatus with energy saving clocking device
JPS63163912A (ja) * 1986-12-26 1988-07-07 Toshiba Corp マイクロコンピユ−タシステム
DE3710896A1 (de) * 1987-04-01 1988-10-20 Krone Ag Verteilerleiste fuer fernmeldekabel, insbesondere hauseingangsverteilerleiste
US4814591A (en) * 1987-04-13 1989-03-21 Kabushiki Kaisha Toshiba Portable medium
US4924428A (en) * 1987-12-08 1990-05-08 Northern Telecom Limited Real time digital signal processor idle indicator
DK174975B1 (da) * 1988-05-06 2004-04-05 Toppan Printing Co Ltd Integreret kredsløbskort
JP2570845B2 (ja) * 1988-05-27 1997-01-16 セイコーエプソン株式会社 情報処理装置
US5025387A (en) * 1988-09-06 1991-06-18 Motorola, Inc. Power saving arrangement for a clocked digital circuit
EP0363567B1 (de) 1988-10-14 1994-11-30 International Business Machines Corporation Rechner mit unterbrechungsgesteuerter Taktgeschwindigkeit und Verfahren für seinen Betrieb
US4980836A (en) * 1988-10-14 1990-12-25 Compaq Computer Corporation Apparatus for reducing computer system power consumption
US5175845A (en) * 1988-12-09 1992-12-29 Dallas Semiconductor Corp. Integrated circuit with watchdog timer and sleep control logic which places IC and watchdog timer into sleep mode
JPH0311409A (ja) * 1989-06-09 1991-01-18 Oki Electric Ind Co Ltd 情報処理装置
US5142684A (en) * 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
EP0479887A4 (en) * 1989-06-30 1992-08-12 Poqet Computer Corporation Computer power management system
US5021679A (en) * 1989-06-30 1991-06-04 Poqet Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US5222239A (en) * 1989-07-28 1993-06-22 Prof. Michael H. Davis Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
US6158012A (en) * 1989-10-30 2000-12-05 Texas Instruments Incorporated Real-time power conservation and thermal management for computers
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US5026387A (en) * 1990-03-12 1991-06-25 Ultracision Inc. Method and apparatus for ultrasonic surgical cutting and hemostatis
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
WO1992010032A1 (en) * 1990-11-26 1992-06-11 Adaptive Solutions, Inc. Temperature-sensing control system and method for integrated circuits
US5230055A (en) * 1991-01-25 1993-07-20 International Business Machines Corporation Battery operated computer operation suspension in response to environmental sensor inputs
US5414860A (en) * 1991-01-29 1995-05-09 International Business Machines Incorporated Power management initialization for a computer operable under a plurality of operating systems
JPH0776894B2 (ja) * 1991-02-25 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション プロセッサ用クロック信号の制御方法及び情報処理システム
US5189314A (en) * 1991-09-04 1993-02-23 International Business Machines Corporation Variable chip-clocking mechanism
US5201069A (en) * 1991-10-18 1993-04-06 Motorola, Inc. Electroacoustic transducer mounting apparatus
JP3086032B2 (ja) * 1991-10-31 2000-09-11 キヤノン株式会社 電子装置およびそのパワー・マネージメント・コントロール方法
WO1993012480A1 (en) * 1991-12-17 1993-06-24 Compaq Computer Corporation Apparatus for reducing computer system power consumption
JP3090767B2 (ja) * 1992-04-02 2000-09-25 ダイヤセミコンシステムズ株式会社 コンピュータシステムの節電制御装置
JP3058986B2 (ja) * 1992-04-02 2000-07-04 ダイヤセミコンシステムズ株式会社 コンピュータシステムの節電制御装置
JPH05297993A (ja) * 1992-04-16 1993-11-12 Dia Semikon Syst Kk マイクロプロセッサの駆動制御装置
US5287292A (en) * 1992-10-16 1994-02-15 Picopower Technology, Inc. Heat regulator for integrated circuits
US5339445A (en) * 1992-11-16 1994-08-16 Harris Corporation Method of autonomously reducing power consumption in a computer sytem by compiling a history of power consumption
JPH06187064A (ja) * 1992-12-15 1994-07-08 Oki Electric Ind Co Ltd クロック制御方法及びその制御装置
US5497494A (en) * 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US7216064B1 (en) * 1993-09-21 2007-05-08 Intel Corporation Method and apparatus for programmable thermal sensor for an integrated circuit
EP0651314A1 (de) * 1993-10-27 1995-05-03 International Business Machines Corporation Vorrichtung und Verfahren zum thermischen Schutz eines Verarbeitungsgerätes
US5502838A (en) * 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
JPH07160367A (ja) * 1993-12-08 1995-06-23 Matsushita Electric Ind Co Ltd Cpu発熱抑制装置
US5422806A (en) * 1994-03-15 1995-06-06 Acc Microelectronics Corporation Temperature control for a variable frequency CPU
JP4008510B2 (ja) * 1994-05-09 2007-11-14 株式会社東芝 電子機器
US5493684A (en) * 1994-04-06 1996-02-20 Advanced Micro Devices Power management architecture including a power management messaging bus for conveying an encoded activity signal for optimal flexibility
US5580024A (en) * 1994-06-17 1996-12-03 Briee; Yves G. Combination portable book carrying device and bookstand
US5752011A (en) * 1994-06-20 1998-05-12 Thomas; C. Douglas Method and system for controlling a processor's clock frequency in accordance with the processor's temperature
US5490059A (en) * 1994-09-02 1996-02-06 Advanced Micro Devices, Inc. Heuristic clock speed optimizing mechanism and computer system employing the same
US5451892A (en) * 1994-10-03 1995-09-19 Advanced Micro Devices Clock control technique and system for a microprocessor including a thermal sensor
US6311287B1 (en) * 1994-10-11 2001-10-30 Compaq Computer Corporation Variable frequency clock control for microprocessor-based computer systems
DE19804269A1 (de) * 1998-02-04 1999-08-05 Heidelberger Druckmasch Ag Vorrichtung zum Auftragen einer Flüssigkeit auf einen Bedruckstoffbogen, insbesondere Druck, oder Lackierwerk, in einer Bogenrotationsdruckmaschine

Also Published As

Publication number Publication date
EP1361501A3 (de) 2005-01-05
DE69637817D1 (de) 2009-03-05
EP1361501A2 (de) 2003-11-12
US20050223254A1 (en) 2005-10-06
US20050223257A1 (en) 2005-10-06
US20050223256A1 (en) 2005-10-06
EP0730217B1 (de) 2003-10-15
JPH0922317A (ja) 1997-01-21
US20020099514A1 (en) 2002-07-25
US7389438B2 (en) 2008-06-17
EP1361501B1 (de) 2009-01-14
EP0730217A1 (de) 1996-09-04
US20050223255A1 (en) 2005-10-06
DE69630327D1 (de) 2003-11-20
US6427211B2 (en) 2002-07-30
TW307838B (de) 1997-06-11
US20010001880A1 (en) 2001-05-24
US6901524B2 (en) 2005-05-31
US6158012A (en) 2000-12-05
KR960032148A (ko) 1996-09-17
US20050223258A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
DE69630327T2 (de) Energieeinsparungs- und Temperaturverwaltungsanordnungen für Computer
DE102007048505B4 (de) Server, konfiguriert zum Verwalten von Leistung und Betriebsverhalten
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE60315236T2 (de) Vorrichtung und Verfahren zur Erhaltung des Datenzustands eines Personal Computers im Standby-Modus im Fall einer Unterbrechung der Wechselstromversorgung
DE102009041723B4 (de) Prozessor-Leistungsverbrauchsteuerung und Spannungsabsenkung über eine Mikroarchitektur-Bandbreitenbegrenzung
DE10392619B4 (de) Energieverwaltung für eine integrierte Grafikeinheit
DE69629123T2 (de) Apparat und verfahren zum reduzieren des stromverbrauchs durch skalierung von spannung und frequenz
DE69907512T2 (de) Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit
DE10297598B4 (de) Vorrichtung und System zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen
DE102007046002B4 (de) Vorrichtung und Verfahren zum Verwalten von Leistung in einem Informationsverarbeitungssystem
DE69535577T2 (de) Leistungsverwaltung mit charakteristischem leistungsverbrauch einer vorrichtung
DE102009030697B4 (de) Eingriff in die unabhängige Selbstregelung von leistungsaufnehmenden Einheiten
DE60311389T2 (de) Spannungsreglung eines Prozessors als Antwort auf Taktfrequenz
DE60112311T2 (de) Tragbares ultraschallsystem mit batterie als sicherung bei abschaltung und beim wiederstarten
DE10296549T5 (de) Ein Verfahren zum Bestimmen von Überführungspunkten bei Mikroprozessoren mit mehreren Leistungszuständen
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112006003444T5 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE112008001665T5 (de) Dynamische Wandlersteuerung für einen effizienten Betrieb
US7434072B2 (en) Integrated circuit power management control
DE102009015495A1 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
DE69233393T2 (de) Leistungsmanagementsfunktion für einen rückwärtskompatiblen mikroprozessor
DE112007001713T5 (de) System und Verfahren zum Steuern von Zuständen niedriger Energie bei Prozessoren
DE112012002664T5 (de) Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor

Legal Events

Date Code Title Description
8364 No opposition during term of opposition