-
ALLGEMEINER STAND DER TECHNIK
-
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 interrface) (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 94. und C2 befindet sich der Prozessor in einem Nicht-Ausführungs-Stromzustand (non-executing 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.
-
In der
EP 1 369 767 A2 ist eine sogenannte adaptive Stromverwaltung für einen Speicher offenbart. Anhand bestimmter Ereignisse sollen Speicherstromverwaltungssignale generiert werden, die anzeigen, ob sich die CPU im Leerlauf befindet.
-
Durch die
US 2004/0139359 A1 ist ein Verfahren zum Herabsetzen des Stromverbrauchs eines Computersystems durch Reduzieren des Stromverbrauchs einzelner Komponenten eines Speichers offenbart. Das Reduzieren des Stromverbrauchs geht damit einher, dass der gesamte Speicher in einem Selbstauffrischmodus verbunden ist.
-
Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, den Stromverbrauch eines Prozessors bzw. eines damit gekoppelten Speichers weiter zu reduzieren.
-
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 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 Schaltungen 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 eingestellt. 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 Graphikkonfiguration 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-LogikVorrichtung 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 Speichercontroller 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-Master 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 Speichers (local memory request idleness) (Schritt 408). Wenn die Nachfrage gering genug ist, versetzt er seinen lokalen Speicher in den Selbstauffrischbetrieb (Schritt 410).