DE10392619B4 - Energieverwaltung für eine integrierte Grafikeinheit - Google Patents

Energieverwaltung für eine integrierte Grafikeinheit Download PDF

Info

Publication number
DE10392619B4
DE10392619B4 DE10392619T DE10392619T DE10392619B4 DE 10392619 B4 DE10392619 B4 DE 10392619B4 DE 10392619 T DE10392619 T DE 10392619T DE 10392619 T DE10392619 T DE 10392619T DE 10392619 B4 DE10392619 B4 DE 10392619B4
Authority
DE
Germany
Prior art keywords
circuit
frequency
clock signal
memory controller
graphics
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10392619T
Other languages
English (en)
Other versions
DE10392619T5 (de
Inventor
Ying Mountain View Cui
Eric Folsom Samson
Ariel Berkovits
Aditya El Dorado Hills Navale
David San Jose Wyatt
Leslie Sunnyvale Cline
Joseph Elk Grove Tsang
Mark San Jose Blake
David Folsom Poisner
William Jr. Folsom Stevens
Vijay Folsom Sar-Dessai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE10392619T5 publication Critical patent/DE10392619T5/de
Application granted granted Critical
Publication of DE10392619B4 publication Critical patent/DE10392619B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Grafikspeicher-Controllerhub (140), der Folgendes umfaßt:
einen Grafikkern;
einen Speichercontroller (225) zum Empfangen eines Speichertaktsignals (260); und
eine Schaltung (235), welche auf Software reagiert, die von einem Nutzer gemäß einer proaktiven oder einer reaktiven Politik gewählt werden kann, zum Ändern einer Frequenz eines Render-Taktsignals, das an den Grafikkern (200) übertragen wird, ohne eine Frequenz des Speichertaktsignals zu ändern, wobei die Schaltung des weiteren zum Überwachen der Untätigkeit des Grafikkerns und, falls die reaktive Politik gewählt ist, Reduzieren eines Frequenzniveaus des Render-Taktsignals vorgesehen ist, wenn die Untätigkeit einen bestimmten Prozentsatz an Zeit überschreitet.

Description

  • 1. Gebiet
  • Ausführungsformen der Erfindung beziehen sich auf das Gebiet der Energieverwaltung, insbesondere, auf das Skalieren des Energieverbrauchs durch einen Grafikcontroller basierend auf Ereignissen wie zum Beispiel Nachfrage und Last.
  • 2. Allgemeiner Stand der Technik
  • Über die letzten paar Jahre wurden viele Fortschritte in der Halbleitertechnologie gemacht, mit dem Ergebnis der Entwicklung von verbesserten Grafikcontrollern, die bei höheren Frequenzen wirken und zusätzliche und/oder verbesserte Merkmale unterstützen. Während diese Fortschritte es den Hardwareherstellern ermöglicht haben, schnellere und technisch ausgereiftere Grafikkarten und Computer zu konstruieren und zu bauen, stellen sie für batteriebetriebene Laptop- und Handheld-Computer auch einen Nachteil dar. Insbesondere verbrauchen diese batteriebetriebenen Computer mehr Energie und dissipieren mehr Wärme als ein Nebenprodukt als die Computer der vorherigen Generation.
  • Innerhalb eines Grafikspeicher-Controllerhubs ist zum Beispiel ein Grafikkern eine seiner wichtigsten Funktionsblöcke, der eine große Gatteranzahl hat. Folglich entspricht der Energieverbrauch durch den Grafikspeicher-Controllerhub in erster Linie der auf den Grafikkern angewendeten Spannung und Frequenz. Wenn nämlich die Grafikkern-Spannung steigt, steigt ebenfalls die durch den Grafikspeicher-Controllerhub verbrauchte Energie. Da die Nutzung des Grafikkerns von Applikation zu Applikation beträchtlich variieren kann, verschwenden Computer unnötigerweise Energie, wenn hohe Spannungen und Frequenzsignale an den Grafikkern geliefert werden, um Applikationen zu verarbeiten, die minimale Grafiken haben. Dies wird unnötigerweise die Batterielebensdauer von Laptops und Handheld-Computern verringern und dazu führen, dass diese Computer bei unnötig hohen Temperaturen wirken.
  • Die internationale Patentanmeldung WO 01/73534 A2 offenbart ein Verfahren und eine Vorrichtung zur Steuerung der Prozessorleistung für ein Prozessorsystem mit einer einzelnen Phasenregelschleife (PLL). Eine PLL empfängt Taktsignale von einer Taktvorrichtung und verteilt Taktsignale an verschiedene Komponenten einschließlich der CPU. Das Taktsignal der PLL kann unterschiedliche Taktfrequenzen, wie beispielsweise eine niedrigere Taktfrequenz aufweisen, um den Energieverbrauch zu reduzieren.
  • Die US-Patentschrift US 6,018,803 offenbart ein Verfahren und eine Vorrichtung zur Erfassung der Nutzung eines Busses in einem Computersystem basierend auf einer Anzahl von Bus-Events in einer Abtastperiode. Offenbart wird des weiteren eine Energieverwaltungseinheit, die eine Busnutzungserfassungsschaltung und einen Untätigkeitstimer umfaßt, die verwendet werden, um zu bestimmen, wann das Computersystem oder bestimmte Komponenten desselben untätig sind, so daß Maßnahmen zur Stromsteuerung ergriffen werden können.
  • Die EP 0 632 360 A1 beschreibt ein Verfahren zur dynamischen Anpassung des Energieverbrauchs eines Computersystems mittels Software. Der Energieverbrauch eines elektrischen Schaltkreises wird reduziert, indem für eine durchzuführende Aufgabe der niedrigste Energielevel ermittelt wird, der zur Durchführung der Aufgabe benötigt wird. Die Spannung und die Taktfrequenz, mit denen der Schaltkreis zu betreiben ist, werden anhand des ermittelten niedrigsten Energielevels ermittelt. Die Spannung und die Taktfrequenz werden sodann zur Durchführung der Aufgabe auf die ermittelten Werte gesetzt, so dass die Aufgabe durch den Schaltkreis auf dem niedrigsten Energielevel durchgeführt wird.
  • Demgegenüber soll bei der vorlagenden Befindung die Energieverwaltung weiter verbessert werden.
  • Dies wird durch die unabhängigen Patentansprüche gelöst.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung kann am besten verstanden werden durch Bezugnahme auf die nachfolgende Beschreibung und die begleitenden Zeichnungen, die verwendet werden, um die Ausführungsformen der Erfindung zu veranschaulichen.
  • 1 ist ein Ausführungsbeispiel der innerhalb einer Rechenvorrichtung angewandten Logik.
  • 2 ist ein erstes Ausführungsbeispiel des Grafikspeicher-Controllerhubs (GMCH), der zusammenwirkt mit einem Taktgenerator zum Steuern der Kernfrequenz und/oder Spannung.
  • 3 ist ein zweites Ausführungsbeispiel des Grafikspeicher-Controllerhubs (GMCH), der zusammenwirkt mit einem Taktgenerator zum Steuern der durch die Anzeige verwendeten Frequenz und/oder Spannung.
  • 4 ist ein Ausführungsbeispiel einer Aktivitätssteuerschaltung des GMCH, insbesondere der Zustandssequenzer- und Aktivitätsanzeigerschaltung von 2 und 3.
  • 5A ist ein Ausführungsbeispiel eines Verzeichnisses einer Leerlaufstatusseite (ISP), das verwendet wird durch die Aktivitätssteuerschaltung von 4.
  • 5B ist ein Ausführungsbeispiel eines Leerlaufsteuerungs- und Statusverzeichnisses (ICS), das verwendet wird durch die Aktivitätssteuerschaltung von 4.
  • 6 ist ein Ausführungsbeispiel eines Leerlaufdetektors der Aktivitätssteuerschaltung von 4.
  • 7A und 7B sind Ausführungsbeispiele eines Ablaufdiagramms, das die allgemeinen Wirkungsweisen von Frequenzumschaltungen von einer „schnellen" zu einer „langsamen" Frequenz durch die Aktivitätssteuerschaltung von 4 in groben Zügen darstellt.
  • 8 ist ein Ausführungsbeispiel eines Ablaufdiagramms, das die allgemeinen Wirkungsweisen der Frequenzumschaltungseinheit der Aktivitätssteuerschaltung von 4 veranschaulicht.
  • 9 ist ein drittes Ausführungsbeispiel des Grafikspeicher-Controllerhubs (GMCH), der zusammenwirkt mit einem Taktgenerator zur Steuerung der durch die Anzeige verwendeten Frequenz und/oder Spannung.
  • 10 ist ein Ausführungsbeispiel einer Synchronisator-Logik von 9.
  • 11 ist ein Ausführungsbeispiel der Softwaremodule, die die GMCH-Frequenz und Spannungsdrosselung steuern.
  • 12 ist ein Diagramm von Beispielen allgemeiner Wirkungsweisen der Softwaremodule von 11.
  • 13 ist ein Ausführungsbeispiel einer ersten grafischen Benutzerschnittstelle zum Programmieren von Politiken zum Steuern des Betriebsverhaltens der Rechenvorrichtung.
  • 14 ist ein Ausführungsbeispiel einer zweiten grafischen Benutzerschnittstelle zum Programmieren von Politiken zum Steuern des Betriebsverhaltens der Rechenvorrichtung.
  • DETAILLIERTE BESCHREIBUNG
  • Im Allgemeinen beschreiben verschiedene Ausführungsformen der Erfindung eine Vorrichtung und ein Verfahren zum Steuern des Energieverbrauchs durch ein elektronisches Gerät sowohl durch Spannungs- als auch durch Frequenzanpassung. Als eine Ausführungsform, wird diese Spannungs- und Frequenzsteuerung auf einen Grafikspeicher-Controllerhub (GMCH) angewendet.
  • Die folgende detaillierte Beschreibung wird umfassend dargestellt in Form von Blockdiagrammen und Ablaufdiagrammen, um Ausführungsformen der Erfindung gemeinsam zu veranschaulichen. Gut bekannte Schaltungen oder Verfahrens-Wirkungsweisen werden nicht im Detail erörtert, um zu verhindern, dass das Verständnis dieser Beschreibung unnötig undeutlich gemacht wird.
  • Bestimmte Terminologie wird verwendet, um bestimmte Merkmale der Erfindung zu beschreiben. Zum Beispiel, kann eine „Rechenvorrichtung" irgendein elektronisches Produkt sein, dass einen Grafikspeicher-Controllerhub hat, wie zum Beispiel einen Computer (z. B., Desktop, Laptop, Handheld, Server, Mainframe, usw.), oder vielleicht eine Set-Top-Box, Verbraucher-Elektronikausrüstung (z. B., Fernseher), Spielkonsole oder dergleichen.
  • Normalerweise umfasst die Rechenvorrichtung interne Logik, nämlich Hardware, Firmware, Softwaremodul(e) oder irgendeine Kombination davon. Ein „Softwaremodul" ist eine Reihe von Befehlen, die, wenn sie ausgeführt werden, eine bestimmte Funktion durchführt. Beispiele von Softwaremodulen umfassen ein Betriebssystem, eine Applikation, ein Applet, ein Programm oder sogar eine Routine. Ein oder mehrere Softwaremodule können auf einem maschinenlesbaren Medium gespeichert werden, welches eine elektronische Schaltung, eine Halbleiterspeichervorrichtung, einen Festwertspeicher (ROM), einen Flash-Speicher, einen löschbaren programmierbaren ROM (EPROM oder EEPROM), eine Floppy-Diskette, eine Kompaktdiskette, eine optische Speicherplatte, eine Festplatte, oder dergleichen umfasst aber nicht darauf beschränkt ist. Die Begriffe „logisch hoch" und „bestätigt" (oder irgendeine Zeitform davon) bedeuten das Setzen eines Signals in einen ersten Zustand, möglicherweise über oder unter einer bestimmten Spannung. Die Begriffe „logisch tief" und „Bestätigung aufgehoben" (oder irgendeine Zeitform davon) bedeuten das Setzen eines Signals in einen neuen Zustand, der sich vom ersten Zustand unterscheidet.
  • I. Allgemeine Architektur
  • Bezug nehmend auf 1 wird ein Ausführungsbeispiel der innerhalb einer Rechenvorrichtung 100 verwendeten Schaltungen gezeigt. Die Rechenvorrichtung 100 umfasst einen Prozessor 110, einen Taktgenerator 120, einen Speicher 130 und eine integrierte Einheit 140, wie einen Grafikspeicher-Controllerhub (GMCH) zum Beispiel. Der GMCH 140 ist gekoppelt an den Prozessor 110 und den Speicher 130 in dieser Reihenfolge über die Busse 150 und 160. Der GMCH 140 empfängt Referenztaktsignale vom Taktgenerator 120 und empfängt regulierte Spannungen von einem Spannungsregler 170 wie nachstehend beschrieben. Auch wenn dies nicht gezeigt wird, kann die Rechenvorrichtung 100 angetrieben werden durch eine oder mehrere interne Batterien oder einen Wechselstrom (AC), der von einer Netzsteckdose über eine Anschlussleitung geleitet wird.
  • Hier kann der Prozessor 110 ein Mikroprozessor, ein digitaler Signalprozessor (DSP), ein anwendungsspezifischer integrierter Schaltkreis (ASIC), ein Mikrocontroller oder dergleichen sein. Der GMCH 140 ist über den Bus 150 (z. B., ein Front-Side-Bus) an den Prozessor 110 gekoppelt, um die zu verarbeitenden und anschließend im Speicher 130 zu speichernden oder auf einer mit der Rechenvorrichtung 100 verbundenen Anzeigeeinheit 180 anzuzeigenden Informationen zu empfangen. Die Anzeigeeinheit 180 kann ein integrales Bauteil der Rechenvorrichtung 100 oder ein von der Rechenvorrichtung 100 getrenntes und externes Peripheriegerät sein, wie gezeigt.
  • Der Taktgenerator 120 ist intern innerhalb der Rechenvorrichtung 100 angeordnet. Es wird indes beabsichtigt, den Taktgenerator 120 extern in Bezug auf die Rechenvorrichtung 120 anzuordnen. Der Taktgenerator 120 stellt ein erstes Taktsignal (HOST_CLK) 190 für den Prozessor 110 und ein oder mehrere Taktsignale für den GMCH 140 bereit. Zum Beispiel können das HOST_CLK Signal 190 und ein sekundäres Taktsignal (CLK2) 195 an den GMCH 140 geliefert werden, wo das CLK2 Signal 195 eine niedrigere Frequenz hat als das HOST_CLK Signal 190. In einer Ausführungsform, können die HOST_CLK und CLK2 Signale 190 und 195 Frequenzen von in dieser Reihenfolge ungefähr 66 Megahertz (66 MHz) und 48 MHz haben.
  • II. Ausführungsformen des Grafikspeicher-Controllerhubs
  • Nun Bezug nehmend auf 2, wird ein erstes Ausführungsbeispiel des Grafikspeicher-Controllerhubs (GMCH) 140 gezeigt, der zusammenwirkt mit einem Taktgenerator 120 zum Steuern der Kernfrequenz und/oder Spannung. Für diese Ausführungsform umfasst der GMCH 140 einen Grafikkern 200, eine oder mehrere Taktgeber 210 und 215 (z. B., PLL (Phasenregelschleifen) Schaltungen), nach Wahl eine Frequenzteilerschaltung 220, einen Speichercontroller 225, einen Displayport 230 und eine Aktivitätssteuerschaltung 235. Die Aktivitätssteuerschaltung 235 umfasst einen Zustandssequenzer 240, eine Aktivitätsanzeigerschaltung 245, eine Spannungsregulierungs-Steuerschaltung 250, und eine Kern-PLL-Schaltung 255.
  • Wie in 2 gezeigt, führt der Grafikkern 200 Grafikberechnungen auf ankommenden Daten durch und gibt solche Daten an die Anzeigeeinheit 180 von 1 über den Displayport 230 aus. Der Grafikkern 200 empfängt durch den Taktgenerator 120 von 1 erzeugte Referenztaktsignalgebungen. Für diese Ausführungsform, empfängt der GMCH 140 das HOST_CLK Signal 190 und leitet dieses Taktsignal an die PLL-Schaltung 210 und möglicherweise die Frequenzteilerschaltung 220 weiter. Die PLL-Schaltung 210 erzeugt ein Speichertakt (MCLK) Signal 260 basierend auf dem HOST_CLK Signal 190. Im Gegensatz zum HOST_CLK Signal 190, ist das MCLK Signal 260 programmierbar. Das MCLK Signal 260 wird durch den Speichercontroller 225 verwendet, der den Zugriff auf den Speicher 130 von 1 steuert.
  • Die Frequenzteilerschaltung 220 passt, wenn sie ausgeführt ist, die Frequenz des HOST_CLK Signals 190 an und gibt das angepasste Taktsignal 265 an die Kern-PLL-Schaltung 255 weiter. Die Kern-PLL-Schaltung 255 erzeugt ein programmierbares Rendering-Taktsignal (CRCLK) 270 basierend auf dem ankommenden angepassten Taktsignal 265 und stellt das CRCLK Signal 270 an den Grafikkern 200 zum Zweck der Takterzeugung bereit.
  • Immer noch Bezug nehmend auf 2, umfasst die Aktivitätssteuerschaltung 235, für diese Ausführungsform der Erfindung, eine Aktivitätsanzeigerschaltung 245, die die Datenverarbeitungsaktivität durch GMCH 140 überwacht. Ein solches Überwachen kann ausgeführt werden durch Abtasten, wann der Grafikkern 200 aktiv (Daten verarbeitend) oder im Leerlauf ist. Zum Beispiel wird, wenn der Grafikkern 200 aktiv Daten verarbeitet, ein durch die Aktivitätsanzeigerschaltung 245 abgetastetes Steuersignal (nicht gezeigt) bestätigt (z. B., logisch hoch für eine gewählte Polarität). Andernfalls, wird die Bestätigung des Steuersignals aufgehoben (logisch tief für eine gewählte Polarität). Durch periodische Abtastung dieses Steuersignals, kann eine Bestimmung vorgenommen werden in Bezug auf den Prozentsatz, zu dem der Grafikkern aktiv ist. Von diesem Prozentsatz kann der Zustandssequenzer 240 bestimmen, ob die Frequenz des CRCLK Signals 270 angemessen ist oder ob es verändert werden muss.
  • Es wird beabsichtigt, die Aktivitätssteuerschaltung 235 zu konfigurieren, um über die Taktfrequenzerzeugung oder auf den Grafikkern 200 angewendete Spannung hinaus andere Betriebsverhaltensweisen der Rechenvorrichtung zu steuern. Beispiele umfassen Taktgeschwindigkeitsverhältnisse, Taktdrosselungsprozentsätze, Bildwiederholraten, Hintergrundhelligkeit und dergleichen. Lediglich zu Zwecken der Veranschaulichung werden Frequenz und Anpassung erörtert.
  • Wenn die Kern-PLL-Schaltung 255 nur zwei unterschiedliche Taktfrequenzen unterstützt, stellt der Zustandssequenzer 240 ein bestätigtes Steuersignal 241 für die Kern-PLL-Schaltung 255 bereit, um das Taktsignal mit der höheren Frequenz auszuwählen (worauf mit „Signal mit ,schnellerer' Frequenz" Bezug genommen wird). Andernfalls, wird ein Steuersignal mit aufgehobener Bestätigung für die Kern-PLL-Schaltung 255 bereitgestellt, um das Taktsignal mit der niedrigeren Frequenz auszuwählen (worauf mit „Signal mit ,langsamerer' Frequenz" Bezug genommen wird). Wenn die Kern-PLL-Schaltung 255 mehr als zwei unterschiedliche Taktfrequenzen unterstützt, kann der Zustandssequenzer 240 angepasst werden, um vielfache Steuersignale bereitzustellen, was einer von mehreren Taktfrequenzen für den Graffikkern 200 entspricht. Zum Beispiel, können zwei Steuersignale (00, 01, 10, 11) vier unterschiedliche Takte von variierenden Frequenzen unterstützen.
  • Bei der Veränderung der Frequenz des Grafikkerns 200, stellt der Zustandssequenzer 240 ebenfalls ein Steuersignal 242 für die Reglersteuerschaltung 250 bereit, welche dem Spannungsregler 170 von 1 signalisiert, dass die an den Grafikkern 200 gelieferte Spannung anzupassen ist. Diese Spannung kann zum Beispiel in einem Bereich von ungefähr 1.5 Volt bis ungefähr 0.9 Volt oder weniger liegen. Die Anpassung der Spannung kann der Änderung der Frequenz entsprechen und eine solche Spannungsanpassung kann vor dem Auftakten des angepassten Taktsignals erfolgen.
  • Bezug nehmend auf 3, wird ein zweites Ausführungsbeispiel des Grafikspeicher-Controllerhubs (GMCH) 140 gezeigt, der mit dem Taktgenerator 120 zusammenwirkt, um die Kernfrequenz und/oder Spannung zu steuern. Für diese Ausführungsform schließt der GMCH 140 die PLL-Schaltung 215, die die Frequenz des auf den Displayport 230 angewendeten Taktsignals anpasst, aus. Aber der GMCH 140 zeichnet sich aus durch andere Bauteile, wie den Grafikkern 200, die PLL-Schaltung 210, auf Wunsch die Frequenzteilerschaltung 220, den Speichercontroller 225, den Display-Port 230 und die Aktivitätssteuerschaltung 235 wie beschrieben.
  • III. Eine Ausführungsform einer Aktivitätssteuerschaltung
  • A. Logikbeispiel der Aktivitätssteuerschaltung
  • Nun Bezug nehmend auf 4, wird ein Ausführungsbeispiel von einer Aktivitätssteuerschaltung 235, insbesondere der Zustandssequenzer 240 und die Aktivitätsanzeigerschaltung 245 von den 2 und 3, gezeigt. Im Allgemeinen, umfasst eine solche Schaltung einen Leerlaufdetektor 300, einen Leerlaufmonitor 310, einen Subtractor 350, Auswahlelemente (z. B., Multiplexer) 360364, die Logikgatter 370377, und eine nachstehend im Detail beschriebene Frequenzumschaltungseinheit 380. Im Allgemeinen, wirkt die Frequenzumschaltungseinheit 380 als ein Zustandssequenzer 240 von 2, während der übrige Teil der Schaltung als eine Aktivitätsanzeigerschaltung 245 wirkt.
  • In einer Ausführungsform der Erfindung unterstützt die Aktivitätssteuerschaltung 235, zum Beibehalten eines Gleichgewichts zwischen Energieverbrauch und Leistung, das Frequenzumschalten des durch den GMCH 140 von 1 verwendeten CRCLK Signals 270. Zum Beseitigen eines potentiellen Leistungsverlusts, ist der Leerlaufmonitor 310 angepasst, um die Untätigkeit einer Render-Engine des GMCH 140 von 1 zu messen.
  • Insbesondere ist das CRCLK Signal 270 für eine Ausführungsform der Erfindung konfiguriert, um von einer „schnellen" Frequenz (Ff) zu einer „langsamen" Frequenz (Fs, wo Ff > Fs) umzuschalten, wenn eine spezifische Schwelle (Tf2s) der Untätigkeit erreicht wird. Diese Schwelle, auf die mit „schnell-zu-langsam (F2S) Zustandsschwelle" Bezug genommen wird, kann statisch oder programmierbar eingestellt werden während eines Einschaltzustands durch das Basic Input Output System (BIOS) der Rechenvorrichtung oder möglicherweise durch Zugreifen auf die Inhalte eines bestimmten Speicherplatzes oder Verzeichnisses. Diese Schwelle kann durch einen Bit-Wert (z. B., 32 Bit-Wert) dargestellt werden, wie in 4 dargestellt.
  • Das CRCLK Signal ist ebenfalls konfiguriert, um von langsamen auf schnelle Frequenzen umzuschalten, wenn das Aktivitätsniveau zunimmt, um eine spezifische Aktivitätsschwelle, auf die mit „langsam-zu-schnell (S2F) Zustandschwelle" (Ts2f) Bezug genommen wird, zu überschreiten. In ähnlicher Weise, kann die S2F-Zustandsschwelle voreingestellt und durch einen Bit-Wert (z. B., 32 Bit-Wert) dargestellt werden. Nur die CRCLK Signalfrequenz kann dynamisch auf Verlangen geändert werden, alle anderen Takte bleiben nach dem Hochfahren unverändert.
  • Neben der gemessenen Untätigkeit, können andere Frequenzumschaltungsereignisse durch Softwaresteuerung ausgelöst werden. Zum Beispiel kann die Unterbrechung der AC-Stromversorgung (z. B., Unterbrechung einer Anschlussleitung durch Entfernen ihres AC-Steckers von einer Netzsteckdose) ermittelt werden und ein Schalten des CRCLK Signals auf eine langsamere Frequenzeinstellung für eine längere Batterielebensdauer durch eine Softwareroutine verursachen.
  • Zum Vermindern von unnötigem vor- und zurückschalten unter derselben Last, kann Hysterese bereitgestellt werden. Eine Art, in der dies ausgeführt werden kann, ist, zu gewährleisten, dass das Niveau an Beschäftigung, das erforderlich ist, um den Übergang von hoher auf tiefe Frequenz einzuleiten, wesentlich tiefer ist, als das Niveau an Beschäftigung, das erforderlich ist, um den Übergang von tiefer auf hohe Frequenz einzuleiten. Das Verhältnis zwischen Frequenz, Systemenergie, und Hysterese ist gegeben durch die Gleichung (1): Tf2s < Is – ((If – Tf2s)·Ff·Is/(If·Fs) (1)wo
    • Tf2s = F2S Zustandsschwelle; Ts2f = S2F Zustandsschwelle; Is = langsames Zustandsintervall; If = schnelles Zustandsintervall; Fs = langsame Frequenz und Ff = schnelle Frequenz.
  • Wie in 4 nachstehend gezeigt, sind die Wirkungen der Tätigkeitssteuerschaltung 235 teilweise auf verschiedene Steuerzustandssignale gestützt. Diese Steuerzustandssignale umfassen einen gewünschten Zustand des GMCH (DSTATE), einen gegenwärtigen Zustand des (CSTATE), eine Frequenzänderungsaufforderung basierend auf der Hardware des Leerlaufmonitors (HW_CH_FREQ), und/oder eine Frequenzänderungsaufforderung (CH_FREQ_REQ) basierend auf entweder Hardware, Software oder Wärmebedingungen, sind aber nicht darauf beschränkt.
  • Genauer gesagt, steht „DSTATE" für das gewünschte Frequenzzustandsniveau für das elektronische Gerät. Der Wert von DSTATE kann gespeichert werden als ein Bit eines Leerlaufstatusseiten (ISP) Verzeichnisses 390 (z. B., ISP[1]), möglicherweise in einem Speicher (nicht gezeigt) des GMCH angeordnet sein, wie in 5A gezeigt. Das ISP-Verzeichnis stellt Aktivitäts- und Temperaturinformationen für Software und Hardware bereit, um Frequenz- und Spannungsdrosselungsentscheidungen zu treffen. Hier wird für diese Ausführungsform der Erfindung DSTATE bestätigt (DSTATE = logisch „hoch"), um das CRCLK Signal auf das „schnelle" Frequenzniveau einzustellen und beizubehalten. Die Bestätigung von DSTATE wird aufgehoben (DSTATE = logisch „tief"), um das CRCLK Signal auf das „langsame" Frequenzniveau einzustellen und beizubehalten. DSTATE kann sowohl durch Hardware als auch durch Software bestimmt werden.
  • Wenn durch die Hardware als Reaktion auf das Einstellen eines Hardware-Übergang-Freigabe-Bits des Leerlaufregelung und Status (ICS) Verzeichnisses 395 von 5B (EN_HW_TRAN = ICS[30] = logisch „hoch") bestimmt, ist das höchstwertige Bit (MSB), das mit dem Ausgang des Subtractors 350 verbunden ist, gleich dem DSTATE Wert. Andernfalls ist DSTATE, wenn durch Software bestimmt, allgemein gleichwertig mit dem umgekehrten Wert eines Software-Reset-auf-langsam (SWRST2S) Signals (z. B. ICS[28]).
  • In einer Ausführungsform der Erfindung, steht „CSTATE" für den gegenwärtigen Zustand des CRCLK Signals. Der Wert von CSTATE kann als ein Bit des ISP-Verzeichnisses 390 (z. B., ISP[0]) gespeichert werden. CSTATE wird bestätigt, um das CRCLK Signal bei der „schnellen" Frequenz auszuwählen. Die Bestätigung von CSTATE wird aufgehoben, um die „langsame" Frequenz auszuwählen. Nachdem sämtliche Domänenaktivitäten gedrosselt sind, wird die Frequenz von CRCLK umgeschaltet (zum Beispiel von schnell auf langsam) durch Zuordnen des DSTATE Werts wie den CSTATE Wert.
  • Wenn bestätigt, steht „HW_CH_FREQ" für ein durch die Hardware bestimmtes Frequenzänderungsereignis („schnell” zu „langsam" oder „langsam" zu „schnell"). HW_CH_FREQ basiert auf Leerlaufmonitorwirkungen. Wenn zum Beispiel das CRCLK Signal bei einer schnellen Frequenz wirkt (CSTATE = logisch „hoch") und die abgetastete Leerlaufanzahl größer ist als die F2S Zustandsschwelle (Tf2s), ist HW_CH_FREQ bestätigt (HW_CH_FREQ = logisch „hoch"). Wenn das Signal bei einer langsamen Frequenz wirkt (CSTATE = logisch „tief) und die abgetastete Leerlaufanzahl weniger als die S2F Zustandsschwelle (Ts2f) ist, ist HW_CH_FREQ bestätigt.
  • „CH_FREQ_REQ" basiert allgemein entweder auf durch Hardware oder durch Software veranlasste Ereignisse und Wärmeablesungen. Wenn CH_FREQ_REQ bestätigt ist, steht es für eine Frequenzänderungsaufforderung (kann von schnell auf langsam oder von langsam auf schnell sein), die an die Frequenzumschaltungseinheit 380 gerichtet wurde. Der CH_FREQ_REQ Wert wird bestimmt als Reaktion auf zwei Kriterien. Das erste Kriterium bestimmt, ob die Hardware- oder Softwareaufforderung bedient werden wird. Diese Bestimmung basiert auf dem EN_HW_TRAN Wert (EN_HW_TRAN ist bestätigt, wenn eine durch die Hardware bestimmte Frequenzänderungsaufforderung bedient wird).
  • Das zweite Kriterium bestimmt, ob eine Frequenzänderungsaufforderung erforderlich ist basierend auf der abgetasteten Temperatur (TRR[7:0]) des GMCH, welche im ISP-Verzeichnis 390 gespeichert werden kann (z. B., ISP [9:2]). Für diese Ausführungsform der Erfindung, wird ein THERMALHOT Parameter auf logisch „1" gesetzt, wenn die abgetastete Temperatur über einer vorgegebenen Schwelle ist. Dem CRCLK Signal kann indes sogar wenn die abgetastete Temperatur über einer bestimmten Schwelle ist erlaubt werden, von einer „schnellen" Frequenz geändert zu werden. Andernfalls, wird, wenn CSTATE unbestätigt ist, ein SWITCH_TO_SLOW_IF_HOT (z. B., IC[29]) und THERMALHOT Parameter bestätigt, was eine Aufhebung der Bestätigung von CH_FREQ_REQ verursacht, und keine Änderung des Frequenzniveaus bedeutet. Zusammengefasst, wird das zweite Kriterium verwendet, um einen Frequenzübergang von langsam auf schnell zu verhindern, wenn die abgetastete Temperatur des GMCH über einer eingestellten Schwelle ist.
  • Wie in 4 gezeigt, erzeugt der Leerlaufdetektor 300 ein aktives globales Leerlauf (GIDLE) Signal 309, wenn bestimmte Einheiten im Leerlauf sind. Für diese Ausführungsform können diese Einheiten eines oder mehrere der folgenden Elemente umfassen: MPEG Komprimierungs-/Dekomprimierungseinheit (MPEG_DONE 302, wenn im Leerlauf), dreidimensionale Rendering-Einheit (3D_DONE 304, wenn im Leerlauf), zweidimensionale Rendering-Einheit oder Butter (BLT_DONE 306, wenn im Leerlauf) und/oder Hardware-Binning-Einheit (HB_DONE 308, wenn im Leerlauf). Jedes der „DONE" Signale 302, 304, 306 und/oder 308 kann durch Verzeichnisbits im ICS-Verzeichnis 395 zum Testen und Bereitstellen einer flexiblen Aktivitätsberechnungspolitik maskiert oder unmaskiert werden.
  • Zum Beispiel entsprechen vier Bits 400403 des ICS-Verzeichnisses 395 (ICS[11:8]) wie in 6 gezeigt eindeutig den DONE Signalen 302, 304, 306 und 308. Daher führt die Einstellung des ICS[11] dazu, dass ein aktives Signal von einem ersten Logikgatter 410 (z. B., ein ODER-Gatter) ausgegeben wird, derart, dass das MPEG_DONE Signal 302 maskiert wird (z. B., in einen bestätigten logisch „hoch" Zustand gesetzt wird). In ähnlicher Weise, verursacht die Einstellung von ICS[10:8] aktive Signale von den anderen Logikgattern 420, 430 und 440 (z. B., ODER-Gatter), derart, das die 3D_DONE, BLT_DONE und HB_DONE Signale 304, 306, 308 ebenfalls maskiert werden.
  • Erneut Bezug nehmend auf 4, wird der Leerlaufmonitor 310 angepasst, um die Untätigkeit der Render-Engine innerhalb eines voreingestellten Zeitintervalls zu bestimmen. Basierend auf diesen Leerlaufmessungen, kann der Leerlaufmonitor 310 das DSTATE Signal und das CH_FREQ_REQ Signal erzeugen. Die DSTATE und CH_FREQ_REQ Signale können auch durch Software eingestellt werden. Da GIDLE 309 während jedem Zyklus von CRCLK 270 abgetastet wird und der Intervallzähler 340 ebenfalls in CRCLK Zyklen zählt, läuft der Leerlaufmonitor 310 auch in der CRCLK Domäne.
  • Der Leerlaufmonitor 310 umfasst einen Leerlaufzähler 320 und einen Intervallzähler 340. Der Leerlaufzähler 320 umfasst mehrere Eingänge 321323. Für diese Ausführungsform der Erfindung, verursacht ein Lösch (CLR) Eingang 321 das Zurücksetzen des Leerlaufzählers 320, beim Empfangen des Reset-Signals (IMrst) beim Einschalten. Der Takt (CLK) Eingang 323 ermöglicht es dem Leerlaufzähler 320, durch das CRCLK Signal 270 getaktet zu werden. Der Freigabe (EN) Eingang 322 beim Empfang eines bestätigten Signals bewirkt beim Leerlaufzähler 320 den Start des Zählvorgangs. Wie gezeigt, ist der Freigabe-Eingang 322 gekoppelt an ein erstes Logikgatter 370 (z. B. UND-Gatter), das mit dem Zählverfahren beginnt, wenn das GIDLE Signal 309 bestätigt ist und ein Ausgang von der kombinatorischen Logikeinheit 330 bestätigt ist.
  • Wie gezeigt, umfasst die kombinatorische Logikeinheit 330 ein zweites Logikgatter 371 (z. B., UND-Gatterfunktion), das einen ersten Eingang hat, zum Empfangen eines Werts von einem Leerlaufmonitor-Freigabebit des ICS-Verzeichnisses (ICS[31]) von Software und einen zweiten Eingang, gekoppelt an eine Sammlung der Logikgatter 372 und 373 (z. B., UND-Gatter 372 und Inverter 373). Die kombinatorische Logikeinheit 330 gibt ein aktives Signal aus als Reaktion darauf, dass (i) der Intervallzähler 340 während einer Countdown-Sequenz nicht Null überschreitet (Bestätigung des höchstwertigen Bits des Intervallzählers 340 „IntMSG" wird „0" aufgehoben) und (ii) das Zählstartsignal (START_CNT) bestätigt wurde, um mit der Zählsequenz zu beginnen.
  • Der Leerlaufzähler 320 umfasst des Weiteren einen Ausgang 324, um eine Leerlaufanzahl in das ISP-Verzeichnis 390 zu übertragen. Für diese Ausführungsform, ist der Ausgang ein Binärwert, der innerhalb von mehrfachen Bits im ISP-Verzeichnis 390 (z. B., ISP[30:10]) gespeichert wird.
  • Zusätzlich umfasst der Intervallzähler 340 mehrere Eingänge 341344. Für diese Ausführungsform wird der Intervallzähler 340 getaktet durch das CRCLK Signal, das einem Takt (CLK) Eingang 341 bereitgestellt wird. Ein Lade (LORD) Eingang 342 verursacht, dass der Intervallzähler 340 beim Zurücksetzen über den Data-In (DIN) Eingang 343 mit einem von zwei Werten geladen wird. Ein Wert, nämlich entweder das schnelle Zustandsintervall (If) 345 oder das langsame Zustandsintervall (Is) 346 wird ausgegeben durch ein Auswahlelement 360 basierend auf dem Wert von CSTATE 347, dem gegenwärtigen Zustand in dem das CRCLK Signal des GMCH läuft. Der Freigabe (EN) Eingang 344, verursacht beim Empfang des bestätigten Signals den Beginn des Zählens durch den Intervallzähler 340. Wie gezeigt, ist der EN-Eingang 344 gekoppelt an die kombinatorische Logik-Einheit 330.
  • Wenn der Intervallzähler 340 an Null vorbeizählt, wird ein Ausgang (z. B., ein Ganzzahlwert des höchstwertigen Bits „IntMSB") 348 bestätigt. Dies führt dazu, dass sowohl der Leerlaufzähler 320 als auch der Intervallzähler 340 stehen bleiben, da die Bestätigung für den Ausgang vom Logikgatter 371 für diese Ausführungsform aufgehoben wird. Die durch den Leerlaufzähler 320 hergestellte Leerlaufanzahl wird dann gemeinsam mit den Werten von CSTATE 347 abgetastet. Die Leerlaufanzahl wird mit entweder dem Ausgang der S2F Zustandsschwelle (Ts2f) 351 oder dem Ausgang der F2S Zustandsschwelle (Tf2S) 352 verglichen durch ein Auswahlelement 361, das durch CSTATE 347 gesteuert wird.
  • Wenn die abgetastete Leerlaufanzahl den gewählten Zustandsschwellenwert überschreitet oder möglicherweise gleich ist und CSTATE 347 bestätigt ist, wird die Bestätigung für das Ausgangssignal (MSB) 353 aufgehoben und an das Logikgatter 374 (z. B., Exklusiv-ODER „XOR"-Gatter) weitergeleitet. Der Ausgang des Logikgatters 374 ist gleichwertig mit dem HW_CH_FREQ Signal 365, nämlich wie in Gleichung (2) gezeigt: HW_CH_FREQ = CSTATE ⊕ MSB. (2)
  • Wenn der Frequenzzustand durch die Hardware des GMCH bestimmt wird, wird EN_HW_TRAN (ICS[30]) bestätigt, derart, dass MSB 353 vom Subtractor 350 ausgegeben wird von dem Auswahlelement 362 und ist folglich gleich dem Wert von DSTATE 391. Das HW_CH_FREQ Signal 365 wird durch das Auswahlelement 363 in das Auswahlelement 364 weitergeleitet.
  • Wenn die abgetastete Temperatur des GMCH, die als Temperaturwert in Bits im ISP-Verzeichnis (z. B., ISP [9:2]) gespeichert ist, nicht eine bestimmte Schwelle überschreitet, wird das CH_FREQ_REQ Signal 381 bestätigt und auf die Frequenzumschaltungseinheit 380 angewendet, wenn das CRCLK Signal gegenwärtig bei einer „'schnellen' Frequenz" wirkt. Alternativ wird die Bestätigung des CH_FREQ_REQ Signals 381 aufgehoben, wenn das Signal gegenwärtig bei einer „'langsamen' Frequenz" wirkt.
  • Wenn die abgetastete Temperatur eine vorgegebene Schwelle überschreitet, wird das THERMALHOT Signal bestätigt und das Steuersignal des Auswahlelements 364 wird bestätigt. Folglich wird die Bestätigung des CH_FREQ_REQ Signals aufgehoben, wenn die gegenwärtige Frequenz des CRCLK Signals bei einem „langsamen" Frequenzniveau (CSTATE = logisch „tief") ist. Wenn indes die gegenwärtige Frequenz des CRCLK Signals bei einem „schnellen" Frequenzniveau (CSTATE = logisch „hoch") ist, wird das CH_FREQ_REQ Signal 381 bestätigt, um eine Verringerung in der CRCLK Frequenz zu ermöglichen.
  • Wenn der Frequenzzustand durch Software bestimmt wird, wird die Bestätigung von EN_HW_TRAN (z. B., ICS[30]) aufgehoben, derart, dass ein entgegengesetzter Zustand von SWRST2S den durch das Logikgatter 375 verursachten Wert von DSTATE 349 einstellt. Die Frequenzumschaltungseinheit 380 wird dann effektiv durch das XOR-Ergebnis von SWRST2S und CSTATE wie durch das Logikgatter 376 bereitgestellt, gesetzt. Die gleiche Übersteuerung des Temperaturabtastens wird durch das Logikgatter 377 bereitgestellt.
  • B. Wirkungsbeispiele der Aktivitätssteuerschaltung
  • Nun Bezug nehmend auf die 7A und 7B, wird ein Ausführungsbeispiel eines Ablaufdiagramms gezeigt, das die allgemeinen Wirkungsweisen von Frequenzumschaltungen von einer „schnellen" zu einer „langsamen" Frequenz der Aktivitätssteuerschaltung von 4 in groben Zügen darstellt. Während diesem Wirken, werden sowohl die Leerlaufzähler als auch die Intervallzähler initialisiert als Reaktion auf ihre Freigabe durch die Software (Block 500). Da CSTATE bestätigt ist, wird ein erstes voreingestelltes Zeitintervall beim Einschalten in den Intervallzähler geladen (Block 505). Das erste voreingestellte Zeitintervall ist gleichwertig mit dem schnellen Zustandsintervall für diese bestimmte Veranschaulichungsausführungsform. Ebenfalls wird die schnell-zu-langsam Schwelle in den Subractor (Block 510) geladen.
  • Wenn das START_CNT Signal bestätigt wird, beginnen sowohl die Leerlaufzähler als auch die Intervallzähler mit dem Zählen (Blöcke 515 und 520). GIDLE wird für jeden Zyklus des CRCLK Signals bestätigt, während der Intervallzähler vom ersten voreingestellten Zeitintervall zurückzählt. Wenn der Intervallzähler an Null vorbei zählt, wird ein Steuersignal bestätigt, was ein Anhalten von beiden Zählern verursacht (Blöcke 525 und 530). Der Leerlaufzählerwert, CSTATE, DSTATE und der die gegenwärtige Temperatur bestimmende Wärmewert des GMCH werden abgetastet (Block 535).
  • Wenn DSTATE durch Hardware bestimmt wird (z. B., EN_HW_TRAN bestätigt ist), ist der über das HW_CH_FREQ Signal weitergeleitete Wert gleichwertig mit CSTATE ‟ DSTATE (Blöcke 540 und 545). Folglich wird, wenn DSTATE sich von CSTATE unterscheidet und die abgetastete Temperatur vom GMCH weniger als eine bestimmte Schwelle ist, das CRCLK Signal des GMCH einem Frequenzumschaltungsvorgang unterzogen, der für den Benutzer transparent ist (Blöcke 550 und 560). Wenn indes die abgetastete Temperatur größer ist als die bestimmte Schwelle, kann der Frequenzumschaltungsvorgang immer noch erfolgen, wenn der gewünschte Übergang sich auf eine niedrigere Frequenz (Blöcke 550 und 555) bezieht. Wenn der gewünschte Übergang sich auf eine höhere Frequenz bezieht, wird kein Frequenzumschaltungsvorgang erfolgen (Blöcke 560 und 565).
  • Wenn DSTATE durch Software bestimmt wird (z. B., die Bestätigung von EN_HW_TRAN aufgehoben wird), ist der Wert des durch Software geänderten Frequenzsignals (SWCHFREQ) gleichwertig zur Gleichung (3), wie in Block 570 gezeigt: SWCHFREQ = [CSTATE ‟ SWRST2S]#, (3) wo „#" eine Inversion des XOR-Ergebnisses darstellt.
  • Folglich wird, wenn die abgetastete Temperatur des GMCH niedriger ist als eine bestimmte Schwelle, das CRCLK Signal des GMCH einem Frequenzumschaltungsvorgang unterzogen, der für den Benutzer transparent ist (siehe Blöcke 555 und 575). Wenn die abgetastete Temperatur indes höher ist als die bestimmte Schwelle, kann der Frequenzumschaltungsvorgang immer noch erfolgen, wenn der gewünschte Übergang sich auf eine niedrigere Frequenz bezieht und SWCHFREQ bestätigt wird (Block 580). Wenn sich der gewünschte Übergang auf eine höhere Frequenz bezieht, wird kein Frequenzumschaltungsvorgang erfolgen (Block 565).
  • IV. Wirkungsbeispiele der Frequenzumschaltungseinheit
  • Nun Bezug nehmend auf 8, wird ein Ausführungsbeispiel eines Ablaufdiagramms gezeigt, das die Wirkungsweisen der Frequenzumschaltungseinheit veranschaulicht. Die Frequenzumschaltungseinheit überwacht das CH_FREQ_REQ Signal sowie die Werte von CSTATE und DSTATE (Block 600). Wenn das CH_FREQ_REQ Signal bestätigt ist, und DSTATE nicht gleich ist wie CSTATE, wird die Frequenzumschaltungseinheit freigegeben (Blöcke 605 und 610). Es wird beabsichtigt, dass, wenn das CH_FREQ_REQ Signal bestätigt ist aber DSTATE gleich CSTATE ist, der Frequenzumschaltungsvorgang kürzlich erfolgt sein könnte so dass die Aufforderung ignoriert wird.
  • Nachdem die Frequenzumschaltungseinheit freigegeben wurde, können die Wirkungen von bestimmten Hardware-Bauteilen (z. B. Befehlsparser, usw.) angehalten werden, um den Leerlauf der Render-Hardware zu ermöglichen, sofern die Rendering-Hardware den Betrieb vorläufig fortsetzt, bis die noch nicht ausgeführten Befehle vollständig ausgeführt wurden (Blöcke 615 und 620). Danach wird das CRCLK Signal getaktet (Block 625).
  • Nachdem das CRCLK Signal getaktet wurde, aktualisiert die Frequenzumschaltungseinheit den Wert von CSTATE durch Zuordnung des Werts von DSTATE zu CSTATE (Block 630). Danach wird das CRCLK Signal aufgetaktet und die bestimmte Hardware und Render-Engine setzen den Betrieb fort (Blöcke 635 und 640). Dies ermöglicht es der Frequenzumschaltungseinheit, die nächste Frequenzänderungsaufforderung zu bedienen, wenn sie eingeleitet wird. Selbstverständlich kann anstelle von einem Gating des CRCLK Signals ein glattes Übergehen von einer Taktfrequenz auf die andere durch andere Mittel (z. B., Wartezustände) durchgeführt werden. Wenn das CRCLK Signal nicht aufgetaktet wird, ist Rendering während der Frequenzumschaltung immer noch möglich, da ein Warten auf die Beendigung nicht ausgeführter Befehle nicht notwendig ist.
  • Bezug nehmend auf 9, wird ein drittes Ausführungsbeispiel des GMCH, das mit einem Taktgenerator zusammenwirkt zum Kontrollieren der durch die Anzeige verbrauchten Frequenz und/oder Spannung, gezeigt. Für diese Ausführungsform, verwendet der GMCH 140 eine einzelne PLL-Schaltung 700, die zusammenwirkt mit der Synchronisator-Logik 710, die Taktsignale von sich unterscheidenden Frequenzen zum Beispiel an den Grafikkern 200 und den Speichercontroller 225 liefert. Wie gezeigt, werden vielfache Taktfrequenzniveaus (CLKs) durch die Synchronisator-Logik 710 unterstützt.
  • Die Synchronisator-Logik 710 ermöglicht ein improvisiertes Frequenzumschalten ohne Bedarf an erneuten Schließungen der PLL-Schaltungen und Taktspannungsspitzen auf der Taktleitung. Ein solches Frequenzumschalten erfolgt von einem Taktsignal (CHCLK), das eine schnelle Frequenz (Ff) hat zu einer Speichertaktfrequenz (MCLK) und von der Speichertaktfrequenz (MCLK) zu einem Taktsignal (CLCLK), das eine langsame Frequenz (Fs) hat. Im Allgemeinen stellt es ein kontinuierliches Abtastschema bereit, um eine deterministische Übertragung von Daten zwischen gekreuzt getakteter Logik zu ermöglichen.
  • Insbesondere umfasst ein Ausführungsbeispiel der Synchronisator-Logik 710, wie in 10 gezeigt, eine Synchronisator-Steuerlogik 800 und einen synchronen Synchronisator 850. Die Synchronisator-Steuerlogik 800 umfasst mehrere Abtastschaltungen 811, 812 und mehrere Auswahlelemente 820 (z. B., Multiplexer). Die Auswahlelemente 820 sind über Kreuz mit den Abtastschaltungen 811, 812 verbunden. Der Synchronsisator 850 umfasst mehrere Flipflops 861, 862 und mehrere Auswahlelemente 870872.
  • Jede Abtastschaltung tastet Flanken von zwei ankommenden Signalen ab, um ein Sende (XMIT) Signal 840 und ein Empfang (RCV) Signal 841 zu erzeugen. Dies kann durchgeführt werden durch eine erste Abtastschaltung 811, die die ansteigenden Flanken von sowohl dem CHCLK Signal 830 als auch dem nachlaufenden MCLK Signal 831 abtastet, um einen bestätigten Teil des XMIT Signals 840 zu berechnen. Das Abtasten der abfallenden Flanken der CHCLK und MCLK Signale 830, 831 kann verwendet werden, um den Teil des RCV-Signals 841 mit der aufgehobenen Bestätigung zu berechnen. In ähnlicher Weise führt die Abtastschaltung 812 ein Flankenabtasten von sowohl dem MCLK Signal 831 als auch dem nachlaufenden CLCLK Signal 832 aus.
  • Als Reaktion auf einen inaktiven CSTATE Wert, erfolgt ein Übergang von einer langsamen Frequenz (Fs) zu einer dazwischenliegenden, mit MCLK (Fm, wo Fm > Fs) verbundenen, Frequenz. Für diese Ausführungsform der Erfindung, kann der Übergang durchgeführt werden durch Takten des Grafikkerns 200 mit CLCLK 832 und der Synchronisator-Steuerlogik 800, die das Sperren der Daten durch die Flipflops 861 und 862 des Synchronisators 850 steuert. Ein erstes Flipflop 861 ist mit CLCLK 832 getaktet und ein zweites Flipflop 862 ist durch MCLK 831 getaktet. Des Weiteren steuern die XMIT und RCV Signale 840 und 841 die Propagierung der Daten durch die Auswahlelemente 870871 vom Grafikkern 200 zum Speichercontroller 225.
  • Für den Übergang von einer schnellen Frequenz (Ff) zur Speichercontrollerfrequenz (Fm, wo Ff > Fm), kann der Übergang durch Takten des ersten Flipflops 861 mit CHCLK und des zweiten Flipflops 862 mit MCLK 831 durchgeführt werden. Erneut steuern die XMIT und RCV Steuersignale 840 und 841 die Propagierung der Daten durch die Auswahlelemente 870 und 871 vom Grafikkern 200 zum Speichercontroller 225. Ein Bypass-Signal 880 steuert das Auswahlelement 872, um es Daten zu ermöglichen, das erste Flipflop 861 zu umgehen.
  • Für den GMCH werden vielfache Taktdomänen verwendet. Die Taktdomänenfrequenzen variieren von Schnittstelle zu Schnittstelle ohne genaues Verhältnis zwischen diesen Frequenzen. Zum Ermöglichen einer deterministischen Übertragung zwischen der Logik, die bei unterschiedlichen Frequenzdomänen abläuft, wurde die Synchronisator-Logik 710 entwickelt. Ein Multiplexer wird vor einem Flipflop angeordnet. Die Synchronisator-Steuerlogik wird die Taktflanken abtasten und XMIT und RCV Signale basierend auf der Timing-Margin zwischen CLCLK und MCLK oder CHCLK und MCLK (außer Set-Up-Zeit) erzeugen. Der Synchronisator 810 wird dann diese Steuersignale verwenden. Wenn ein Senden erlaubt ist, wird das XMIT Signal bestätigt und die Daten passieren durch den Multiplexer zum zweiten Flipflop. Das Gleiche gilt für die Empfangsseite.
  • Nun Bezug nehmend auf 11, wird ein Ausführungsbeispiel der in einem maschinenlesbaren Medium 900 einer Rechenvorrichtung gespeicherten Softwaremodule, die GMCH Frequenz und Spannungsdrosselung steuern, gezeigt. Mehrere Softwaremodule 905 können konfiguriert werden, um die Frequenz- oder Spannungsniveaus basierend auf einer Vielzahl von Ereignissen zu verändern.
  • Zum Beispiel kann ein erstes Softwaremodul 910 die Frequenz des Renderingtakts (CRCLK) und die auf den Grafikkern angewendete Spannung basierend auf der Aktivität (z. B., Untätigkeit der Render-Engine) steigern oder verringern. Ein zweites Softwaremodul 915 kann Frequenz und Spannung verändern basierend auf Batterieenergieniveaus und darauf, ob die Rechenvorrichtung an eine AC-Stromversorgungssteckdose gekoppelt ist. Die Frequenz des Renderingtakts wird als Reaktion auf verminderte Energieniveaus, die für eine oder mehrere Batterien der Rechenvorrichtung gemessen werden, gesenkt. Ein drittes Softwaremodul 920 kann Frequenz und Spannung verändern basierend auf Wärmetemperaturen, die innerhalb der das Gehäuse umgebenden Logik der Rechenvorrichtung gemessen werden, oder bei bestimmten Hardwarebauteilen der Rechenvorrichtung gemessen werden. Die Frequenz des Renderingtakts wird gesenkt als Reaktion auf Wärmeablesungen über vorbestimmten durch den Benutzer oder den Hersteller eingestellten Wärmebeschränkungen.
  • Wie in 12 gezeigt, werden allgemeine Wirkungsbeispiele der für das Einsparen von Energie durch Drosseln der auf den GMCH angewendeten Frequenz und Spannung verwendeten Softwaremodule 905 gezeigt. Basierend auf einer ausgewählten Politik 950 der Energieeinsparung, als Reaktion auf Ereignisse 955 (z. B. Aktivität/Untätigkeit, Energie- oder Wärmeniveaus, usw.), kann die Software 905 konfiguriert werden, um die auf den GMCH 140 angewendete Frequenz und Spannung zu verändern. Die Veränderung ist basiert auf „Beschränkungen" 960 (z. B. im Voraus gewählte Schwellenparameter) und „Nachfrage" 965.
  • Hier gibt es für eine bestimmte Ausführungsform der Erfindung zwei allgemeine Arten von Politiken zur Steuerung des Betriebsverhaltens der Rechenvorrichtung: proaktiv und reaktiv. Proaktive Politik gibt einer Politik den Vorzug über eine andere. Wenn der Benutzer zum Beispiel eine Präferenz für maximale Batterielebensdauer über Leistung angibt, kann die Software proaktiv Energie (z. B., Verringerung der Frequenz des Renderingtakts) ohne Empfangen eines Signals vom GMCH reduzieren. Reaktive Politik umfasst eine Reaktion auf ein Ereignis, wie Entfernen des AC-Anschlusses und Ausgleichen der Benutzerpräferenzen.
  • Diese Politiken können durch den Benutzer eingestellt werden durch die grafische Benutzerschnittstelle 1000, die durch die Rechenvorrichtung erzeugt wird, wie in den 13 und 14 gezeigt. Wie in 13 gezeigt, kann der Benutzer unterschiedliche Politiken 1010 auswählen, basierend darauf, ob die Rechenvorrichtung batteriebetrieben wird oder AC-Stromversorgung empfängt. Diese Politiken können zum Beispiel umfassen maximale Batterielebensdauer 1020, maximale Leistung 1030, eine sich anpassende Politik 1040, die verschoben ist in Richtung maximale Batterielebensdauer oder Leistung. Wie in 14 gezeigt, kann eine grafische Benutzerschnittstelle 1050 konfiguriert werden gemäß entweder „reaktiver" Politikbedingungen 1060 und/oder „proaktiver" Politikbedingungen 1070.
  • In einer Ausführungsform der Erfindung, ist die sich anpassende Politik darauf ausgerichtet, Übergänge im Wirken basierend auf verarbeiteter Nachfrage und Nachfragetrends zu leiten. Die „Nachfrage" kann berechnet werden basierend auf momentanen Messungen eines Ereignisses (z. B., Untätigkeit, Nachfrage, Temperatur) sowie auf Trends (z. B., Kombination einer mit einem Ereignis verbundenen gegenwärtigen Datenabtastung gemeinsam mit einer oder mehreren vorhergehenden Datenabtastungen) oder historischen Durchschnittswerten. Zusätzlich kann eine sich anpassende Politik Berechnungen der Kosten des Durchführens eines Übergangs umfassen (z. B., Anzahl vom Megabits pro Sekunde für jedes Watt Strom).

Claims (29)

  1. Grafikspeicher-Controllerhub (140), der Folgendes umfaßt: einen Grafikkern; einen Speichercontroller (225) zum Empfangen eines Speichertaktsignals (260); und eine Schaltung (235), welche auf Software reagiert, die von einem Nutzer gemäß einer proaktiven oder einer reaktiven Politik gewählt werden kann, zum Ändern einer Frequenz eines Render-Taktsignals, das an den Grafikkern (200) übertragen wird, ohne eine Frequenz des Speichertaktsignals zu ändern, wobei die Schaltung des weiteren zum Überwachen der Untätigkeit des Grafikkerns und, falls die reaktive Politik gewählt ist, Reduzieren eines Frequenzniveaus des Render-Taktsignals vorgesehen ist, wenn die Untätigkeit einen bestimmten Prozentsatz an Zeit überschreitet.
  2. Grafikspeicher-Controllerhub nach Anspruch 1, wobei die Schaltung Folgendes umfaßt: eine Kern-Phasenregelschleifen (PLL) Schaltung (255), gekoppelt an den Grafikkern (200), die Kern-PLL-Schaltung (255) zum Bereitstellen des Render-Taktsignals; und eine Aktivitätssteuerschaltung (235) zum Steuern eines Ausgangs der Kern-PLL-Schaltung (255).
  3. Grafikspeicher-Controllerhub nach Anspruch 2, des Weiteren umfassend: eine Frequenzteilerschaltung (220) zum Bereitstellen eines Taktsignals an die Kern-PLL-Schaltung (255), wobei das Taktsignal verwendet wird, um ein Render-Taktsignal herzustellen.
  4. Grafikspeicher-Controllerhub nach Anspruch 3 des Weiteren umfassend: einen Displayport (230), der angepaßt ist zum Empfangen eines Ausgangs vom Grafikkern (200); und eine Phasenregelschleifen-Schaltung (215) zum Bereitstellen eines Taktsignals an den Displayport.
  5. Grafikspeicher-Controllerhub nach Anspruch 2, wobei die Aktivitätssteuerschaltung (235) des Weiteren Folgendes umfaßt: eine Aktivitätsanzeigerschaltung (245) zum Bestimmen der Untätigkeit des Grafikkerns (200) durch Überwachen der Datenverarbeitungstätigkeit durch den Grafikkern; und einen Zustandssequenzer (240), gekoppelt an die Aktivitätsanzeigerschaltung (245) und an die Kern-PLL-Schaltung (255), der Zustandssequenzer zum Signalisieren einer Anpassung des Frequenzniveaus des Render-Taktsignals als Reaktion auf eine Bestimmung durch die Aktivitätsanzeigerschaltung.
  6. Grafikspeicher-Controllerhub nach Anspruch 5, wobei die Aktivitätsanzeigerschaltung (245) Folgendes umfaßt: einen Leerlaufdetektor (300) zum Erzeugen eines aktiven globalen Leerlauf (GIDLE) Signals (309), wenn jede von mehreren Einheiten im Leerlauf ist, die mehreren Einheiten mindestens zwei einer Komprimierungs-/Dekomprimierungseinheit (MPEG_DONE), einer dreidimensionalen Rendering-Einheit (3D_DONE), einer zweidimensionalen Rendering-Einheit (BLT_DONE) und einer Hardware-Binning-Einheit (HB_DONE) umfassen.
  7. Grafikspeicher-Controllerhub nach Anspruch 6, wobei die Aktivitätsanzeigerschaltung (245) des Weiteren Folgendes umfaßt: ein Verzeichnis, das mindestens ein Bit hat, das eindeutig jeder der mehreren Einheiten entspricht, so daß ein Einstellen eines mit einer gewählten Einheit der mehreren Einheiten verbundenen Bits als eine Maske wirkt, so daß die gewählte Einheit dem Leerlaufdetektor als im Leerlauf erscheint.
  8. Grafikspeicher-Controllerhub nach Anspruch 2, des Weiteren umfassend: einen Taktgenerator (120) zum Erzeugen von mindestens einem der Kern-PLL-Schaltung (210) bereitzustellenden Taktsignal, wobei das Render-Taktsignal auf dem Taktsignal basiert.
  9. Grafikspeicher-Controllerhub nach Anspruch 5, wobei die Aktivitätssteuerschaltung (245) des Weiteren umfaßt: eine Spannungsreglerschaltung, die gekoppelt ist an die Aktivitätsanzeigerschaltung (245), die Spannungsreglerschaltung zum Anpassen der an den Grafikkern (200) gelieferten Spannung.
  10. Grafikspeicher-Kontrollerhub (140) nach einem der vorhergehenden Ansprüche, umfassend eine Schaltung zum internen Steuern der Taktfrequenz eines Grafikspeicher-Controllerhubs (140), die Folgendes umfaßt: einen ersten Zähler zum Einstellen einer Anzahl von Zyklen von einem Render-Taktsignal vor Prüfung der Untätigkeit des Grafikspeicher-Controllerhubs (140); einen zweiten Zähler, der bei jedem Zyklus des Render-Taktsignals erhöht wird, wenn der Grafikspeicher-Controllerhub (140) im Leerlauf ist; einen Subtraktor zum Vergleichen eines Zählwerts des zweiten Zählers mit einem bestimmten Schwellenwert; und eine Frequenzumschaltungseinheit zum Anpassen einer Frequenz des Render-Taktsignals, wenn der Zählwert größer ist als der bestimmte Schwellenwert.
  11. Grafikspeicher-Kontrollerhub (140) nach Anspruch 10, wobei der erste Zähler ein Rückwärtszähler ist.
  12. Grafikspeicher-Kontrollerhub (140) nach Anspruch 11, wobei der zweite Zähler ein Vorwärtszähler ist.
  13. Grafikspeicher-Kontrollerhub (140) nach Anspruch 10, des Weiteren umfassend: eine Leerlaufdetektorschaltung, gekoppelt an einen Freigabe-Eingang des zweiten Zählers.
  14. Grafikspeicher-Kontrollerhub (140) nach Anspruch 10, des Weiteren umfassend: einen Multiplexer, der an einen Eingang des Subtraktors gekoppelt ist, der Multiplexer zum Ausgeben einer von einer schnellen Frequenzschwelle und einer langsamen Frequenzschwelle.
  15. Grafikspeicher-Kontrollerhub (140) nach Anspruch 14, wobei der Ausgang des Multiplexers bestimmt wird durch einen gegenwärtigen Zustand (CSTATE) der Schaltung.
  16. Grafikspeicher-Kontrollerhub (140) nach Anspruch 10, wobei ein Ausgang des Subtraktors ein gewünschter Zustand (DSTATE) der Schaltung ist.
  17. Grafikspeicher-Kontrollerhub (140) nach Anspruch 16, wobei die Frequenzumschaltungseinheit ein Signal empfängt zur Änderung eines Frequenzniveaus des Render-Taktsignals, wenn ein Exklusiv-ODER (XOR) Ergebnis des CSTATE und des DSTATE eine Bestätigung des Signals verursacht.
  18. Grafikspeicher-Kontrollerhub (140) nach Anspruch 17, wobei die Frequenzumschaltungseinheit das Ändern des Frequenzniveaus des Render-Taktsignals verhindert, wenn ein Temperaturniveau eines Grafikkerns (200) einen bestimmten Wärmewert überschreitet.
  19. Grafikspeicher-Kontrollerhub (140) nach Anspruch 18, wobei die Frequenzumschaltungseinheit eine Reduktion des Frequenzniveaus des Render-Taktsignals verursacht sogar wenn das Temperaturniveau des Grafikkerns (200) den vorbestimmten Wärmewert überschreitet.
  20. Integrierte Einheit, die Folgendes umfaßt: einen Grafikkern (200) zum Empfangen eines Render-Taktsignals; einen Speichercontroller (225) zum Empfangen eines Speichertaktsignals (260); und eine Schaltung (235), welche auf Software reagiert, die von einem Nutzer zwischen gemäß einer proaktiven Politik oder einer reaktiven Politik gewählt werden kann, um entweder eine an den Grafikkern (200) angelegte Spannung oder Taktfrequenz zu steuern, wobei die Schaltung (235) des weiteren zum Überwachen eines Ereignisses, das mit dem Betriebsverhalten des Grafikkerns (235) verbunden ist, und, falls die reaktive Politik gewählt ist, in Reaktion auf ein Erfassen des Ereignisses zum Signalisieren an den Grafikkern vorgesehen ist, die an den Grafikkern (200) angelegte Frequenz des Render-Taktsignals ohne Änderung einer Frequenz des Speichertaktsignals zu ändern.
  21. Integrierte Einheit nach Anspruch 20, wobei das durch die Schaltung (235) überwachte Ereignis ein Prozentsatz von Untätigkeit in Bezug auf die Gesamtlaufzeit durch die nicht mit Datenverarbeitung verbundene Tätigkeit durch den Grafikkern (200) ist.
  22. Integrierte Einheit nach Anspruch 21, wobei die Schaltung (235) Folgendes umfaßt: Eine Taktgeberschaltung (255), gekoppelt an den Grafikkern (200), die Taktgeberschaltung (255) zum Bereitstellen des Render-Taktsignals an den Grafikkern; und Eine Aktivitätssteuerschaltung (235) zur Reduktion eines Frequenzniveaus des an den Grafikkern (200) gelieferten Render-Taktsignals, wenn die Untätigkeit einen bestimmten Prozentsatz von Zeit überschreitet.
  23. Integrierte Einheit nach Anspruch 22, wobei die Aktivitätssteuerschaltung (235) das Frequenzniveau des Render-Taktsignals steigert, wenn der Prozentsatz an Untätigkeit unter eine gewählte Schwelle fällt.
  24. Integrierte Einheit nach Anspruch 20, wobei das durch die Schaltung überwachte Ereignis Taktgeschwindigkeitsverhältnisse umfaßt.
  25. Integrierte Einheit nach Anspruch 20, wobei das durch die Schaltung überwachte Ereignis Taktdrosselungsprozentsätze umfaßt.
  26. Integrierte Einheit nach Anspruch 20, wobei das Betriebsverhalten ein Niveau an auf den Grafikkern (200) angewendeter Spannung ist.
  27. Rechenvorrichtung, die Folgendes umfaßt: einen Prozessor; und einen an den Prozessor gekoppelten Grafikspeicher-Controllerhub (140), wobei der Grafikspeicher-Controllerhub einen Grafikkern (200), einen Speichercontroller (225) und eine Schaltung (235) umfaßt, welche auf Software reagiert, die von einem Nutzer gemäß einer proaktiven oder einer reaktiven Politik gewählt werden kann, zum Ändern einer an den Grafikkern (200) angelegten Frequenz eines Render-Taktsignals und einer an den Grafikkern angelegten Spannung, wobei die Schaltung (235) des weiteren, falls die reaktive Politik gewählt ist, zum Reduzieren des Frequenzniveaus des Render-Taktsignals vorgesehen ist, wenn eine gemessene Untätigkeitsschwelle des Grafikkerns (200) überschritten wurde, wobei die Schaltung zum Ändern der Frequenz eines Render-Taktsignals ausgebildet ist, ohne ein am Speichercontroller angelegtes Speichertaktsignal zu ändern.
  28. Rechenvorrichtung nach Anspruch 27, wobei die Schaltung des Grafikkspeicher-Controllerhubs Folgendes umfaßt: eine Aktivitätsanzeigerschaltung (245) zum Bestimmen der Untätigkeit durch Überwachen der Datenverarbeitungsaktivität durch den Grafikkern (200); und einen an die Aktivitätsanzeigerschaltung gekoppelten Zustandssequenzer (240), der Zustandssequenzer zum Signalisieren einer Anpassung des Frequenzniveaus des Render-Taktsignals basierend auf einem durch die Aktivitätsanzeigerschaltung ermittelten Untätigkeitsausmaß.
  29. Rechenvorrichtung nach Anspruch 28, wobei die Aktivitätsanzeigerschaltung (245) umfaßt: einen Leerlaufdetektor zum Erzeugen eines aktiven globalen Leerlauf (GIDLE) Signals, wenn jede der mehreren Einheiten im Leerlauf ist, wobei die mehreren Einheiten mindestens zwei einer Komprimierungs-/Dekomprimierungseinheit (MPEG_DONE), einer dreidimensionalen Rendering-Einheit (3D_DONE), einer zweidimensionalen Rendering-Einheit (BLT_DONE) und einer Hardware-Binning-Einheit (HB_DONE) umfassen.
DE10392619T 2002-05-09 2003-04-02 Energieverwaltung für eine integrierte Grafikeinheit Expired - Fee Related DE10392619B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/143,406 US7149909B2 (en) 2002-05-09 2002-05-09 Power management for an integrated graphics device
US10/143,406 2002-05-09
PCT/US2003/010428 WO2003096170A2 (en) 2002-05-09 2003-04-02 Power management for an integrated graphics device

Publications (2)

Publication Number Publication Date
DE10392619T5 DE10392619T5 (de) 2005-08-04
DE10392619B4 true DE10392619B4 (de) 2008-10-16

Family

ID=29400127

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10392619T Expired - Fee Related DE10392619B4 (de) 2002-05-09 2003-04-02 Energieverwaltung für eine integrierte Grafikeinheit

Country Status (9)

Country Link
US (1) US7149909B2 (de)
JP (1) JP4249701B2 (de)
KR (1) KR100866428B1 (de)
CN (1) CN100456209C (de)
AU (1) AU2003223464A1 (de)
DE (1) DE10392619B4 (de)
GB (1) GB2405009B (de)
TW (1) TWI289806B (de)
WO (1) WO2003096170A2 (de)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886164B1 (en) 2002-11-14 2011-02-08 Nvidia Corporation Processor temperature adjustment system and method
US7849332B1 (en) * 2002-11-14 2010-12-07 Nvidia Corporation Processor voltage adjustment system and method
US7882369B1 (en) 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7348957B2 (en) * 2003-02-14 2008-03-25 Intel Corporation Real-time dynamic design of liquid crystal display (LCD) panel power management through brightness control
US6871119B2 (en) * 2003-04-22 2005-03-22 Intel Corporation Filter based throttling
JP2004355081A (ja) * 2003-05-27 2004-12-16 Internatl Business Mach Corp <Ibm> 情報処理装置及びメモリモジュール
US20050057485A1 (en) * 2003-09-15 2005-03-17 Diefenbaugh Paul S. Image color transformation to compensate for register saturation
US20050057484A1 (en) * 2003-09-15 2005-03-17 Diefenbaugh Paul S. Automatic image luminance control with backlight adjustment
US7903116B1 (en) * 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
US20050125701A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US7752470B2 (en) * 2003-12-03 2010-07-06 International Business Machines Corporation Method and system for power management including device controller-based device use evaluation and power-state control
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7187220B1 (en) * 2003-12-18 2007-03-06 Nvidia Corporation Memory clock slowdown
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US20050156930A1 (en) * 2004-01-20 2005-07-21 Matsushita Electric Industrial Co., Ltd. Rendering device and rendering method
US7479753B1 (en) 2004-02-24 2009-01-20 Nvidia Corporation Fan speed controller
US7698575B2 (en) * 2004-03-30 2010-04-13 Intel Corporation Managing power consumption by requesting an adjustment to an operating point of a processor
US7689848B2 (en) * 2004-06-21 2010-03-30 Koninklijke Philips Electronics N.V. Power management adapted to compute average length of time that a processor is idle during each processing cycle from synchronization signals
US8358262B2 (en) 2004-06-30 2013-01-22 Intel Corporation Method and apparatus to synchronize backlight intensity changes with image luminance changes
US7343502B2 (en) * 2004-07-26 2008-03-11 Intel Corporation Method and apparatus for dynamic DLL powerdown and memory self-refresh
US7827424B2 (en) * 2004-07-29 2010-11-02 Ati Technologies Ulc Dynamic clock control circuit and method
US20060095811A1 (en) * 2004-09-15 2006-05-04 Damon Afualo Apparatus and method for graphics memory controlling hub (GMCH) clocking support for dual television encoders
US7222253B2 (en) * 2004-12-28 2007-05-22 Intel Corporation Dynamic power control for reducing voltage level of graphics controller component of memory controller based on its degree of idleness
US8593470B2 (en) * 2005-02-24 2013-11-26 Ati Technologies Ulc Dynamic memory clock switching circuit and method for adjusting power consumption
US7800621B2 (en) * 2005-05-16 2010-09-21 Ati Technologies Inc. Apparatus and methods for control of a memory controller
US7598959B2 (en) * 2005-06-29 2009-10-06 Intel Corporation Display controller
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
JP2007141020A (ja) * 2005-11-21 2007-06-07 Seiko Epson Corp データ処理装置及び電子機器
US7613941B2 (en) * 2005-12-29 2009-11-03 Intel Corporation Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state
US8102398B2 (en) * 2006-03-03 2012-01-24 Ati Technologies Ulc Dynamically controlled power reduction method and circuit for a graphics processor
US8314806B2 (en) * 2006-04-13 2012-11-20 Intel Corporation Low power display mode
US7882380B2 (en) * 2006-04-20 2011-02-01 Nvidia Corporation Work based clock management for display sub-system
US8118483B2 (en) 2006-06-21 2012-02-21 Intel Corporation Thermal sensor having toggle control
US7882381B2 (en) 2006-06-29 2011-02-01 Intel Corporation Managing wasted active power in processors based on loop iterations and number of instructions executed since last loop
US7882384B2 (en) * 2006-08-31 2011-02-01 National Semiconductor Corporation Setting and minimizing a derived clock frequency based on an input time interval
US7802118B1 (en) 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US7797561B1 (en) 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating
US7958483B1 (en) * 2006-12-21 2011-06-07 Nvidia Corporation Clock throttling based on activity-level signals
US9134782B2 (en) 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US7917789B2 (en) * 2007-09-28 2011-03-29 Intel Corporation System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms
US7900497B2 (en) 2007-12-04 2011-03-08 Hitachi Global Storage Technologies Netherlands B.V. System, method and apparatus for obtaining true roughness of granular media
US7817488B2 (en) * 2007-12-20 2010-10-19 Sandisk Corporation Load balancing by using clock gears
US8243085B2 (en) * 2007-12-30 2012-08-14 Intel Corporation Boosting graphics performance based on executing workload
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
US8525840B2 (en) * 2008-05-15 2013-09-03 Apple Inc. Thermal management of graphics processing units
US8199158B2 (en) * 2008-06-11 2012-06-12 Intel Corporation Performance allocation method and apparatus
US9063713B2 (en) * 2008-10-28 2015-06-23 Apple Inc. Graphics controllers with increased thermal management granularity
KR101047540B1 (ko) * 2009-09-14 2011-07-07 엠텍비젼 주식회사 전자 디바이스 및 그 전력 소모 조절 방법
US8269525B2 (en) * 2009-11-17 2012-09-18 Ati Technologies Ulc Logic cell having reduced spurious toggling
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
US8352758B2 (en) * 2010-03-22 2013-01-08 International Business Machines Corporation Power bus current bounding using local current-limiting soft-switches and device requirements information
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8533550B2 (en) 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8799685B2 (en) 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption
US8477490B2 (en) 2011-05-02 2013-07-02 Apple Inc. Cooling system for mobile electronic devices
US9400545B2 (en) 2011-12-22 2016-07-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices
US9105249B2 (en) * 2011-12-29 2015-08-11 Intel Corporation Energy conservation in a controller using dynamic frequency selection
US9323307B2 (en) * 2011-12-30 2016-04-26 Intel Corporation Active display processor sleep state
US20140032938A1 (en) * 2012-07-27 2014-01-30 Texas Instruments Incorporated Power Management
KR101987160B1 (ko) 2012-09-24 2019-09-30 삼성전자주식회사 디스플레이 드라이버 집적회로, 그것을 포함하는 디스플레이 시스템 및 그것의 디스플레이 데이터 처리 방법
US9125299B2 (en) 2012-12-06 2015-09-01 Apple Inc. Cooling for electronic components
US9275601B2 (en) 2012-12-12 2016-03-01 Intel Corporation Techniques to control frame display rate
US9098282B2 (en) 2012-12-27 2015-08-04 Intel Corporation Methods, systems and apparatus to manage power consumption of a graphics engine
US9563253B2 (en) 2013-03-12 2017-02-07 Intel Corporation Techniques for power saving on graphics-related workloads
US9910473B2 (en) 2013-03-14 2018-03-06 Silicon Storage Technology, Inc. Power management for a memory device
US9552781B2 (en) 2013-03-15 2017-01-24 Intel Corporation Content adaptive LCD backlight control
KR101484600B1 (ko) 2013-05-28 2015-01-22 부산대학교 산학협력단 카운터 기반 멀티 사이클 프로세서 제어 장치
CN103345296B (zh) * 2013-06-04 2016-08-10 三星半导体(中国)研究开发有限公司 动态电压频率调整触发装置和方法
US9223167B2 (en) 2013-06-26 2015-12-29 Apple Inc. Liquid crystal switching barrier thermal control
US9389029B2 (en) 2013-09-30 2016-07-12 Apple Inc. Heat transfer structure
KR102105408B1 (ko) 2013-12-02 2020-04-29 삼성전자주식회사 디스플레이 드라이버 ic, 이의 동작 방법, 및 이를 포함하는 장치들
KR102222752B1 (ko) 2014-08-01 2021-03-04 삼성전자주식회사 프로세서의 동적 전압 주파수 스케일링 방법
KR102325453B1 (ko) * 2014-12-04 2021-11-11 삼성전자주식회사 반도체 장치의 동작 방법
US9674986B2 (en) 2015-08-03 2017-06-06 Apple Inc. Parallel heat spreader
US9817431B2 (en) 2016-02-03 2017-11-14 Qualcomm Incorporated Frame based clock rate adjustment for processing unit
US10754410B2 (en) * 2018-11-09 2020-08-25 Monolithic Power Systems, Inc. System and method for standby mode operation of power management system
KR20220036232A (ko) * 2020-09-15 2022-03-22 에스케이하이닉스 주식회사 전자 장치 및 전자 장치의 동작 방법
US11449125B1 (en) 2021-04-01 2022-09-20 Qualcomm Incorporated Adaptive dynamic clock and voltage scaling
CN116449961B (zh) * 2023-06-14 2023-10-10 蔚来汽车科技(安徽)有限公司 输入事件控制方法、系统、电子设备、存储介质及车辆

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0632360A1 (de) * 1993-06-29 1995-01-04 Xerox Corporation Rechnerleistungsverbrauchsreduzierung durch dynamische Spannungs- und Frequenzänderung
US6018803A (en) * 1996-12-17 2000-01-25 Intel Corporation Method and apparatus for detecting bus utilization in a computer system based on a number of bus events per sample period
WO2001073534A2 (en) * 2000-03-24 2001-10-04 Intel Corporation Method and apparatus to control processor power and performance for single phase lock loop (pll) processor systems

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4238784A (en) 1975-01-23 1980-12-09 Colt Industries Operating Corp. Electronic measuring system with pulsed power supply and stability sensing
JPS59200327A (ja) 1983-04-26 1984-11-13 Nec Corp 周辺装置の制御方式
US4825337A (en) 1988-05-17 1989-04-25 Prime Computer, Inc. Circuit board thermal contact device
US5153535A (en) 1989-06-30 1992-10-06 Poget Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US5021679A (en) 1989-06-30 1991-06-04 Poqet Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
JP2879694B2 (ja) 1990-01-29 1999-04-05 株式会社日立製作所 情報処理システム及び外部記憶装置
EP0448328B1 (de) 1990-03-20 1995-12-06 Fujitsu Limited Digital-Analogwandler mit einer Schaltung zur Kompensierung von Ausgangsveränderungen, die von Temperaturänderungen abhängen
EP0474963A3 (en) 1990-09-13 1992-04-15 Kabushiki Kaisha Toshiba Computer system having sleep mode function
JPH05119876A (ja) 1991-10-25 1993-05-18 Toshiba Corp 電子装置及びその装置に含まれる集積回路
US5254992A (en) 1991-10-31 1993-10-19 Fairbanks Inc. Low power electronic measuring system
US5369771A (en) 1991-12-23 1994-11-29 Dell U.S.A., L.P. Computer with transparent power-saving manipulation of CPU clock
JPH05297993A (ja) 1992-04-16 1993-11-12 Dia Semikon Syst Kk マイクロプロセッサの駆動制御装置
US5603036A (en) 1993-02-19 1997-02-11 Intel Corporation Power management system for components used in battery powered applications
US5537343A (en) 1993-09-02 1996-07-16 Elonex Technologies, Inc. Digital assistant system having a host computer with a docking bay and a moveable heat sink for cooling a docked module
US5721837A (en) 1993-10-28 1998-02-24 Elonex I.P. Holdings, Ltd. Micro-personal digital assistant including a temperature managed CPU
US5478221A (en) 1994-01-31 1995-12-26 Lzr Electronics, Inc. Miniature fan for printed circuit board
JP2941161B2 (ja) 1994-02-04 1999-08-25 キヤノン株式会社 組込み型電子機器と該電子機器における機器脱着方法
US5625829A (en) 1994-03-25 1997-04-29 Advanced Micro Devices, Inc. Dockable computer system capable of symmetric multi-processing operations
ATE195380T1 (de) 1994-03-25 2000-08-15 Advanced Micro Devices Inc Gerät und verfahren zum ermöglichen der ankoppelung eines koppelbaren rechnersystems während des betriebes
US5598537A (en) 1994-03-25 1997-01-28 Advanced Micro Devices, Inc. Apparatus and method for driving a bus to a docking safe state in a dockable computer system including a docking station and a portable computer
US5664118A (en) 1994-03-28 1997-09-02 Kabushiki Kaisha Toshiba Computer system having detachable expansion unit
US5930110A (en) 1994-03-28 1999-07-27 Kabushiki Kaisha Toshiba Computer system having detachable expansion unit
US5752011A (en) 1994-06-20 1998-05-12 Thomas; C. Douglas Method and system for controlling a processor's clock frequency in accordance with the processor's temperature
US5550710A (en) 1994-09-09 1996-08-27 Hitachi Computer Products (America), Inc. Packaging and cooling structure for the personal processor module
US5734585A (en) 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
US5745041A (en) 1995-07-11 1998-04-28 Dell U.S.A., L.P. System for dissipating heat from a power supply
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5798951A (en) 1995-12-29 1998-08-25 Intel Corporation Method and apparatus for automatic un-preconditioned insertion/removal capability between a notebook computer and a docking station
US5781783A (en) 1996-06-28 1998-07-14 Intel Corporation Method and apparatus for dynamically adjusting the power consumption of a circuit block within an integrated circuit
US5760636A (en) 1996-06-28 1998-06-02 Intel Corporation Adjusting clock frequency and voltage supplied to a processor in a computer system
KR100204334B1 (ko) * 1996-07-05 1999-06-15 윤종용 표시모드 변환기능을 갖는 비디오신호 변환장치 및 그 장치를 구비한 표시장치
US6275945B1 (en) 1996-11-26 2001-08-14 Kabushiki Kaisha Toshiba Apparatus for radiating heat for use in computer system
US6125450A (en) 1996-12-19 2000-09-26 Intel Corporation Stop clock throttling in a computer processor through disabling bus masters
US5884049A (en) 1996-12-31 1999-03-16 Compaq Computer Corporation Increased processor performance comparable to a desktop computer from a docked portable computer
US5974556A (en) 1997-05-02 1999-10-26 Intel Corporation Circuit and method for controlling power and performance based on operating environment
US5987614A (en) 1997-06-17 1999-11-16 Vadem Distributed power management system and method for computer
US6052133A (en) * 1997-06-27 2000-04-18 S3 Incorporated Multi-function controller and method for a computer graphics display system
US6021506A (en) * 1998-07-31 2000-02-01 Intel Corporation Method and apparatus for stopping a bus clock while there are no activities on a bus
US6460125B2 (en) * 1998-08-07 2002-10-01 Ati Technologies, Inc. Dynamic memory clock control system and method
US6292201B1 (en) 1998-11-25 2001-09-18 Silicon Integrated Systems Corporation Integrated circuit device having a core controller, a bus bridge, a graphical controller and a unified memory control unit built therein for use in a computer system
US6397343B1 (en) * 1999-03-19 2002-05-28 Microsoft Corporation Method and system for dynamic clock frequency adjustment for a graphics subsystem in a computer
US6848058B1 (en) * 1999-06-04 2005-01-25 Ati International Srl Power reduction circuit and method with multi clock branch control
US6633987B2 (en) 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US6407595B1 (en) * 2000-04-04 2002-06-18 Silicon Integrated Systems Corp. Digital clock throttling means
US6715089B2 (en) * 2001-01-22 2004-03-30 Ati International Srl Reducing power consumption by estimating engine load and reducing engine clock speed
US6509788B2 (en) * 2001-03-16 2003-01-21 Hewlett-Packard Company System and method utilizing on-chip voltage controlled frequency modulation to manage power consumption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0632360A1 (de) * 1993-06-29 1995-01-04 Xerox Corporation Rechnerleistungsverbrauchsreduzierung durch dynamische Spannungs- und Frequenzänderung
US6018803A (en) * 1996-12-17 2000-01-25 Intel Corporation Method and apparatus for detecting bus utilization in a computer system based on a number of bus events per sample period
WO2001073534A2 (en) * 2000-03-24 2001-10-04 Intel Corporation Method and apparatus to control processor power and performance for single phase lock loop (pll) processor systems

Also Published As

Publication number Publication date
KR20040104713A (ko) 2004-12-10
DE10392619T5 (de) 2005-08-04
US20030210247A1 (en) 2003-11-13
GB2405009A (en) 2005-02-16
CN1666166A (zh) 2005-09-07
WO2003096170A2 (en) 2003-11-20
JP4249701B2 (ja) 2009-04-08
CN100456209C (zh) 2009-01-28
TWI289806B (en) 2007-11-11
WO2003096170A3 (en) 2004-02-05
US7149909B2 (en) 2006-12-12
GB0424629D0 (en) 2004-12-08
GB2405009B (en) 2005-08-24
TW200404265A (en) 2004-03-16
JP2005524903A (ja) 2005-08-18
AU2003223464A1 (en) 2003-11-11
KR100866428B1 (ko) 2008-10-31

Similar Documents

Publication Publication Date Title
DE10392619B4 (de) Energieverwaltung für eine integrierte Grafikeinheit
DE102004062911B4 (de) Verfahren zum Betrieb eines Prozessors und zugehöriges Prozessorsystem
DE69532226T2 (de) Taktssteuerungseinheit
DE69629123T2 (de) Apparat und verfahren zum reduzieren des stromverbrauchs durch skalierung von spannung und frequenz
DE60311389T2 (de) Spannungsreglung eines Prozessors als Antwort auf Taktfrequenz
US6192479B1 (en) Data processing with progressive, adaptive, CPU-driven power management
US7134029B2 (en) Computer-component power-consumption monitoring and control
DE112006003628B4 (de) System und Verfahren zum Betreiben von Komponenten einer integrierten Schaltung mit unabhängigen Frequenzen und/oder Spannungen
DE112012001358B4 (de) Verwalten von Energieverbrauch in einem Mehrfachkernprozessor
DE10297598B4 (de) Vorrichtung und System zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen
DE102009015495B4 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
DE60116650T2 (de) Strommodus-übergang für einen prozessor
DE102009051387A1 (de) Power Management für Mehrprozessorkerne
DE10297518B4 (de) Wärmemanagement von prozessorbasierten Systemen
EP2796961B1 (de) Leistungssteuerung und Leistungsfähigkeiten in einem Systemagenten eines Prozessors
DE112018000372B4 (de) Systeme und verfahren für eine kohärente energieverwaltung
DE112007000446T5 (de) Verfahren und Vorrichtung zum Verwenden dynamischer Arbeitsmengenmerkmale, um die Skalierung von Frequenz und Spannung einer CPU zu steuern
DE102004034864B4 (de) Erzeugnisse und Verfahren zum dynamischen Verändern eines Taktsignals
DE112017008096T5 (de) Stromsteuerung einer verarbeitungseinheit
US20110078473A1 (en) Latency based platform coordination
DE112018007545T5 (de) Energiesteuerungsarbitration
EP1865403B1 (de) Einzelchip-2D- oder 3D-Graphikprozessor mit eingebettetem Speicher und mehreren Leistungssteuerungsebenen
DE102013217804A1 (de) System und Verfahren zur Berücksichtigung von Alterungswirkungen in einer Computervorrichtung
DE112015004438T5 (de) Niedrigenergie-Prozessor zum Steuern von Betriebszuständen eines Computersystems
US11644884B2 (en) Controlling a processor clock

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10392619

Country of ref document: DE

Date of ref document: 20050804

Kind code of ref document: P

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0001320000

Ipc: G06F0001323400