-
Ein
immerwährendes
Entwicklungsziel von Herstellern ist die Verringerung des Energieverbrauchs von
Computersystemen. Durch einen verringerten Energieverbrauch verringert
sich typischerweise die Wärmeerzeugung
des Systems, wodurch die Zuverlässigkeit
erhöht
wird und die Kosten gesenkt werden. Ferner ist die Verringerung
des Energieverbrauchs bei der Maximierung der Lebensdauer von batteriebetriebenen tragbaren
Computersystemen besonders wichtig.
-
Es
sind verschiedene Techniken zum Verringern des Energieverbrauchs
von Computersystemen entwickelt worden. Diese Techniken umfassen
die stärkere
Integration von Schaltungen und den Einbau verbesserter Schaltungen
und Energiemanagementeinheiten (PMUs). Eine spezifische Technik
zum Verringern des Energieverbrauchs umfasst die Möglichkeit
zum Stoppen von Taktsignalen, die inaktive Schaltungsteile treiben.
Ein System, bei dem eine solche Technik angewandt wird, umfasst
typischerweise eine Energiemanagementeinheit, die inaktive Schaltungsteile
detektiert oder vorhersagt und entsprechend die den inaktiven Schaltungsteilen
zugeordneten Taktsignale stoppt. Durch Abschalten "nicht, benutzter" Taktsignale, die
inaktive Schaltungsteile treiben, wird der Gesamt-Energieverbrauch
des Systems verringert. Eine ähnliche
Technik umfasst die Möglichkeit,
die Frequenz von Taktsignalen zu reduzieren, welche Schaltungsteile
in nicht zeitkritischen Operationsmoden treiben, und eine weitere
Technik umfasst die Möglichkeit,
Energie von inaktiven Schaltungsteilen wegzunehmen.
-
In
WO-A-92 21081 ist ein tragbares Computersystem beschrieben, das
eine Reduzierung des Energieverbrauchs während Ruheperioden durch Reduzieren
der Frequenz eines CPU-Takts bietet. Ein Interrupt, das eintritt,
während
der CPU-Takt langsam abläuft,
führt den
CPU-Takt zu seiner Hochfrequenzrate zurück, bis das Interrupt verarbeitet
worden ist, wonach er zu seiner Niederfrequenzrate zurückkehrt.
-
In
EP-A-0565914 ist eine Einrichtung zur Energieeinsparung in einem
tragbaren Computersystem beschrieben, wobei sich drei CPUs das Energiemanagement
teilen. Wenn das Betriebssystem detektiert, dass keine sinnvolle
Arbeit durchgeführt
wird, tritt das System in einen Zustand mit niedrigem Energieverbrauch
ein, in dem ein CPU-Takt langsam abläuft. Wenn ein Interrupt während eines
Zustands mit niedrigem Energieverbrauch auftritt, kehrt der Haupt-CPU-Takt
wieder zu seiner hohen Geschwindigkeit zurück, bis das Interrupt verarbeitet
worden ist, und dann kehrt das System in seinen vorherigen Zustand
mit niedrigem Energieverbrauch zurück.
-
Gemäß dem Dokument "Technique for monitoring
a computer system's
activity for the purpose of a DOS-compatible system" IBM Technical Disclosure
Bulletin, Vol. 3, No. 4, September 1990, New York, US, Seite 474-477,
XP106 498, führt
jede inaktive Periode zu einem Eintritt des tragbaren Personalcomputers
in einen Energiesparmodus zwischen voll aktiv und inaktiv. Ein Interrupt
bewirkt, dass der Computer während
der Verarbeitung des Interrupts in einen aktiven Zustand zurückkehrt,
wonach er wider in den Energiesparmodus zurückkehrt.
-
Sowohl
EP-A-0458756 als auch EP-A-0549368 beschreiben Computersysteme,
die, wenn sie in einem Zustand mit niedrigem Energieverbrauch unterbrochen
werden, zum Bearbeiten des Interrupts in einen Bearbeitungszustand
mit hohem Energieverbrauch eintreten und in den vorherigen Zustand
mit niedrigem Energieverbrauch zurückkehren, wenn die Interrupt-Bearbeitung
abgeschlossen ist.
-
Bei
Computersystemen mit Energieverwaltung, bei denen die oben beschriebenen
Techniken zum Verringern des Energieverbrauchs angewandt werden,
werden typischerweise verschiedene Aktivitäten an der Verwendungsstelle oder
durch Snooping von Zentralbussen überwacht. Beispielsweise kann
eine Aktivitätsüberwachungseinrichtung
einer Energiemanagementeinheit direkt mit verschiedenen dem Mikroprozessor
und Peripherievorrichtungen zugeordneten Steuerleitungen verbunden
sein, um festzustellen, ob bestimmte Aktivitäten stattfinden. Je nach detektierten
Aktivitäten
kann die Energiemanagementeinheit in Reaktion darauf ausgewählte Schaltungsteile
abschalten, die Frequenzen ausgewählter Taktsignale verringern
und/oder ausgewählte
Taktsignale vollständig
stoppen.
-
In
den vergangenen Jahren sind integrierte Prozessoren als Ersatz der
früheren
diskreten Mikroprozessoren und diesen zugeordneten Peripherievorrichtungen
in Computersystemen entwickelt worden. Ein integrierter Prozessor
ist eine integrierte Schaltung, die sowohl die Funktionen eines
Mikroprozessors als auch die verschiedener Peripherievorrichtungen,
wie z. B. unter anderem eines Speicher-Kontrollers, eines DMA-Kontrollers,
eines Zeitgebers und einer Bus-Interface-Einheit, ausführt. Die
Einführung
integrierter Prozessoren hat zu einer Verringerung der Gesamtkosten,
der Größe und des
Gewichts von Computersystemen geführt und in vielen Fällen verbesserte
Leistungscharakteristiken der Computersysteme erbracht.
-
Ein
Problem, das bei der Konfiguration von Computersystemen mit integrierten
Prozessoren auftritt, besteht darin, dass zahlreiche Überwachungsstellen
einer externen Energiemanagementeinheit nicht mehr zur Verfügung stehen.
Das heißt,
da der CPU-Kern und verschiedene Peripherievorrichtungen auf einem
gemeinsamen Chip mit integrierter Schaltung aufgenommen sind, ist
es möglich,
dass die internen Verbindungen zwischen dem CPU-Kern und den Peripherievorrichtungen
nicht von außen
zugänglich
sind. Somit ist es möglich, dass
bestimmte Aktivitäten
nicht in Echtzeit detektierbar sind. Obwohl externe Paketstifte
an dem integrierten Prozessor vorgesehen sein können, um einen externen Direktzugriff
auf die ausgewählten
internen Überwachungsstellen
zu schaffen, führen
solche zweckbestimmte Stifte zu einer beträchtlichen Erhöhung der
Gesamtanzahl von Stiften des integrierten Prozes sors und erfordern
ferner eine Vergrößerung der
Chipgröße des integrierten
Prozessors zur Aufnahme zusätzlicher
Bonddraht-Pads. Folglich kommen zu den Kosten für den integrierten Prozessor
noch beträchtliche
Kosten hinzu.
-
Ein
weiteres Problem im Zusammenhang mit Computersystemen, einschließlich denjenigen,
bei denen integrierten Prozessoren eingebaut sind, betrifft das
Bestimmen, wie die Energiemanagementeinheit jede detektierte Aktivität behandeln
soll. Obwohl eine Vielzahl von Systemen vorgeschlagen worden ist,
bei denen die Energiemanagementeinheit bewirkt, dass die Frequenzen
der ausgewählten
Taktsignale bei Detektierung bestimmter Systemaktivitäten erhöht und bei
Nichtdetektierung der Systemaktivitäten gesenkt werden, behandeln
solche Systeme die detektierten Aktivitäten typischerweise nicht unterschiedlich.
Folglich kann die Effizienz dieser Systeme in gewissem Maße eingeschränkt sein,
da zahlreiche detektierte Aktivitäten andere damit verbundene
Auswirkungen auf den Energieverbrauch haben als andere Aktivitäten. Entsprechend
ist eine Energiemanagementeinheit für einen integrierten Prozessor
gewünscht,
die beispielsweise die Frequenzen ausgewählter Taktsignale, die Ein-/Aus-Zustände ausgewählter Taktsignale
und/oder das Anlegen von Energie an ausgewählte Schaltungsteile steuert,
so dass detektierte Aktivitäten
des integrierten Prozessors voneinander unterscheidbar sind, wodurch
ein optimales Energiemanagement erreicht wird.
-
Die
oben beschriebenen Probleme werden zum großen Teil durch ein erfindungsgemäßes Energiemanagementsystem
für einen
integrierten Prozessor gelöst.
Bei einer Ausführungsform
wird ein integrierter Prozessor bereitgestellt, der einen mit einer
Vielzahl von chipintegrierten Peripherievorrichtungen, wie z. B.
einem DMA-Kontroller, einem Interrupt-Kontroller und einem Zeitgeber,
gekoppelten CPU-Kern aufweist. Der integrierte Prozessor weist ferner
eine mit dem DMA-Kontroller, dem Interrupt-Kontroller und dem Zeitgeber
gekoppelte Energiemanagement-Mitteilungseinheit zum Überwachen
der internen Interrupt- und Busanforderungssignale des integrierten
Prozessors auf. Die Energiemanagement-Mitteilungseinheit kann ferner
andere aus gewählte
Aktivitäten
des integrierten Prozessors überwachen,
wie z. B. Aktivitäten
einer Gleitkomma-Koprozessor-Subeinheit. Anhand der detektierten
Aktivitäten,
falls solche vorliegen, kodiert die Energiemanagement-Mitteilungseinheit
eine Mitteilung auf einem Energiemanagement-Mitteilungsbus, wodurch
Informationen über
die internen Ereignisse des integrierten Prozessors an eine externe
Energiemanagementeinheit geliefert werden.
-
Eine
Energiemanagementeinheit, die auch zusätzliche Systemaktivitäten beispielsweise
durch Snooping eines Busses detektieren kann, klassifiziert jede
detektierte Aktivität
entweder als Primäraktivität oder als Sekundäraktivität. Die Energiemanagementeinheit
weist mehrere Zustände
auf, von denen jeder einem anderen Energiemanagementmodus zugeordnet
ist. Übergänge zwischen
den Zuständen
der Energiemanagementeinheit sind von der Art der detektierten Aktivitäten abhängig. Beim
Rücksetzen
des Computersystems tritt die Energiemanagementeinheit in einen
Bereit-Zustand ein, in dem das CPU-Taktsignal und das Systemtaktsignal
mit ihren maximalen Frequenzen angetrieben werden. Wenn über einen
vorbestimmten Zeitraum keine Primäraktivitäten detektiert werden, geht
die Energiemanagementeinheit sukzessive von dem Bereit-Zustand in
einen Schlummerzustand, dann in einen Standby-Zustand und dann in einen Aussetzzustand über. Im
Schlummerzustand wird die Frequenz des CPU-Taktsignals verlangsamt,
und im Standby-Zustand wird das CPU-Taktsignal gestoppt. Im Aussetzzustand
werden sowohl das CPU-Taktsignal
als auch das Systemtaktsignal gestoppt und kann die Energie von
ausgewählten
Schaltungsteilen weggenommen werden. Wenn eine Sekundäraktivität detektiert
wird, während
sich die Energiemanagementeinheit im Schlummerzustand oder im Bereit-Zustand
befindet, tritt die Energiemanagementeinheit in einen Übergangszustand
ein, in dem sowohl das CPU-Taktsignal als auch das Systemtaktsignal über einen
vorbestimmten Zeitraum mit maximaler Frequenz angetrieben werden.
Anschließend
kehrt die Energiemanagementeinheit wieder in den vorherigen Energiemanagementzustand
zurück.
Primäraktivitäten bewirken,
dass die Energiemanagementeinheit unabhängig von dem aktuellen Zustand
in den Bereit-Zustand eintritt. Bei einer Ausführungsform klassifiziert die
Energiemanagementeinheit Aktivitäten
einer Gleitkomma-Koprozessoreinheit, Parallelport-Aktivitäten, Seriellport-Aktivitäten, Disketten-Aktivitäten und
Festplatten-Aktivitäten
als Primäraktivitäten. Die
Energiemanagementeinheit klassifiziert Systemmanagement-Interrupt-(SMI-) Aktivitäten, Interrupt-Aktivitäten und
Zeitgeber-Aktivitäten
als Sekundäraktivitäten. Andere
ausgewählte
Aktivitäten
können
entweder als Primär- oder Sekundäraktivitäten programmiert
werden. Die Energiemanagementeinheit ermöglicht eine Flexibilität und Optimierung
der Energieverwaltung.
-
Gemäß einem
Aspekt der vorliegenden Erfindung ist eine Energiemanagementeinheit
für ein
Computersystem vorgesehen, wobei das Computersystem einen Prozessor,
mindestens eine Peripherievorrichtung und einen Taktgenerator zum
Liefern eines CPU-Taktsignals an den Prozessor und eines Systemtaktsignals an
die Peripherievorrichtung aufweist. Die Energiemanagementeinheit
weist auf: eine Taktsteuereinheit zum selektiven Verändern der
Frequenzcharakteristik des CPU-Taktsignals und des Systemtaktsignals;
einen Systemmonitor zum Detektieren einer Primäraktivität des Computersystems und einer
Sekundäraktivität des Computersystems;
und eine mit der Taktsteuereinheit und dem Systemmonitor gekoppelte
Energiemanagement-Zustandsmaschine.
Die Energiemanagementeinheit weist auf: einen ersten Zustand, in
dem die Taktsteuereinheit zum Treiben des CPU-Steuersignals mit
einer maximalen relativen Frequenz vorgesehen ist; einen zweiten
Zustand, in dem die Taktsteuereinheit zum Treiben des CPU-Taktsignals
mit einer niedrigeren Frequenz vorgesehen ist; einen dritten Zustand,
in dem die Taktsteuereinheit zum Stoppen des CPU-Taktsignals vorgesehen
ist; einen vierten Zustand, in dem die Taktsteuereinheit zum Stoppen
des CPU-Taktsignals und des Systemtaktsignals vorgesehen ist; und
einen Übergangszustand.
In dem Übergangszustand
ist die Taktsteuereinheit zum Treiben des CPU-Taktsignals bei der
maximalen relativen Frequenz vorgesehen, wobei der Zustand dadurch
gekennzeichnet ist, dass das CPU-Taktsignal über einen vorbestimmten Zeitraum
bei der maximalen relativen Frequenz getrieben wird, wobei die Energiemanagement-Zustandsmaschine
nach Ablauf der vorbestimmten Zeit in den vorhergehenden Zustand
zurückkehrt.
Ein Auftreten einer Primäraktivität bewirkt,
dass die Energiemanagement-Zustandsmaschine in den ersten Zustand
eintritt, und ein Auftreten der Sekundäraktivität bewirkt, dass die Energiemanagement-Zustandsmaschine
in den Übergangszustand
eintritt.
-
Bei
einem weiteren Aspekt der vorliegenden Erfindung ist ein Verfahren
zum Energiemanagement in einem Computersystem mit einem Prozessor,
mindestens einer Peripherievorrichtung und einem Taktgenerator zum
Liefern eines CPU-Taktsignals zu dem Prozessor und eines Systemtaktsignals
zu der Peripherievorrichtung vorgesehen. Das Verfahren umfasst folgende
Schritte: Treiben des CPU-Taktsignals mit einer maximalen relativen
Frequenz; Überwachen
des Computersystems hinsichtlich eines Auftretens entweder einer Primäraktivität oder einer
Sekundäraktivität; und selektives
Verändern
der Frequenzcharakteristiken des CPU-Taktsignals und des Systemtaktsignals
zum: Treiben des CPU-Taktsignals mit einer maximalen relativen Frequenz;
Treiben des CPU-Taktsignals mit einer reduzierten Frequenz; Stoppen
des CPU-Takts; Stoppen des CPU-Takts und des Systemtakts. Das Verfahren
ist dadurch gekennzeichnet, dass es ferner die Schritte des Treibens
des CPU-Taktsignals bei der maximalen relativen Frequenz über eine
vorbestimmte Zeit umfasst, wenn eine Sekundäraktivität auftritt, das CPU-Taktsignal
nach der vorbestimmten Zeit zu der vorhergehenden Frequenz zurückkehrt
und das CPU-Taktsignal
bei der maximalen relativen Frequenz getrieben wird, wenn eine Primäraktivität auftritt.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Weitere
Aufgaben und Vorteile der Erfindung werden anhand der detaillierten
Beschreibung bevorzugter Ausführungsformen
der Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen
offensichtlich. Es zeigen:
-
1 ein Blockschaltbild eines
Computersystems mit einem erfindungsgemäßen Energiemanagementsystem;
-
2 ein Blockschaltbild einer
in einen in 1 gezeigten
integrierten Prozessor eingebauten Energiemanagement-Mitteilungseinheit;
-
3 ein Zeitdiagramm eines
von der in 1 gezeigten
Energiemanagement-Mitteilungseinheit ausgeführten Mitteilungssendezyklus;
-
4 ein Diagramm einer in
der in 1 gezeigten Energiemanagement-Mitteilungseinheit
enthaltenen Algorithmus-Zustandsmaschine;
-
5 ein Diagramm einer in
der in 1 gezeigten Energiemanagementeinheit
enthaltenen Algorithmus-Zustandsmaschine;
-
6 ein Blockschaltbild mit
Darstellung von mit einer Implementierung einer erfindungsgemäßen Energiemanagementeinheit
in Zusammenhang stehenden Details.
-
Obwohl
die Erfindung verschiedene Modifikationen und alternative Ausführungsformen
umfassen kann, sind spezifische Ausführungsbeispiele in den Zeichnungen
gezeigt, und diese werden nachstehend genauer beschrieben. Es sei
jedoch darauf hingewiesen, dass die Zeichnungen und die detaillierte
Beschreibung nicht als Einschränkung
der Erfindung auf die spezielle hier offenbarte Ausführungsform
angesehen werden dürfen,
sondern dass im Gegenteil sämtliche
Modifikationen, Äquivalente
und Alternativen, die in die Wesensart und den Umfang der vorliegenden
Erfindung fallen, wie sie in den beiliegenden Patentansprüche definiert ist,
abgedeckt sind.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
1 zeigt ein Blockschaltbild
eines Computersystems 200, bei dem ein erfindungsgemäßes Energiemanagementsystem
zum Einsatz kommt. Das Computersystem 200 weist einen über einen
externen Bus 206 mit einer Peripherievorrichtung 204 gekoppelten
integrierten Prozessor 202 auf. Der integrierte Prozessor 202 ist
ferner über
einen Energiemanagement-Mitteilungsbus 210 mit einer Energiemanagementeinheit 208 gekoppelt.
-
Der
integrierte Prozessor 202 weist einen mit einer Vielzahl
von chipintegrierten Peripherievorrichtungen, wie z. B. einem DMA-
(Speicherdirektzugriffs-) Kontroller 222, einem Interrupt-Kontroller 224 und
einem Zeitgeber 226, gekoppelten CPU-Kern 220 auf.
Der CPU-Kern 220 ist über
eine chipintegrierte Bus-Interface-Einheit 228 mit dem
externen Bus 206 gekoppelt. Ein Taktgenerator 230 und
eine Energiemanagement- (PM-) Mitteilungseinheit 232 sind
ebenfalls in den integrierten Prozessor 202 eingebaut.
Die Operation des Taktgenerators 230 und der Energiemanagement-Mitteilungseinheit 232 werden
nachstehend genauer beschrieben.
-
Der
externe Bus 206 stellt beispielsweise einen PCI-Lokalbus
dar. Es sei darauf hingewiesen, dass andere Bus-Standards, wie z.
B. die ISA- oder EISA-Bus-Standards,
alternativ verwendet werden können.
Die Peripherievorrichtung 204 stellt eine beliebige extern
verbindbare Peripherievorrichtung dar, wie z. B. einen Video-Kontroller,
ein Diskettenlaufwerk oder einen Drucker.
-
Die
Energiemanagementeinheit 208 ist zum Verwalten und Minimieren
des Energieverbrauchs des Computersystems 200 vorgesehen.
Die Energiemanagementeinheit 208 empfängt ein kodiertes Signal PMCODE[2:0]
auf dem Energiemanagementbus 210. Das kodierte Signal PMCODE[2:0]
zeigt bestimmte Aktivitäten
an, die in dem integrierten Prozessor 202 auftreten, wie
nachstehend beschrieben. Die Energiemanagementeinheit 208 erzeugt
einen Satz Taktsteuersignale auf Leitungen 250 und einen
Satz Energiesteuersignale auf Leitungen 252. Die Taktsteuersignale
und die Energiesteuersignale werden jeweils zum Steuern der Frequenzen
ausgewählter
Taktsignale und zum Steuern der Energieversorgung ausgewählter Schaltungsteile verwendet.
Insbesondere werden die Taktsteuersignale von dem Taktgenerator 230 empfangen,
der ein CPU-Taktsignal und ein Systemtaktsignal erzeugt. Die Frequenzen
des CPU-Taktsignals und des Systemtaktsignals hängen von den von der Energiemanagementeinheit 208 erzeugten
Taktsteuersignalen ab. Die Energiesteuersignale auf den Leitungen 252 sind
zum Steuern der Energieversorgung ausgewählter Schaltungsteile vorgesehen,
die das Computersystem 200 aufweist, wie z. B. der Peripherievorrichtung 204.
Es sei darauf hingewiesen, dass bestimmte Energiesteuersignale zum
Steuern der Energieversorgung verschiedener interner Schaltungsteile
des integrierten Prozessors 202 zu dem integrierten Prozessor 202 geliefert
werden können.
Weitere Details bezüglich
der Energiemanagementeinheit 208 werden nachstehend beschrieben.
-
Der
CPU-Kern 220 ist eine Datenverarbeitungseinheit, die einen
vorbestimmten Befehlssatz implementiert, wie z. B. den Befehlssatz
des Mikroprozessors Modell 80486. Der CPU-Kern 220 weist
ferner eine Gleitkomma-Koprozessor-Subeinheit auf. Der DMA-Kontroller 222 ist
zum Steuern von Datenübertragungen zwischen
einem (nicht gezeigten) Systemspeicher und verschiedenen (ebenfalls
nicht gezeigten) I/O-Peripherievorrichtungen vorgesehen. Der Interrupt-Kontroller 224 ist
zum Anschließen,
Priorisieren und Abdecken verschiedener dem Computersystem 200 zugeordneter
Interrupt-Signale vorgesehen. Der Zeitgeber 226 ist für allgemeine
Zeitsteuer-Funktionen, einschließlich der Erzeugung eines Zeitgeber-Tick-Interrupt-Signals,
vorgesehen. Schließlich
ist die Bus-Interface-Einheit 228 zum Manipulieren und
Steuern der Übertragung
von Daten, Adressen und Steuersignalen zwischen dem externen Bus 206 und
einem internen Bus 260 vorgesehen. Es sei darauf hingewiesen,
dass der DMA-Kontroller 222, der Interrupt-Kontroller 224,
der Zeitgeber 226 und die Bus-Interface-Einheit 228 entsprechend
einer Vielzahl bekannter Schaltungsimplementierungen ausgebildet
sein können.
-
2 zeigt ein Blockschaltbild
der Energiemanagement-Mitteilungseinheit 232. Wie in der
Figur gezeigt, weist die Energiemanagement-Mitteilungseinheit 232 einen
Busanforderungsdetektor 302, einen NPU-Monitor 304 und
einen Interrupt-Detektor 306 auf, die alle mit einer Mitteilungssende-Logikeinheit 308 gekoppelt
sind. Der Busanforderungsdetektor 302 ist in der Lage,
ein dem Bus 260 zugeordnetes Busanforderungssignal und
die anschließende
Freigabe des Busses 260 zu detektieren. Es sei darauf hingewiesen,
dass das Busanforderungssignal von dem DMA-Kontroller 222 oder
der Bus-Interface-Einheit 228 (die
in Reaktion auf einen externen Busmaster das Busanforderungssignal
aktiviert) erzeugt werden kann. Der NPU-Monitor 304 ist
mit dem CPU-Kern 220 gekoppelt und in der Lage zu detektieren,
wann die Koprozessor-Subeinheit des CPU-Kerns 220 aktiv
ist. Der Interrupt-Detektor 306 ist mit dem Interrupt-Kontroller 224 und
dem CPU-Kern 220 gekoppelt und ist in der Lage, die Aktivierung
eines Interrupt-Signals INT, eines nichtabdeckbaren Interrupt-Signals
NMI, eines Systemmanagement-Interrupt-Signals SMI und eines Zeitgeber-Tick-Interrupt-Signals
zu detektieren. Der Interrupt-Detektor 306 ist ferner in
der Lage zu detektieren, wann ein entsprechender Interrupt-Service und ein entsprechender
Zeitgeber-Tick-Service gelöscht
ist.
-
Je
nach von dem Busanforderungsdetektor 302, dem NPU-Monitor 304 und
dem Interrupt-Detektor 306 detektierter Systemaktivität gibt die
Mitteilungssende-Logikeinheit 308 ein kodiertes Signal
auf dem Energiemanagement-Mitteilungsbus 210 aus. Das Kodieren
des Energiemanagement-Mitteilungsbusses 210 ist nachstehend
in Tabelle I aufgeführt.
-
-
Tabelle
I zeigt, dass der Energiemanagement-Mitteilungsbus 210 mit
einem PMCODE[2:0]-Wert von 001 angetrieben wird, wenn der
Beginn eines Koprozessor-Befehls von dem NPU-Monitor 304 detektiert
worden ist. Der Energiemanagement-Mitteilungsbus 210 wird
mit einem PMCODE[2:0]-Wert von 010 angetrieben, wenn entweder ein
externer Busmaster oder der interne DMA-Kontroller 222 aktiv ist, wie
von dem Busanforderungsdetektor 302 detektiert. Ein PMCODE[2:0]-Wert
von 011 wird an den Energiemanagement-Mitteilungsbus 210 angelegt,
wenn ein nicht abdeckbarer Interrupt von dem CPU-Kern 220 empfangen
wird, und ein PMCODE[2:0]-Wert von 100 wird an den Energiemanagement-Mitteilungsbus 210 angelegt,
wenn der CPU-Kern 220 einen Systemmanagementmodus-Interrupt
empfängt.
Ein PMCODE[2:0]-Wert von 101 wird an den Energiemanagement-Mitteilungsbus 210 angelegt,
wenn mindestens eine Interrupt-Service-Routine gerade durchgeführt wird,
und zwar ausschließlich
Zeitsteuerungs-Interrupts, und ein PMCODE[2:0]-Wert von 110 wird
an den Energiemanagement-Mitteilungsbus 210 angelegt, wenn
ein Zeitgeber-Interrupt ansteht oder in Betrieb ist. Schließlich wird
ein PMCODE[2:0]-Wert von 111 an den Energiemanagement-Mitteilungsbus 210 angelegt, wenn
eine oben genannte Busanforderung oder ein oben genannter Interrupt-Service
abgeschlossen ist.
-
3 zeigt ein Zeitdiagramm
eines von einer Mitteilungssende-Logikeinheit 308 ausgeführten Mitteilungssendezyklus.
Wie dargestellt, werden, wenn das Auftreten einer überwachten
Aktivität
oder die Beendigung einer überwachten
Aktivität
detektiert worden ist, die PMCODE[2:0]-Leitungen des Energiemanagement-Mitteilungsbusses 210 mit
einer gültigen
kodierten Mitteilung entsprechend den in Tabelle I aufgeführten Werten
angetrieben. Ein Validierungs-Strobesignal mit der Bezeichnung PMVALID#
wird gleichzeitig auf dem Energiemanagement-Mitteilungsbus 210 aktiviert,
um anzuzeigen, dass eine gültige
Mitteilung auf den Leitungen PMCODE[2:0] angesteuert wird.
-
4 zeigt ein Diagramm einer
Algorithmus-Zustandsmaschine 500, die in einer Mitteilungssende-Logikeinheit 308 enthalten
ist. Die Zustandsmaschine 500 tritt bei Rücksetzung
des Systems in einen Ruhezustand 502 ein und geht in den
Zustand 504 über,
wenn eine überwachte
Aktivität
entweder von dem Busanforderungsdetektor 302, dem NPU-Monitor 304 oder
dem Interrupt-Detektor 306 detektiert wird. Die Art der
detektierten Aktivität
wird im Zustand 504 detektiert. Die Zustandsmaschine 500 geht
als nächstes
in den Zustand 506 über,
in dem eine gültige
Mitteilung entsprechend den kodierten Werten aus Tabelle I auf den
Leitungen PMCODE[2:0] des Energiemanagement-Mitteilungsbusses 210 angesteuert
wird. Das Validierungs-Strobesignal PMVALID# ist auch im Zustand 506 aktiviert.
Wenn im Zustand 506 eine zusätzliche Aktivität detektiert wird,
geht die Zustandsmaschine 500 wieder in den Zustand 504 zurück, bestimmt
die Art der detektierten Aktivität
und kehrt wieder in den Zustand 506 zurück und treibt den Energiemanagement-Mitteilungsbus 210 entsprechend
an. Wenn sämtliche
Interrupts gelöscht
und sämtliche
Busanforderungen deaktiviert sind, tritt die Zustandsmaschine 500 in
einen Zustand 508 ein, in dem eine kodierte "Alles-klar"-Mitteilung auf dem
Energiemanagement-Mitteilungsbus 210 gesendet wird. Das
Validierungs-Strobesignal
PMVALID# wird wieder im Zustand 508 aktiviert, wenn die
Alles– klar-Mitteilung
auf den Leitungen PMCODE[2:0] aktiviert ist. Im Anschluss an die
Alles-klar-Mitteilung kehrt die Zustandsmaschine 500 wieder
in den Ruhezustand 502 zurück.
-
Anhand
von 1 werden als nächstes Details
der Energiemanagementeinheit 208 beschrieben. Die Energiemanagementeinheit 208 weist
eine mit einem Adressen-Snooping-Dekoder 262, einer Taktsteuereinheit 264,
einer Energiesteuereinheit 266 und einer Zeitüberwachungs-Zählereinheit 268 gekoppelte
Energiemanagement-Zustandsmaschine 260 auf. Eine Konfigurationsregistereinheit 270 ist
ebenfalls mit der Energiemanagement-Zustandsmaschine 260 und
ein Dekoder 272 ist mit der Konfigurationsregistereinheit 270 gekoppelt.
-
Die
Energiesteuereinheit 266 bzw. die Taktsteuereinheit 264 steuern
die Versorgung mit und das Wegnehmen von Energie von ausgewählten Teilen
des Computersystems 200 und die Frequenzen der CPU- und Systemtaktsignale
je nach internem Zustand der Energiemanagement-Zustandsmaschine 260. 6 zeigt ein Zustandsdiagramm
mit Darstellung mehrerer interner Zustände der Energiemanagement-Zustandsmaschine 260.
Insbesondere weist die Energiemanagement-Zustandsmaschine 260 einen
Bereit-Zustand 600, einen Schlummerzustand 602,
einen Standby-Zustand 604, einen Aussetzzustand 606 und
einen Übergangszustand 608 auf.
Im Bereit-Zustand 600 ist das Computersystem 200 vollständig betriebsbereit;
das heißt,
sämtliche
Komponenten des Computersystems 200 werden mit voller Geschwindigkeit
getaktet und sind eingeschaltet. Die Energiemanagement-Zustandsmaschine 260 tritt
bei Einschalten des Computersystems und bei Rücksetzung in den Bereit-Zu stand 600 ein.
Die Energiemanagement-Zustandsmaschine 260 tritt auch dann in
den Bereit-Zustand 600 ein, wenn eine primäre Systemaktivität detektiert
wird oder wenn ein "Bereit-Zustand"-Wert von der Software über den
externen Bus 206 in ein (nicht gezeigtes) internes Zustandsregister
der Konfigurationsregistereinheit 270 geschrieben wird.
Die Klassifizierung bestimmter Aktivitäten als "Primär"aktivitäten wird
nachstehend beschrieben.
-
Die
Energiemanagement-Zustandsmaschine 260 geht vom Bereit-Zustand 600 in
den Schlummerzustand 602 über, wenn während einer gesamten ersten
Zeitüberwachungsdauer
(0,125 Sekunden bis 16 Sekunden) keine Primäraktivität detektiert wird, wie von
einem ersten Zeitüberwachungszähler in
der Zeitüberwachungs-Zählereinheit 268 festgestellt.
Die Energiemanagement-Zustandsmaschine 260 kann
alternativ durch Schreiben eines "Schlummerzustand"-Werts durch die Software in das Zustandsregister
der Konfigurationsregistereinheit 270 in den Schlummerzustand 602 eintreten.
Im Schlummerzustand 602 steuert die Taktsteuereinheit 264 den
Taktgenerator 230 derart, dass das CPU-Taktsignal auf eine
vorprogrammierte Frequenz verlangsamt wird. Es sei darauf hingewiesen,
dass im Schlummerzustand 602 das Systemtaktsignal weiterhin
mit seiner maximalen relativen Frequenz angetrieben wird und sämtliche
Komponenten eingeschaltet sind.
-
Die
Energiemanagement-Zustandsmaschine 260 geht vom Schlummerzustand 602 in
den Standby-Zustand 604 über, wenn das System während einer
gesamten zweiten Zeitüberwachungsdauer
(1 Minute bis 16 Minuten) im Ruhezustand ist, ohne dass Primäraktivitäten auftreten,
wie von einem zweiten Zeitüberwachungszähler in
der Zeitüberwachungs-Zählereinheit 268 festgestellt.
Die Energiemanagement-Zustandsmaschine 260 kann alternativ
durch Schreiben der Software in das Zustandsregister der Konfigurationsregistereinheit 270 in
den Standby-Zustand 604 eintreten. Im Standby-Zustand 604 kann
die Energiesteuereinheit 266 bewirken, dass die Energie
von ausgewählten
Schaltungsteilen, wie z. B. der Peripherievorrichtung 204, weggenommen
wird. Ferner bewirkt die Taktsteuereinheit 264 im Standby-Zustand 604,
dass der Taktgenerator 230 das CPU-Taktsignal abschaltet.
Das Systemtaktsignal wird weiterhin mit seiner maximalen relativen Frequenz
angetrieben.
-
Die
Energiemanagement-Zustandsmaschine 260 geht vom Standby-Zustand 604 in
den Aussetzzustand 606 über,
wenn das System während
einer gesamten dritten Zeitüberwachungsdauer
(5 Minuten bis 60 Minuten) im Ruhezustand ist, ohne dass Primäraktivitäten auftreten,
wie von einem dritten Zeitüberwachungszähler in
der Zeitüberwachungs-Zählereinheit 268 festgestellt.
Die Energiemanagement-Zustandsmaschine 260 kann alternativ
durch Schreiben eines "Aussetzzustand"-Werts durch die
Software in das Zustandsregister der Konfigurationsregistereinheit 270 in
den Aussetzzustand 606 eintreten. Im Aussetzzustand 606 der
Energiemanagement-Zustandsmaschine 260 kann die Energiesteuereinheit 266 bewirken,
dass die Energie von einem ausgewählten Schaltungsteil, wie z.
B. einer Peripherievorrichtung 244, weggenommen wird, und
bewirkt die Taktsteuereinheit 264, dass der Taktgenerator 230 sowohl
das CPU-Taktsignal als auch das Systemtaktsignal stoppt. Je nach
System kann die Energiesteuereinheit 252 ferner bewirken,
dass Energie von weiteren Schaltungsteilen weggenommen wird.
-
Die
Energiemanagement-Zustandsmaschine 260 tritt entweder aus
dem Schlummerzustand 602 oder aus dem Standby-Zustand 604 in
den Übergangszustand 608 ein,
wenn eine Sekundäraktivität detektiert
wird, wie nachstehend genauer beschrieben. Je nach detektierter
Sekundäraktivität bleibt
die Energiemanagement-Zustandsmaschine 260 über einen
vorbestimmten Zeitraum nach der Detektierung der Sekundäraktivität oder über einen
vorbestimmten Zeitraum nach Beendigung der Sekundäraktivität in dem Übergangszustand 608.
Im Übergangszustand 608 bewirkt
die Energiemanagement-Zustandsmaschine 260, dass die Taktsteuereinheit 264 den
Taktgenerator 230 derart steuert, dass das CPU-Taktsignal
und das Systemtaktsignal mit ihren maximalen relativen Frequenzen
angetrieben werden. Ferner werden sämtliche Schaltungsteile mit
Energie versorgt. Nach Ablauf des vorbestimmten Zeitraums kehrt
die Energiemanagement-Zustandsmaschine 260 wieder in den
vorherigen Zustand zurück
(d. h. den Schlummerzustand 602 oder den Standby-Zustand 604).
-
Die
Energiemanagement-Zustandsmaschine 260 führt bei
Aktivierung des Validierungs-Strobesignals PMVALID# eine Zwischenspeicherung
jeder von der Energiemanagement-Mitteilungseinheit 232 übermittelten Mitteilung
durch. Wenn die Energiemanagement-Zustandsmaschine 260 eine
neue Mitteilung empfängt,
stellt sie fest, ob eine Primär-
oder eine Sekundäraktivität detektiert
worden ist. In der nachstehenden Tabelle II sind die Arten der in
dem Computersystem 200 detektierten Aktivitäten sowie
die Klassifizierung jeder Aktivität und die Detektionsquelle
zusammengefasst. Es sei darauf hingewiesen, dass zusätzlich zu
den über
den Energiemanagementbus 210 empfangenen Mitteillungen
weitere Systemaktivitäten
durch Snooping des externen Busses 206 detektiert werden.
Der Adressen-Snooping-Dekoder 262 führt diese Snooping-Funktion
durch und liefert eine Anzeige verschiedener detektierter Aktivitäten an die
Energiemanagement-Zustandsmaschine 260. Es sei ferner darauf
hingewiesen, dass die Klassifizierung bestimmter detektierter Aktivitäten über die
Software programmierbar ist; das heißt, bestimmte Aktivitäten können, wie
nachstehend angezeigt, von der Energiemanagement-Zustandsmaschine 260 entweder
als Primäraktivitäten oder
als Sekundäraktivitäten behandelt
werden, und zwar je nach den Anforderungen des Programmierers. Die
Klassifizierung dieser Aktivitäten
wird durch Schreiben in ausgewählte
Konfigurationsregister in der Konfigurationsregistereinheit 270 programmiert.
-
-
Aus
Tabelle II ist ersichtlich, dass die Energiemanagement-Zustandsmaschine 260 Aktivitäten einer Gleitkomma-Koprozessoreinheit,
Parallelport-Aktivitäten,
Seriellport-Aktivitäten,
Disketten-Aktivitäten
und Festplatten-Aktivitäten
als Primäraktivitäten klassifiziert.
Die Energiemanagementeinheit klassifiziert Systemmanagement-Interrupt-
(SMI-) Aktivitäten,
Interrupt-Aktivitäten
und Zeitgeber-Aktivitäten
als Sekundäraktivitäten. Aktivitäten nichtabdeckbarer
Interrupts, Busanforderungsaktivitäten, Speicherzyklen, Video-Aktivität und Tastatur-Aktivität sind jeweils
programmierbare Aktivitäten
und können
somit entweder als primär
oder sekundär
klassifiziert werden.
-
Systemmanagement-Interrupt-Aktivitäten und
Interrupt-Aktivitäten
sind Sekundäraktivitäten, die
bewirken, dass das System in den Übergangszustand 608 eintritt.
Ein Übergang-Zähler, der
die Zeitdauer bestimmt, während
der das System im Übergangszustand 608 verbleibt,
beginnt mit dem Zählen
jedoch erst nach Empfangen der entsprechenden Lösch-Mitteilung von dem Energiemanagement-Mitteilungsbus 210.
Nach Empfang der entsprechenden Lösch-Mitteilung beginnt der Übergang-Zähler mit
dem Zählen über einen
vorbestimmten Zeitraum und bewirkt nach Beendigung, dass die Energiemanagement-Zustandsmaschine 260 in ihren
ursprünglichen
Zustand zurückkehrt.
Busanforderungsaktivitäten
werden im wesentlichen genauso behandelt, wenn diese als Sekundäraktivitäten programmiert
sind. Es sei darauf hingewiesen, dass der oben genannte Übergang-Zähler integraler
Bestandteil der Energiemanagement-Zustandsmaschine 260 ist.
Es sei ferner darauf hingewiesen, dass die von dem Übergang-Zähler gesteuerte
Zählperiode über ein
Konfigurationsregister der Konfigurationsregistereinheit 270 programmierbar
ist.
-
Zeitgeber-Tick-Aktivitäten können andererseits
bewirken, dass der Übergang-Zähler unmittelbar bei Eintritt
in den Übergangszustand 608 mit
dem Zählen
beginnt. Bei einer Ausführungsform
bewirkt das Auftreten eines Zeitgeber-Ticks, dass der Übergang-Zeitgeber für eine Dauer
von 120 μsek.
mit dem Zählen
beginnt. Nach Ablauf dieses Zeitraums kehrt die Energiemanagement-Zustandsmaschine
aus dem Übergangszustand 608 wieder
in den ursprünglichen
Zustand zurück.
Es sei darauf hingewiesen, dass diese spezielle Behandlung von Zeitgeber-Ticks
von dem Programmierer programmierbar sein kann und dass in einem
Modus Zeitgeber-Ticks auf die gleiche Weise wie oben mit Bezug auf
Systemmanagement-Interrupt-Aktivitäten und Interrupt-Aktivitäten beschrieben
behandelt werden können.
-
Der
Dekoder 272 ist zum Dekodieren von I/O-Schreibzyklen vorgesehen,
die beispielsweise von dem integrierten Prozessor 202 auf
dem externen Bus 206 ausgeführt werden, und ermöglicht ein
Schreiben von Konfigurationsdaten durch die Software in die verschiedenen
internen Register der Konfigurationsregistereinheit 270.
Es sei darauf hingewiesen, dass die mit der Zeitüberwachungs-Zählereinheit 268 in
Zusammenhang stehenden Zeitüberwachungs-Zählperioden über bestimmte Register der
Konfigurationsregistereinheit 270 programmierbar sein können. Es
sei ferner darauf hingewiesen, dass die vorbestimmte Zeitdauer,
während
der die Energiemanagement-Zustandsmaschine 260 im Übergangszustand 608 verbleibt,
ebenfalls programmierbar sein kann.
-
6 zeigt ein Blockschaltbild
mit Darstellung von Details in Zusammenhang mit einer Implementierung
einer Energiemanagementeinheit 208, die entsprechend der
vorstehenden Beschreibung arbeitet, wobei das Blockschaltbild im
wesentlichen dem Blockschaltbild aus 1 entspricht.
Schaltungsteile, die den in 1 gezeigten
entsprechen, sind mit den gleichen Bezugszeichen versehen. Es sei
darauf hingewiesen, dass verschiedene Teile des integrierten Prozessors 202 und
der Energiemanagementeinheit 208 der Einfachheit und Klarheit
halber aus den Zeichnungen weggelassen worden sind.
-
Bei
der Implementierung gemäß 6 erzeugt die Taktsteuereinheit 264 einen
Satz Steuersignale, die jeweils als "SlowCPU", "StopCPU" und "Suspend" bezeichnet sind.
Bei Aktivierung des SlowCPU-Signals bewirkt der Taktgenerator 230,
dass die Frequenz des CPU-Taktsignals (relativ zu einer maximalen
Frequenz) verringert wird. Bei Aktivierung des StopCPU-Signals stoppt
der Taktgenerator das CPU-Taktsignal. Schließlich stoppt bei Aktivierung
des Suspend-Signals der Taktgenerator sowohl das CPU-Taktsignal
als auch das Systemtaktsignal.
-
Aktivierungen
des SlowCPU-Signals, des StopCPU-Signals und des Suspend-Signals hängen von dem
aktuellen Zustand (d. h. Bereit-, Schlummer-, Standby-, Aussetz-
oder Übergangszustand)
der Energiemanagement-Zustandsmaschine 260 ab. Die Konfigurationsregistereinheit 270 weist
ein Taktsteuerregister 700 auf, in dem ein Konfigurationswert
gespeichert ist, mit dem gesteuert wird, welches Signal, falls ein
solches vorhanden ist, in einem vorgegebenen Zustand aktiviert wird.
Bei einer Ausführungsform
ist die Taktsteuereinheit derart konfiguriert, dass keines der Taktsteuersignale
(SlowCPU, StopCPU und Suspend) aktiviert wird, wenn sich die Energiemanagement-Zustandsmaschine 260 entweder
im Bereit-Zustand 600 oder im Übergangszustand 608 befindet.
Das Suspend-Signal wird von der Taktsteuereinheit 264 aktiviert,
wenn sich die Energiemanagement-Zustandsmaschine 260 im
Aussetz-Zustand 608 befindet. Je nach in dem Taktsteuerregister 700 gespeichertem
Konfigurationswert aktiviert die Taktsteuereinheit 264 entweder
das SlowCPU-Signal oder das StopCPU-Signal (oder keines von beiden),
wenn sich die Energiemanagement-Zustandsmaschine 260 im
Schlummer-Zustand 602 befindet. Ähnlich aktiviert die Taktsteuereinheit 264 je
nach im Taktsteuerregister 700 gespeichertem Konfigurationswert
entweder das SlowCPU-Signal oder das StopCPU-Signal (oder keines
von beiden), wenn sich die Energiemanagement-Zustandsmaschine 260 im
Standby-Zustand 604 befindet. Folglich kann die spezifische
Steuerung des CPU-Taktsignals und des Systemtaktsignals während des Schlummerzustands 602 und
des Standby-Zustands 604 von
dem Benutzer programmiert werden.
-
Die
in 6 gezeigte Konfigurationsregistereinheit 270 ist
ferner mit einem Bereit-Zeitüberwachungsregister 701,
einem Schlummer-Zeitüberwachungsregister 702 und
einem Standby-Zeitüberwachungsregister 703 dargestellt.
Diese Register werden zum Speichern von Konfigurationswerten verwendet,
um eine Einstellung des Bereit-Zeitüberwachungszeitraums, des Schlummer-Zeitüberwachungszeitraums
und des Standby-Zeitüberwachungszeitraums,
die von der Zeitüberwachungs-Zählereinheit 268 gesteuert
werden, durch den Programmierer zu ermöglichen. Die Konfigurationsregistereinheit 270 ist
schließlich
mit einem Übergangs-Zeitüberwachungsregister 704 dargestellt,
das eine Veränderung
der Zeitüberwachungszeiträume, die von
dem Übergangs-Zähler der
Energiemanagement-Zustandsmaschine 260 überwacht werden, durch den Programmierer
ermöglicht.
-
Es
sei darauf hingewiesen, dass zwar die in 1 gezeigte Energiemanagement-Mitteilungseinheit 232 die
spezifischen, in Tabelle I aufgeführten Aktivitäten detektiert,
jedoch weitere interne Systemaktivitäten alternativ oder zusätzlich detektiert
und über
den Energiemanagement-Mitteilungsbus 210 angezeigt werden können. Beispielsweise
kann die Energiemanagement-Mitteilungseinheit mit einem Dekoder
zum Durchführen eines
Snooping des internen Busses 260 zwecks Detektierung der
Ausführung
ausgewählter
Buszyklen konfiguriert sein. Ferner können auch andere Quellen zum
Detektieren ausgewählter
Systemaktivitäten
verwendet werden. Ferner steuert die in 1 gezeigte Energiemanagementeinheit 208 zwar
die Erzeugung verschiedener Taktsignale innerhalb des Computersystems 200 sowie
die Versorgung verschiedener Peripherievorrichtungen und Subeinheiten
des Computersystems 200 mit Energie, die Energiemanagementeinheit 208 kann
jedoch auch zum ausschließlichen
Steuern von ausgewählten
Taktsignalen des Computersystems 200 oder zum ausschließlichen
Steuern der Versorgung verschiedener Peripherievorrichtungen mit
Energie konfiguriert sein.
-
Ferner
sei darauf hingewiesen, dass, wenn sich die Energiemanagement-Zustandsmaschine
im Aussetz-Zustand 606 befindet, die Versorgung des System-Oszillators
mit Energie unterbrochen werden kann, um eine weitere Verringerung
des Energieverbrauchs zu begünstigen.
-
Zahlreiche
Varianten und Modifikationen werden für Fachleute auf dem Sachgebiet
anhand der vorstehenden Beschreibung offensichtlich. Beispielsweise
kann der externe Bus 206 direkt oder über eine Busbrücke mit
dem integrierten Prozessor 202 gekoppelt sein. Die folgenden
Patentansprüche
sind derart zu interpretieren, dass sie sämtliche Variationen und Modifikationen
enthalten.