-
HINTERGRUND
-
Der Advanced Configuration und Power Interface Standard, Revision 3.0, veröffentlicht am 2. September 2004 („ACPI”) schafft eine Schnittstelle zur Betriebssystemsteuerung von Hardwarekomponenten, die ein flexibles Leistungsmanagement erlaubt. Das ACPI schafft ein Verfahren zum Konservieren von Energie durch Versetzen nicht-aktiver Geräte in einen Zustand mit geringer Leistung und kann auch ein gesamtes System in einen Niedrigenergie-Schlafzustand versetzen, wenn dies erwünscht ist. Ein Computersystem in Übereinstimmung mit dem ACPI Standard kann die Leistung reduzieren, um wenige aktive Komponenten, etwa einen Bildschirm oder eine Festplatte oder auch verfügbare Gerate ein- oder auszuschalten. Der ACPI Standard definiert daher einen Schnittstellenmechanismus, der ein ACPI – kompatibles Betriebssystem zur Steuerung und zum Kommunizieren mit einer ACPI kompatiblen Hardwareplattform erlaubt.
-
Nach dem ACPI Standard sind die Prozessorleistungszustände (Cx-Zustände) der Leistungsverbrauch des Prozessors und die thermischen Managementzustände und können weiter als globaler Arbeitszustand G0 definiert werden. Cx weist C0, C1, C2, C3 bis zu Cn auf. Weiter besitzen die Cx Zustände spezifische Eingangs- und Ausgangssemantiken, wie sie in den folgenden Absätzen kurz beschrieben werden.
-
Nach dem ACPI Standard kann ein Prozessor Befehle ausführen, während er in dem C0 Prozessorleistungszustand ist. In dem C1 Leistungszustand ist die Hardwarelatenz gering genug, damit eine Betriebssoftware den Latenzaspekt des Zustands nicht berücksichtigt, wenn es entscheidet, diese zu benutzen. Wie in dem Standard definiert ist, hat der Zustand keine andere für die Software sichtbare Effekte neben dem Versetzen des Prozessors in einen nichtarbeitenden Leistungszustand.
-
Der C2 Leistungszustand bietet verbesserte Leistungsersparnisse gegenüber dem C1 Zustand. Der schlimmste Fall einer Hardwarelatenz wird in diesem Zustand von der ACPI System-Firmware bewirkt und die Betriebssoftware kann diese Information verwenden, um zu bestimmen, wann der C1 Zustand statt des C2 Zustands verwendet werden sollte. Durch diesen Standard wird auch definiert, dass der C2 Zustand keine anderen für die Software erkennbaren Wirkungen hat, als das Bringen eines Prozessors in einen nicht-arbeitenden Leistungszustand.
-
Der C3 Leistungszustand bietet verbesserte Leistungsersparnisse gegenüber dem C1 und C2 Zustand. Die schlimmste Hardwarelatenz für diesen Zustand wird durch die ACPI Systemfirmware geschaffen und die Betriebssoftware kann diese Information verwenden, um zwischen diesen Zuständen zu bestimmen. Während in dem C3 Zustand die Caches eines Prozessors den Zustand beibehalten während sie etwaige Anfragen ignorieren, ist die Betriebssoftware dafür verantwortlich sicherzustellen, dass die Caches kohärent bleiben. Für eine eingehende Definition jedes der Cx Zustände, siehe Abschnitt 8.1 des ACPI Standards, Processor Power States.
-
Ein Dynamic Random Access Memory (DRAM) ist ein typischer Speicher zum Speichern von Information. Der DRAM besteht aus einem Speicherzellenfeld/Matrix, wobei jede Speicherzelle mit einer aus einer Mehrzahl von Messverstärkern, Bitlinien und Wortlinien gekoppelt sein kann. Die Speicherzellenmatrix kann weiter in eine Anzahl von Bänken unterteilt sein.
-
Die DRAM Speicherzellen bestehen aus einem einzigen Transistor und einer Kapazität. Ladung, die in der DRAM Speicherzelle gespeichert ist, verringert sich aufgrund des Leckstroms und die Information geht schließlich verloren, wenn die Ladung nicht periodisch aufgefrischt wird. Da die Ladung periodisch aufgefrischt werden muss, wird dieser Speicher als dynamisch bezeichnet. Ein beispielhafter Auffrischvorgang schließt einen Speichercontroller auf, der Daten aus einem Zellenfeld liest und die Daten in das Zellenfeld zurück schreibt unter Auffrischen der Kapazität in der Speicherzelle auf eine vorangehende Ladung. Ein synchrones DRAM (SDRAM) unterstützt ständig die Selbstauffrischung. Das Selbstauffrischen ist ein Auffrischvorgang, der von dem Speicher, nicht also von einem Speichercontroller ausgeführt wird. Während des Selbstauffischens kann der Speicher einen internen Oszillator verwenden, um Auffrischzyklen zu erzeugen, um Daten, die in den Speicherzellen gespeichert sind, beizubehalten.
-
Sich selbst auffrischende Speicher verbrauchen weniger Leistung, da eine zugehörige Ausgangslatenz vorhanden ist, um den Normalbetrieb fortzusetzen. Da die Leistungsfähigkeit von der Speicherzugriffszeit abhängig ist, kann sie erhöht werden, wenn ein Speichercontroller weiß, wie lange es dauert, um den Speicher aufzuwecken und bereit ist, wenn ein Prozessor ihn benötigt.
-
Ein üblicher Leistungssparansatz ist das Rapid Memory Power Management (RMPM). Das RMPM ist eine Eigenschaft eines Speichercontrollers, die Plattformleistung durch Prüfen der Nutzung durch den Prozessor spart. Wenn ein Prozessor, der mit dem Speichercontroller gekoppelt ist, in den C2–C4 ACPI Zuständen ist, wird er nicht auf den Speicher zugreifen, was es dem Speicher erlaubt, das Selbstauffrischen auszuführen. Ein Speichercontroller kann weiter eine Logik ausschalten, die auf den Lese/Schreibspeicher bezogen ist, um Leistung zu sparen. Leistung kann aufgrund des Ausmaßes des Taktgatters und des Schließens der Delay-Locked Loop (DLL) auf einem Controller während dieses Zustands gespart werden.
-
Das DRAM Row Power Management (DRPM) ist ein weiteres Verfahren zum Reduzieren der Leistungsanforderungen. In dem DRPM kann eine Speicherreihe während des normalen Betriebs basierend auf den Leerlaufzeiten in der Reihe des Speichers in der Leistung herabgesetzt werden. Wenn alle Seiten für die Reihe zu dem Zeitpunkt der Leistungsherabsetzung geschlossen sind, kann ein Gerät einen aktiven leistungsreduzierten Zustand erreichen. Wenn Seiten zum Zeitpunkt der Herabsetzung der Leistung offen bleiben, kann das Gerät einen Zustand einer Vorladung mit herabgesetzter Leistung erreichen.
-
Typischerweise erreicht der Speicher eine Selbstauffrischung nur, wenn dies durch den Prozessor explizit angegeben wird, dass der Prozessor inaktiv wird, wie etwa in den ACPI Zuständen C1, C2 und C3. Während C0 gibt ein Prozessor nicht explizit an, dass er inaktiv werden wird. Was erforderlich ist, sind ein Verfahren und eine Vorrichtung zum Erreichen eines Selbstauffrischens, wenn nicht explizit angegeben wird, dass gekoppelte Komponenten nicht vollständig aktiv sind.
-
In
US2003/0033472 A1 ist ein Verfahren zum Wechseln in einen Selbstauffrischzustand eines DRAM-Speichers offenbart. Für das Wechseln in andere Zustände ist ein Eingriff durch einen Prozessor notwendig.
-
KURZE ERLÄUTERUNG DER ZEICHNUNGEN
-
Ausführungsbeispiele der Erfindung ergeben sich am besten durch Lesen der Offenbarung unter Bezugnahme auf die beiliegenden Zeichnungen, wobei
-
1 ein Blockdiagramm ist, das ein Ausführungsbeispiel eines Computersystems zeigt,
-
2 ein Blockdiagramm ist, das ein Beispiel eines Chipsatzes in einem Computersystem nach einem Ausführungsbeispiel der Erfindung zeigt,
-
3 eine Zustandsdiagramm eines Ausführungsbeispieles zur Reduzieren des Leistungsverbrauchs eines Speichers oder eines Graphikcontrollers ist,
-
4 ein Flussdiagramm ist, das ein beispielhaftes Ausführungsbeispiel zum Verringern des Leistungsverbrauchs des Speichers oder eines Graphikcontrollers zeigt.
-
EINGEHENDE BESCHREIBUNG
-
In der nachfolgenden Beschreibung werden eine Anzahl von besonderen Einzelheiten angegeben. Es versteht sich jedoch, dass Ausführungsbeispiele der Erfindung verwirklicht werden können, ohne diese besonderen Einzelheiten. In anderen Fällen sind gut bekannte Schaltungen, Strukturen und Techniken nicht in ihren Einzelheiten gezeigt, um das Verständnis der Beschreibung nicht zu erschweren. Eine Bezugnahme in der Beschreibung auf „ein Ausführungsbeispiel” oder „das Ausführungsbeispiel” usw. bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft, die in Verbindung mit dem Ausführungsbeispiel beschrieben wird, wenigstens bei einem Aspekt der Erfindung vorhanden ist. Das Auftreten der Phrase „in einem Ausführungsbeispiel” an verschiedenen Orten der Beschreibung beziehen sich nicht notwendigerweise alle auf dasselbe Ausführungsbeispiel.
-
Verschiedene Verfahren und Vorrichtungen werden offenbart zum Steuern des Leistungsverbrauchs von Computersystemen. Bei einem beispielhaften Ausführungsbeispiel kann, wenn ein Prozessor eines Computersystems in einem regelmäßigen Leistungsmodus ist, der Leistungsverbrauch für eine oder mehrere Komponenten eines Speichen, der mit dem Prozessor gekoppelt ist und für andere Systemkomponenten, die Controller haben, die mit dem Stellen von Anfragen an den Speicher verbunden sind, reduziert werden. Ausführungsbeispiele können dies durch Berechnen von Hardwarezuständen erreichen und können daher geringere Leistungszustände erreichen, ohne dass dies explizit von einem Betriebssystem (OS) oder einem Prozessor vorgegeben ist.
-
1 ist ein Blockdiagramm, das ein Beispiel eines Computersystems zeigt. Das Computersystem 100 kann einen Prozessor, eine zentrale Recheneinheit (CPU) usw. 105 aufweisen, mit einem Systemspeicher 115, der mit einem Bus 25 gekoppelt sein kann. Das Computersystem 100 kann weiter eine Displayeinheit 105 aufweisen, etwa ein Flüssigkeitskristalldisplay (LDC), einen Plasmabildschirm, eine Kathodenstrahlröhre (CRT), einen Projektionsschirm usw. Eine Information einschließlich Graphiken, Text, Bildern usw., die auf der Displayeinheit 25 angegeben ist, kann durch einen Graphikcontroller gesteuert sein, etwa einem Chipsatz (nicht gezeigt). Das Computersystem 100 kann eine alphanumerische Eingabeeinheit 120, eine Cursorsteuereinheit 124 und einen Plattenspeicher 130 aufweisen.
-
Der Plattenspeicher 130 kann ein (nicht gezeigtes) maschinenlesbares Medium aufnehmen, auf dem ein Satz von Befehlen (beispielsweise eine Softwareanwendung) gespeichert ist, die einige der hier beschriebenen Ausführungsbeispiele verwirklicht. Die Befehle können auch, vollständig oder wenigstens teilweise in dem Hauptspeicher 115 und/oder dem Prozessor 105 angeordnet sein. Die Befehle können auch von einer Netzwerkschnittstelle 135 zum Verbinden zu einem oder mehreren Netzwerken übertragen werden und/oder empfangen werden. Das Computersystem 100 kann durch eine Wechselspannungsleistungsquelle oder eine Direktstromleistungsquelle (DC) unter Verwendung ein oder mehrerer Batterien betrieben werden. Zusätzlich kann das System 100 ein Server sein und kann mehrere Speicherblöcke 115, mehrere Prozessoren 105, einen beliebigen Untersatz der Blöcke von 1 oder auch zusätzliche Komponenten aufweisen.
-
Obwohl dies nicht gezeigt ist, kann der Bus 25 einen Adressbusses, Bussteuersignale, einen Datenbus und/oder einen Speichercontroller, der zwischen allen Speicherzugriffsanforderungen vermittelt, aufweisen. Der Prozessor 105 kann den Bus 25 steuern, so dass die Kommunikationen zwischen den Eingangs/Ausgangs (I/O) Einheiten das Einbeziehen des Prozessors 105 erfordern kann.
-
Zusätzlich können (nicht gezeigt) andere Controller in dem Computersystem 100 vorhanden sein, die bei Zugriffsanforderungen zu dem Speicher 115 zum Zusammenarbeiten mit dem Prozessor 105 in der Lage sind. Dies kann es einem Controller erlauben, den Adressbus und die Steuersignale des Busses 25 mit minimaler Intervention durch den Prozessor 105 zu betreiben. Als ein Beispiel kann der Prozessor 105 mit dem Ausführen anderer Aufgaben, die nicht den Bus 25 benötigen, beschäftigt sein, oder der Prozessor 105 kann in einem Niedrigenergiezustand leer laufen. Ein Controller kann seinen eigenen Prozessor oder Mikrocontroller oder Maschine beinhalten, die Anforderungen an den Speicher 115 erzeugt. Beispielhafte Controller weisen einen Ethernetcontroller, einen Universal Serial Bus (USB) Controller, einen Tonwandlercontroller, einen Graphikcontroller usw. auf.
-
Zum Zwecke dieser Erläuterung betrifft die Beschreibung einen beispielhaften integrierten Graphikcontroller als ein Beispiel eines Controllers, der dazu in der Lage ist, Gelegenheiten zum Anordnen eines Speichers in einem sich selbst auffrischenden Zustand durch Beobachten der Zustände in Hardware und ohne explizite Befehle von einem OS oder einem zugehörigen Prozessor oder zugehörigen Prozessoren zu nutzen.
-
Weiter werden Beispiele gezeigt des Versetzens des Speichers in das Selbstlauffrischen entsprechend dem Leistungszustand des Prozessors, ohne dass dies explizit von einem Prozessor bestimmt wird. Zusätzlich zu den Leistungsersparnissen in dem Speicher können Speichercontroller Speicher einsparen basierend auf demselben Mechanismus und demselben Verfahren. Der Fachmann wird erkennen, dass die Beschreibung auch auf andere Controller anwendbar sein kann.
-
Weiter können die Controller, da sich die Technologien ändern, in Prozessoren oder auch in Speicher eingebettet sein, d. h., die Funktionalität kann sich um die Hardware herum bewegen, Ausführungsbeispiele sind aber nicht in der Art begrenzt und können bei einer in unterschiedlichen Hardwarekonfigurationen verteilter Funktionalität angewendet werden.
-
2 ist ein Blockdiagramm, das ein Beispiel eines Chipsatzes in einem Computersystem 200 nach einem Ausführungsbeispiel zeigt. Das Computersystem 200 kann einen Prozessor 105 und einen Chipsatz 210 aufweisen. Der Chipsatz 210 wird hier manchmal mit dem allgemeineren Begriff Schaltung 210 bezeichnet. Das Computersystem 200 kann weiter einen Speicher 115 aufweisen. Bei einem Ausführungsbeispiel kann der Chipsatz 210 einen Grafikchipsatz einschließen, etwa einen Intel 45G integrierten Graphikchipsatz von Intel Corporation, Santa Clara, USA.
-
Weiter kann der Chipsatz 210 einen integrierten Graphikcontroller 212 aufweisen zum Schaffen einer Graphik/Videounterstützung. Der Chipsatz 210 kann weiter eine Graphikschnittstelle 222 aufweisen, etwa eine Accelerated Graphics Port (AGP) Schnittstelle zum Unterstützen von (nicht gezeigten) externen Graphikcontrollern für fortschrittliche Graphikfähigkeit. Ein externer Graphikcontroller kann einen Speicher aufweisen.
-
Der Chipsatz 210 kann weiter einen Speichercontroller 213 aufweisen, der mit dem Speicher 115 in Verbindung steht, um Lese/Schreibanforderungen von dem Prozessor 105 zu entsprechen. Der Speicher 115 kann, beispielsweise, ein Speicher mit wahlfreiem Zugriff (DRAM), ein synchroner Speicher mit wahlfreiem Zugriff (SDRAM), ein Doppeldatenraten (DDR) SDRAM sein, ein DDR2 SDRAM usw.
-
Der Chipsatz 210 kann weiter einen I/O Controller 214 aufweisen, um mit Peripheriegeräten (nicht gezeigt) zu verbinden. Obwohl 2 den Prozessor mit einem unterschiedlichen Modul gegenüber dem Graphikcontroller 212 zeigt, können ein oder mehrere Prozessoren 105, der Graphikcontroller 212 und der I/O Controller 214 in einem Modul oder in mehreren Modulen implementiert sein. Wie oben erwähnt, können die Funktionalitäten des Speichercontrollers 213 in dem Prozessor 105 integriert sein.
-
Der Graphikcontroller 212 und der Speicher 115 können Bezugstaktsignale von einem Taktgenerator 205 empfangen. Der Graphikcontroller 212, der Speichercontroller 213 und der Speicher 115 können auch eine Delayed Locked Loop (DLL) Schaltung(en) aufweisen (nicht gezeigt), die beispielsweise zur Zeitsteuerung usw. verwendet werden.
-
Der Graphikcontroller 212 kann Berechnungen zum Verbinden von Displaydaten von dem Speicher 115 und zum Ausgeben der Displaydaten an diese Displayeinheiten mit dem Videoausgangsanschluss 220 ausführen. Der Videocontroller 212 kann weiter andere Operationsverhalten der Displayeinheit 125 bestimmen einschließlich, beispielweise, Auffrischdaten, Rücklichthelligkeit und dgl. Die von dem Graphikcontroller 212 ausgeführten Aktivitäten können zu dem Leistungsverbrauch, der von dem Chipsatz 210 und von dem System 200 verbraucht wird.
-
Bei einem Ausführungsbeispiel kann die Vorrichtung einen Link aufweisen, der mit einem Speicher 115 gekoppelt ist, einer Schaltung 210, die mit dem Link geschaltet ist, wobei die Schaltung zum Berechnen eines Betrags der Zugriffsleerlaufzeit des Speichers 115 gekoppelt ist um zu bestimmen, wann eine Speicherzugriffsleerlaufzeit ausreichend ist, um in einen Selbst-Auffrischzustand zu wechseln und zum Wechseln in einen Selbst-Auffrischzustand basierend auf der Zugriffsleerlaufzeit des Speichers 115 ohne eine explizierte Angabe von dem Prozessor 105 bezüglich des Prozessorleistungszustands.
-
Bei einigen Ausführungsbeispielen ist die Leerlaufzeit des Speichers 115 ein Arbeitszyklusschwellenwert während eines Evaluationsintervalls. Bei einem anderen Ausführungsbeispiel ist die Speicherzugriffsleerlaufzeit eine minimale Dauer in einem bestimmten Leistungszustand. Das vorliegende Ausführungsbeispiel kann weiter ein Steuerbit aufweisen, um optional in derselben Leerlaufzeitperiode fortzuschreiten. In einem anderen Ausführungsbeispiel kann die Schaltung 213 weiter in einen Zustand mit höherem Leistungsverbrauch wechseln, wenn die Zugriffsleerlaufzeit des Speichers 115 geringer ist als der Schwellenwert.
-
Bei einigen Ausführungsbeispielen kann die Zugriffsleerlaufzeit in einem gleitenden Fenster gemessen werden. Beispielsweise kann die Zugriffsleerlaufzeit nicht nur für ein statisches Zeitintervall bestimmt werden, sondern auch hinter einen bestimmten Betrag von Zeit von irgendeiner Anfrage, wobei das gleitende Fenster einen dynamischeren Ansatz zum Bestimmen, wenn ein Speicher in den Selbst-Auffrischungszustand gehen kann, schafft. Einige Beispiele können eine Isolationsperiode mit begleitendem Fenster unter Verwendung eines finiten Impulsantwortfilter (FIR) implementieren. Ein weiteres Ausführungsbeispiel kann einen infiniten Impulsantwortfilter (FIR) aufweisen, beispielsweise zum Gewichten einer neueren Information, die höher ist als die ältere Information in dem gleitenden Fenster.
-
Bei einem Ausführungsbeispiel kann das System eine Leistungsquelle mit einer integrierten Batterie 280 aufweisen, um die Schaltung 210 zu versorgen, einen Speicher 115, der mit einem Link verbunden ist und eine Schaltung 210, die mit dem Link verbunden ist, wobei die Schaltung 210 einen Betrag der Zugriffsleerlaufzeit des Speichers 115 berechnet, bestimmen, ob die Zugriffsleerlaufzeit des Speichers 115 ausreichend ist, um einen Selbstauffrischzustand zu ändern und ändern in einen Selbst-Auffrischzustand basierend auf der Zugriffsleerlaufzeit des Speichers ohne eine explizite Angabe von einem Prozessor 105 bezüglich des Prozessorleistungszustands.
-
Bei einigen Systemausführungsbeispielen ist die Zugriffsleerlaufzeit des Speichers 115 ein Arbeitszyklusschwellenwert während eines Evulationsintervalls. Bei einigen Systemausführungsbeispielen ist die Zugriffsleerlaufzeit des Speichers 115 eine minimale Dauer in einem bestimmten Leistungszustand. Bei einigen Ausführungsbeispielen kann die Schaltung 210 weiter ein Kontrollbit zum optionalen Fortschreiten innerhalb einer Leerlaufperiode aufweisen. Bei einem anderen Ausführungsbeispiel kann die Schaltung weiter konfiguriert sein, um sich in einen höheren Leistungszustand umzustellen, wenn die Zugriffsleerlaufzeit des Speichers 115 kleiner ist als ein Schwellenwert.
-
3 ist ein Zustandsdiagramm, das ein beispielhaftes Ausführungsbeispiel zum Reduzieren des Leistungsverbrauchs eines Speichen oder eines Graphikcontrollers zeigt. Diese Zustande können in einem Speichercontroller umgeschaltet werden, ohne explizit von einem OS instruiert zu sein und auch während ein zugehöriger Prozessor in dem C0 Zustand entsprechend dem ACPI Standard ist. Bei einigen Ausführungsbeispielen kann Leistung gespart werden aufgrund des Ausmaßes des Schließens für I/O Puffer, Takttrunks, Taktteilern, DLLs und/oder Phase Locked Loops (PLLs), während der Prozessor in dem C0 Zustand ist oder ohne dass der Prozessor explizit an Controller und Speicher angibt, dass es inaktiv sein wird.
-
Bei einigen unten angegebenen Ausführungsbeispielen kann die Hardware beobachtet werden und ein beispielhafter Controller des Speichers kann den Speicher in einen selbst-auffrischenden Zustand basierend auf bestimmten Hardwareverhalten versetzen. Wenn, beispielsweise, ein Prozessor für eine bestimmte Leerlaufzeit nicht auf einen Speicher zugreift, oder ein Prozessor versucht, innerhalb einer bestimmten Periode auf einen Speicher zuzugreifen, kann der Speicher in oder aus einem selbst-auffrischenden Zustand bewegt werden. Wenn ein bestimmter Schwellenwert bezüglich der Leerlaufzeit oder der aktiven Zeit in einem Evaulationsintervall erreicht wird, können dieselben Zustandsänderungen ausgelöst werden, wodurch Leistung in dem Speicher als auch in jedem Controller des Speichers gespart wird.
-
Einige Ausführungsbeispiele können weiter Speicherzugriffe justieren, um Möglichkeiten zum Erreichen eines Selbstauffrischens in dem Speicher zu bewirken. Bei einem Ausführungsbeispiel kann das Speichersystem, das ein Display 125 unterstützt, Zugriffe zu einem Display auffrischen in längeren Bursts zum Verbessern des Fensters der Gelegenheit zum Selbstauffrischen während C0 ausgeführt werden. Weiter kann die Fähigkeit zum Verwalten von Möglichkeiten zum Erreichen eines Selbstauffrischens zwischen unterschiedlichen Speicherzugriffen koordiniert werden.
-
Da ein Prozessor 105 beispielsweise unterschiedliche Zugriffsanforderungen auf den Speicher 115 haben kann als ein Speicher 125 während des Auffrischens, können die gesonderten Zugriffsanforderungen in einer Weise zum Erlauben der Möglichkeiten zum Erreichen des Selbstauffrischens koordiniert werden. Ein Speicher 125 kann daher längere Züge für ein Displayauffrischzugang basierend auf einem Prozessor 105 haben mit bestimmter Speicherzugriffsaktivität, etwa einer bestimmten Speicherzugriffsleerlaufzeit oder andere Speicherzugriffsaktivitäten, die Möglichkeiten schaffen zum Koordinieren der Speicherzustände des Selbstauffrischens.
-
Es wird jetzt auf das in 3 gezeigt Ausführungsbeispiel Bezug genommen. Ein Statusdiagramm mit unterschiedlichen Speichercontrollerleistungszuständen (MCx) ist gezeigt mit einem Zustand MC0 320, Zustand MC1 340 und einem Zustand MC2 360. Entsprechend diesem Ausführungsbeispiel kann das MC0 definiert werden als ein normaler Speicherzustand, MC1 kann definiert werden als ein DRPM Zustand und MC2 kann definiert werden als ein Selbst-Auffrischzustand. 3 zeigt daher das Schalten zwischen beliebigen mit zwei Zuständen MC0 320, MC1/DRMP 340 und MC2/Selbstauffrischen 360 als auch ein Schalten zwischen Zuständen in jeder Richtung in Richtung auf das Selbstauffrischen oder in Richtung auf einen vollen Leistungszustand. Zusätzlich können alle diese Zustände operativ sein, während ein zugehöriger Prozessor bzw. zugehörige Prozessoren in dem ACPI C0 Zustand ist (sind).
-
Unter der Annahme, dass ein Speichercontroller in dem MC0 320 Zustand arbeitet, ist es daher möglich, in den MC1/DRPM 340 Zustand durch Erreichen einer MCI Promote Limit 312 fortzuschreiten oder es kann f zu einem MC2/Selbst-Auffrischzustand 360 durch Erreichen eines MC2 Promote Limit 310 ortschreiten. Zusätzlich kann es, wenn der Speichercontroller in dem MC1/DRPM 340 Zustand war, in den MC2/Selbst-Auffrischzustand 260 durch Erreichen des MC12 Promote Limit 314 fortschreiten, wie in 3 angegeben.
-
3 zeigt weiter ein Beispiel eines rückgestuften Powerzustands. Das heißt, wenn ein Speichercontroller in einem MX2/Selbst-Auffrischzustand 360 ist, kann es entweder zu einem MC1/DRPM Zustand 340 oder dem MC0 320 Zustand rückstufen, wie dies mit ähnlichen Rückstufungen gezeigt ist wie den Hochstufungen auf der linken Seite der 3.
-
Auf diese Weise kann die zulässige Auslasslatenz eines angebrachten Prozessors zum Bestimmen, wann ein Speichercontroller und/oder ein Speicher einen Übergang anordnen kann zu oder von einem Selbst-Auffrischen und damit den durchschnittlichen Leistungszustand verringern.
-
Während C0 können Ausführungsbeispiele von dem DRAM Row Power Management (DRPM) zu/von einer Selbst-Auffrischung basierend auf dem DRAM Zugang rückstufen/hochstufen kann einen Selbst-Auffrischzustand entweder sofort oder bei nächster Gelegenheit erreichen, wenn Zeit in dem DRAM Zustand von ausreichender Länge war, kann den DRPM Zustand bei der nächsten Angelegenheit erreichen, wenn die Selbst-Auffrischzeit nicht von ausreichender Dauer war und kann iterative Frequenzschritte annehmen, bis eine Zielcontrollerverwendung ein Treffer ist. Einige Ausführungsbeispiele können eine minimale Dauer garantieren sowohl für das DRPM als auch für die Selbst-Auffrischung. Zusätzlich können Ausführungsbeispiele optional DLLs inaktivieren, um noch mehr Leistung zu sparen. Beispielhafte Ausführungsbeispiele werden jetzt in weiteren Einzelheiten unter Bezugnahme auf das Statusdiagramm von 3 erläutert.
-
Gemäß einer Ausführungsform kann Leerlaufzeit über ein Evaluationsintervall akkumuliert werden, und können Entscheidungen betreffend Speicherleistungszustand anhand dieser Leerlaufakkumulierungen über das Intervall getroffen werden. Das folgende Beispiel bezieht sich auf Berechnen von Prozentsätzen, jedoch sind Ausführungsformen nicht derart eingeschränkt und können tatsächlich jeden geeigneten Schwellenwert verwenden. Die folgende Beschreibung verwendet Pseudocode-Darstellungen, jedoch offenbart die Beschreibung im Wesentlichen einen Weg zum Akkumulieren von Leerlaufzeiten über ein Evaluationsintervall, das wie unten beansprucht verwendet werden soll.
-
Bei dem vorliegenden Beispiel kann ein Leerlauf-Prozentsatz definiert werden als die (Summe der Leerlaufzeiten)/(Abtastintervall)·100. Der Leerlauf-Prozentsatz kann dann verwendet werden zum Bestimmen, ob das Ausführungsbeispiel zu einem neuen MCx Zustand hochstufen oder rückstufen sollte. Die Grenzen können daher gesetzt werden an programmierbaren Zeitvorgaben wie MCx PromoteLimit = 100ms und McxDemotLimit = 100mx, zum Beispiel. Diese beiden Grenzen zeigen, dass für jeden MC Zustand programmierbare Grenzen gesetzt werden können, die, wenn sie entweder erreicht oder überschritten werden, ein Controller oder ein zugehöriges Speicher zu einem tieferen oder höheren Leistungszustand hochgestuft oder rückgestuft werden.
-
Das vorliegende Ausführungsbeispiel kann weiter dafür sorgen, dass Leerlaufprozentsätze können abhängig davon variieren, ob ein Controller oder ein Speicher mit AC oder DC Leistung arbeitet. Beispielsweise:
Unter AC Leistung können beispielhafte Grenzen sein:
MC0PromoteProzent = 50%
MC2DemoteProzent = 40%
MC2PromoteProzent = 60%
-
Unter DC Leistung sind Grenzen beispielsweise wie folgt:
MC1PromoteProzent = 20% | Wenn der Leerlauf 20% der Zeit beträgt, gehe in MC1 |
MC2DemoteProzent = 20% | Wenn in MC2 gewesen, jetzt Leerlauf 20% der Zeit, gehe |
| in MC1 |
| |
MC2PromoteProzent = 40% | Wenn Leerlauf 40% der Zeit, gehe in MC2, wenn Leerlauf. |
-
Nach dem vorliegenden Ausführungsbeispiel kann, wenn der Controller nicht für einen ausreichenden Schwellenwert im Leerlauf ist, beispielsweise wenn Leerlauf < 8 Takt, in dem MC0 bleiben. Wenn der Leerlauf für den Schwellenwert ist, kann die Leerlaufzeit akkumuliert werden über ein Evaluationsintervall und eine Bestimmung kann zum Verschieben von leistungssparenden Zuständen in dem Speicher und dem zugehörigen Speichercontroller ausgeführt werden.
-
Der MC2PromoteProzent kann beispielsweise in den dem MC2 Promote Limit
312 in
3 gleichsetzen und, wenn die 40% Grenze einmal erreicht ist, können der Controller und der Speicher in den MC2/Selbst-Auffrischzustand
360 geraten, wenn Leerlauf gegeben ist. Es wird daher unter Bezugnahme auf
3 deutlich, wie die anderen Hochstuf/Rückstufe Prozentsätze in dem beispielhaften Pseudocode dem Statusdiagramm von
3 entsprechen. Entsprechend dem anderen Ausführungsbeispiel kann die Leerlaufzeit einfach basierend auf einer Dauer, über die auf den Speicher nicht zugegriffen wird, berechnet werden. Dieses beispielhafte Ausführungsbeispiel kann eine Minimalzeit sicherstellen, in einem MC Zustand vor dem Schalten in einen anderen Zustand verbleibt, beispielsweise kann die Leerlaufzeit jedes Mal berechnet werden, wenn ein Controller einen MCx Zustand erreicht. Der Pseudocode für dieses Ausführungsbeispiel kann sein:
Promote zu MCx + 1, | wenn die vorangehende Graphikleerlaufzeit größer ist als |
| MCx Zeit Promote |
| |
Demote zu MCx – 1, | wenn die vorangehende Graphikleerlaufzeitdauer kleiner ist |
| als MCx Zeit Demote. |
-
Daher gilt:
MC1_Zeit_Promote = 100 μsec | wenn letzte verbrauchte Zeit in Leerlauf > 100 μsec, dann gehe |
| zu MC1 |
| |
MC1_Zeit_Demote = 40 μsec | wenn letzte verbrauchte Zeit in MC4 war < 20 μsec, dann gehe |
| zu MC0 |
| |
MC2_Zeit_Promote = 20 μsec | wenn letzte verbrauchte Zeit in MC4 war > 200 μsec, dann |
| gehe zu MC2 |
| |
MC1_Zeit_Demote = 20 μsec | wenn letzte verbrauchte Zeit in MC5 war < 200 μsec, dann |
| gehe zu MC1 |
-
Zusätzlich kann ein Steuerbit verwendet werden, um optional das Hochstufen in derselben Leerlaufperiode zu erlauben. Eine symbolische Statusmaschine für das vorliegende Ausführungsbeispiel ist sehr ähnlich zu der Leerlaufzeitakkumulation über einem Evaluationsintervallausführungsbeispiel mit der Ausnahme, dass MCx_Zeit_y Schwellenwerte verwendet werden statt MCx_y_Limits.
-
4 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 400 zum Reduzieren des Leistungsverbrauchs eines Speichers und/oder eines Graphikcontrollers zeigt. Es wird auf 4 Bezug genommen. Ein beispielhaftes Verfahren für einen Speicher zum Erreichen einer Selbst-Auffrischung kann das Berechnen der Menge der Speicherzugriffsleerlaufzeit beinhalten, wie in dem Block 410 gezeigt. In dem Block 420 des beispielhaften Ausführungsbeispiels 400 kann das Bestimmen einschließen, wenn die Speicherzugriffsleerlaufzeit ausreichend ist, um einen Selbst-Auffrischstatus zu erreichen und in dem Block 430 des beispielhaften Verfahrens 400 kann das Ändern in einen selbstauffrischenden Status beinhalten basierend auf einer Speicherzugriffsleerlaufzeit ohne eine explizite Bestimmung von einem Prozessor in Abhängigkeit von dem Prozessorleistungszustand.
-
Bei einem Ausführungsbeispiel können Verfahren der Speicherzugriffsleerlaufzeit ein Arbeitszyklusstellenwert sein während eines Evaluationsintervalls. Beispielsweise bei einem Beispiel kann, während des Arbeitens auf Batterieleistung mit einem aktiven Prozessor, ein mobiles Ausführungsbeispiel einer Leerlaufzeit von 20% erkennen und dann in einen DRPM Zustand übergehen, während eine Leerlaufzeit von 40% für den zugehörigen Speicher in einen Übergang in einen selbstauffrischenden Zustand führt, wie unter Bezugnahme auf 3 diskutiert.
-
Bei einigen Verfahren kann die Speicherzugriffsleerlaufzeit zusätzlich eine minimale Dauer in einem bestimmten Leistungszustand sein. Wenn in einem Controllerzustand, beispielsweise einem Speichercontroller, das in dem DRPM Zustand gewesen ist für eine gewisse Zeitdauer, eine minimale Zeit erreicht wird, kann diese in einen selbstauffrischenden Zustand übergehen und der zugehörige Speicher kann in eine Selbst-Auffrischung gehen oder wenn der Speichercontroller unter einem bestimmten Schwellenwert ist, kann er in einen normalen Speicherzustand zurückkehren. Einige Ausführungsbeispiele können das Setzen eines Steuerbits zum optionalen Hochstufen in derselben Leerlaufperiode beinhalten.
-
Die vorliegende Erfindung kann ausgeführt werden bei bestimmten Formen, ohne sich aus dem Schutzbereich oder den wesentlichen Merkmalen zu lösen.