-
Datenverarbeitungsvorrichtungen,
speziell tragbare Vorrichtungen, sind häufig dadurch beschränkt, wie
lange sie mit Batteriestrom laufen können, ohne wieder mit einer
Wechselstromversorgung verbunden zu werden. Folglich bestehen fortwährende Bemühungen,
den Stromverbrauch verschiedener Computerkomponenten, einschließlich der
Zentralverarbeitungseinheit, zu verringern. Ein Halten elektronischer
Vorrichtungen, wie zum Beispiel einer Zentralverarbeitungseinheit,
eines Speichercontrollers oder eines Speichers, in ihrem niedrigstmöglichen
Stromzustand hat mehrere Vorteile. Zum Beispiel erlaubt es einen
Betrieb von batteriebetriebenen Geräten für längere Zeiträume zwischen dem Wiederaufladen.
Eine Reduktion des Stromverbrauchs verringert außerdem die thermische Verlustleistung
durch die Zentralverarbeitungseinheit. Verringerte thermische Verlustleistung
erlaubt es der Zentralverarbeitungseinheit, für längere Zeiträume mit voller Geschwindigkeit
zu arbeiten, während
sie innerhalb ihrer thermischen Verlustleistungsspezifikationen
bleibt. Verringerte thermische Verlustleistung verringert auch den
Bedarf an Lüftern
und anderen Komponenten, die zur Verhinderung einer zunehmenden
Erwärmung
in einem Computer verwendet werden.
-
Eine
bei der Entwicklung von Stromverwaltungssystemen verwendete Standardspezifikation
ist die ACPI-Spezifikation (advanced configuration and power interface)
(zum Beispiel die Rev. 2.0 vom 27.7.2000; siehe auch ACPI Component
Architecture Programmer Reference, Rev. 1.05, 27.2.2001, erhältlich von
Intel Corporation, Santa Clara, Kalifornien). Ein Ziel der ACPI
ist die Verbesserung der Stromverwaltungsfunktionalität und -robustheit
sowie die Ermöglichung
einer industrieweiten Implementierung gemeinsamer Stromverwaltungsmerkmale.
-
Die
ACPI definiert eine Anzahl von Prozessor-Stromzuständen, die
Prozessorstromverbrauchs- und thermische Verwaltungszustände innerhalb
eines globalen Betriebszustandes sind. Zu diesen Prozessorzuständen gehören: (i)
ein C⌀-Stromzustand,
(ii) ein C1-Stromzustand,
(iii) ein C2-Stromzustand und (iv) ein C3-Stromzustand. Im C⌀-Stromzustand
führt der
Prozessor Anweisungen aus und ist bei voller Leistung. In den Stromzuständen C1 und
C2 befindet sich der Prozessor in einem Nicht-Ausführungs-Stromzustand
(nonexecuting power state). Der C2-Stromzustand verwendet jedoch weniger
Strom als der C1-Zustand.
Im C1- und im C2-Stromzustand erlaubt der Prozessor es dem Bus immer
noch, den Prozessor-Cache-Speicher zu snoopen und dadurch Cache-Kohärenz aufrechtzuerhalten.
Der C3-Stromzustand bietet verbesserte Stromersparnisse gegenüber den
Stromzuständen
C1 und C2, aber auf Kosten einer höheren Stromabschaltungsaustrittslatenz
(power down exit latency) für
Speicher.
-
Bei
herkömmlichen
Systemen bewirkt die Stromverwaltungslogik, daß die CPU unter bestimmten
Umständen
von einem Stromzustand C2 zu einem Stromzustand C⌀ mit hoher
Leistung zurückwechselt.
Ein Halten der elektronischen Vorrichtung in einem niedrigeren Stromzustand,
als andernfalls erzielt werden könnte,
und Verringern der Anzahl von Übergängen zwischen
Stromzuständen
verbessert die Systemleistungsfähigkeit
durch Verringern von Latenzen, die durch Umschaltung zwischen designierten
Stromzuständen
verursacht werden, und Halten des Gesamtstromverbrauchs auf niedrigerem
Niveau.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 zeigt
ein Diagramm einer Ausführungsform
von Übergängen zwischen
Prozessor-Stromzuständen in
der ACPI-Spezifikation.
-
2 zeigt
ein Flußdiagramm
einer Ausführungsform
einer Routine zum Setzen des Speichers in einen Selbstauffrischbetrieb
und von Speicher-DLLs (digital locked loops) in einen Stromabschaltmodus
(power down mode), während
in dem C2-Stromzustand für
eine integrierte Graphikkonfiguration die Verwendung von Bus-Mastern
aufrechterhalten wird und das Display aktualisiert gehalten wird.
-
3 ist
ein Diagramm einer Ausführungsform
einer beispielhaften integrierten Graphikkonfiguration zum Setzen
des Speichers in einen Selbstauffrischbetrieb und DLL in einen Stromabschaltmodus,
während
in dem C2-Stromzustand die Verwendung von Bus-Mastern aufrechterhalten
und das Display aktualisiert gehalten wird.
-
4(a) und (b) zeigen Flußdiagramme von Ausführungsformen
von Routinen zum Setzen des Speichers in einen Selbstauffrischbetrieb
und von DLLs in einen Stromabschaltmodus, während in dem Stromzustand C2
für eine
diskrete Konfiguration die Verwendung von Bus-Mastern aufrechterhalten wird.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Ausführungsformen
der vorliegenden Erfindung liefern ein Verfahren und eine Vorrichtung
zum Sparen von Strom in einer elektronischen Vorrichtung. Insbesondere
versetzen Ausführungsformen der
vorliegenden Erfindung den Speicher dynamisch in den Selbstauffrischbetrieb
und Chipsatz-Taktschaltungen in den Stromabschaltmodus (power down
mode), während
in einem Stromsparmodus, wie etwa C2, das Display aktualisiert gehalten
wird und Bus-Master-Zyklen
abgewickelt werden. Das Halten des Prozessors in einem Stromsparmodus, wie
etwa C2, spart Strom und verringert die Leistungsdifferenz zwischen
integrierten und nicht-integrierten Graphik-Chipsatz-Plattformen,
auch wenn snoopbare Bus-Master-Zyklen auftreten (im Gegensatz beispielsweise
zum C3-Zustand).
-
In
der ausführlichen
Beschreibung werden zahlreiche spezifische Einzelheiten dargelegt,
um für ein
genaues Verständnis
der vorliegenden Erfindung zu sorgen. Für Fachleute ist jedoch erkennbar,
daß die
vorliegende Erfindung ohne diese spezifischen Einzelheiten ausgeübt werden
kann. In anderen Fällen
wurden wohlbekannte Verfahren, Prozeduren, Komponenten und Schaltungen
ausführlich
beschrieben, damit die vorliegende Erfindung nicht verdeckt wird.
-
Bestimmte
Teile der folgenden ausführlichen Beschreibung
werden über
Algorithmen und symbolische Darstellungen von Operationen an Datenbits oder
Binärsignalen
in einem Computer dargestellt. Diese algorithmischen Beschreibungen
und Darstellungen sind die Mittel, mit denen Fachleute auf dem Gebiet
der Datenverarbeitung anderen Fachleuten das Wesentliche ihrer Arbeit
vermitteln. Ein Algorithmus wird hier und im allgemeinen als eine
selbstkonsistente Sequenz von Schritten betrachtet, die zu einem
gewünschten
Ergebnis führt.
Die Schritte enthalten physische Manipulationen physischer Größen. Diese
Größen nehmen
gewöhnlich,
aber nicht unbedingt, die Form von elektrischen oder magnetischen Signalen
an, die gespeichert, transferiert, kombiniert, verglichen und anderweitig
manipuliert werden können.
Es hat sich manchmal hauptsächlich
aus Gründen
der üblichen
Benutzung als zweckmäßig erwiesen,
diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Terme,
Zahlen oder dergleichen zu bezeichnen. Es versteht sich jedoch,
daß all
diese und ähnliche
Ausdrücke
mit den entsprechenden physischen Größen assoziiert werden sollen
und lediglich zweckmäßige, auf
diese Größen angewandte
Bezeichnungen sind. Sofern es nicht spezifisch aus den folgenden
Abhandlungen hervorgeht, versteht sich, daß sich Abhandlungen, die Ausdrücke wie "Verarbeitung" oder "Berechnung" oder "Kalkulation" oder "Bestimmung" oder dergleichen
verwenden, in der gesamten Beschreibung auf die Handlung und auf Prozesse
eines Computers oder eines Datenverarbeitungssystems oder einer ähnlichen
elektronischen Datenverarbeitungsvorrichtung beziehen, die als physische
(elektronische) Größen dargestellte
Daten in Registern und/oder Speichern des Datenverarbeitungssystems
in andere Daten manipulieren und transformieren, die in ähnlicher
Weise als physische Größen in den
Speichern, Registern oder anderen Vorrichtungen zur Informationsspeicherung,
-übertragung
oder -anzeige des Datenverarbeitungssystems dargestellt werden.
-
Ausführungsformen
der vorliegenden Erfindung können
in Hardware oder in Software oder in einer Kombination von beiden
implementiert werden. Ausführungsformen
der Erfindung können
jedoch auch als Computerprogramme implementiert werden, die auf
programmierbaren Systemen ausgeführt werden,
die mindestens einen Prozessor, ein Datenspeichersystem (einschließlich flüchtiger
und nichtflüchtiger
Speicher- und/oder Speicherungselemente), mindestens eine Eingabevorrichtung
und mindestens eine Ausgabevorrichtung umfassen. Programmcode kann
auf Eingangsdaten angewandt werden, um die hier beschriebenen Funktionen durchzuführen und
Ausgangsinformationen zu erzeugen. Die Ausgangsinformationen können auf
bekannte Weise an eine oder mehrere Ausgabevorrichtungen angelegt
werden.
-
Für die Zwecke
der vorliegenden Anmeldung enthält
ein Verarbeitungssystem ein beliebiges System mit einem Prozessor,
wie zum Beispiel einem digitalen Signalprozessor (DSP), einem Mikrocontroller,
einer anwendungsspezifischen integrierten Schaltung (ASIC) oder
einem Mikroprozessor.
-
Die
Programme können
in einer höheren prozeduralen
oder objektorientierten Programmiersprache zur Kommunikation mit
einem Verarbeitungssystem implementiert werden. Die Programme können auch
gegebenenfalls in Assembler- oder Maschinensprache implementiert
werden. Tatsächlich ist
der Schutzumfang der Erfindung nicht auf irgendeinde konkrete Programmiersprache
beschränkt.
In jedem Fall kann die Sprache eine compilierte oder interpretierte
Sprache sein.
-
Die
Programme können
auf einem Speichermedium oder einer Speichervorrichtung gespeichert werden
(z.B. Festplattenlaufwerk, Diskettenlaufwerk, Nur-Lese-Speicher
(ROM), CD-ROM-Vorrichtung, Flash-Speichervorrichtung,
DVD (digital versatile disk) oder einer anderen Speichervorrichtung), das/die
durch ein Mehrzweck- oder spezielles programmierbares Verarbeitungssystem
lesbar ist, um das Verarbeitungssystem zu konfigurieren und zu betreiben,
wenn das Speichermedium bzw. die Speichervorrichtung von dem Verarbeitungssystem
gelesen wird, um die hier beschriebenen Verfahren durchzuführen. Ausführungsformen
der Erfindung können
auch durch ein maschinenlesbares Speichermedium implementiert werden,
das für
die Verwendung mit einem Verarbeitungssystem konfiguriert ist, wobei
das so konfigurierte Speichermedium bewirkt, daß das Verarbeitungssystem auf
eine spezifische und vordefinierte Weise arbeitet, um die hier beschriebenen
Funktionen durchzuführen.
-
1 zeigt
ein Diagramm einer Ausführungsform 100 von Übergängen zwischen
Prozessorstromzuständen
in der ACPI-Spezifikation. Alle Zustände, der C⌀-Zustand 102, der
C1-Zustand 104, der
C2-Zustand 106 und der C3-Zustand 108 sind in einem
G⌀-Arbeitszustand 110 umfaßt. Ein
G⌀-Arbeitszustand
wird durch die ACPI-Spezifikation als ein Computerzustand definiert,
bei dem das System Benutzermodus-(Anwendungs-)Threads abfertigt.
Im G⌀-Arbeitszustand
werden diese Threads ausgeführt.
In diesem Zustand werden die Stromzustände von Vorrichtungen (Peripheriegeräten) dynamisch geändert. In
diesem G⌀-Zustand 110 wechselt
ein Prozessor zwischen verschiedenen Prozessorstromzuständen, welche
den C⌀-Zustand 102,
den C1-Zustand 104, den C2-Zustand 106 und den
C3-Zustand 108 umfassen.
-
Im
C⌀-Zustand 102 befindet
sich der Prozessor auf voller Leistung. In diesem Zustand werden
die Komponenten eines typischen Systems mit Strom versorgt, und
die Takte (clocks) in dem System können mit voller Geschwindigkeit
laufen. Der C1-Zustand 104 definiert einen Nicht-Ausführungs-Zustand,
in dem der Prozessorstromzustand die niedrigste Latenz aufweist.
-
Der
C2-Zustand 106 ist ein zweiter Nicht-Ausführungs-Stromzustand,
der gegenüber dem
C1-Zustand 104 verbesserte Stromersparnisse bietet. Der
C2-Zustand 106 ist ein gemeinsamer Chipsatz-Modus (common
chipset mode), während ein
Computer sich in einem passiven Zustand befindet (d.h. Betriebssystem
im Leerlauf) und mit Bus-Mastern, wie zum Beispiel USB-Vorrichtungen oder
Audio-Ports, verbunden ist. Während
des C2-Zustands 106 greifen diskrete Chipsätze auf Speicher
hauptsächlich
zum Abwickeln (service) von Bus-Master-Zyklen zu, und integrierte Graphik-Chipsätze greifen
auf Speicher hauptsächlich
zum Abrufen von Display-Auffrischdaten, zum Abwickeln von Bus-Master-Zyklen
oder zum Fortsetzen der Graphik-Wiedergabe zu. Die CPU muß nicht
auf Speicher zugreifen. Der DRAM-Speicher
arbeitet in einem erweiterten Stromsparmodus, der manchmal als Standby-Modus
oder Selbstauffrischbetrieb bezeichnet wird. Eine Auffrischeinheit
lädt elektrische
Zellen in dem DRAM-Speicher wieder auf, um Datenintegrität aufrechtzuerhalten.
-
Der
C3-Stromzustand 108 bietet gegenüber dem C1-Zustand 104 und
dem C2-Zustand 106 verbesserte Ersparnisse. Im C3-Zustand 104 halten
die Cache-Speicher des Prozessors den aktuellen Informationszustand,
und es sind keine Snoops möglich. Der
Speicher wird zurück
in die Zustände
C0, C1 oder C2 gebracht, um snoopbaren Verkehr abzuwickeln.
-
Die Übergänge zwischen
Zuständen
finden von dem C⌀-Zustand 102 auf
dem Weg 112 zu dem C1-Zustand 104 und auf dem
Rückweg 114 zurück zu dem
C⌀-Zustand 102 statt. Übergänge finden
außerdem
von dem C⌀-Zustand 102 auf
dem Weg 116 zu dem C2-Zustand 104 statt und kehren
auf dem Weg 118 zu dem C⌀-Zustand 104 zurück. Schließlich finden Übergänge von
dem C⌀-Zustand 104 auf
dem Weg 120 zu dem C3-Zustand 116 und zurück auf dem
Weg 122 zu dem C⌀-Zustand
statt. CPU-Inaktivität
für eine
ausreichende Dauer löst
einen Übergang
von dem C⌀-Zustand 102 zu
dem C2-Zustand 104 auf dem Weg 116 aus. Ein Unterbrechungsereignis,
wie zum Beispiel ein Interrupt, führt zu einem Übergang
des Systems von dem C2-Zustand 104 zu dem C⌀-Zustand 102 auf
einem Weg 118.
-
Obwohl
die Beschreibung dieses Systems der Einfachheit halber gemäß den Stromzuständen C⌀, C1,
C2 und C3 der ACPI-Spezifikationen erfolgt, sollte beachtet werden,
daß die
Erfindung nicht durch die ACPI-Spezifikation beschränkt wird.
Für nicht
der ACPI-Spezifikation folgende Ausführungsformen wird im allgemeinen
der C⌀-Stromzustand
für die Zwecke
der vorliegenden Erfindung als ein Vollstromzustand definiert, in
dem die CPU ihre normalen Funktionen fortführt. Der C2-Stromzustand von
ACPI wird im allgemeinen als ein Zwischenstromzustand zwischen dem
Vollstrom- und dem C3-Stromzustand definiert. Bei einem Intel-Prozessor ist der
C2-Stromzustand dem Zustand STOP GRANT äquivalent. Im allgemeinen ermöglich der
C2-Stromzustand Snooping-Speicherzugriffe und das Aufrechterhalten
von Cache-Kohärenz.
-
2 zeigt
ein Flußdiagramm
einer Ausführungsform 200 einer
Routine zum Versetzen des Speichers in den Selbstauffrischbetrieb
und von DLLs in den Stromabschaltmodus, während im C2-Stromzustand für eine integrierte
Graphikkonfiguration das Display aktualisiert gehalten und die Verwendung
von Bus-Mastern aufrechterhalten wird. Ausführungsformen der vorliegenden
Erfindung (1) versetzen den Speicher während Leerlaufzeiten in einen
Selbstauffrischbetrieb, statt nur in den Precharge-Stromabschaltmodus,
und/oder (2) fahren die DDR-Takte/DLLs dynamisch herunter. Für die Zwecke
der vorliegenden Erfindung wird dieser Stromsparzustand als "C2-Selbstauffrischbetrieb" bezeichnet, obwohl
mehr Stromersparnisse als nur das Wechseln des Speichers in den
Selbstauffrischbetrieb erreicht werden. Da die anderen Bus-Master auf
der Plattform im allgemeinen im Vergleich zu dem Display eine sehr
große
Latenztoleranz aufweisen, können
insbesondere Display-Aktualisierungen ordnungsgemäß voranschreiten,
solange die für
das Display bereitgestellte Pufferung ausreicht, um die maximale
Austrittslatenz für
das Herauskommen des Speichers aus dem Selbstauffrischbetrieb abzudecken.
Falls ein nicht-isochroner Bus-Master damit begonnen hat, einen
sehr langen Burst, wenn eine Display-Anforderung versorgt werden
muß, zum
Speicher durchzuführen,
kann der Abschluß der Bus-Master-Anforderung
zurückgestellt
werden, bis die Display-Anforderung abgewickelt worden ist. Solange
etwaige isochrone Streams (zum Beispiel isochrones Audio), die auch
Speicherzugriff erhalten müssen,
ausreichend kurze Burst-Größen aufweisen,
damit sie innerhalb der Schranken der Fähigkeit der anderen isochronen
Ströme
(zum Beispiel Display) zur Behandlung von Latenz bleiben, und solange
diese Ströme
Speicherzugriffe mit einer kleineren Rate als die zum Austritt aus
dem Speicherselbstauffrischbetrieb erforderliche anfordern, kann
der C2-Selbstauffrischzustand freigegeben werden. Isochrone Ströme haben
die Eigenschaft, daß ihre
maximalen Burst-Größen und
minimalen Wiederholungsraten in der Plattform deterministisch sind,
so daß man
leicht wissen kann, wann der C2-Selbstauffrischzustand erzielbar
ist.
-
Im
Schritt 202 wird bestätigt,
daß sich
der Prozessor im C2-Stromzustand befindet.
-
Im
Schritt 204 wird ein Fehlen von Speicheranforderungen von
jeglicher Quelle (Bus-Master, Display-Auffrischen) bestätigt.
-
Im
Schritt 206 werden die Speicher-Burst-Größe und der
Display-FIFO-Schwellenwert auf für
den C2-Stromzustand geeignete vordefinierte Werte eingestellt. Wie
in 3 und 4 gezeigt ist
und nachfolgend ausführlich
besprochen wird, weist insbesondere der Display-FIFO einen Schwellenwert
auf, der eine Burst-Anforderung auslöst, wenn er erreicht wird.
Der FIFO-Schwellenwert wird so gesetzt, daß die Speicher-Bursts, die
zum Display-Auffrischen erforderlich sind, groß genug und zeitlich genug
beabstandet sind, so daß eine
wesentliche Power-Down-Zeit im C2-Zustand möglich ist, bevor die DDR-DLLs
und der Chipsatzspeicher wieder freigegeben werden müssen. Bei
einer typischen Konfiguration für
eine integrierte Graphikkonfiguration verwaltet eine Display-Logik
einen Display-FIFO. Der Schwellenwert liegt in einem Schwellenregister vor.
Der Schwellenwert ist programmierbar und wird abhängig von
dem Stromersparnismodus voreingestellt. Dies kann durch Begrenzung
der Anzahl von Speichertransfers (die jeweils Strom verbrauchen) Strom
sparen und kann, während
eines statischen Displays, Leerlaufperioden erzeugen, in denen Vorrichtungen
mit geringem Stromverbrauch in einen Stromersparnismodus eintreten
können.
Die Anforderungs-Burst-Größe und der
Schwellenwert steuern den zeitlichen Abstand dieser Anforderungen.
-
Es
wird bestätigt
oder erzwungen, daß eine Wiedergabe-Engine
bereit (idle) ist. Der Chipsatz befindet sich im allgemeinen in
einem Zustand, der Gelegenheiten für den Eintritt in den Selbstauffrischzustand
gibt, wenn Graphikwiedergabe nicht erforderlich oder abgeschlossen
ist.
-
Im
Schritt 208 kann das Folgende allein oder in Kombination
auftreten: 1) Systemspeicher wird in den Selbstauffrischbetrieb
versetzt, wobei Takte und andere Speichersteuersignale für den Systemspeicher
in den Tri-State-Zustand versetzt werden, 2) während des C2-Selbstauffrischzustands
nicht benötigte
Speicher-DLLs können
heruntergefahren werden und/oder 3) jeder andere Funktionsblock-
und Taktbäume,
der/die während
des C2-Selbstauffrischzustands
nicht benötigt
wird/werden, kann/können
in Stromabschaltung (power down) gesetzt werden. Die Entscheidung
darüber,
welche Funktionen heruntergefahren werden können, hängt von Entscheidungslogik
ab, einschließlich
eines Vergleichs der Auswirkung auf die Stromabschaltungsaustrittslatenz
der Stromabschaltungsmerkmale gegenüber der verfügbaren Zeit.
Die verfügbare
Zeit hängt
von der maximalen von dem Display tolerierten Latenz und den Isochronstream-Periodizitäts- und
Burstgrößenanforderungen
ab.
-
Speicher-DLLs
können
in den Stromabschaltmodus gesetzt werden. Insbesondere erzeugen
integrierte Schaltungen, wie zum Beispiel DDR-DRAMs, häufig mehrere
synchronisierte DLL-Ausgangssignale (Phasen) und verwenden mehrere
Betriebsarten, so daß die
durch eine Schaltung, wie zum Beispiel eine DLL, produzierten Ausgangssignale
selektiv an Schaltun gen in der Vorrichtung angelegt werden, um unnötigen Stromverbrauch
zu verringern. Bei einer typischen Implementierung steuert die Stromverwaltungseinheit
einen Taktgenerator, der andere Chips in dem System taktet, wie
zum Beispiel den Prozessor, den Speichercontroller und den Speicher.
Integrierte Schaltungen, wie zum Beispiel DDR-DRAMS, enthalten in
der Regel DLLs, die verteilte Signale, z.B. Taktsignale, mehreren
Schaltungen zuführen.
Eine DLL empfängt
in der Regel ein Referenztaktsignal, aus dem sie ein internes Taktsignal
erzeugt, dessen Phase in der Regel von dem Referenztaktsignal abhängt. DLLs
sind relativ komplex und arbeiten mit hoher Frequenz und verbrauchen
daher signifikant Strom. Es kann wünschenswert sein, eine große Anzahl
von Schaltungen synchron mit einem solchen internen Taktsignal zu betreiben.
Wenn diese Schaltungen gemeinsam angesteuert werden, kann die Gesamtausgangslast
auf der DLL sehr groß sein,
so daß die
DLL viel Strom verbraucht. Es ist somit vorteilhaft, die DLLs herunterzufahren
(power down).
-
Im
Schritt 210 bleiben der Selbstauffrischbetrieb und das
dynamische DLL-Herunterfahren intakt, bis eine Bus-Master-Anforderung
und/oder ein Display-Auffrischen bestätigt wird.
-
Im
Schritt 212 wird als Reaktion auf eine Bestätigung,
daß eine
Bus-Master- und/oder Display-Auffrischanforderung ausgeführt wurde,
der Systemspeichertakt freigegeben und der Systemspeicher in einen
Leerlaufmodus versetzt.
-
Im
Schritt 214 werden die DLLs hochgefahren (powered up).
Die Chipsatz-DLL, die mit dem Speicher assoziiert ist, der zum Aktualisieren
der Display-Auffrischung verwendet wird, wird wahlweise während des
C2-Zustands freigegeben (enabled) gehalten.
-
Im
Schritt 216 wartet das System, bis die DLLs und der Systemspeicher
beide hochgefahren sind.
-
Im
Schritt 218 wird der nächste
Speicherburst ausgeführt
und die Routine kehrt zum Schritt 204 zurück. Der
Prozessor bleibt solange in dem C2-Stromzustand, wie kein Unterbrechungsereignis (wie
zum Beispiel ein Interrupt) vorliegt.
-
Bei
typischen Implementierungen wird der Prozessortakt neu gestartet
oder das Signal an den Prozessor zurückgesetzt (deasserted), um
den Übergang
zu erzielen. Die Speicher-Burst-Größe und Watermark-Werte
werden dann gemäß den C⌀-Stromzustandsanforderungen
ein gestellt. Während
des Betriebs im Vollstromzustand, wie zum Beispiel C⌀, sind
die Speicher-Bursts
gemäß dem C⌀-Stromzustand
im allgemeinen kleiner und zeitlich viel dichter beabstandet. Der
C⌀-Zustand
setzt eine Display-FIFO-Größe fest,
die groß genug
ist, um die neuen C2-Burst-Größen und
Schwellenwertanforderungen der vorliegenden Erfindung einzuschliessen.
-
Das
oben beschriebene Verfahren zur Abwicklung von Bus-Anforderungen,
während
sich der Prozessor in einem Zustand mit geringer Stromaufnahme befindet,
kann wie nachfolgend ausführlich beschrieben
wird, durch vielfältige
verschiedene Vorrichtungen erreicht werden.
-
Beispielsweise
ist 3 ein Diagramm einer Ausführungsform einer integrierten
Graphickonfiguration zum Versetzen des Speichers in den Selbstauffrischbetrieb
und von DLL in den Stromabschaltmodus, während im C2-Stromzustand die
Verwendung von Bus-Mastern aufrechterhalten und das Display aktualisiert
gehalten wird, wie in 2 dargestellt ist. Das Computersystem 300 enthält einen
Prozessor 302, einen Graphik- und Speichercontroller 304 mit
einer Graphik-Engine 306, einem Speicher 308,
einem Display-FIFO 310, einer Display-Pipeline 312 und einer Display-Vorrichtung 314.
Der Prozessor 302 verarbeitet Datensignale und kann ein CISC-Mikroprozessor
(Complex Instruction Set Computer), ein RISC-Mikroprozessor (Reduced Instruction
Set Computing), ein VLIW- Mikroprozessor (Very Long Instruction
Word), ein Prozeß,
der eine Kombination von Anweisungssets implementiert, oder eine andere
Prozessorvorrichtung, wie zum Beispiel ein digitaler Signalprozessor,
sein. Der Prozessor 302 kann an den gemeinsamen Bus 312 angekoppelt sein,
der Datensignale zwischen dem Prozessor 302 und anderen
Komponenten in dem System 300 überträgt.
-
Der
Prozessor 302 gibt über
den gemeinsamen Bus 312 Signale zur Kommunikation mit dem Speicher 308 oder
dem Graphik- und Speichercontroller 304 aus, um Daten,
wie hier beschrieben, zu manipulieren. Der Prozessor 302 gibt
solche Signale als Reaktion auf Softwareanweisungen aus, die er aus
dem Speicher 308 erhält.
Der Speicher 308 kann ein DRAM-Baustein (dynamischer Direktzugriffsspeicher),
ein SRAM-Baustein (statischer Direktzugriffsspeicher) oder ein anderer
Speicherbaustein sein. Der Speicher 308 kann Anweisungen
und/oder Daten speichern, die durch Datensignale dargestellt sind,
die durch den Prozessor 302, die Graphik-Engine 306 oder
eine andere Vorrichtung ausgeführt
werden können.
Die Anweisungen und/oder Daten können
Code zur Durchführung
beliebiger und/oder aller Techniken der vorliegenden Erfindung umfassen.
Der Speicher 308 kann auch Software und/oder Daten enthalten.
Mit einem optionalen Cache-Speicher kann man Speicherzugriffe durch
die Graphik-Engine 306 durch Ausnutzung ihrer Lokalität des Zugriffs
beschleunigen. Bei bestimmten Ausführungsformen kann die Graphik-Engine 306 den
Prozessor 302 von vielen der zur Wiedergabe eines Bildes
erforderlichen speicherintensiven Aufgaben entlasten. Die Graphik-Engine 306 verarbeitet
Datensignale und kann ein CISC-Mikroprozessor (Complex Instruction Set
Computer), ein RISC-Mikroprozessor (Reduced Instruction Set Computing),
ein VLIW-Mikroprozessor (Very Long Instruction Word), ein Prozeß, der eine
Kombination von Anweisungssets implementiert, oder eine andere Prozessorvorrichtung,
wie zum Beispiel ein digitaler Signalprozessor, sein. Die Graphik-Engine 306 kann
an den gemeinsamen Bus 312 angekoppelt sein, der Datensignale
zwischen der Graphik-Engine 306 und anderen Komponenten in
dem System 300, einschließlich des Wiedergabe-Cache 310 und
der Anzeigevorrichtung 314, überträgt. Die Graphik-Engine 306 enthält Wiedergabehardware,
die u.a. spezifische Attribute (z.B. Farben) in spezifische Pixel
des Displays 314 schreibt und komplizierte Primitiven auf
der Display-Vorrichtung 314 zeichnet. Der Graphik- und
Speichercontroller 304 kommuniziert mit der Display-Vorrichtung 314 zum
Anzeigen von Bildern, die durch einen Graphikcontroller 304 zum
Anzeigen von für
einen Benutzer wiedergegebenen oder anderweitig verarbeiteten Bildern
wiedergegeben oder anderweitig verarbeitet werden. Die Display-Vorrichtung 314 kann
einen Computermonitor, einen Fernsehapparat, ein Flach-Display oder
eine andere geeignete Display-Vorrichtung umfassen.
-
Der
Speicher 308 speichert ein Host-Betriebssystem, das ein
oder mehrere Wiedergabeprogramme zum Aufbau der Bilder von Graphikprimitiven
zur Anzeige enthalten kann. Das System 300 enthält eine
Graphik-Engine 306, wie zum Beispiel einen Graphikbeschleuniger,
die eine angepaßte
Hardware-Logik Vorrichtung oder einen Coprozessor verwendet, um
die Leistungsfähigkeit
der Wiedergabe mindestens eines Teils der ansonsten durch Host-Wiedergabeprogramme
behandelten Graphikprimitiven zu verbessern. Das Host-Betriebssystemprogramm
und seine Host-Graphik-Anwendungsprogrammschnittstelle (API) steuern
die Graphik-Engine 306 durch ein Treiberprogramm.
-
Der
FIFO 310 empfängt
Display-Daten aus dem Graphik- und Speichercontroller 304 durch
den Datenbus 318 und gibt Display-Daten durch den Datenbus 320 an
die Display-Pipeline 312 aus. Der Graphik- und Speichercontroller 304 entscheidet,
welcher der Vorrichtungen Zugriff auf den Speicher 308 gewährt werden
soll. Ein Teil der Graphik-Engine steuert den Blocktransfer von
Bildern zu, von oder in dem Speicher 308. Mit dem Graphik-
und Spei chercontroller 304 und dem Display-FIFO 310 ist
ein Speicheradressengenerator 322 verbunden. Der Speicheradressengenerator 322 erzeugt
Speicheradressen für
den Graphik- und Speichercontroller 304. Der Graphik- und
Speichercontroller 304 steuert den Speicheradressengenerator 322 und
die Display-Pipeline 312. Der Graphik- und Speichercontroller 304 instruiert
den Speicheradressengenerator 322, wann mit dem Laden des
FIFO 310 begonnen werden soll. Der Display-FIFO 310 dient
zum Abrufen und Speichern von Display-Daten für die Display-Vorrichtung 314.
-
Wenn
der FIFO-Stand (FIFO level) größer als
der Schwellenwert ist, kann eine Speicher-Burst-Anforderung für einen Nicht-Display-Stream
ohne Beeinträchtigung
des Displays erzeugt werden. Auf der Basis des Vergleichs des FIFO-Datenstands
mit den Schwellenwerten gibt eine Steuerschaltung eine Anforderung
des Speicherzugriffs an den Graphik- und Speichercontroller 304 aus,
so daß Daten,
wie durch das Flußdiagramm in 1 dargestellt,
in den FIFO 310 geladen werden können.
-
4(a) und (b) zeigen Flußdiagramme von Ausführungsformen
von Routinen zum Setzen eines Speichers in den Selbstauffrischbetrieb
und von DLLs in den Stromabschaltmodus, während im C2-Stromzustands für eine diskrete
Konfiguration die Verwendung von Bus-Mastern aufrechterhalten wird. Eine
diskrete Chipsatz-Konfiguration besitzt keine Graphik und kann Speicher
solange in den Selbstauffrischbetrieb versetzen, wie die isochronen
Nebenbedingungen erfüllt
sind (d.h., isochrone Periodizität muß größer als
die Stromabschaltungsaustrittslatenz sein). Ein diskreter Graphik-Controller
hat einen Display-Strom aufrechtzuerhalten. Ein diskreter Graphik-Controller
hat jedoch keine Kenntnis des C2-Zustands.
-
Mit
Bezug auf 4(a) tritt der diskrete Graphik-Controller
bei einer Ausführungsform 400 immer dann
in seine den lokalen Speicher betreffenden Stromabschaltmodi ein,
wie zum Beispiel in den Selbstauffrischzustand (der zu Bezugszwecken
als der Graphik-C2-Stromzustand bezeichnet wird) (Schritt 404),
wenn keine unerledigten (outstanding) Anforderungen an den lokalen
Speicher vorliegen (Schritt 402).
-
Mit
Bezug auf 4(b) berechnet bei einer weiteren
Ausführungsform 406 ein
diskreter Graphik-Controller die Nachfrage an seinem lokalen Speicher
auf der Basis der Bandbreitenschwelle (bandwidth threshold) und/oder
Dauer des Anforderungsleerlaufs des lokalen Spei chers (local memory request
idleness) (Schritt 408). Wenn die Nachfrage gering genug
ist, versetzt er seinen lokalen Speicher in den Selbstauffrischbetrieb
(Schritt 410).
-
Nachdem
die Erfindung gemäß den Anforderungen
des Patentrechts beschrieben wurde, ist für Fachleute erkennbar, wie Änderungen
und Modifikationen an der vorliegenden Erfindung vorgenommen werden
können,
um ihren spezifischen Anforderungen oder Bedingungen zu genügen. Solche Änderungen
und Modifikationen können
vorgenommen werden, ohne von dem Schutzumfang und der Idee der Erfindung
abzuweichen, die in den folgenden Ansprüchen dargelegt sind.
-
Zusammenfassung
-
Ausführungsformen
der vorliegenden Erfindung stellen ein Verfahren und eine Vorrichtung
zum Stromsparen in einer elektronischen Vorrichtung bereit. Speziell
setzen Ausführungsformen
der vorliegenden Erfindung den Speicher dynamisch in einen Selbstauffrischbetrieb
und Chipsatz-Taktschaltungen in einen Stromabschaltmodus (power
down mode), während
in einem Stromsparmodus die isochronen Streams (beispielsweise Display)
aktualisiert werden und Bus-Master-Zyklen abgewickelt werden.