DE102013214907A1 - Training, power-gating und dynamische Frequenzänderung eines Speichercontrollers - Google Patents

Training, power-gating und dynamische Frequenzänderung eines Speichercontrollers Download PDF

Info

Publication number
DE102013214907A1
DE102013214907A1 DE102013214907.7A DE102013214907A DE102013214907A1 DE 102013214907 A1 DE102013214907 A1 DE 102013214907A1 DE 102013214907 A DE102013214907 A DE 102013214907A DE 102013214907 A1 DE102013214907 A1 DE 102013214907A1
Authority
DE
Germany
Prior art keywords
state
context
transition
frequency
low power
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.)
Granted
Application number
DE102013214907.7A
Other languages
English (en)
Other versions
DE102013214907B4 (de
Inventor
Sagheer Ahmad
Edward L. Riegelsberger
Tony Yuhsiang Cheng
Laurent Rene Moll
Brian Keith Langendorf
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of DE102013214907A1 publication Critical patent/DE102013214907A1/de
Application granted granted Critical
Publication of DE102013214907B4 publication Critical patent/DE102013214907B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

Ein Verfahren zur Verwaltung eines Speichercontrollers, das Auswählen eines Zustands mit niedriger Leistung aus einer Vielzahl von Zuständen mit niedriger Leistung umfasst. Das Verfahren umfasst des Weiteren Übergehen in den Zustand mit niedriger Energie und Eintreten in den Zustand mit niedriger Leistung, wenn der Übergang abgeschlossen ist, sofern ein Weckereignis nicht empfangen worden ist. Eine Vorrichtung umfasst einen Controller, der konfiguriert ist, um einen Energiezustand für den Übergang auszuwählen, eine Zustandsmaschine, die konfiguriert ist, um Schritte für Übergänge zwischen Energiezuständen eines Speichercontrollers, der über einen Bus mit einem Speicher verbunden ist, auszuführen, eine Speicherung, die konfiguriert ist, um mindestens einen Kontext zu speichern, und eine Kontextfunktionseinheit, die konfiguriert ist, auf Anweisung der Zustandsmaschinenfunktionseinheit den mindestens einen Kontext zu dem Speichercontroller zu streamen. Streamen umfasst das Kommunizieren von N Teilen von Kontextdaten als Stream zu N Registern in dem Speichercontroller. Ein Kontext umfasst eine Vielzahl von Kaliprierungen, die einem für den Übergang ausgewählten Zustand entsprechen.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf das Gebiet von Speichern und Speichercontrollern, und spezifischer auf das Gebiet von dynamischem Power-Gating und dynamischer Frequenzänderung eines Speichercontrollers.
  • HINTERGRUND
  • Computersysteme werden andauernd weiterentwickelt, mit immer schnelleren Verarbeitungsgeschwindigkeiten, immer größeren Datenbehandlungsfähigkeiten und immer steigender Speicherkapazität. Computer werden ebenfalls immer kleiner. Diese Verringerung der Größe ist besonders auf dem Markt für Laptops, Notebooks, Tablets und Taschencomputer zu verzeichnen. Bei der Bestrebung, die Größe und das Gewicht von Laptops, Notebooks und Taschencomputern zu reduzieren, haben die Hersteller gleichzeitig die Größe und das Gewicht von eingebauten Akkus verringert. Da die Lebensdauer von Akkus in Laptops, Notebooks und Taschencomputern ein so wichtiger Aspekt ist, werden Energiemanagementverfahren angewendet, um die Lebensdauer von Akkus zu verlängern.
  • Herkömmliche Computersysteme können eine Vielzahl von energiesparenden Funktionen anwenden, um den Energieverbrauch des Systems zu verringern, wie z. B. Energiesparverfahren für graphische Benutzeroberflächen, Prozessoren und Speichercontroller, die z. B. Frequenzverringung, Takt-Gating, Power-Gating, DRAM-Zustände bei niedriger Leistung, I/O-Modi bei niedriger Leistung und Abschalten von Analog-Schaltkreisen, wie z. B. PLL (Phasenregelschleifen) und DLL (Verzögerungsregelschleifen) umfassen können. Koordiniertes Ein- und Ausschalten dieser Funktionen bei niedriger Leistung können es ermöglichen, dass Systemzustände bei niedriger Leistung verwendet werden, um Energie zu sparen.
  • Jedes Niveau von Power-Gating und Frequenzverringerung eines Systemkomponenten (z. B. Mikroprozessoren und Speichercontroller) ist jedoch zeitbeschränkt aufgrund von Verzögerungen im Eintreten in und Austreten aus einem Energiemodus. Das heißt, dass zwar große Energieersparnisse mittels Power-Gating und/oder Frequenzverringerungen erreicht werden können, solches Power-Gating und solche Frequenzverringerungen möglicherweise aber nicht erlaubt sind, wenn die Zeiten für Eintreten in und oder Austreten aus dem Power-Gating oder der Frequenzverrringerung die Zeitvorgaben übersteigen. Wenn Speichercontrollerzustände geändert werden, kann der Speichercontrollerzustand gespeichert und der Speichercontroller abgeschaltet werden, und später der Speichercontroller wieder eingeschaltet und dessen Zustand wiederhergestellt werden, und die sich daraus ergebende Latenz muss für jeden Aktor, der Speicherzugang anfordert, transparent sein. D. h. es ist möglich, dass die tiefsten Power-Gating- und Energiesparzustände nicht erreichbar sind, weil die sich daraus ergebende Zeitvorgabelatenz zu groß ist.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung bieten eine Lösung für die Herausforderungen, die der Verwaltung von Computersystem-Energiesparzuständen mit deren erforderlichen Eintritts- und Austrittslatenzen zugrunde liegen. In einem Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Verfahren für effiziente Zustandsübergänge offenbart. Effiziente Zustandsübergänge können erreicht werden durch Gebrauch eines zentralisierten Sequenzermechanismus, dem die Echtzeit-Systemlatenztoleranzen bekannt sind, der mehrere in einem Chip verteilte Mechanismen steuern kann und der begleitet ist von örtlicher Speicherung von im Voraus berechneten und kalibrierten Energiezustands-”Kontexten”, die auf jeden auswählbaren Energiezustand Anwendung finden (Zustände mit niedriger Leistung und aktive Zustände).
  • In einem Verfahren gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Verfahren zur Verwaltung eines Speichercontrollers offenbart. Das Verfahren umfasst Auswählen des Eintretens in einen ersten Zustand mit niedriger Leistung aus einer Vielzahl von verfügbaren Zuständen mit niedriger Leistung, Übergehen in den ersten Zustand mit niedriger Leistung von einem ursprünglichen Zustand und, sofern ein Weckereignis nicht empfangen worden ist, Eintreten in den ersten Zustand mit niedriger Leistung, wenn der Übergang in den ersten Zustand mit niedriger Leistung abgeschlossen ist. Die verfügbaren Zustände mit niedriger Leistung sind Zustände mit niedriger Leistung, die unterhalb einer Zeitschwelle für das Übergehen liegen.
  • In einem Verfahren gemäß einer anderen Ausführungsform der vorliegenden Offenbarung wird ein Verfahren zur Verwaltung eines Speichercontrollers offenbart. Das Verfahren umfasst Auswählen für das Eintreten in eine erste Frequenz des Speichercontrollers zum Beenden eines ersten Zustands, Übergehen zu der ersten Frequenz von einer zweiten Frequenz und erneutes Eintreten in den ersten Zustand, wenn der Übergang zu der ersten Frequenz abgeschlossen ist. Der erste Zustand umfasst einen von einem aktiven Zustand und einen von einer Vielzahl von Zuständen mit niedriger Leistung.
  • In einer Vorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung wird eine Energieversorgungsvorrichtung offenbart. Die Energieversorgungsvorrichtung umfasst ein Controller-Modul, eine Zustandsfunktionseinheit, eine Speicherung, eine Kontextfunktionseinheit, einen Speichercontroller und einen Speicher. Das Controller-Modul ist konfiguriert, einen Energiezustand für den Übergang auszuwählen. Die Zustandsmaschinenfunktionseinheit ist konfiguriert, um Schritte für Übergänge zwischen Leistungszuständen des Speichercontrollers, der über einen Bus mit dem Speicher verbunden ist, auszuführen. Die Speicherung ist konfiguriert, um mindestens einen Kontext zu speichern. Die Kontextfunktionseinheit ist konfiguriert, um auf Anweisung der Zustandsmaschinenfunktionseinheit den mindestens einen Kontext an den Speichercontroller zu streamen. Streamen umfasst Kommunizieren von N Abschnitten von Kontextdaten als einen Stream zu N Registern in dem Speichercontroller. Der mindestens eine Kontext umfasst eine Vielzahl von Kalibrierungen, die einem für den Übergang ausgewählten Zustand entsprechen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist aufgrund der folgenden näheren Beschreibung in Zusammenhang mit den beiliegenden Zeichnungen, in denen die gleichen Bezugsziffern gleiche Elemente bezeichnen, besser zu verstehen.
  • 1 stellt ein vereinfachtes Schaltbildbeispiel einer Energieversorgungsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 2 stellt ein Anordnungsbeispiel von Kontexten für eine Vielzahl von Leistungszuständen und Frequenzkombinationen gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 3 stellt ein Zustandsdiagrammbeispiel zum Eintreten in und Austreten aus Leistungszuständen eines Speichercontrollers gemäß einer Ausführungsform der vorliegenden Erfindung dar;
  • 4 stellt ein Zeitvorgabediagrammbeispiel dar, in dem Zeitvorgabeschwellen für gewisse Leistungszustandsübergänge gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt sind;
  • 5 stellt ein Ablaufdiagrammbeispiel dar, in dem Schritte zu einem Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt sind; und
  • 6 stellt ein Ablaufdiagrammbeispiel dar, in dem Schritte zu einem Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt sind.
  • DETAILLIERTE BESCHREIBUNG
  • Es wird jetzt näher auf die bevorzugten Ausführungsformen der vorliegenden Erfindung Bezug genommen, von denen Beispiele in den beigefügten Zeichnungen dargestellt sind. Obwohl die Erfindung in Zusammenhang mit den bevorzugten Ausführungsformen beschrieben wird, versteht es sich, dass diese nicht so gemeint sind, dass die Erfindung auf diese Ausführungsformen beschränkt ist. Im Gegenteil, die Erfindung ist so zu verstehen, dass sie Alternativen, Modifikationen und Äquivalente umfasst, die im Sinn und Umfang der Erfindung enthalten sind, wie diese durch die anhängenden Patentansprüche definiert ist. Ferner werden zahlreiche spezifische Einzelheiten in der folgenden detaillierten Beschreibung von Ausführungsformen der vorliegenden Erfindung dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Ein Durchschnittsfachmann wird jedoch erkennen, dass die vorliegende Erfindung ohne diese spezifischen Einzelheiten ausgeübt werden kann. In anderen Fällen sind bekannte Verfahren, Vorgehensweisen, Komponenten und Schaltkreise nicht in Einzelheiten beschrieben worden, um Aspekte der Ausführungsformen der vorliegenden Erfindung nicht unnötig zu verunklaren. Die Zeichnungen, in denen Ausführungsformen der Erfindung dargestellt sind, sind halbdiagrammatisch und nicht maßstabsgetreu, und insbesondere dienen einige der Dimensionen zur Darstellungsklarheit und sind in den Zeichnungsfiguren übertrieben dargestellt. Auf ähnliche Weise, obwohl die Ansichten in den Zeichnungen der Einfachheit der Beschreibung halber im Allgemeinen ähnliche Orientierungen darstellen, ist diese Darstellung in den Figuren größtenteils willkürlich. Im Allgemeinen kann die Erfindung in jeder Orientierung betrieben werden.
  • BEZEICHNUNGEN UND FACHAUSDRÜCKE:
  • Einige der Teile der folgenden detaillierten Beschreibungen sind in Form von Vorgehensweisen, Schritten, Logikblocks, Verarbeitung und anderen symbolischen Darstellungen von Arbeitsabläufen an Datenbits innerhalb von einem Computerspeicher vorgetragen. Diese Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten in der Datenverarbeitung verwendet werden, um anderen Fachleuten das Wesen ihrer Arbeit am wirksamsten zu vermitteln. Eine Vorgehensweise, ein von einem Computer durchgeführter Schritt, Logikblock, Prozess usw. wird hier und im Allgemeinen als in sich konsequente Folge von Schritten oder Anweisungen, die zu einem gewünschten Ergebnis führt, verstanden. Die Schritte sind solche, bei denen physikalische Manipulationen von physikalischen Größen erforderlich sind. Gewöhnlich aber nicht notwendigerweise haben diese Größen die Form von elektrischen oder magnetischen Signalen, die gespeichert, übertragen, zusammengebracht, verglichen und auf sonstige Weise in einem Computersystem manipuliert werden können. Es hat sich gelegentlich, hauptsächlich aus Gründen einheitlicher Praxis, als praktisch erwiesen, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Begriffe, Nummern o. ä. zu bezeichnen.
  • Man darf aber nicht vergessen, dass all diese und ähnliche Begriffe mit den entsprechenden physikalischen Größen verbunden sind und lediglich praktische Bezeichnungen, die für diese Größen verwendet werden, darstellen. Wenn nicht spezifisch anderweitig angegeben, wie aus der folgenden Diskussion erkennbar ist, ist zu verstehen, dass in der vorliegenden Erfindung durchweg eine Diskussion, in der Begriffe wie ”Verarbeitung” oder ”Zugriff” oder ”Durchführen” oder ”Speicherung” oder ”Wiedergabe” o. ä. gebraucht werden, diese sich auf die Funktion und die Prozesse eines Computersystems oder eines ähnlichen elektronischen Rechengeräts beziehen, das Daten, die als physikalische (elektronische) Größen innerhalb der Register und Speicher des Computersystems und anderen computerlesbaren Medien dargestellt sind, in andere Daten, die auf ähnliche Weise innerhalb der Computersystemspeicher oder Register oder anderen solchen Datenspeicher-, Übertragungs- oder Anzeigegeräten als physikalische Größen dargestellt sind, manipuliert und transformiert. Wenn eine Komponente in mehreren Ausführungsformen erscheint, bedeutet der Gebrauch derselben Bezugsziffer, dass die Komponente dieselbe Komponente ist, die in der ursprünglichen Ausführungsform dargestellt wurde.
  • Ausführungsformen der vorliegenden Erfindung bieten eine Lösung für die steigenden Herausforderungen, die dem Gebrauch von Energiesparzuständen mit deren erforderlichen Eintritts- und Austrittslatenzen innewohnen. Verschiedene Ausführungsformen der vorliegenden Offenbarung können ein Verfahren zur effizienten Verwaltung eines Übergangs in und/oder aus einem aktiven Zustand und einem Zustand mit niedriger Leistung sowie für das Übergehen zwischen mehreren verschiedenen Frequenzen zur Verfügung stellen. Wie nachstehend ausführlich besprochen wird, können effiziente Zustandsübergänge durch Gebrauch eines zentralisierten Sequenzermechanismus, dem die Echtzeit-Systemlatenztoleranzen bekannt sind, der mehrere in einem Chip verteilte Mechanismen steuern kann und der begleitet ist von örtlicher Speicherung von im Voraus berechneten und kalibrierten Energiezustands-”Kontexten”, die auf jeden auswählbaren Energiezustand (Zustände mit niedriger Leistung und aktive Zustände) und jede Frequenzkombination Anwendung finden, erreicht werden.
  • Sequentialisieren von Übergängen des Speichercontrollers in einen Zustand niedriger Leistung und von Frequenzänderungen:
  • In einer Ausführungsform, die in Tabelle 1 dargestellt ist, können Speichercontroller(MC)-Zustände die folgenden Optionen abstrahieren, um während inaktiver Zeiten Energie zu sparen. Wie in Tabelle 1 dargestellt ist, kann ein als Beispiel angegebener MC0-Zustand ein aktiver Zustand sein, in dem ein Computersystem freien Zugriff auf Geräte mit dynamischem Arbeitsspeicher (DRAM) hat. Wie hierin besprochen wird, kann ein Speichercontroller je nach Leistungsanforderungen des Systems bei verschiedenen Frequenzen laufen. Betrieb bei geringerer Frequenz ist oft leistungseffizienter. Die hierin beschriebenen Mechanismen können schnelle und sichere Speicherfrequenzübergänge erleichtern.
  • Ein Speichercontroller kann auch während Zeiten von Inaktivität in einen Energiesparzustand versetzt werden. Der DRAM ist in nicht-MC0-Zuständen (z. B. einem aktiven Zustand) nicht verfügbar, so dass die Zeit, während der ein Speicher-Untersystem in einem nicht-MC0-Zustand verbleiben kann, beschränkt ist. Die Zeit, die dafür erforderlich ist, in den MC0-Zustand zurückzukehren, kann begrenzt sein und innerhalb einer Grenzfall-Latenztoleranz des Systems liegen. In einem Ausführungsbeispiel wird eine Tabelle ausgearbeitet, um die Grenzfall-Latenztoleranz für jeden Leistungszustand festzustellen, wobei die Leistungszustände, die die Latenzschwellen übersteigen, nicht ausgewählt werden. Die Optionen und Kombinationen von Optionen mit größeren Leistungseinsparungen gehen möglicherweise auf Kosten von längeren Austrittslatenzen. Die hierin beschriebenen Mechanismen minimieren die Latenz, die erforderlich ist, um in Zustände mit niedriger Leistung (z. B. MC1, MC2, MC3 und MC4) einzutreten, und aus diesen auszutreten, um in einen MC0-Zustand überzugehen. Durch Minimieren dieser Latenz maximiert dieses Schema die Möglichkeit des Speicher-Untersystems, sich in nicht-MC0-Zuständen zu befinden (z. B. kann eine längere Zeit in Leistungssparzuständen verbracht werden).
    Speicher-Untersystem-Zustand Beschreibung
    MC0 MC aktiv
    MC1 MC Takt-Gating und DRAM Selbst-Aktualisierung
    MC2 MC Power-Gating und DRAM Selbst-Aktualisierung
    MC3 MC Power-Gating; DRAM Selbst-Aktualisierung; und MC-PLL Abschalten
    MC4 Speichercontroller-Power-Gating; DRAM Selbst-Aktualisierung, MC-PLL Abschalten; und MC-I/O Herunterfahren
    Tabelle 1
  • 1 stellt ein als Beispiel angegebenes Computersystem 100 dar (z. B. ein System auf einem Chip (SOC)), das eine Systemenergiemanagementeinheit (SPMU) 102, mindestens einen Speichercontroller 112, einen Speichercontroller PLL 114, einen Speichercontroller-Eingang/Ausgang 116 und mindestens ein DRAM-Modul 118 umfasst. Wie in 1 dargestellt ist, umfasst eine Systemenergiemanagementeinheit 102 in einer Ausführungsform einen Mikrocontroller 104, eine mikrocodierte Funktionseinheit 106, einen On-Die-Speicher 108 (z. B. einen On-Die-SRAM) und eine Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110. In einer Ausführungsform umfasst der SOC 100 eine Vielzahl von Speichercontrollern 112, eine Vielzahl von Speichercontroller-Eingängen/Ausgängen 116 und eine Vielzahl von DRAM-Modulen 118. Wie ferner in 1 dargestellt ist, kann das DRAM-Modul 118 in einer Ausführungsform extern vom Chip liegen und mit dem Speichercontroller-Eingang/Ausgang 116 mittels eines Schnittstellenbus 120 verschaltet sein. In einem Ausführungsbeispiel ist der Bus 120 ein Registerbus, der die Fähigkeit besitzt, Daten in Lese-/Schreibabläufen zu streamen.
  • In einem Ausführungsbeispiel können die mikrokodierte Funktionseinheit 106 und die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 mittels direkten Speicherzugriffs (DMA) programmierbare Logik laufen lassen. In einer Ausführungsform werden die mikrokodierte Funktionseinheit 106 und die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 bei einem Boot-Start mittels Firmware konfiguriert.
  • Um Power-Ungating-Latenz und Frequenzänderungslatenz zu verringern (wodurch die Ausblendzeit von DRAM-Modulen 118 verringert werden kann), kann ein Speicher-Schnittstellenbus 120 beim Boot auf verschiedene Frequenzwerte trainiert werden. Beispielsweise kann die Speicherschnittstelle 120 auf eine anfängliche als Beispiel angegebene Frequenz MF0 trainiert werden, und am Ende des Trainings kann der Kontext des Speichercontrollers 112 im On-Die-Speicher 108 gespeichert werden. Auf ähnliche Weise kann die Speicherschnittstelle 120 auch auf eine andere als Beispiel angegebene Frequenz MF1 trainiert werden, und der entsprechende Kontext kann ebenfalls im On-Die-Speicher 108 gespeichert werden. Daraus können sich N Sätze von Kontexten für N verschiedene Frequenzen für den Speichercontroller 112 ergeben. D. h. jeder Leistungszustand (z. B. MC0–MCn) besitzt einen entsprechenden Satz Kontexte für jede mögliche Frequenz, also kann es insgesamt n·N Sätze von Kontexten geben. Wie hierin besprochen, kann die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 einen zuvor gespeicherten Kontext (welcher der gewünschten Frequenz entspricht) wiederherstellen und auf die neue Frequenz umschalten, wenn ein Leistungsmanagementorgan wie z. B. der Mikrocontroller 104 entscheidet, die MC-Frequenz zu ändern. Auf ähnliche Weise, wie hierin besprochen, wenn der Speichercontroller 112 nicht mehr leistungsbeschränkt ist (aus einem Zustand mit niedriger Leistung zurückgebracht wird), kann die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 den Speichercontroller-Kontext (vom On-Die-Speicher 108), der vor dem Power-Gating aus einem vorigen Kontext gespeichert wurde, wiederherstellen, und ebenfalls die gleiche Taktfrequenz wiederherstellen.
  • In einer Ausführungsform kann die aktuelle Konfiguration und Kalibrierung eines Speichercontrollers 112 als Kontext gespeichert werden, wenn der Speichercontroller 112 leistungsbeschränkt wird, und dann vom gespeicherten Kontext wiederhergestellt werden, wenn der Strom zum Speichercontroller wieder eingeschaltet wird (z. B. Power-Gating aufgehoben). Eine Vielzahl von Kontexten kann im On-Die-Speicher 108 organisiert und gespeichert sein und/oder mittels der Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 wiederhergestellt werden. In einer Ausführungsform können Kontexte so gestapelt werden, dass die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 auf eine Start-Stelle der Kontexte hinweisen kann und bei Kenntnis eines gewünschten neuen Zustands (z. B. MC0, MC1 etc.) die gewünschten Kontexte als Funktion der Kontext-Speicherung/Umspeicherung streamen kann. Bei einem Reboot können alle Kontexte gestreamt werden. Wie hierin besprochen, kann ein gestapelter Teil für jede gewünschte Frequenzänderung gespeichert werden, wobei die dynamischen Teile während der Laufzeit aktualisiert werden. In einem Ausführungsbeispiel kann jeder der Kontexte im On-Die-Speicher 108 gespeichert werden. In einer Ausführungsform wird mindestens ein Kontext im On-Die-Speicher 108 gespeichert und alle restlichen Kontexte werden im DRAM-Modul 118 gespeichert.
  • In einer Ausführungsform, die in 2 dargestellt ist, kann ein Kontext zur Verringerung von Speichercontroller-Speicherungs-/Umspeicherungslatenzen in drei Gruppen von Kontextdaten gruppiert werden: statische Kontextdaten, die mittels Training im Voraus berechnet werden, pseudo-statische Kontextdaten, die beim Boot konfiguriert werden und dynamischer Kontext, der dynamisch vom Speichercontroller 112 erzeugt wird. Beim Boot können ein Speichercontroller I/O 116 und Schnittstellenbus 120 auf alle DRAM-Frequenzen von Interesse und alle gewünschten Zustände (z. B. MC0–MC4) trainiert werden, wobei der statische Kontext im On-Die-Speicher 108 gespeichert wird. In einer Ausführungsform kann der pseudo-statische Kontext Arbeitsleistungskontrollzähler umfassen. Obwohl solche Zähler sich ändern, sind in einer Ausführungsform keine aktualisierten Zähler erforderlich, um in einem Einschaltzyklus erhalten zu bleiben. In einer Ausführungsform besitzt der On-Die-Speicher 108 ausreichende Speicherkapazität für mindestens einen Satz Kontextdaten (z. B. statische, pseudo-statische und dynamische Kontextdaten), die nötig wären, um das Speicher-Untersystem wiederherzustellen. In einer Ausführungsform können andere Sätze von Kontexten im DRAM 118 und/oder im On-Die-Speicher 108 gespeichert werden.
  • Wie in 2 dargestellt, kann ein Kontext so organisiert sein, dass nur der dynamische Inhalt (z. B. Kontextdaten, die dynamisch mittels Hardware wie z. B. Arbeitsleistungskontrollzähler geändert werden) während einer Kontextspeicherfunktion durch die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 gespeichert wird. In einem Ausführungsbeispiel können Kontextdaten aufgeteilt werden in gemeinschaftlichen Kontext (für alle Speichercontroller) und individuellen Kontext (per Speichercontroller). Während einer Umspeicherungsfunktion stellt die Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 die gemeinschaftlichen Kontextdaten wieder her, indem die gemeinschaftlichen Kontextdaten an alle Speichercontroller 112 gestreamt werden, und individuelle Kontextdaten an jeden einzelnen Speichercontroller 112 gestreamt werden.
  • In einem Ausführungsbeispiel können Betriebssysteme Konfigurationen haben, die den Speichercontroller beeinflussen. Der Speichercontroller hat keinen Einfluss darauf, was das Betriebssystem bei Laufzeit für den Speichercontroller ändern oder ablegen will, und diese Änderungen müssen (in dynamischem Kontext) während Einschaltzyklen aufrecht erhalten bleiben. Beispielsweise kann das Betriebssystem den Speichercontroller 112 in einen gewissen Zustand gebracht haben, der gespeichert werden muss (z. B. Fehlerzustände, Anfragen etc.). Diese Änderungsbeispiele können erst durchgeführt werden, wenn das Betriebssystem sie durchführen will.
  • Wie in 1 und 3 dargestellt ist, kann das Sequentialisieren zwischen Speichercontroller-Zuständen durch eine Hardware-Zustandsmaschine und den Sequenzer der mikrocodierten Funktionseinheit 106, der sich im Systemleistungsmanagementeinheit-Komplex (SPMU) 102 befindet, durchgeführt werden. In einer Ausführungsform wird das als Beispiel angegebene Sequentialisieren nicht durch Firmware oder eine Systemkernsoftware durchgeführt, die auf einem Mehrzweck-Prozessor läuft, weil die Zustandumschaltfunktion latenzempfindlich ist. Bevor der Mikrocontroller 104 Speichercontroller-Zustände ermöglicht, kann der Mikrocontroller 104 einige Handlungen vornehmen, um einen Zustand für die mikrocodierte Funktionseinheit 106 vorzubereiten und alle erforderlichen Zähler und Steuerungen zu programmieren.
  • In einem Ausführungsbeispiel kann eine Reihe von Handlungen vom Mikrocontroller 104 durchgeführt werden. Der Mikrocontroller 104 kann mit dem System verhandeln, um eine Maximallatenz festzulegen, die für alle Einrichtungen erträglich ist. Der Mikrocontroller kann ebenfalls einen Ziel-MC-Zustand bei niedriger Leistung und dementsprechende Parameter auswählen, sowie Zustandsequenzdatenfelder, wenn das für diesen Zielzustand erforderlich ist. Der Mikrocontroller 104 kann ebenfalls sicherstellen, dass jegliche statischen Zustandsdaten (z. B. SRAM Nachreparatur oder statische Steuerregister) im On-Die-Speicher 108 vorgespeichert werden. Solche Schritte können sicherstellen, dass ein Kontextspeicherungsvorgang kurz ist. Solche Schritte stellen ebenfalls sicher, dass alle erforderlichen Zustandskontexte für die Kontextumspeicherung vorliegen. Sobald der Mikrocontroller 104 die MC-Zustände ermöglicht hat, ist die Hardwarezustandsmaschine in der SPMU 102 fähig, die mikrokodierte Funktionseinheit 106 zu initialisieren, so dass sie immer in einen Zustand mit niedriger Leistung eintritt, wenn das Speicher-Untersystem nicht läuft und alle Systemclients angeben, dass sie gegenwärtig gesättigt sind.
  • In einer Ausführungsform kann ein Registerbus 112 verwendet werden, um die Kontextspeicherungs- und -umspeicherungsübertragungszeiten zu verringern, der die Fähigkeit besitzt, ”Register-Schreibbefehle” oder ”Register-Lesebefehle” an jeden der Speichercontroller 112 zu streamen, anstatt einzeln auf jeden Teil der Daten zuzugreifen. Der Registerbus kann ebenfalls dazu verwendet werden, um Daten als Register-Schreibbefehle an alle Speichercontroller 112 zu streamen und damit gemeinschaftliche Kontextdaten bei allen Speichercontrollern 112 wiederherzustellen. In einem Ausführungsbeispiel kann der Registerbus ebenfalls Lesedaten von den Registern streamen, um die Kontextdaten der Speichercontroller 112 zu speichern. D. h. die Kontextdaten werden durch Streamen aus den Registern gelesen, um schnelle Kontextdatenspeicherung zu ermöglichen.
  • In einem Ausführungsbeispiel empfängt der Bus N verschiedene Datensätze und die N Datensätze werden in den ersten N Registern gespeichert, z. B. werden die Daten eingestreamt. Ein herkömmliches Register wäre für das Datenstreamen nicht geeignet, da ein herkömmlicher Bus angeben müsste, in welchem Register die Daten unterzubringen sind. Es trifft also zu, dass ein als Beispiel angegebener Bus nicht von einem einzigen Register liest oder darauf schreibt, sondern von mehreren Registern liest und darauf schreibt.
  • Wie hierin besprochen ist die mikrocodierte Funktionseinheit 106 in einer Ausführungsform eine Hardware-Funktionseinheit, die die Frequenzänderungen spezifisch in Sequenz bringt, sowie das Eintreten in und Austreten aus Zuständen mit niedriger Leistung (z. B. MC1–MC4) in Sequenz bringt. Wie in 3 dargestellt, gibt es eine Reihe von Schritten, die zwischen Speicherungs- und Umspeicherungsschritten ausgeführt und von der mikrocodierten Funktionseinheit 106 durchgeführt werden.
  • Sequentialisieren von Umschalten des Speichercontrollers auf niedrige Leistung:
  • Das Zustandsdiagramm von 3 stellt ein Verfahrensbeispiel dar für das Sequentialisieren zwischen den MC-Zuständen, wie es von der Hardwarezustandsmaschine in der SPMU 102 und der mikrocodierten Funktionseinheit 106 implementiert wird. In 3 deuten die Pfeile an, dass der Speichercontroller 112 entscheidet, von MC0 auf MCn umzuschalten, aber nicht direkt in diesen Zustand übergeht. Wie in 3 dargestellt, werden die Übergänge während eines intermediären Zustands durchgeführt, und wenn ein Weckereignis stattfindet, kann das Übergehen in den MCn-Zustand abgebrochen werden. Wie im Einzelnen hierin besprochen wird, werden erst nichtstörende Schritte vorgenommen (Kontextdaten speichern im Gegensatz zu Abschalten etc.). In einem Ausführungsbeispiel sind die frühen Stadien der Übergänge für das Betriebssystem transparent und stören nicht. Wenn beispielsweise ein Weckereignis vom Speichercontroller 112 empfangen wird, während ein Übergang zu einem Zustand mit niedriger Leistung läuft, wird der Übergang abgebrochen, solange noch kein Störschritt stattgefunden hat. Mit anderen Worten, wenn ein Punkt, ab dem es keine Rückkehr gibt, schon erreicht ist, wenn ein Weckereignis stattfindet, würde das System immer noch den ganzen Einschaltzyklus durchführen müssen, vom Speichern der Kontextdaten zum Abschalten und Wiederherstellen des aktiven Zustands (z. B. MC0) nach dem Wiedereinschalten. Unter solchen Bedingungen wird das System sowohl eine Eintrittslatenz als auch eine Austrittslatenz durchmachen müssen.
  • Das Zustandsdiagrammbeispiel in 3 umfasst: einen MC0-Zustand 302, einen MCn-Eintrittszustand 304, einen MCn-Zustand 306 und einen MCn-Austrittszustand 308, wobei n den ausgewählten Zustand mit niedriger Leistung zum Eintreten (z. B. MC1–MC4) bedeutet. Wie ebenfalls in 3 dargestellt, werden die folgenden Zustandsübergangsbeispiele dargestellt: Übergang 320, Übergang 322, Übergang 324, Übergang 326, Übergang 328 und Übergang 330. Übergang 320 wird ausgelöst, wenn der Mikrocontroller 104 einen MC-Zustand mit niedriger Leistung zum Eintreten (z. B. MC1–MC4) auswählt und die Zustandsmaschine in den MCn-Eintrittszustand 304 übergeht. Übergang 322 wird ausgelöst, wenn ein Weckereignis empfangen wird, bevor der Speichercontroller 112 im aktuellen Übergang zu einem gewählten Zustand mit niedriger Leistung einen Punkt erreicht hat, von dem keine Rückkehr möglich ist. Wie in 3 dargestellt ist, wird die Zustandsmaschine mit lediglich minimaler Austrittslatenz in den MC0-Zustand 302 zurückgehen, je nach dem Fortschritt des Eintretens, bevor das Weckereignis empfangen wurde.
  • Wie in 3, in Übergang 324, dargestellt ist, ist ein Weckereignis empfangen worden, nachdem der Speichercontroller 112 einen Punkt im aktuellen Übergang in den ausgewählten Zustand mit niedriger Leistung erreicht hat, von dem keine Rückkehr möglich ist. Also wird der Speichercontroller 112 im Übergang 324 das Eintreten in den ausgewählten Zustand mit niedriger Leistung vollbringen und dann sofort in den MCn-Austrittszustand 308 übergehen, um aus dem aktuellen MCn-Zustand mit niedriger Leistung auszutreten und wieder in den MC0- oder aktiven Zustand 302 einzutreten. Wie hierin besprochen, wenn das Weckereignis während des MCn-Eintrittszustands 304 geltend gemacht wird, springt die Sequenz zum entsprechenden Punkt im der Austrittssequenz und kehrt den Prozess um, oder die Austrittssequenz durchgeht schnell alle unnötigen Austrittsschritte, je nachdem, inwiefern der Übergang zum Zustand mit niedriger Leistung schon erfolgt ist.
  • Im Übergang 326 ist der MC-Zustandseintrittübergang schon abgeschlossen und die Zustandmaschine geht zum MCn-Zustand 306 über. Im MCn-Zustand 306 arbeitet der Speichercontroller 112 im ausgewählten Zustand mit niedriger Leistung (z. B. MC1–MC4). Im Übergang 328 ist ein Weckereignis empfangen worden und die mikrocodierte Funktionseinheit 106 führt einen Übergang in einen dazwischenliegenden Zustand, MCn-Austritt 308 durch. Im Übergang 330 ist das MC-Zustandsaustreten bei MCn-Austrittszustand 308 abgeschlossen und die Zustandsmaschine geht in den MC0-Zustand 302 zurück.
  • In einem Ausführungsbeispiel kann die Sequenz zur Rückkehr aus dem MCn-Zustand 306 zum MC0-Zustand 302 eingeleitet werden, sooft ein Hardware-”Weckereignis”-Signal geltend gemacht wird. In einer Ausführungsform wird das Weckereignissignal geltend gemacht, sooft einer der folgenden Fälle zutrifft: ein Systemclient hat angegeben, dass er Zugriff auf das DRAM-Modul 118 benötigt, ein CPU Weckruf von einer Zeituhrquelle wird empfangen (z. B. entweder eine Unterbrechung oder eine Voranmeldung), und wenn der Mikrocontroller 104 aus irgendeinem Grund entscheidet, die MC-Zustände (MC1–MC4, wie in Tabelle 1 dargestellt) zu sperren.
  • In einer Ausführungsform, wenn ein Weckereignis während einer Eintrittssequenz geltend gemacht wird, springt die Sequenz zum entsprechenden Punkt in einer Austrittssequenz und kehrt den laufenden Prozess um, oder die Austrittssequenz kann schnell die unnötigen Austrittsschritte durchlaufen. Wie in 4 dargestellt ist, können solche Schritte es vermeiden, unnötige Austrittslatenzzeit der Austrittslatenz hinzuzufügen. Das Zeitvorgabediagramm 402 von 4 stellt ein Beispiel eines Worst-Case-Szenarios dar, wobei eine maximale Eintrittslatenz für den Übergang in einen und eine maximale Austrittslatenz für den Übergang aus einem Zustand mit niedriger Leistung erforderlich sind. Mit anderen Worten stellt das Zeitvorgabediagramm 404 die maximale Zeit dar, die für das Eintreten in einen Zustand mit niedriger Leistung (Eintrittslatenz) erforderlich ist, sowie die maximale Zeit, die für das Austreten aus dem aktuellen Zustand mit niedriger Leistung (Austrittslatenz) erforderlich ist, woraus sich eine Worst-Case-Latenz von T1 bis T2 ergibt. Wie hierin besprochen worden ist, sollte ein solches Worst-Case-Szenario normalerweise nicht eintreten, da ein Weckereignis, das bei Beginnen des Eintretens empfangen wurde, zu Abbruch des Eintrittsübergangs und einem schnellen Austrittsübergang führen sollte.
  • Zeitvorgabediagramm 404 von 4 stellt ein Szenariobeispiel mit verringerter Eintrittslatenz und verringerter Austrittslatenz dar (T3 bis T4). Wie im Zeitvorgabediagramm 404 von 4 dargestellt ist, durchkreuzt die Linie 406 das Zeitvorgabediagramm 404 und stellt einen Punkt bzw. eine Schwelle dar, von dem/der keine Rückkehr möglich ist. Linie 408, die das Zeitvorgabediagramm 404 durchkreuzt, stellt einen Punkt im aktuellen Eintrittsübergang dar, wenn ein Weckereignis empfangen wird. Da die Linie 408 im Zeitvorgabediagramm 404 vor der Linie 406 liegt, kann der Rest der Eintrittssequenz abgebrochen und der Austrittsübergang in einen aktiven Zustand (MC0-Zustand) sofort gestartet werden. Wie im Zeitvorgabediagramm 404 von 4 dargestellt, kann die erforderliche Austrittslatenz geringer sein als die in 4 dargestellte Worst-Case-Austrittslatenz, je nach Umfang der Eintrittssequenzen, die abgeschlossen wurden und jetzt umgekehrt werden müssen, um zu einem aktiven Zustand zurückzukehren. Wie ebenfalls in 5 dargestellt, wenn das Weckereignis stattfindet, bevor ein Punkt erreicht wird, von dem keine Rückkehr möglich ist, kann der Rest der Eintrittssequenz abgebrochen und die sich ergebende Austrittslatenz verringert werden, je nachdem, welche Austrittssequenzen nicht mehr durchgeführt werden müssen. D. h. T3–T4 ist eine als Beispiel angegebene Latenz, die unvermeidbar ist, wenn ein Weckereignis bei T3 empfangen wird, bevor der Speichercontroller 118 in einen aktiven Zustand zurückkehrt und das DRAM-module 118 Zugriff erlaubt. In einer Ausführungsform ist T3–T4 lediglich Austrittslatenz, da das Eintreten abgebrochen wurde.
  • In einem Ausführungsbeispiel, wenn Teil einer Mehrzahl von Schritten für einen Übergang abgeschlossen ist, kann die Austrittslatenz das Bearbeiten von den Schritten, die durchgeführt wurden, umfassen (z. B. diese so einzustellen oder zu ändern, wie es für einen aktiven Zustand erforderlich ist). Einige Schritte benötigen mehr Zeit zur Wiederherstellung als andere. Wenn z. B. eine PLL abgeschaltet wird, wird es einige Zeit dauern, bis sie wieder läuft. In einem Ausführungsbeispiel kann eine Vielzahl von Weckereignissen und eine Vielzahl von Entscheidungsereignissen bestehen, wobei das kritischste Ereignis Power-Gating ist, wobei Kontexte von Registern verlorengehen und dieses das kritischste unbehebbare Ereignis ist. In einer anderen Ausführungsform können auch andere Arten von Ereignissen unbehebbar sein, wie z. B. Abschalten des MCIO 116.
  • Zeitvorgabediagramm 410 von 4 stellt eine Szenariobeispiel dar mit Teilen von Eintrittslatenz und Austrittslatenz, die bei Empfang eines Weckereignisses bei T5, bevor der Speichercontroller 118 in einen aktiven Zustand zurückkehrt und das DRAM-Modul 118 Zugriff erlaubt, unvermeidbar sind. Wie in 4 dargestellt ist, durchkreuzt die Linie 406 ebenfalls das Zeitvorgabediagramm 410 und stellt den Punkt bzw. die Schwelle dar, von dem/der keine Rückkehr möglich ist. Linie 412, die das Zeitvorgabediagramm 410 durchkreuzt, stellt einen Punkt im aktuellen Eintrittsübergang dar (z. B. Zeit T5), wenn ein Weckereignis empfangen wird. Da die Zeit T5, Linie 412, nach der Schwelle liegt, Linie 406, ist ein Teil der Eintrittlatenz und der Austrittslatenz unvermeidbar (T5 bis T6).
  • Tabelle 2 stellt ein Beispiel von Sequenzschritten dar, um einen Speicher-Untersystem-Zustand MC0 (z. B. einen aktiven Zustand) in MCn (z. B. einem der Zuständen mit niedriger Leistung, MC1–MC4) zu ändern. In einem Ausführungsbeispiel wird der erste Schritt von Tabelle 2 von der SPMU 102 durchgeführt, während die restlichen Schritte von der mikrocodierten Funktionseinheit 106 durchgeführt werden können. In einem Ausführungsbeispiel kann das Abschalten der Speichercontroller PLLs und/oder DLLs in Schritt 9 als unbehebbares Ereignis betrachtet werden und einen aktuellen Eintrittsübergang über einen Punkt bzw. eine Schwelle hinausbringen, nach dem/der keine Rückkehr möglich ist. In einem Ausführungsbeispiel wird ein einzelner Speichercontroller 112 in einen Zustand mit niedriger Leistung gebracht. In einer Ausführungsform werden eine Vielzahl von Speichercontrollern 112 in einen Zustand mit niedriger Leistung gebracht.
    Schritt 1: Wenn (Schlaf_Ereignis), MCn-Eintritts-MCE-Sequenz aufrufen.
    Schritt 2: Alle Anforderungsquellen sperren und alle nötigen Ressourcen anschaffen.
    Schritt 3: Kurze Zeit warten, bis Sperrsignale sich ausgebreitet haben.
    Schritt 4: MC befehlen, in den Selbst-Aktualisierungszustand einzutreten, sobald alle restlichen Anforderungen verarbeitetet worden sind.
    Schritt 5: Warten, bis MC bestätigt, dass er in den Selbst-Aktualisierungszustand eingetreten ist.
    Schritt 6: MEMIO-Schiene-Abschalten aktivieren.
    Schritt 7: MC-Zustandskontext speichern.
    Schritt 8: MC-Zeituhr auf Bypass-Zeituhrquelle umschalten.
    Schritt 9: MC PLL/DLL abschalten.
    Schritt 10: Signale zur Vorbereitung auf Power-Gating klemmen.
    Schritt 11: Rücksetzen bei allen MC geltend machen.
    Schritt 12: MC-Zeituhren klemmen.
    Schritt 13: Power-Gating für MC einleiten.
    Schritt 14: Alle für diese Sequenz benötigten Ressourcen freigeben.
    Tabelle 2
  • Tabelle 3 stellt ein Beispiel einer Sequenz von Schritten dar, um einen Speicher-Untersystem-Zustand MCn (z. B. einen Zustand mit niedriger Leistung MC2–MC4) auf MC0, einen aktiven Zustand umzuschalten. In einem Ausführungsbeispiel wird der erste Schritt von Tabelle 3 von der SPMU 102 durchgeführt, während die restlichen Schritte von der mikrocodierten Funktionseinheit 106 durchgeführt werden können. In einem Ausführungsbeispiel kehrt ein einzelner Speichercontroller 112 von einem Zustand mit niedriger Leistung in einen aktiven Zustand zurück. In einer anderen Ausführungsform kehrt eine Vielzahl von Speichercontrollern 112 aus einem Zustand mit niedriger Leistung in einen aktiven Zustand zurück.
    Schritt 1: Wenn (Weck_Ereignis) MCx-Austritts-MCE-Sequenz aufrufen.
    Schritt 2: Alle nötigen Ressourcen für die Austrittssequenz anschaffen, die sonst die Eintrittssequenz zum Stillstand bringen oder verlangsamen könnten.
    Schritt 3: Schritt eins (von zwei) der MEMIO-Schienen-Einschaltsequenz.
    Schritt 4: Zeitgeber starten, um die Zeit für Stabilisierung der VDD_MEM-Schiene zählen zu lassen.
    Schritt 5: Um Leistung zu optimieren, Start des nächsten Schrittes so lange wie möglich verzögern, so dass die MEMIO-Schiene geraden eben eingeschaltet wird, bevor der Speicher aus Selbst-Aktualisierung herausgenommen wird.
    Schritt 6: Wiederverriegeln von MC PLL/DLL und anderen PLLs starten; diese sind nötig, damit Geräte auf DRAM Zugriff haben.
    Schritt 7: Power-Ungating für MCx einleiten.
    Schritt 8: Warten, bis Power-Ungating abgeschlossen ist.
    Schritt 9: MC-Zeituhr entklemmen und warten, bis Rücksetzen sich ausgebreitet hat.
    Schritt 10: Geltendmachung von Rücksetzen an alle MCx zurücknehmen.
    Schritt 11: Geltendmachung von Klemmbefähigung an all MC zurücknehmen.
    Schritt 12: Zeituhrkreuzungen aktivieren.
    Schritt 13: SRAM-Nachreparatur vornehmen.
    Schritt 14: Kontext wiederherstellen.
    Schritt 15: Warten, bis MC PLL/DLL verriegelt ist.
    Schritt 16: Befehl an Block der MC-Zeituhren, auf VCO umzuschalten.
    Schritt 17: Warten, bis MEMIO-Schienen-Einschaltzeitgeber abgelaufen ist.
    Schritt 18: Anforderungen entsperren.
    Schritt 19: MC0 und MC1 befehlen, aus dem Selbst-Aktualisierungszustand auszutreten.
    Schritt 20: Alle für diese Sequenz benötigten Ressourcen freigeben.
    Tabelle 3
  • Sequentialisieren von Speichercontroller-Frequenzänderungen:
  • Wie hierin besprochen wurde, kann während Zeiten ohne Aktivität zusätzlich zur Auswahl aus einer Vielzahl von Zuständen mit niedriger Leistung eine Frequenz, die geringer ist als die aktuelle Frequenz, ausgewählt werden. In einem Ausführungsbeispiel kann der Mikrocontroller 104 feststellen, dass eine Frequenzänderung (beispielsweise auf eine niedrigere Frequenz) angemessen ist und wird alle Spannungsänderungen vornehmen, die zur Vorbereitung auf eine Frequenzänderung erforderlich sind. Wie hierin besprochen, kann das Sequentialisieren der Speichercontroller-Frequenzänderungen von einer Hardware-Zustandsmaschine und der mikrocodierten Funktionseinheit 106 der SPMU 102 implementiert werden. Wie bei der Sequentialisierung von Zustandsänderungen kann die Sequentialisierung von Frequenzänderungen mittels Hardware anstatt Firmware vorgenommen werden, da diese Funktion (Frequenzänderungen) latenzempfindlich ist.
  • In einem Ausführungsbeispiel, bei Gebrauch der mikrocodierten Funktionseinheit 106, kann eine Speicherfrequenz-(MF)-Zustandsmaschine, die einer MC-Zustandsänderungs-Zustandsmaschine, wie sie in 3 dargestellt ist, ähnlich ist, gebraucht werden, um Speicherfrequenzen zu ändern. In einer Ausführungsform wird ein Speichercontrollerkontext (welcher der Ziel-Speicherfrequenz entspricht) im Laufe einer Sequenz von Schritten zum Umschalten von einer ursprünglichen Frequenz auf eine neue Zielfrequenz von der Kontext-Speicherungs-/Umspeicherungs-Funktionseinheit 110 wiederhergestellt. In einer Ausführungsform stellt Tabelle 4 ein Beispiel einer Sequenz von Schritten zur Änderung einer Speicher-Untersystemfrequenz von MF0 auf MF1 dar (wobei MF1 > MF0 Frequenz). In einer Ausführungsform wird eine einzelne Speicher-Untersystemfrequenz geändert. In einer Ausführungsform wird eine Vielzahl von Speicher-Untersystemfrequenzen geändert.
    Schritt 1: Spannung entsprechend programmieren.
    Schritt 2: MC-Zustandsübergänge deaktivieren.
    Schritt 3: Allen Systemspeicherclients befehlen, ihre Zwischenspeicher aufzufüllen.
    Schritt 4: MC-Frequenzänderungs-MCE-Sequenz aufrufen.
    Schritt 5: Warten, bis Clients angeben, dass sie für lange MC-Latenz bereit sind.
    Schritt 6: MC befehlen, in den Selbst-Aktualisierungszustand einzutreten.
    Schritt 7: Warten, bis MC angibt, dass er in den Selbst-Aktualisierungszustand eingetreten ist.
    Schritt 8: Zeituhrkreuzung sperren.
    Schritt 9: Auf Bypass-Zeituhr umschalten.
    Schritt 10: Zeituhrkreuzung aktivieren.
    Schritt 11: PLL/DLL anhalten und neu programmieren, Wiederverriegelung einleiten.
    Schritt 12: Neue MCx-Registereinstellungen über M-Registerbus laden.
    Schritt 13: Neue DRAM-MRS-Einstellungen über den Registerbus in die MC-Register laden.
    Schritt 14: Zeituhrkreuzung sperren.
    Schritt 15: Warten, bis MC PLL/DLL verriegelt ist.
    Schritt 16: MC-Zeituhrblock befehlen, auf PLL umzuschalten.
    Schritt 17: Zeituhrkreuzung aktivieren.
    Schritt 18: MC befehlen, aus Selbst-Aktualisierungszustand auszutreten.
    Schritt 19: MC-Zustandsübergänge wieder aktivieren, falls angemessen.
    Tabelle 4
  • In einem Ausführungsbeispiel können Frequenzübergänge ohne hinderliche Latenz abgeschlossen werden, wenn ein Weckereignis während des Frequenzübergangs stattfindet. In einem Ausführungsbeispiel liegt die Latenz, die erforderlich ist, um auf eine schnellere Frequenz umzuschalten, unter einer Schwelle, so dass eine niedrigere Frequenz während Zeiten verringerter Nachfrage verwendet werden kann und dann während Zeiten gesteigerter Nachfrage auf eine schnellere Frequenz geändert werden kann. D. h. die Latenz, die erforderlich ist, um von einer ersten Frequenz auf eine zweite Frequenz umzuschalten, ist gering genug, dass eine Zeit, die abgewartet werden muss, um die Frequenz zu ändern, von den Untersystemen, die auf Zugriff auf das DRAM-Modul 118 warten, geduldet werden kann. In einer Ausführungsform können die Schritte 1–4 von SPMU-Firmware ausgeführt werden, während die restlichen Schritte 5–19 von der mikrocodierten Funktionseinheit 106 durchgeführt werden.
  • In einem Ausführungsbeispiel kann ein Speicher bei einer ersten ausgewählten Frequenz oder einer zweiten ausgewählten Frequenz laufen. Die erste ausgewählte Frequenz würde in ihrem entsprechenden Kontext Parameter gespeichert haben, die für die erste ausgewählte Frequenz spezifisch sind, während die zweite ausgewählte Frequenz in ihrem entsprechenden Kontext andere Parameter gespeichert haben würde, die für die zweite ausgewählte Frequenz spezifisch sind. In einer weiteren Ausführungsform kann eine Vielzahl von verschiedenen Frequenzen zur Verfügung stehen. Wie hierin besprochen, obwohl Parameter im entsprechenden statischen Kontext gespeichert werden, werden alle periodischen Nachkalibrierungen oder andere Statistiken, die gespeichert werden, mit dem dynamischen Teil des entsprechenden Kontexts gespeichert, während der Speichercontroller bei einer bestimmten Frequenz läuft, so dass die statischen Ergebnisse und die Ergebnisse der Nachkalibrierung während einer nächsten Umspeicherung verwendet werden können.
  • In einem Ausführungsbeispiel kann eine Frequenzänderung dynamischer sein als Übergänge auf einen Zustand mit niedriger Leistung. In Übergängen auf Zustände mit niedriger Leistung muss das System abgeschaltet werden, aber bei Frequenzänderungen braucht das System sich nicht in einem tiefen Ruhezustand zu befinden. In einem Ausführungsbeispiel kann eine Frequenzänderung innerhalb von 10tel von Mikrosekunden durchgeführt werden. Die Latenz, die aufgrund von Frequenzübergängen entsteht, ergibt immer noch eine Blackout-Zeit für den Speichercontroller 112 und das DRAM-Modul 118. Wie aber hierin beschrieben ist, kann die Latenz, die aufgrund eines Frequenzübergangs entsteht, bis zu einer gewissen Schwelle ertragen werden.
  • In einem Ausführungsbeispiel, wie hierin beschrieben, wenn die Frequenzübergangslatenz kurz genug ist, kann das System bei einer niedrigeren Frequenz anlaufen und dann schnell nach Bedarf auf eine höhere Frequenz hochfahren. Bei kurzer Frequenzübergangslatenz und einer Vielzahl von möglichen Frequenzwahlen ist feine Detailgenauigkeit in der Frequenzauswahl möglich. In einer Ausführungsform wird eine Tabelle ausgearbeitet, um für jeden Frequenzübergang eine Worst-Case-Latenz festzustellen, und die Frequenzübergänge, die die Latenzschwellen übersteigen, werden nicht ausgewählt.
  • In einem anderen Ausführungsbeispiel kann ein Frequenzübergang mit einer MCn-Zustandsänderung kombiniert werden. In einer Ausführungsform kann eine Tabelle ausgearbeitet werden, um eine Worst-Case-Latenz für jeden Leistungszustand festzustellen, und solche Leistungszustände, die die Latenzschwellen übersteigen, werden nicht ausgewählt. In einem Ausführungsbeispiel kann eine Tabelle ausgearbeitet werden, um eine Worst-Case-Latenz für jeden Leistungszustand und für jeden Frequenzübergang festzustellen, und solche Zustände und Frequenzübergänge, die die Latenzschwellen übersteigen, werden nicht ausgewählt.
  • 5 stellt Schritte für ein Verfahrensbeispiel für Übergänge zwischen Leistungszuständen eines Speichercontrollers dar. In Schritt 502 von 5 wird ein Speichercontrollerzustand mit niedriger Leistung (z. B. MC1–MC4) gewählt. Wie hierin besprochen, kann einer aus einer Vielzahl von Zuständen mit niedriger Leistung ausgewählt werden. Wie ebenfalls in Tabelle 1 dargestellt ist, kann jeder Zustand mit niedriger Leistung den Speichercontroller 112 in einen tieferen Energiesparzustand bringen. In Schritt 504 von 5 hat der Übergang zum Speichercontrollerzustand mit niedriger Leistung begonnen. In Schritt 506 von 5, wenn ein Weckereignis empfangen worden ist, fährt das Verfahren mit Schritt 512 von 5 weiter. Wenn ein Weckereignis nicht empfangen worden ist, fährt das Verfahren mit Schritt 508 von 5 weiter, und der Übergang zum gewählten Zustand mit niedriger Leistung fährt fort, bis er abgeschlossen ist. In einem Ausführungsbeispiel kann die Überwachung von Weckereignissen in Schritt 506 während des Übergangs zum ausgewählten Zustand mit niedriger Leistung kontinuierlich sein.
  • Wie in 5 dargestellt, in Schritt 508, nach Abschluss der Übergangsphase, befindet sich der Speichercontroller 112 jetzt im ausgewählten Zustand mit niedriger Leistung. Wie hierin besprochen ist der Speichercontroller 112 während jedes Zustands mit niedriger Leistung unfähig, mit dem Speicher (z. B. DRAM-Speicher) zu kommunizieren.
  • In Schritt 510 von 5 wird ein Weckereignis empfangen. In einem Ausführungsbeispiel kann das Weckereignis von der Systemleistungsmanagementeinheit 102 empfangen werden. Wie hierin besprochen, kann das Weckereignis Kommunikationsanforderungen an das DRAM-Speichermodul 118 umfassen, sowie Anforderungen von anderen Komponenten für Zugriff auf das DRAM-Speichermodul 118.
  • In Schritt 512 von 5 beginnt ein Übergang zu einem Austritt aus dem aktuellen Zustand mit niedriger Leistung. Wie hierin beschrieben, bringt ein solcher Austritt den Speichercontroller 112 in einen aktiven Zustand zurück und stellt die Kommunikation zwischen dem Speichercontroller 112 und dem DRAM-Speichermodul 118 wieder her. In Schritt 514 von 5 ist der Übergang vom Zustand mit niedriger Leistung abgeschlossen und ein aktiver Zustand (z. B. MC0) für den Speichercontroller 112 wird wiederhergestellt.
  • 6 stellt Schritte eines Verfahrensbeispiels für Übergänge zwischen Leistungszuständen eines Speichercontrollers 112 dar, wenn die Systemleistungsmanagementeinheit 102 zurzeit von einem vorigen Zustand auf einen Zustand mit niedriger Leistung umschaltet, wenn ein Weckereignis empfangen wurde. In Schritt 602 von 6 wurde ein Weckereignis empfangen, während ein Übergang auf einen Zustand mit niedriger Leistung noch läuft.
  • In Schritt 604 von 6 wird der Umfang des aktuellen Übergangs auf den Zustand mit niedriger Leistung festgestellt. Wenn der Umfang des aktuellen Übergangs unter einer Schwelle liegt, fährt das Verfahren mit Schritt 606 fort, und der aktuelle Übergang wird abgebrochen und es wird daraus ausgetreten, um einen Übergang zu einem aktiven Zustand zu erlauben. Wenn der Umfang des aktuellen Übergangs über der Schwelle liegt, fährt das Verfahren mit Schritt 610 fort, und der Übergang zum Zustand mit niedriger Leistung wird abgeschlossen, um Abschalten herbeizuführen.
  • Wenn der Umfang des aktuellen Übergangs unter der Schwelle liegt, wie in Schritt 604 festgestellt wird, fährt das Verfahren mit Schritt 606 fort. In Schritt 606 von 6 wird der aktuelle Übergang (auf einen Zustand mit niedriger Leistung) abgebrochen (z. B. nicht weitergeführt). In einem Ausführungsbeispiel, wie hierin besprochen, führt das Abbrechen des Übergangs zum Anhalten der Schritte des aktuellen Übergangs in einen Zustand mit niedriger Leistung. Nach dem Austreten aus dem aktuellen Übergang in den Zustand mit niedriger Leistung fährt das Verfahren mit Schritt 608 fort. In Schritt 608 von 6 wird ein Übergang in einen aktiven Zustand begonnen. In einer Ausführungsform, beim Übergehen in den aktiven Zustand, umfasst der Übergang Rücksetzen von allen Parametern und Hardware-Einstellungen, die während des Übergangs in den Zustand mit niedriger Leistung geändert, abgeschaltet etc. wurden. D. h. je weiter der Übergang in den Zustand mit niedriger Leistung schon durchgeführt wurde, desto länger wird es dauern, bis der Übergang in den aktiven Zustand abgeschlossen ist.
  • Wenn der Umfang des aktuellen Übergangs über der Schwelle liegt, wie in Schritt 604 festgestellt wird, fährt das Verfahren mit Schritt 610 weiter. In Schritt 610 von 6 ist der aktuelle Übergang (auf einen Zustand mit niedriger Leistung) abgeschlossen. Sobald der Übergang in den Zustand mit niedriger Leistung abgeschlossen ist, fährt das Verfahren mit Schritt 612 fort. In Schritt 612 von 6 schaltet das Verfahren den Speichercontroller 112 vom aktuellen Zustand mit niedriger Leistung in einen aktiven Zustand um.
  • Obwohl gewisse bevorzugte Ausführungsformen und Verfahren hierin offenbart worden sind, wird es einem Fachmann aus der vorhergehenden Offenbarung erkennbar sein, dass Variationen und Modifikationen solcher Ausführungsformen und Verfahren durchgeführt werden können, ohne vom Sinn und Umfang der Erfindung abzuweichen. Die Absicht ist, dass die Erfindung nur so beschränkt wird, wie es in den anhängenden Patentansprüchen vorgesehen und durch die Regeln und Prinzipien der geltenden Gesetze gefordert wird.

Claims (23)

  1. Verfahren zur Verwaltung eines Speichercontrollers, wobei das Verfahren Folgendes umfasst: Auswählen des Eintretens in einen ersten Zustand mit niedriger Leistung aus einer Vielzahl von verfügbaren Zuständen mit niedriger Leistung, wobei ein verfügbarer Zustand mit niedriger Leistung ein Zustand mit niedriger Leistung ist, der unterhalb einer Zeitschwelle für das Übergehen liegt; Übergehen in den ersten Zustand mit niedriger Leistung von einem ursprünglichen Zustand; sofern ein Weckereignis nicht empfangen worden ist, Eintreten in den ersten Zustand mit niedriger Leistung, wenn der Übergang in den ersten Zustand mit niedriger Leistung abgeschlossen ist.
  2. Verfahren nach Anspruch 1, wobei für jeden der Vielzahl von Zuständen mit niedriger Leistung eine Verbindung zwischen einem Speicher und dem Speichercontroller abgeschaltet wird, so dass der Speicher nicht verfügbar ist.
  3. Verfahren nach Anspruch 1, ferner umfassend: Empfangen eines Weckereignisses nach dem Eintreten in den ersten Zustand mit niedriger Leistung; Beginnen eines Übergangs in einen aktiven Zustand von dem ersten Zustand mit niedriger Leistung; und Eintreten in den aktiven Zustand sofern der Übergang von dem ersten Zustand mit niedriger Leistung in den aktiven Zustand abgeschlossen ist.
  4. Verfahren nach Anspruch 1, ferner umfassend: Beginnen eines Übergangs in einen aktiven Zustand, wenn ein Weckereignis während des Übergangs in den ersten Zustand mit niedriger Leistung empfangen worden ist, wobei das Beginnen des Übergangs in den aktiven Zustand den Übergang in den ersten Zustand mit niedriger Leistung abbricht, sofern der Übergang in den ersten Zustand mit niedriger Leistung unterhalb eines Schwellenwerts liegt, andernfalls vollständiges Übergehen in den ersten Zustand mit niedriger Leistung vor dem Beginnen des Übergangs in den aktiven Zustand; und Eintreten in den aktiven Zustand, wenn der Übergang in den aktiven Zustand abgeschlossen ist.
  5. Verfahren nach Anspruch 1, bei dem Übergehen in einen neuen Zustand Folgendes umfasst: Auswählen eines Kontexts aus einer Vielzahl von Kontexten, wobei der ausgewählte Kontext dem neuen Zustand entspricht, wobei jeder Kontext aus der Vielzahl von Kontexten einem Zustand der Vielzahl von Zuständen entspricht, wobei der neue Zustand aus der Vielzahl von Zuständen ausgewählt ist, wobei jeder Kontext Parameter für den entsprechenden Zustand der Vielzahl von Zuständen definiert, und wobei ein neuer Zustand einen von einem Zustand mit niedriger Leistung und einem aktiven Zustand umfasst; und Streamen des ausgewählten Kontexts in einen Speichercontroller zum Einstellen des Speichercontrollers für den entsprechenden neuen Zustand, wobei Streamen Kommunizieren von N Teilen von Kontextdaten als Stream zu N Registern in dem Speichercontroller umfasst.
  6. Verfahren nach Anspruch 5, wobei ein Kontext mindestens einen von einem statischen Teil, einem pseudo-statischen Teil und einem dynamischen Teil umfasst.
  7. Verfahren nach Anspruch 6, wobei Übergehen in einen neuen Zustand ferner Streamen eines dynamischen Teils eines Kontextes für einen aktuellen Zustand von einem Speichercontroller in einen Speicher zur Speicherung vor dem Beginnen des Übergangs in den neuen Zustand umfasst, und wobei Streamen Kommunizieren von N Teilen von dynamischen Kontextdaten als Stream in den Speicher von N Registern in dem Speichercontroller umfasst.
  8. Verfahren nach Anspruch 1, wobei ein Kontext Kontextinformationen für einen von einem entsprechenden aktiven Zustand und Zustand mit niedriger Leistung und eine entsprechende Frequenz aus einer Vielzahl von Frequenzen umfasst, wobei ein Kontext in dem Speicher für jede Kombination aus Zustand und Frequenz gespeichert wird.
  9. Verfahren zur Verwaltung eines Speichercontrollers, umfassend: Auswählen für das Eintreten in eine erste Frequenz des Speichercontrollers; Beenden eines ersten Zustands, wobei der erste Zustand einen von einem aktiven Zustand und einen von einer Vielzahl von Zuständen mit niedriger Leistung umfasst; Übergehen zu der ersten Frequenz von einer zweiten Frequenz; und erneutes Eintreten in den ersten Zustand, wenn der Übergang zu der ersten Frequenz abgeschlossen ist.
  10. Verfahren nach Anspruch 9, wobei die erste Frequenz aus einer Vielzahl verfügbarer Frequenzen ausgewählt ist, und wobei eine verfügbare Frequenz eine Frequenz ist, die unterhalb einer Zeitschwelle für Übergehen liegt.
  11. Verfahren nach Anspruch 9, ferner umfassend: Auswählen eines ersten Zustands zum Eintreten, wobei der erste Zustand einen von einem aktiven Zustand und einem von einer Vielzahl von Zuständen mit niedriger Leistung umfasst; Übergehen in den ersten Zustand von einem zweiten Zustand; und sofern ein Weckereignis nicht empfangen worden ist, wenn der erste Zustand ein anderer als ein aktiver Zustand ist, Eintreten in den ersten Zustand, wenn der Übergang in den ersten Zustand und der Übergang in die erste Frequenz abgeschlossen sind, wobei für jeden der Vielzahl von Zuständen mit niedriger Leistung eine Verbindung zwischen einem Speicher und dem Speichercontroller abgeschaltet wird, so dass der Speicher nicht verfügbar ist.
  12. Verfahren nach Anspruch 9, wobei ein Übergang in eine erste Frequenz Folgendes umfasst: Auswählen eines Kontexts aus einer Vielzahl von Kontexten, wobei der ausgewählte Kontext der ersten Frequenz entspricht, wobei jeder Kontext von der Vielzahl von Kontexten einer Frequenz von einer Vielzahl von Frequenzen entspricht, wobei die erste Frequenz aus der Vielzahl von Frequenzen ausgewählt ist, wobei jeder Kontext Parameter für eine entsprechende Frequenz von der Vielzahl von Frequenzen definiert; und Streamen des ausgewählten Kontexts in einen Speichercontroller zum Einstellen des Speichercontrollers für die entsprechende verschiedene Frequenz, wobei Streamen Kommunizieren von N Teilen von Kontextdaten als Stream zu N Registern in dem Speichercontroller umfasst.
  13. Verfahren nach Anspruch 12, wobei ein Kontext mindestens einen von einem statischen Teil, einem pseudo-statischen Teil und einem dynamischen Teil umfasst.
  14. Verfahren nach Anspruch 13, wobei ein Übergang in eine neue Frequenz ferner Streamen eines dynamischen Teils eines Kontextes für eine aktuelle Frequenz von einem Speichercontroller in einen Speicher zur Speicherung vor dem Beginnen des Übergangs in die erste Frequenz umfasst, und wobei Streamen Kommunizieren von N Teilen von dynamischen Kontextdaten als Stream in einen Speicher von N Registern in dem Speichercontroller umfasst.
  15. Energieversorgungsvorrichtung, umfassend: ein Controller-Modul, das konfiguriert ist, einen Leistungszustand für den Übergang auszuwählen; eine Zustandsmaschinenfunktionseinheit, die konfiguriert ist, um Schritte für Übergänge zwischen Leistungszuständen eines Speichercontrollers, der über einen Bus mit einem Speicher verbunden ist, auszuführen; einen Speicher, der konfiguriert ist, um mindestens einen Kontext zu speichern; und eine Kontextfunktionseinheit, die konfiguriert ist, um auf Anweisung der Zustandsmaschinenfunktionseinheit den mindestens einen Kontext zu dem Speichercontroller zu streamen, wobei Streamen Kommunizieren von N Abschnitten von Kontextdaten als einen Stream zu N Registern in dem Speichercontroller umfasst, und wobei der mindestens ein Kontext eine Vielzahl von Kalibrierungen umfasst, die einem für den Übergang ausgewählten Zustand entsprechen.
  16. Energieversorgungsvorrichtung nach Anspruch 15, wobei die Leistungszustände einen aktiven Zustand und mindestens einen Zustand mit niedriger Leistung umfassen, und wobei für jeden der mindestens einen Zustände mit niedriger Leistung der Bus zwischen dem Speicher und dem Speichercontroller abgeschaltet wird, so dass der Speicher nicht verfügbar ist.
  17. Energieversorgungsvorrichtung nach Anspruch 15, wobei jeder Kontext mindestens einen aus einem statischen Teil, einem pseudo-statischen Teil und einem dynamischen Teil umfasst.
  18. Energieversorgungsvorrichtung nach Anspruch 15, wobei jeder Kontext einer Frequenz entspricht.
  19. Energieversorgungsvorrichtung nach Anspruch 15, wobei die Zustandsmaschinenfunktionseinheit und das Controller-Modul des Weiteren konfiguriert sind, um den Übergang des Speichercontrollers von einem ursprünglichen Zustand in einen ausgewählten Zustand mit niedriger Leistung auszuführen, und wobei die Zustandsmaschinenfunktionseinheit und das Controller-Modul des Weiteren konfiguriert sind, um den Übergang zu dem ausgewählten Zustand mit niedriger Leistung abzubrechen, wenn ein Weckereignis empfangen wird.
  20. Energieversorgungsvorrichtung nach Anspruch 15, wobei die Zustandsmaschinenfunktionseinheit des Weiteren konfiguriert ist, um den Übergang des Speichercontroller aus einem Zustand mit niedriger Leistung in einen aktiven Zustand auszuführen, wenn ein Weckereignis eintritt.
  21. Energieversorgungsvorrichtung nach Anspruch 15, wobei die Zustandsmaschinenfunktionseinheit und das Controller-Modul des Weiteren konfiguriert sind, um einen aktuellen Übergang in einen Zustand mit niedriger Leistung abzubrechen und einen Übergang in einen aktiven Zustand zu beginnen, wenn ein Weckereignis eintritt, sofern der aktuelle Übergang in den Zustand mit niedriger Leistung unterhalb eines Schwellenwerts liegt, andernfalls wird der aktuelle Übergang in den Zustand mit niedriger Leistung vor dem Beginnen des Übergangs in den aktiven Zustand abgeschlossen.
  22. Energieversorgungsvorrichtung nach Anspruch 15, wobei jeder Kontext einer bestimmten Kombination aus Zustand und Frequenz entspricht, und wobei jeder Kontext Parameter für eine bestimmt Kombination aus Zustand und Frequenz definiert.
  23. Energieversorgungsvorrichtung nach Anspruch 15, wobei die Kontextfunktionseinheit des Weiteren betriebsfähig ist, um einen dynamischen Teil eines Kontextes für einen aktuellen Zustand von dem Speichercontroller zur Speicherung zu streamen, bevor die Zustandsmaschinenfunktionseinheit den Übergang in einem neuen Zustand beginnt, und wobei Streamen Kommunizieren von N Teilen von dynamischen Kontextdaten als Stream an den Speicher von N Registern in dem Speichermodul umfasst.
DE102013214907.7A 2012-07-30 2013-07-30 Training, power-gating und dynamische Frequenzänderung eines Speichercontrollers Active DE102013214907B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/561,884 2012-07-30
US13/561,884 US9104421B2 (en) 2012-07-30 2012-07-30 Training, power-gating, and dynamic frequency changing of a memory controller

Publications (2)

Publication Number Publication Date
DE102013214907A1 true DE102013214907A1 (de) 2014-01-30
DE102013214907B4 DE102013214907B4 (de) 2016-12-22

Family

ID=49912422

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013214907.7A Active DE102013214907B4 (de) 2012-07-30 2013-07-30 Training, power-gating und dynamische Frequenzänderung eines Speichercontrollers

Country Status (4)

Country Link
US (1) US9104421B2 (de)
CN (1) CN103576833B (de)
DE (1) DE102013214907B4 (de)
TW (1) TWI527051B (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9395799B2 (en) 2012-08-09 2016-07-19 Nvidia Corporation Power management techniques for USB interfaces
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US9317096B2 (en) * 2012-12-18 2016-04-19 Advanced Micro Devices, Inc. Performance aware idle power management
US9939883B2 (en) 2012-12-27 2018-04-10 Nvidia Corporation Supply-voltage control for device power management
JP6210753B2 (ja) * 2013-06-24 2017-10-11 キヤノン株式会社 情報処理装置
US9766649B2 (en) 2013-07-22 2017-09-19 Nvidia Corporation Closed loop dynamic voltage and frequency scaling
US9602083B2 (en) 2013-07-03 2017-03-21 Nvidia Corporation Clock generation circuit that tracks critical path across process, voltage and temperature variation
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
US10466763B2 (en) 2013-12-02 2019-11-05 Nvidia Corporation Dynamic voltage-frequency scaling to limit power transients
US9396032B2 (en) * 2014-03-27 2016-07-19 Intel Corporation Priority based context preemption
US10055370B2 (en) 2014-07-09 2018-08-21 Advanced Micro Devices, Inc. Method and apparatis for processor standby
US20160091957A1 (en) * 2014-09-26 2016-03-31 Suketu R. Partiwala Power management for memory accesses in a system-on-chip
US9690364B2 (en) * 2015-09-04 2017-06-27 Qualcomm Incorporated Systems and methods for dynamically adjusting memory state transition timers
US10877688B2 (en) * 2016-08-01 2020-12-29 Apple Inc. System for managing memory devices
US10185378B2 (en) 2016-10-03 2019-01-22 Microsoft Technology Licensing, Llc Prioritized sequencing of device inrush current
US10338655B2 (en) 2017-04-11 2019-07-02 Qualcomm Incorporated Advanced fall through mechanism for low power sequencers
KR102530347B1 (ko) 2018-01-08 2023-05-08 삼성전자주식회사 반도체 장치 및 반도체 시스템
TWI676879B (zh) * 2018-05-11 2019-11-11 瑞昱半導體股份有限公司 時脈管理電路及時脈管理方法
US10936046B2 (en) * 2018-06-11 2021-03-02 Silicon Motion, Inc. Method for performing power saving control in a memory device, associated memory device and memory controller thereof, and associated electronic device
US11079945B2 (en) * 2018-09-20 2021-08-03 Ati Technologies Ulc Dynamic configuration of memory timing parameters
US11226752B2 (en) * 2019-03-05 2022-01-18 Apple Inc. Filtering memory calibration
US11176986B2 (en) * 2019-12-30 2021-11-16 Advanced Micro Devices, Inc. Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
US11579876B2 (en) * 2020-08-05 2023-02-14 Advanced Micro Devices, Inc. Reducing save restore latency for power control based on write signals
CN112363869B (zh) * 2020-11-19 2022-03-01 中国核动力研究设计院 基于三状态变量有限状态机的核dcs回溯方法及系统
US20220121263A1 (en) * 2021-12-23 2022-04-21 Intel Corporation Fast self-refresh exit power state
US20240329838A1 (en) * 2023-03-31 2024-10-03 Advanced Micro Devices, Inc. Memory training enhancements

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586332A (en) * 1993-03-24 1996-12-17 Intel Corporation Power management for low power processors through the use of auto clock-throttling
GB0516457D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Reversible power transitions in a computing device
US7728841B1 (en) * 2005-12-19 2010-06-01 Nvidia Corporation Coherent shader output for multiple targets
US7627730B1 (en) * 2006-05-02 2009-12-01 Sun Microsystems, Inc. System and method for optimizing a memory controller
US8041968B2 (en) * 2007-01-04 2011-10-18 Apple Inc. Power management for driving display with baseband portion when application portion is in low power mode
US8321849B2 (en) * 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
US8095761B1 (en) 2007-02-27 2012-01-10 Nvidia Corporation Low latency synchronous memory performance switching
US8605086B2 (en) * 2008-07-03 2013-12-10 Nvidia Corporation Hybrid multisample/supersample antialiasing
US8656198B2 (en) * 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8327172B2 (en) 2010-06-23 2012-12-04 Intel Corporation Adaptive memory frequency scaling
US8438410B2 (en) 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states

Also Published As

Publication number Publication date
DE102013214907B4 (de) 2016-12-22
CN103576833A (zh) 2014-02-12
US9104421B2 (en) 2015-08-11
TWI527051B (zh) 2016-03-21
CN103576833B (zh) 2016-12-28
TW201428760A (zh) 2014-07-16
US20140032947A1 (en) 2014-01-30

Similar Documents

Publication Publication Date Title
DE102013214907B4 (de) Training, power-gating und dynamische Frequenzänderung eines Speichercontrollers
DE69635887T2 (de) Schaltung zur Einstellung von Computersystembussignalen auf vorbestimmte Zustände im Niederstromverbrauchszustand
DE102009041723B4 (de) Prozessor-Leistungsverbrauchsteuerung und Spannungsabsenkung über eine Mikroarchitektur-Bandbreitenbegrenzung
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102004062911B4 (de) Verfahren zum Betrieb eines Prozessors und zugehöriges Prozessorsystem
DE69027510T2 (de) Echtzeitleistungseinsparung für tragbare Rechner
DE102013224175B4 (de) Niedrig-Leistungs-Zustände für ein Computer-System mit integriertem Basis-Band
DE112006002905B4 (de) Mechanismus zum Selbstauffrischen während C0
DE69522633T2 (de) Integrierte Prozessorsysteme für tragbare Informationsgeräte
DE69727355T2 (de) Anordnung und Verfahren zur Taktsequenzierung in einem Datenverarbeitungssystem
DE112006003575B4 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE19681716B4 (de) Computersystem und Verfahren für ein Stromversorgungsmanagement
DE69532226T2 (de) Taktssteuerungseinheit
DE102004012487B4 (de) Strom sparende Steuerschaltung einer elektronischen Vorrichtung und Betriebsverfahren davon
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102010013228B4 (de) Verfahren und System, um die Operationen eines registrierten Speichermoduls zu verbessern
DE102012212441B4 (de) Verfahren zum Eintreten in und Verlassen eines Schlafmodus in einer Graphikverarbeitungseinheit
DE69905180T2 (de) Verfahren zur energieeinsparung ohne leistungsverminderung
DE69616369T2 (de) Eingangs-/ausgangstreiberschaltung zur isolierung einer umkreisenden komponente von einem kernabschnitt mit minimalem leistungsverbrauch
DE69604301T2 (de) Ein/ausgabeteil einer halbleiterschaltung mit separater abschaltmöglichkeit
DE69517123T2 (de) Multiplexer und integrierter Prozessor mit einem solchen Multiplexer
DE69529362T2 (de) System zur Steuerung eines Peripheriebustaktsignals
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE112007001713T5 (de) System und Verfahren zum Steuern von Zuständen niedriger Energie bei Prozessoren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: KRAUS & WEISERT PATENTANWAELTE PARTGMBB, DE

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final