-
TECHNISCHES GEBIET
-
Erfindungsgemäße Ausführungsformen für Speichergeräte. Spezieller beziehen sich erfindungsgemäße Ausführungsformen auf Techniken zur adaptiven Skalierung der Betriebsfrequenz eines Speichergeräts.
-
HINTERGRUND
-
Im Laufe der letzten Jahre ist bei Enterprise-Serversystemen sowie anderen elektronischen Systemen der Schwerpunkt verstärkt auf Energieeffizienz und energieproportionale Rechenleistung gelegt worden. Das Verwalten von Speicherenergie ist unter gegebenen Kapazitäts- und Bandbreitenanforderungen von Serverprozessoren und Arbeitslasten entscheidend bei der Gesamteffizienz in diesen Plattformen.
-
Da die Anzahl an Prozessorkernen weiterhin steigt, und Integration von Durchsatzrechen- und Eingabe-/Ausgabe-(input/output, I/O)-Leistungsfähigkeiten rascher voranschreitet, wird erwartet, dass diese Entwicklung das Ernennen des Speicherenergiemanagements als ein Hauptelement der Plattformenergieeffizienz intensivieren wird. Ein Ansatz besteht darin, Speicherleerlaufenergie durch aggressives Unterstützen von Herunterfahr- und Selbstauffrischungszuständen zu verringern, was zu wesentlichen Verbesserungen bei der Speicherenergieeffizienz führt.
-
US 2009/0070605 A1 offenbart ein System und Verfahren zur Bereitstellung von Speicherleistungszuständen in einem Computersystem. Eine Komponente des Computersystems stellt eine Reihe von Leistungszuständen bereit, wobei jeder Leistungsstatus durch eine Anzahl von Faktoren bestimmt ist, einschließlich der Kernfrequenz des Speichers. Die Komponente definiert auch die Anzahl von Speicherleistungszuständen, die vom Computersystem unterstützt werden und die Anzahl der unterstützten Speicherleistungszustände, die zur Verwendung durch das Computersystem zur Verfügung stehen.
-
US 2006/0123253 A1 offenbart ein System und ein Verfahren für ein adaptives Leistungsmanagement.
-
US 6,263,448 B1 offenbart eine Speichervorrichtung mit mehreren Taktdomänen. Die verschiedenen Domänen werden sequenziell nach Bedarf eingeschaltet, um den verbrauchten Storm zu begrenzen.
-
US 6,112,310 offenbart einen Videocontroller zum automatischen Variieren einer Speichertaktfrequenz entsprechend der Anzahl von Befehlen zum Steuern eines Speichers.
-
US 5,860,106 offenbart ein Verfahren und eine Vorrichtung zum dynamischen Einstellen von Leistungseigenschaften eines Speichersubsystems.
-
Es ist die Aufgabe der vorliegenden Erfindung ein verbessertes Verfahren bereitzustellen mit dem die Speicherleerlaufenergie verringert und die Speicherenergieeffizienz verbessert werden kann sowie ein entsprechendes System.
-
Diese Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen gemäß dem Hauptanspruch sowie durch ein System mit den Merkmalen gemäß dem nebengeordneten Anspruch 6.
-
Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Erfindungsgemäße Ausführungsformen werden beispielhaft und in keiner Weise einschränkend in den Figuren der begleitenden Zeichnungen dargestellt, wobei sich gleiche Bezugsnummern auf ähnliche Elemente beziehen.
-
1 ist ein Blockdiagramm einer Ausführungsform eines Systems, das einen Mechanismus zur adaptiven Skalierung der Speicherfrequenz bereitstellt.
-
2 ist ein Blockdiagramm einer Ausführungsform eines elektronischen Systems.
-
3 ist ein Ablaufdiagramm einer Ausführungsform einer Technik für die Bereitstellung adaptiver Skalierung der Speicherfrequenz.
-
4 ist ein Zustandsdiagramm einer Ausführungsform einer Technik für die Bereitstellung adaptiver Skalierung der Speicherfrequenz.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Bei der folgenden Beschreibung werden zahlreiche spezifische Details gegeben. Erfindungsgemäße Ausführungsformen können jedoch ohne diese spezifischen Details umgesetzt werden. In anderen Fällen wurden wohlbekannte Schaltungen, Strukturen und Techniken nicht im Detail gezeigt, um das Verständnis dieser Beschreibung nicht in den Hintergrund rücken zu lassen.
-
Die Speicherenergie ist zu einer der wichtigsten Überlegungen beim Entwurf eines Computersystems geworden. Jedoch kann es sein, dass das Speicherenergiemanagement ohne globale Informationen nicht ausreicht, um den Energieverbrauch für die Laufzeitanwendung zu optimieren. Die Koordination des Speicherenergiemanagements mit dem Prozessorkern und/oder den Plattforminformationen kann genutzt werden, um für eine bessere Energienutzung zu sorgen. Hierin beschrieben werden Mechanismen für die adaptive Skalierung der Speicherfrequenz (Adaptive Memory Frequency Scaling Mechanisms/AMFSMs), die Speicherleistungsindikatoren verwenden können, die einem Prozessorkern zur Verfügung stehen, um die Leistung des Speichersubsystems bei Laufzeit zu optimieren.
-
Der Mechanismus für die adaptive Skalierung der Speicherfrequenz kann mindestens zwei Vorteile bieten. Für durchsatzkritische Arbeitslasten kann der Mechanismus für die adaptive Skalierung der Speicherfrequenz hohe Effizienz erreichen. Für nicht latenzkritische Anwendungen kann der Mechanismus für die adaptive Skalierung der Speicherfrequenz die Speicherfrequenz verlangsamen, um für Energieeinsparungen mit einem nur relativ geringen Leistungsverlust für prozessorkernintensive Arbeitslasten zu sorgen und die Speicherfrequenz zu erhalten, um die Leistung für speicherintensive Arbeitslasten aufrecht zu erhalten.
-
Bei einer Ausführungsform, bei einer Nutzung von 100% (Leistung hat die höchste Priorität), kann der Mechanismus für die adaptive Skalierung der Speicherfrequenz dazu führen, dass der Speicher bei maximaler Frequenz arbeitet, um optimale Leistung zu erreichen. Bei Nutzung von weniger als 100% kann der Mechanismus für die adaptive Skalierung der Speicherfrequenz die Speicherbetriebsfrequenz verlangsamen, um Leistungsgewinne für ein gewisses Energiebudget zu bringen, da sich die Energieeinsparung auf Speicherseite zum Prozessorkern verschiebt. Alternativ kann der Mechanismus für die adaptive Skalierung der Speicherfrequenz bei einer Nutzung von unter 100% die Speicherbetriebsfrequenz verringern, um Systemenergieeinsparungen für ein bestimmtes Leistungsziel insgesamt zu erreichen.
-
Bei einer Ausführungsform kann der Mechanismus für die adaptive Skalierung der Speicherfrequenz aus vier Komponenten bestehen: Memory Performance Factor (MPF), Dynamic Memory Frequency Scaling Controller (DMFSC), Memory Performance Factor Counter (MPFC) und Memory Frequency Scaling Engine (MFSE). 1 ist ein Blockdiagramm einer Ausführungsform eines Systems, das einen Mechanismus für die adaptive Skalierung der Speicherfrequenz bereitstellt.
-
Das Beispiel der Ausführungsform von 1 veranschaulicht Prozessorkern 100 und Speichercontroller 150, die die Komponenten des Mechanismus für die adaptive Skalierung der Speicherfrequenz bereitstellen. In alternativen Ausführungsformen können die Komponenten von anderen Systemeinheiten bereitgestellt und/oder auf andere Weise verteilt werden.
-
Bei einer Ausführungsform ist der Memory Performance Factor (MPF) 120 ein Hardwareindikator der Speicherleistung einer Anwendung auf der Seite des Prozessorkerns 100, der Informationen wie zum Beispiel Speicherbandbreitennutzung, Grad der Überlappung bei Speicherzugriffen und Grad der spekulativen Speicherzugriffe umfasst. Der Dynamic Memory Frequency Scaling Controller (DMFSC) 160 ist eine Richtlinien-Engine, die die Speicherausführungsfrequenz gemäß dem Memory Performance Factor (MPF) bestimmt und die Memory Frequency Scaling Engine (MFSE) 180 dazu bringt, die Entscheidung anzuwenden.
-
Bei einer Ausführungsform ist der Memory Performance Factor Counter (MPFC) 170 ein Hardwaresättigungszähler der Verlaufsinformationen des Memory Performance Factor. Die Memory Frequency Scaling Engine (MFSE) 180 ist die passive Aktionskomponente. Nach Erhalt eines Auslösers vom DMFSC 160 kann die MFSE 180 das System einfrieren und die Speicherschnittstelle neu programmieren und dabei die Speicherfrequenz ändern und die Phasenregelschleifen (Phase Locked Loops/PLLs) wieder sperren.
-
Bei einer Ausführungsform wird der Memory Performance Factor mithilfe eines Hardwarezählers überwacht. Bei einer Ausführungsform sind die Zyklen pro Anweisung (Cycles Per Instruction/CPI) eine Komponente der MPF-Berechnung und werden wie folgt bestimmt. CPI = CPI_core + MPI·BF·LAT Gleichung (1)
- CPI_core: CPI ohne Speicherlatenz
- LAT: Speicherzugriffslatenz
- MPI: Last-Level-Cachespeicher-Fehler pro Anweisung
- BF: Blockungsfaktor zeigt die Leistungsempfindlichkeit bei der Speicherzugriffslatenz.
-
Bei einer Ausführungsform kann MPF definiert werden als: MPF = MPI·BF Gleichung (2)
-
Memory Performance Factor (MPF) kann in eine Kombination aus Hardwareleistungszähler konvertiert werden. MPF = (XQ_EMPTY/Total_Cycles)·(Load_retired/Load_dispatch) Gleichung (3)
- MPF = mem_stall%·mem_specu_factor
- XQ_EMPTY: zählt die Stall-Zyklen des Prozessors nach Speicherzugriff
- (Load_retired/Load_dispatch): Speicherspekulationsfaktor.
-
Wenn der Speicher-Stall-Prozentsatz nicht verfügbar ist, können alternative Berechnungen genutzt werden, zum Beispiel das Produkt aus Speicherbandbreitennutzung und Speicherspekulationsfaktor.
-
2 ist ein Blockdiagramm einer Ausführungsform eines elektronischen Systems. Die in 2 gezeigte Elektronik soll einen Bereich an Elektronik (entweder verdrahtet oder drahtlos) repräsentieren, wie zum Beispiel Desktop-Computersysteme, Laptop-Computersysteme, Mobilfunktelefone, Personal Digital Assistants (PDAs) einschließlich mobilfunkaktivierten PDAs und Set-Top-Boxen. Alternative elektronische Systeme können mehr, weniger und/oder unterschiedliche Komponenten beinhalten.
-
Elektronik 200 umfasst Bus 205 oder ein anderes Kommunikationsgerät, um Information zu kommunizieren, und Prozessor 210 gekoppelt mit Bus 205, welcher Information verarbeiten kann. Während elektronisches System 200 mit einem einzelnen Prozessor veranschaulicht ist, kann elektronisches System 200 mehrere Prozessoren und/oder Koprozessoren und/oder mehrere Prozessorkerne enthalten. Elektronik 200 kann weiter Random Access Memory (RAM) oder ein anderes dynamisches Speichergerät 220 (als Hauptspeicher bezeichnet), das mit dem Bus 205 gekoppelt ist, umfassen, und sie kann Information und Anweisungen speichern, die durch den Prozessor 210 ausgeführt werden können. Der Hauptspeicher 220 kann auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen durch Prozessor 210 verwendet werden.
-
Bei einer Ausführungsform kann/können Prozessor(en) 210 sowohl einen Prozessorkern als auch einen Speichercontroller, wie in 1 veranschaulicht, beinhalten. In alternativen Ausführungsformen kann/können der/die Prozessorkern(e) und der Speichercontroller Teil verschiedener Komponenten sein, die in 2 veranschaulicht sind.
-
Elektronik 200 kann ebenfalls Read Only Memory (ROM) und/oder ein anderes statisches Speichergerät 230 gekoppelt mit dem Bus 205 umfassen, das statische Information und Anweisungen für den Prozessor 210 speichern kann. Das Datenspeichergerät 240 kann mit Bus 205 gekoppelt sein, um Information und Anweisungen zu speichern. Das Datenspeichergerät 240 (beispielsweise eine Magnetdiskette oder optische Disk und ein entsprechendes Laufwerk) kann mit der Elektronik 200 gekoppelt sein.
-
Elektronik 200 kann ebenfalls über den Bus 205 mit Anzeigegerät 250 gekoppelt sein, wie beispielsweise eine Kathodenstrahlröhre (CRT) oder Flüssigkristallanzeige (LCD), um einem Anwender Information anzuzeigen. Das alphanumerische Eingabegerät 260 einschließlich alphanumerischer und anderer Tasten kann mit Bus 205 gekoppelt sein, um Information und Befehlsauswahlen zu Prozessor 210 zu kommunizieren. Eine andere Art von Benutzereingabegerät ist Cursorsteuerung 270, wie z. B. eine Maus, ein Trackball oder Cursorpfeiltasten für die Kommunikation von Richtungsanweisungsdaten und Befehlsauswahlen an Prozessor 210 sowie für die Steuerung der Cursorbewegung an Anzeige 250.
-
Elektronik 200 kann weiter Netzwerkschnittstellen 280 umfassen, um Zugriff zu einem Netzwerk, wie beispielsweise einem lokalen Netzwerk zu ermöglichen. Die Netzwerkschnittstellen 280 können zum Beispiel eine drahtlose Netzwerkschnittstelle einschließen, die Antenne 285 aufweist, welche eine oder mehrere Antennen repräsentieren kann. Die Netzwerkschnittstellen 280 können ebenfalls beispielsweise eine verdrahtete Netzwerkschnittstelle einschließen, um mit entfernten Geräten über das Netzwerkkabel 287 zu kommunizieren, das beispielsweise ein Ethernetkabel, ein Koaxialkabel, ein Lichtwellenleiter, ein serielles Kabel oder ein paralleles Kabel sein kann.
-
Bei einer Ausführungsform können die Netzwerkschnittstellen 280 Zugriff zu einem lokalen Netzwerk ermöglichen, indem sie beispielsweise dem IEEE 802.11b und/oder IEEE 802.11g Standard entsprechen, und/oder die drahtlose Netzwerkschnittstelle kann Zugriff auf ein Personal Area Network ermöglichen, indem sie beispielsweise Bluetooth-Standards entspricht. Andere drahtlose Netzwerkschnittstellen und/oder Protokolle können ebenfalls unterstützt werden.
-
IEEE 802.11b entspricht IEEE Std. 802.11b-1999 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Layer (PHY) Spezifikationen: Erweiterung der physikalischen Schicht mit höherer Geschwindigkeit im 2,4-GHz-Band”, zugelassen am 16. September 1999, sowie zugehörige Dokumente. IEEE 802.11g entspricht IEEE Std. 802.11g-2003 „Netzwerke in lokalen und Großstadtgebieten, Teil 11: Wireless LAN Medium Access Control (MAC) und Physical Layer (PHY) Spezifikationen, Zusatz 4: Weitere Erweiterung mit höherer Geschwindigkeit im 2,4-GHz-Band”, zugelassen am 27. Juni 2003, sowie zugehörige Dokumente. Bluetooth-Protokolle sind beschrieben in „Spezifikation des Bluetooth-Systems: Kern, Version 1.1”, veröffentlicht am 22. Februar 2001 von der Bluetooth Special Interest Group, Inc. Associated, sowie vorherige oder nachfolgende Versionen des Bluetooth-Standards können ebenfalls unterstützt werden.
-
Zusätzlich zu oder anstatt Kommunikation über Wireless-LAN-Standards kann/können Netzwerkschnittstelle(n) 280 drahtlose Kommunikationen unter Verwendung von beispielsweise Zeitmultiplexverfahren, Vielfachzugriffs-(TDMA)-Protokollen, Global System for Mobile Communications-(GSM)-Protokollen, Code Division, Multiple Access-(CDMA)-Protokollen und/oder jede andere Art von drahtlosem Datenübertragungsprotokoll ermöglichen.
-
3 ist ein Ablaufdiagramm einer Ausführungsform einer Technik für die Bereitstellung der adaptive Skalierung der Speicherfrequenz. Bei einer Ausführungsform wird die Technik von 3 durch den oben besprochenen Dynamic Memory Frequency Scaling Controller (DMFSC) durchgeführt. In alternativen Ausführungsformen können andere Systemkomponenten diese Funktionalität bereitstellen.
-
Das Beispiel von 3 nutzt zwei Schwellenwerte für die Skalierung der Speicherfrequenz. In alternativen Ausführungsformen können mehr als zwei Schwellenwerte verwendet werden, um zum Beispiel eine feinere Frequenzeinstellungsgranularität zu unterstützen.
-
Der MPF wird bestimmt, 310. Der MPF kann wie oben beschrieben bestimmt werden. Der MPF wird mit einem ersten Schwellenwert (T1) verglichen, 320. T1 stellt einen MPF-Wert dar, über dem die Betriebsfrequenz des Speichers geändert werden sollte. Wenn MPF größer als T1 ist, 320, wird der Speicherleistungsfaktor erhöht, 330.
-
Wenn MPF kleiner als T1 ist, 320, wird der MPF mit einem zweiten Schwellenwert (T2) verglichen, 340. T2 stellt einen MPF-Wert dar, unter dem die Betriebsfrequenz des Speichers geändert werden sollte. Wenn MPF kleiner als T2, 340, ist, wird der Speicherleistungsfaktor verringert, 350. Wenn MPF kleiner als T1, 320, und größer als T2, 340, ist, wird die aktuelle Speicherbetriebsfrequenz beibehalten, 380.
-
Der Wert des Speicherleistungsfaktorzählers wird zum Überprüfen und für einen möglichen Übergang zwischen den Zuständen eines Zustandsautomaten verwendet, der für die Verwaltung der Speicherbetriebsfrequenz eingesetzt wird. Ein Zustandsdiagramm für eine Ausführungsform des Zustandsautomaten, der wie in 3 beschrieben verwendet werden kann, ist weiter unten in Bezug auf 4 näher beschrieben.
-
Bei einer Ausführungsform wird der Zustand des MPFC-Zustandsautomaten überprüft und mit dem Speicherleistungsfaktorzählerwert verglichen, 360. Eine Entscheidung zur Leistungsfrequenzänderung wird getroffen, 370, die zumindest teilweise auf dem Vergleich basiert, 360. Das Ergebnis der Entscheidung kann dazu führen, dass die Betriebsfrequenz des Speichers erhöht wird, verringert wird oder gleich bleibt, je nach aktuellen Betriebsparametern des Speichers (z. B. Betriebsfrequenz) sowie den überwachten Bedingungen, wie oben beschrieben.
-
Daher kann die Betriebsfrequenz des Speichers dynamisch angepasst werden, wenn sich die Systembedingungen ändern. Die hierin beschriebenen Techniken können sowohl Energieeinsparungen als auch Leistungsverbesserungen bringen.
-
4 ist ein Zustandsdiagramm einer Ausführungsform einer Technik für die Bereitstellung der adaptive Skalierung der Speicherfrequenz. Der Zustandsautomat aus 4 kann zum Beispiel gemäß der Operation verwendet werden, die in Bezug auf 3 beschrieben ist. In alternativen Ausführungsformen können mehr Zustände verwendet werden, um zum Beispiel eine feinere Frequenzeinstellungsgranularität zu unterstützen.
-
Bei einer Ausführungsform wird die Funktionalität des Zustandsautomaten durch den oben beschriebenen Dynamic Memory Frequency Scaling Controller (DMFSC) bereitgestellt. Bei alternativen Ausführungsformen kann der Zustandsautomat durch eine andere Systemkomponente bereitgestellt werden. Im Zustandsdiagramm von 4 resultieren Zustandsübergänge mit der Bezeichnung A1 aus der Bedingung MPF > T1, wie oben beschrieben. In ähnlicher Weise resultieren Zustandsübergänge mit der Bezeichnung A2 aus der Bedingung MPF < T2, wie oben beschrieben.
-
Der Zustandsautomat, der den Zuständen von 4 entspricht, bietet eine gewisse Hysterese in Bezug auf die Erhöhung oder Verringerung der Betriebsfrequenz des Speichers. In alternativen Ausführungsformen kann diese Hysterese erhöht oder beseitigt werden.
-
Im Zustand 00 arbeitet der Speicher mit der niedrigeren der zwei Taktfrequenzen. Unter der Bedingung A2 bleibt der Zustandsautomat im Zustand 00. Als Reaktion auf eine Bedingung A1 geht der Zustandsautomat in Zustand 01 über.
-
Im Zustand 01 arbeitet der Speicher mit der niedrigeren der zwei Taktfrequenzen. Unter der Bedingung A2 geht der Zustandsautomat in Zustand 00 über. Als Reaktion auf eine Bedingung A1 geht der Zustandsautomat in Zustand 10 über. Als Reaktion auf den Übergang von Zustand 01 zu Zustand 10 wird die Betriebsfrequenz des Speichers erhöht.
-
Im Zustand 10 arbeitet der Speicher mit der höheren der zwei Taktfrequenzen. Unter der Bedingung A2 geht der Zustandsautomat in Zustand 01 über. Als Reaktion auf den Übergang von Zustand 10 zu Zustand 01 wird die Betriebsfrequenz des Speichers verringert. Als Reaktion auf eine Bedingung A1 geht der Zustandsautomat in Zustand 11 über und bleibt bei der höheren Betriebsfrequenz.
-
Im Zustand 11 arbeitet der Speicher mit der höheren der zwei Taktfrequenzen. Unter Bedingung A2 geht der Zustandsautomat in Zustand 10 über und bleibt bei der höheren Betriebsfrequenz. Als Reaktion auf eine Bedingung A1 bleibt der Zustandsautomat im Zustand 11 und bleibt bei der höheren Betriebsfrequenz.
-
Verweise in der Beschreibung auf „eine Ausführungsform” bedeuten, dass ein bestimmtes Merkmal, eine Struktur oder Charakteristikum, das in Verbindung mit der Ausführungsform beschrieben wird, in zumindest einer erfindungsgemäßen Ausführungsform enthalten ist. Die Verwendung des Ausdrucks „bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf die gleiche Ausführungsform.
-
Während die Erfindung bezogen auf verschiedene Ausführungsformen beschrieben wurde, werden Fachleute erkennen, dass die Erfindung nicht auf die beschriebenen Ausführungsformen beschränkt ist, sondern mit Modifikationen und Änderungen im Sinne und innerhalb des Schutzbereichs der angefügten Ansprüche betrieben werden kann. Die Beschreibung soll somit als veranschaulichend anstatt einschränkend angesehen werden.