-
BEZUGNAHME AUF ZUGEHÖRIGE
ANMELDUNGEN
-
Diese
Anmeldung bezieht sich auf die U.S. Anmeldung Nr. 10/931,565, angemeldet
am 31. August 2004 von den Erfindern Kurts u. a., übertragen auf
die Intel Corporation; U..S. Anmeldung Nr. 10/934,034, angemeldet
am 3. September 2004 von den Erfindern Naveh u. a., übertragen
auf die Intel Corporation; U.S. Anmeldung Nr. 11/024,538, angemeldet
am 28. Dezember 2004 von den Erfindern Naveh u. a., übertragen
auf die Intel Corporation; U.S. Anmeldung Nr. 10/899,674, angemeldet
am 27. Juli 2004 von den Erfindern Naveh u. a., übertragen auf
die Intel Corporation; und die gleichzeitig angemeldete Anmeldung
mit der Bezeichnung „Verfahren und Vorrichtung für
einen Nullvoltschlafzustand" von dem Erfinder Jahagfirdar, übertragen
auf die Intel Corporation, Akteneichen 043290.P22435.
-
HINTERGRUND
-
Technisches Gebiet
-
Einige
Ausführungsbeispiele der Erfindung beziehen sich allgemein
auf integrierte Schaltungen und/oder Rechnersysteme. Insbesondere
beziehen sich einige Ausführungsbeispiele der Erfindung
auf eine dynamische Speichereinteilung.
-
Diskussion
-
Da
die Entwicklung hin zu fortschrittlichen Mikroprozessoren, beispielsweise
Zentralrecheneinheiten (CPUs) mit mehr Transistoren und höheren Frequenzen
ständig fortschreitet, stehen die Designer von Computer
und Herstellern oft vor dem Problem einer entsprechenden Zunahme
an Leistungs- und Energieverbrauch. Insbesondere bei mobilen Einheiten
kann der zunehmende Leistungsverbrauch zu einer Überhitzung
führen, die die Leistungsfähigkeit negativ beeinflussen
kann und die Lebensdauer der Batterien signifikant reduzieren kann.
Da Batterien typischerweise eine begrenzte Kapazität haben, kann
das Laufen lassen eines Prozessors eines mobilen Geräts
mehr als notwendig die Kapazität schneller begrenzen als
dies erwünscht ist.
-
Der
Leistungsverbrauch ist daher ein wichtiges Problem bei Rechnersystemen,
einschließlich Desktop-Rechnern, Laptop-Rechnern, drahtlosen Handsets,
Personal Digital Assistants, usw. Bei heutigen Rechnersystemen können
beispielsweise um der Leistungsverschwendung zu begegnen, bestimmte
Komponenten in tieferen Leistungszuständen basierend auf
einer reduzierten Aktivität oder Bedarf versetzt werden.
-
Bei
der Entwicklung von Mikroprozessoren nehmen die Speichergrößen
zu, um bessere Leistungen für einen gegebenen Siliziumbereich
zu erreichen. Der Trend hin zu größeren Speichergrößen
hat den Teil des Leistungsverbrauchs, der den Speichern zugeordnet
ist, vergrößert. Infolgedessen ist die Anwendung
von Zuständen mit geringerer Leistung und Latenzen bei
dem Betreiben von größeren Speichern und das Verlassen
dieser Zustände zunehmend von Bedeutung für das
Management des Leistungsverbrauchs.
-
KURZE ERLÄUTERUNG
DER ZEICHNUNGEN
-
Verschiedene
Ausführungsbeispiele der Erfindung ergeben sich dem Fachmann
durch Lesen der nachfolgenden Beschreibung und der beiliegenden
Ansprüche und durch Bezugnahme auf die nachfolgenden Zeichnungen,
in denen:
-
1 ein
Blockdiagramm eines Beispiels einer Speicherarchitektur ist, die
nach Ausführungsbeispielen der vorliegenden Erfindung organisiert
ist;
-
2 ein
Blockdiagramm eines weiteren Ausführungsbeispiels einer
Speicherarchitektur, die nicht in Wegen organisiert ist, nach Ausführungsbeispielen
der vorliegenden Erfindung;
-
3–4 ist
ein Diagramm eines Beispiels von warm bits und dirty Bits nach einigen
Ausführungsbeispielen der Erfindung zeigen;
-
5 ein
Diagramm einer beispielhaften Logik zum Erzeugen von warm bits und
dirty bits nach einigen Ausführungsbeispielen der Erfindung
zeigt;
-
6 ein
Blockdiagramm eines beispielhaften Rechnersystems zeigt, das zum
Implementieren der Optimierung der Speicherlatenz mit einer dynamischen
Speichereinteilung nach Ausführungsbeispielen der Erfindung
verwendet werden kann, zeigt;
-
7 ein
Flussdiagramm eines Beispiels eines Verfahrens zum Verbessern der
Speicherlatenz nach einigen Ausführungsbeispielen der Erfindung zeigt;
-
8 ein
Flussdiagram eines Beispiels eines Verfahrens zum Speicherausgangs
zeigt, das eine dynamische Speicherreduktion oder den Eintrittsvorgang
in einen Zustand mit geringerer Leistung nach einigen Ausführungsbeispielen
der Erfindung zeigt; und
-
9 ein
Flussdiagramm eines Beispiels eines Verfahrens für einen
Speichereintritt zeigt, der eine dynamische Speicherausdehnung oder
den Vorgang eines Austritts aus dem Niedrigleistungszustand nach
einigen Ausführungsbeispielen der Erfindung zeigt.
-
EINGEHENDE BESCHREIBUNG
-
Der
Betrag an Speicherplatz, der tatsächlich von einem Rechnersystem
und/oder dessen zugehöriger Software benötigt
wird, variiert häufig über die Zeit. Bei typischen
Anwendungen kann beispielsweise nur ein kleiner Teil des Speichers
zu einem gegebenen Zeitpunkt erforderlich sein. Nach einigen Ausführungsbeispielen
der Erfindung kann eine Speicheranordnung, etwa die Speicheranordnungen
von den 1 und 2, dynamisch
eingeteilt werden, um die Leistungsanforderungen des Speicherkreises und
des Systems, bei dem dieser verwendet wird, zu reduzieren.
-
Insbesondere
können, wie hier beschrieben werden wird, einige Ausführungsbeispiele
der Erfindung eine optimierte Latenz während des Aktivieren/Inaktivieren
einer oder mehrerer Unterabschnitte eines Speichers bewirken, wenn
diese Unterabschnitte nicht erforderlich sind und/oder ausgeschieden
werden, wie es unter Bezugnahme auf die 3–9 bei
den Speichertopologien, die in den 1–2 gezeigt
sind, implementiert ist. Bei einigen Ausführungsbeispielen
der Erfindung kann der Speicher aktiviert, inaktiviert werden in
bestimmten Zuständen des Rechnersystems. Die Zustände,
die auch Leistungszustände genannt werden, werden in weiteren
Einzelheiten im Nachfolgenden unter Bezugnahme auf die Zustände
diskutiert, die von der Advanced Configuration and Power Interface
(ACPI) Spezifikation (beispielsweise ACPI Spezifikation, Rev.
3.0 vom 2. September 2004, Rev. 2.0c, 25. August 2003, Rev. 2.0,
27. Juli 2000 usw. diskutiert werden.
-
1 zeigt
ein Blockdiagramm eines Beispiels einer Speicherarchitektur, die
nach einigen Ausführungsbeispielen der Erfindung organisiert
ist. Bei manchen Ausführungsbeispielen mit einem dynamisch
einteilbaren Speicher kann das n-Weg assoziative Speicher von 1 beispielsweise
unter Verwendung eines statischen Speichers mit wahlfreiem Zugriff
(SRAM) implementiert sein. Die Mehrzahl von Unterabschnitten 101a, 101b–101n (jedes
davon sind Wege in diesem besonderen Beispiel) können gesondert
oder gemeinsam mit einer Mehrzahl von Schlafeinheiten (nicht gezeigt)
gekoppelt sein, etwa so, dass jede der Untereinheiten oder Wege 101 selektiv
aktiviert/inaktiviert werden kann oder selektiv gekoppelt/entkoppelt
werden von einer Spannungsquelle.
-
Alternative
Schlafeinheiten können verwendet werden und die Einheiten,
die hier diskutiert werden, sind illustrativ für Typen
von Schlafeinheiten, die von dem Fachmann basierend auf wenigstens
den hier gemachten Lehren entsprechend einigen Ausführungsbeispielen
der Erfindung verwendet werden können. Die Verwendung der
Begriffe „Leistungstakttransistor", „Schlaftransistor"
und „Schlafeinheit" sollen den Schutzbereich der Erfindung
nicht auf irgendwelche besondere Einheiten beschränken,
sie dienen lediglich zur Beschreibung der Fähigkeit von Schlafeinheiten,
Leistung zu dem Speicherunterabschnitt zu schalten oder zu steuern.
Insbesondere können, wie es sich für den Fachmann
versteht, die verschiedenen Ausführungsbeispiele von Schlafeinheiten
Anwendungen haben, die weiter spezialisiert sind als andere und
können daher für bestimmte Typen von dynamisch
einteilbaren Speichern vorteilhaft sein.
-
Die
Speichertopologie kann bestimmen, ob bestimmte Schlafeinheiten verwendet
zum Steuern der Leistung zu einem Abschnitt oder Unterabschnitt des
Speichers werden können. Unter Bezugnahme auf 1 kann
bei einigen Ausführungsbeispielen dann, wenn der Speicher
in Wegen organisiert ist, Schlafeinheiten verwendet werden zum Steuern
jedes Wegs des Speichers. Wenn die Speichertopologie in anderer
Art und Weise organisiert ist, insbesondere wenn ein gegebener Weg
nicht isoliert werden kann, können die Schlafeinheiten
nicht dazu in der Lage sein, bestimmte Abschnitte des Speichers
zu steuern. Alternative Mittel werden unter Bezugnahme auf 2 diskutiert.
-
2 zeigt
ein Blockdiagramm eines anderen Ausführungsbeispiels einer
Speicherarchitektur, die nicht in Wegen organisiert ist entsprechend
einiger Ausführungsbeispielen der Erfindung. Die Wege 202a, 202b–202n sind
von beliebiger Größe und willkürlich
in dem Speicher angeordnet. Bei einigen Ausführungsbeispielen
der Erfindung, bei denen die Wege gegenständlich über
verschiedene Blöcke des Speichers verteilt sind, kann der
Speicher in einer progressiven Weise nach Wegen gelehrt werden,
die Wege können jedoch nicht abgeschaltet werden unter
Verwendung von Schlafeinheiten. Die Speicher können daher
nur unter Verwendung von Schlaftransistoren ausgeschaltet werden,
nachdem alle Wege für einen gegebenen Block geleert sind.
-
Nach
einigen Ausführungsbeispielen der Erfindung können
ein oder mehrere Wege wie, nicht aber begrenzt auf, diejenigen,
die in den 1 und 2 gezeigt
sind, reduziert werden unter Verwendung eines wegbasierten dynamischen
Einteilungsvorgangs. Bei einigen Ausführungsbeispielen
der Erfindung können verschiedene dynamische Einteilungsvorgänge
implementiert werden bei dem Eintritt und/oder dem Austritt von
verschiedenen Leistungszuständen durch die Komponenten
des Rechnersystems.
-
Unter
Bezugnahme auf Speicher, auf die von einem Prozessor zugegriffen
wird, (beispielsweise einem Mehrkernprozessor und/oder einer zentralen Recheneinheit
CPU) kann der Mikrocode des Prozessors (siehe 5 unten)
durch Linien in jedem Weg laufen, um etwaige modifizierte Daten
in dem bzw. den Wegen zu lehren, die deaktiviert oder geschrumpft
sind, entsprechend einigen Ausführungsbeispielen der Erfindung.
Bei einigen Ausführungsbeispielen der Erfindung kann die
Leistung zu dem oder den Wegen ausgeschaltet werden unter Verwendung
von beispielsweise Schlafeinheiten, nachdem alle modifizierten Daten
des Speichers geleert sind.
-
In Übereinstimmung
mit einigen Ausführungsbeispielen der Erfindung kann die
Leistungsmanagementlogik (PML) des Prozessors oder der Steuerlogik
auf der rückseitigen Buslogik (BBL) (siehe 5 unten)
das Zuordnen zu den inaktivierten Wegen mittels des zuletzt verwendeten
(LRU) stoppen. Bei einigen anderen Ausführungsbeispielen
der Erfindung kann dann, wenn ein Weg wieder zu aktivieren ist,
oder, mit anderen Worten, wenn der Speicher zunimmt, gegenüber
dem obigen „Schrumpfen" können die Leistungsschalttransistoren
eingeschaltet werden, die Statusbits der Wege gesäubert
(beispielsweise Zustand I eines MESI Protokolls) und das PML oder
die Steuerlogik kann beginnen, zu diesem Weg zuzuordnen. Es ist
zu beachten, dass eine alternative Kohärenz oder Schreib-Ungültigkeitsprotokolle
andere als MESI (4-Zustände: modifiziert, ausschließlich,
geteilt, ungültig) implementiert sein können und
durch die Erfindung verwendet sein können, wie es dem Fachmann
verständlich ist. Beispielsweise würde der Fachmann
es auch als geeignet erkennen, entweder ein MOESI (5-Zustände:
modifiziert, beansprucht, exklusiv, geteilt, ungültig)
oder DRAGON (4-Zustände: gültig-exklusiv, geteilt-sauber,
geteilt-modifiziert, dirty) implementiert werden kann. Entsprechend
einiger Ausführungsbeispiele der Erfindung wie, ohne darauf
begrenzt zu sein, Ausführungsbeispiele unter Verwendung
eines Zustands mit einer Nullspannung, können die Statusbits erhalten
werden. Wenn die Statusbits erhalten werden, kann bei einigen Ausführungsbeispielen
der Erfindung die PML 150 oder die Leistungsmanagementzustandssteuerlogik 642 diese
nicht säubern, wenn diese von einem Leistungszustand kommen.
-
Bei
einigen Ausführungsbeispielen der Erfindung können
verschiedene Schalttechniken verwendet werden zum Implementieren
einer alternativen Schlaflogik und/oder zum Schaffen einer Funktionalität,
die der der Schlafeinheiten ähnlich ist unter Verwendung
eines weiteren unterschiedlichen Ansatzes. Bei einigen Ausführungsbeispielen
der Erfindung können beispielweise unterschiedliche Unterabschnitte
eines Speichers auf verschiedenen Leistungsebenen implementiert
sein derart, dass Unterabschnitte des Speichers über eine
Leistungsebenensteuerung aktiviert/inaktiviert sind. Andere Ansätze
liegen innerhalb des Grundgedankens der verschiedenen Ausführungsbeispiele.
-
Obwohl
hier zum Zwecke der Illustration ein n-Weg assoziativer Speicher
auf einem Mikroprozessor implementiert beschrieben wird, versteht
es sich, dass Ausführungsbeispiele der Erfindung auch bei anderen
Typen von Speichern verwendet werden können einschließlich
Speichern mit einer unterschiedlichen Architektur und/oder Speichern,
die auf einem anderen Typ einer integrierten Schaltung implementiert
sind. Bei einigen Ausführungsbeispielen der Erfindung werden
die Begriffe „Speicher", „Cache" oder „Zwischenspeicher"
verwendet, dies bedeutet jedoch nicht, dass der Betrieb auf Ausführungsbeispiele
der Erfindung eingeschränkt werden kann, dieser ist vielmehr
auf alle Formen oder Typen von Speichern anwendbar, insbesondere
bei einigen Ausführungsbeispielen, auf Zwischenspeicher.
-
Für
einige Ausführungsbeispiele der Erfindung sind andere Partitionen,
Unterabschnitte oder Bereiche von Speichern einschließlich
Zwischenspeichern auf verschiedenen Ebenen, selektiv aktiviert und/oder
inaktiviert unter Verwendung einer oder mehrerer der hier beschriebenen
Ansätze. Die illustrierten Wege können daher ein
geeignetes Gruppieren von Zellen einschließen, etwa als
ein Feld, die Verwendung des Begriffs „Wege" soll jedoch
den Schutzbereich oder den Grundgedanken der Erfindung nicht einschränken.
-
Bei
einigen Ausführungsbeispielen der Erfindung können
die aktiven Wege in einer fortschreitenden Weise eingesetzt werden.
Der Fachmann auf diesem Gebiet erkennt wenigstens basierend auf
den hier beschriebenen Techniken, dass andere Einsatzwege des Cache
möglich sind. Die Zeit, die erforderlich ist, um das Cache
einzusetzen, ist ein Faktor, der die Latenz des Eintritt in einen
Leistungszustand bestimmt, wie, ohne darauf begrenzt zu sein, einen Schlafzustand.
Ein Austritt von einem Leistungszustand wie, ohne auf einen Schlafzustand
begrenzt zu sein, die Cachestatusbits sind unter anderem ungültig
gemacht. Die Zeit, die erforderlich ist, um die Statusbits ungültig
zu machen, ist ein Faktor, der die Latenz des Austritts aus dem
Leistungszustand bestimmt.
-
Nach
einigen Ausführungsbeispielen der Erfindung kann die Optimierung
oder Verbesserung, etwa durch das Reduzieren der erforderlichen
Zeit zum Eintreten in oder zum Austreten aus Leistungszuständen
extrem nützlich sein für die Herstellen, Verwender
und Programmierer. Einige Ausführungsbeispiele der Erfindung
können bei Cache-Topologien angewendet werden, wie sie
oben in den 1 und 2 beschrieben
worden sind, als auch in anderen Topologien, wie, ohne darauf begrenzt
zu sein, Cache-Topologien wie Blöcke aufweisen, die mehrere
Male zum Implementieren des Cache instanziiert werden. Weiter können
bei einigen Ausführungsbeispielen der Erfindung die Wege
des oder der Cache gleichförmig sein über die
Wege oder nicht-gleichförmig sein über die Sätze
und Wege sein und können auf verschiedene Weise mappiert
sein, wie der Fachmann basierend wenigstens auf der hier beschriebenen
Lehre erkennen wird.
-
Bei
einigen Ausführungsbeispielen der Erfindung können
die Leistungszustände eine Zeile-um-Zeile-Cache-Flush-Mikroarchitektur
verwenden, bei dem der oder die Prozessoren jede Zeile in dem Cache
prüfen kann um festzustellen, ob sie modifizierte Daten
enthält, die in den Hauptspeicher zu schreiben sind. Entsprechend
einiger Ausführungsbeispiele der Erfindung kann der Prozess
des Aufspürens von Cachedaten, beispielsweise modifizierte Daten,
die Eintritts- und Austrittslatenzen reduzieren. Die Reduktion in
der Latenz kann in wenigstens zwei Weisen helfen. Zum einen kann
eine Verbesserung der Eintritts/Austritts-Performance vorliegen.
Zweitens können Ersparnisse in der Energie, die erforderlich
ist, um den bzw. die Cache zu betreiben, vorliegen, da das Lehren/Ungültigmachen
von Zeilen des (der) Cache nicht auftritt.
-
Bei
einigen anderen Ausführungsbeispielen der Erfindung kann
das Aufspüren von Cachezuständen unterstützt
werden unter Verwendung von warm bits und/oder dirty bits. Warm
bits können bei einigen Ausführungsbeispielen
der Erfindung zum Aufzeichnen, ob ein bestimmter Cacheblock seit
dem letzten Ausgang von einem Leistungszustand erreicht worden ist,
verwendet werden. Bei einigen Ausführungsbeispielen der
Erfindung kann das Zugreifen das Einschließen eines Lese-
und Schreibvorgangs auf jeder Zeile des Cacheblocks beinhalten.
Dirty bits können bei einigen Ausführungsbeispielen
der Erfindung verwendet werden zum Aufzeichnen, ob ein bestimmter Cacheblock
modifizierte Daten beinhaltet. Bei einigen Ausführungsbeispielen
der Erfindung können die modifizierten Daten erkannt werden
durch Beobachten der Zustandsinformation der Schreiboperationen, die
für Zeilen in dem Cacheblock auftreten.
-
Die 3 und 4 zeigen
einige Ausführungsbeispiele der warm bits bzw. dirty bits,
wo bei nur ein Bit pro Block vorhanden sein kann. Andere Ausführungsbeispiele
können verwendet werden, ohne sich von der hier beschriebenen
Lehre zu entfernen. In 3 sind warm bits 302 in
einer Reihe 302a, 302b–302n gezeigt.
In 4 sind dirty bits 402 in einer Reihe 402a, 402b–402n gezeigt.
Bei einigen Ausführungsbeispielen der Erfindung können
die dirty bits ein Untersatz der warm bits sein. Als solches kann
bei einigen Ausführungsbeispielen ein besonderer Cacheblock
nur dann dirty sein, wenn er auch warm ist, das heißt,
der Zugriff oder die Verwendung kann bei einigen Ausführungsbeispielen
der Erfindung eine Voraussetzung zur Modifikation sein.
-
Nach
einem oder mehreren Ausführungsbeispielen kann zum Aktivieren
und/oder Inaktivieren zugehöriger Unterabschnitte des dynamisch
einteilbaren Speichers 101 oder 202 die zum Steuern
des Optimierungsvorgangs erforderliche Logik in einem in dem Host
integrierte Schaltung, einem Computersystem oder in einer Software
implementiert sein. Beispiele derartiger Implementation sind hier
unter Bezugnahme auf einige Ausführungsbeispiele der Erfindung
beschrieben.
-
5 ist
ein Diagramm eines Beispiels einer Logik zum Erzeugen warmer und
schmutziger Bits entsprechend einiger Ausführungsbeispiele
der Erfindung. Die Logik kann entsprechend einiger Ausführungsbeispiele
der Erfindung in Hardware, Software oder Firmware implementiert
sein und kann von der PML 150, der Steuerlogik für
den Leistungsmanagementzustand 642 oder das Betriebssystem
(OS) 645, alle in 6 gezeigt,
die unten beschrieben werden, gespeichert und/oder betrieben werden.
-
Entsprechend
einiger Ausführungsbeispiele der Erfindung erzeugt diese
Logik warm bits und/oder dirty bits basierend auf einem oder mehreren
der Folgenden: Adressen eines oder mehrerer Transaktionen zu dem
Cache, einem oder mehrerer Lese/Schreibaktivierungen und Status/Weg-Information.
Bei einigen Ausführungsbeispielen der Erfindung weist die
Logik 500 eine Decodierungslogik 512 auf, die
eine Speichertransaktioninformation empfängt, als auch
eine Wegauswahl 506 und eine Wegaktivierungsinformation 508.
Bei einigen Ausführungsbeispielen der Erfindung kann die
Speichertransaktionsadresse 502 eine oder mehrere Untersätze
der gesetzten Bits 504 aufweisen.
-
In Übereinstimmung
mit einigen Ausführungsbeispielen der Erfindung kann die
Decodierungslogik weiter eine Information 510 vom Transaktionstyp
empfangen. Bei einigen Ausführungsbeispielen können
Beispiele der Transaktionstypen aufweisen: Speicherlesen, Speicherschreiben,
Speichertesten, Speicherrückschreiben (Flush) oder Ungültigmachen
des Speichers. Die Speicherattribute (beispielsweise unter Verwendung
von MESI) kann auch von 510 gelesen werden. Diese Information kann
verwendet werden zum Erzeugen von warm bits und/oder dirty bits,
da nach einigen Ausführungsbeispielen der Erfindung die
Bits auf 1 nur bei Typen der Speichertransaktion gesetzt werden
kann. Bei einigen Ausführungsbeispielen kann das warme
Bit beispielsweise gesetzt werden auf jede Transaktion zu dem Satz
und Weg. Weiter kann bei einigen Ausführungsbeispielen
das schmutzige Bit gesetzt sein, wenn modifizierte Daten in den
Satz und Weg geschrieben werden. Bei einigen Ausführungsbeispielen
der Erfindung kann die Decodierlogik 512 sodann einen oder
mehrere warm bits 514 und/oder eine oder mehrere dirty
bits 516 erzeugen. Bei einigen Ausführungsbeispielen
kann die Decodierlogik die Speichertopologie und die Blockgrenzen
kennen.
-
Weiter
kann bei einigen Ausführungsbeispielen der Erfindung die
Decodierlogik die warm bits 512 und die dirty bits 516 reinigen.
Bei alternativen Ausführungsbeispielen kann die PML 150 die
Steuerlogik 642 für den Leistungsmanagementzustand
oder das OS 645 die Bits 514 und/oder 516 säubern.
Bei einigen Ausführungsbeispielen können die dirty
bits 516 gesäubert werden, wenn der Block des
Speichers gelöscht wird. Bei einigen Ausführungsbeispielen
können die warm bits 514 bei dem Austritt aus
einem Leistungszustand gereinigt werden.
-
Bei
einigen Ausführungsbeispielen der Erfindung kann jedes
Mal, wenn ein Austritt eines Leistungszustands erfolgt, der Vorgang
des Sammelns der Information über warme und dirty bits
erneut gestartet werden. Bei diesen Ausführungsbeispielen können
die warmen und dirty bits in Natur gesättigt sein, das
heißt, das warme Bit kann 1 (bei entweder 1 oder 2) für
mehrere Einschreibungen in denselben Block des Speichers. Bei einigen
Ausführungsbeispielen der Erfindung können die
Bits 514 oder 516 gesäubert werden nur
bei expliziten Rückstellungen eines Computersystems. Bei
einigen Ausführungsbeispielen können die mehreren
Speicherblöcke warm bits und/oder dirty bits teilen.
-
Wie
hier an anderer Stelle beschrieben, können einige Ausführungsbeispiele
der Erfindung in einer oder einer Kombination aus einer Hardware,
einer Firmware oder einer Software implementiert sein. Einige Ausführungsbeispiele
der Erfindung können weiter im Ganzen oder im Teil als
Befehle gespeichert auf einem maschinenlesbaren Medium implementiert
sein, das gelesen und ausgeführt werden kann durch wenigstens
einen Prozessor zum Ausführen der hier beschriebenen Operationen
gelesen werden. Ein maschinenlesbares Medium kann jeden Mechanismus
zum Speichern oder Übertragen von Information in einer
von einer Maschine lesbaren Form (beispielsweise einem Computer)
aufweisen. Beispielsweise kann ein maschinenlesbares Medium einen
Nur-Lesespeicher (ROM); einem Speicher mit wahlfreiem Zugriff (RAM);
ein Speichermedium mit einer magnetischen Platte, einem optischen
Speichermedium, Flashspeichereinheiten; elektrische, optische, akustische
oder andere Formen von fortschreitenden Signalen (d. h., Trägerwellen,
Infrarotsignalen, digitalen Signalen usw.) und weitere aufweisen.
-
6 ist
ein Blockdiagramm eines beispielhaften Rechnersystems, das verwendet
werden kann zum Implementieren der Optimierung der Speicherlatenz
mit einer dynamischen Speichereinteilung nach Ausführungsbeispielen
der Erfindung. Das System 600 kann ein Notebook oder ein
Laptop-Rechnersystem sein oder kann jede andere Art eines mobilen elektronischen
Systems sein, wie eine mobile Einheit, ein Personal Digital Assistant,
ein drahtloses Telefon/Handset oder kann auch ein nicht-mobiles
System wie ein Desktop oder ein Enterprise Computersystem sein.
Andere Arten von elektronischen Systemen liegen innerhalb des Schutzbereichs
der verschiedenen Ausführungsbeispiele.
-
Das
System 600 weist einen Prozessor 605 auf, beispielsweise
einen Mehrkern-Prozessor, einen Taktgenerator 611 auf der
Plattformebene, einen mit dem Prozessor 605 gekoppelten
Spannungsregulator 612, einen Speichersteuerhub 615,
der mit dem Prozessor 605 über einen Bus 617 gekoppelt
ist, einen Speicher 620, der einen oder mehrere Speicher mit
wahlfreiem Zugriff (RAM) Flashspeicher und/oder einen anderen Typ
von Speicher, einen Eingang/Ausgang (I/O) Steuerhub 625,
der mit dem Speichersteuerhub 615 über einen Bus 627 gekoppelt
ist und eine Massenspeichereinheit 620, die mit dem I/O
Steuerhub 625 über einen Bus 632 gekoppelt
ist, aufweisen. Obwohl das System 600 bei einigen Ausführungsbeispielen
eine mobile Einheit mit den beschriebenen Subsystemen sein kann,
ist anzuerkennen, dass das System ein anderer Typ einer mobilen
Einrichtung und einer nicht-mobilen Einrichtung sein kann mit mehr
oder weniger als den beschriebenen Subsystemen.
-
In
einigen Ausführungsbeispielen der Erfindung kann der Prozessor 605 ein
Mikroprozessor der Intel® Architektur
sein wie, etwa Intel Pentium® M
Prozessor einschließlich einem oder mehreren Prozessorkernen
(beispielsweise 120, 122) und wenigstens eine
Ausführungseinheit 110 zum Ausführen
von Befehlen.
-
Bei
einigen Ausführungsbeispielen der Erfindung kann der Prozessor 605 eine
Intel SpeedStep® Technologie oder
eine andere sich auf die Leistungsverwaltung beziehende Technologie
aufweisen, die für zwei oder mehr Spannungs-Frequenz-Betriebspunkte
sorgt. Eine zugehörige Takt/Leistungsverwaltungseinheit 150 kann
in dem Prozessor 605 vorgesehen sein zum Steuern von Übergängen
von zwei oder mehrere der Spannung/Frequenz-Paare.
-
Bei
einigen Ausführungsbeispielen der Erfindung kann der Prozessor 605 einen
unterschiedlichen Typ eines Prozessors aufweisen wie einen digitalen
Signalprozessor, einen eingebetteten Prozessor oder einen Mikroprozessor
von einer unterschiedlichen Quelle.
-
Optional
kann der Prozessor einen zugehörigen Cachespeicher 140 (beispielsweise
einen synchronen Speicher mit wahlfreiem Zugriff (SRAM)) aufweisen,
der verwendet werden kann zum Speichern der Variablen des Prozessorzustands
und der Information über das warme/schmutzige Bit. Bei
einigen Ausführungsbeispielen der Erfindung kann der Speicher 140 einige
oder alle diese Informationen aufweisen, wenn der Prozessor einen
sehr tiefen Leistungszustand erreicht, wie dem Nullspannungsschlafzustand,
ohne darauf begrenzt zu sein. Bei einigen Ausführungsbeispielen
der Erfindung können die Speicher in dem Prozessorchip
eingebaut sein oder in demselben Gehäuse wie der Prozessorchip.
-
Wenn
die Intel SpeedStep® Technologie
oder eine andere Art einer Powermanagementtechnologie auf dem Prozessor 605 vorgesehen
ist, weisen das verfügbare Spannungs/Frequenz-Paare, die
der Technologie zugehörig sind, eine minimale Betriebsspannung
der aktiven Betriebsweise auf und eine minimale Betriebsfrequenz,
die dem Prozessor 605 für eine voll funktionierende
Betriebsart zugehörig ist. Diese kann hier als minimale
Betriebsspannung und minimale Betriebsfrequenz und minimale Betriebsspannung
der aktiven Betriebsart bzw. Frequenz bezeichnet werden. Entsprechend
können eine maximale Betriebsspannung und -frequenz definiert
werden. Andere verfügbaren Spannungs/Frequenz-Paare können
als Betriebsfrequenz/Spannungs-Paare bezeichnet werden oder einfach
als andere Spannungs/Frequenz oder Frequenz/Spannungs-Paare.
-
Optional
kann die Nullspannungs-Eingangs/Ausgangs-Logik 154 weiter
in einem Prozessor 605 eingeschlossen sein, entweder innerhalb oder
außerhalb der Leistungsmanagementlogik (PML) 150 zum
Steuern des Eintritts in und des Austritts aus dem Nullspannungsschlafzustand,
hier auch als C6 Zustand bezeichnet. Wie hier an anderer Stelle
beschrieben, kann die PML 150 die Logik 500 aufweisen.
-
Ein
Spannungsidentifikation (VID) Speicher 152, der von der
Nullspannungs-Eingangs/Ausgangs-Logik 154 zugänglich
ist, kann zum Speichern einer Spannungsidentifikations-Nachschlagtabelle vorgesehen
sein. Der VID Speicher kann ein On-Chip oder ein Off-Chip Register
sein oder jede andere Art eines Speichers und die VID Daten können
in dem Speicher über eine Software geladen sein, ein Basis-Eingangs/Ausgangs-System
(BIOS) Code 678 (der auf dem Firmwarehub 679 oder
einem anderen Speicher gespeichert sein kann), einem Betriebssystem,
einer anderen Firmware und/oder kann beispielsweise hartcodiert
sein. Alternativ kann die Softwarenachschlagtabelle einschließlich
dem VID und bezogener Daten an das von der Logik 150 zugreifbar
sein. Die VID Information kann weiter auf dem CPU als Sicherung
gespeichert sein (beispielsweise programmierbaren ROMs (PROMs)).
-
Bei
einigen Ausführungsbeispielen der Erfindung kann die Information,
die für den Betrieb für die Logik 500 und/oder
dem Zustand der warm/dirty bits erforderlich ist, in ähnlicher
Weise mit den VID Daten gespeichert sein.
-
Ein
Analog/Digital-Wandler (ADC) 156 kann weiter vorgesehen
sein als Teil der Nullspannungs-Eingangs/Ausgangs-Logik 150 zum
Beobachten eines Spannungszufuhrniveaus und einen zugehörigen
digitalen Ausgang schaffen, wie dies im Folgenden in weiteren Einzelheiten
beschrieben werden wird.
-
Der
Spannungsregulator 612 erzeugt eine Versorgungsbetriebsspannung
für den Prozessor 605 und kann in Übereinstimmung
mit einer Version der Intel Mobile Voltage Positioning (IMVP) Spezifikation
wie beispielsweise der IMVP-6 sein. Bei solchen Ausführungsbeispielen
ist der Spannungsregulator 612 gekoppelt zum Empfangen
von VID Signalen von dem Prozessor 605 über einen
Bus 535 und, ansprechend auf VID Signale eine zugehörige
Betriebsspannung für den Prozessor 605 über
eine Signalleitung 604 erzeugt. Der Spannungsregulator 612 kann
eine Nullspannung-Schlaflogik 102 aufweisen, die auf eines
oder mehrere Signale anspricht zum Reduzieren der Spannung 640 an
den Prozessor 605 zu einem Nullzustand und sodann die Spannung
an dem Prozessor nach dem Austritt aus dem Nullspannungs-Schlafzustand
wieder ansteigen zu lassen
-
Bei
einigen anderen Ausführungen der Erfindung kann ein unterschiedlicher
Typ eines Spannungsreglers verwendet werden, einschließlich
eines Spannungsreglers in Übereinstimmung mit einer unterschiedlichen
Spezifikation. Bei einigen Ausführungsbeispielen kann der
Spannungsregler mit einer anderen Komponente des Systems 600 einschließlich
des Prozessors 605 integriert sein. Es ist anzuerkennen,
dass der Spannungsregler mit der CPU integriert sein kann oder nicht
integriert sein kann unabhängig von den Bedingungen der
Ausbildung.
-
Der
Speichersteuerhub 615 kann sowohl Graphik- als auch Speichersteuerfähigkeiten
haben und kann hier alternativ als ein Graphik- und Speichersteuerhub
(G/MCH) oder eine Nordbrücke bezeichnet werden. Der Graphik-
und Speichersteuerhub 615 und der I/O Steuerhub 625,
der auch als Südbrücke bezeichnet werden kann,
kann kollektiv als Chipsatz bezeichnet werden. Bei anderen Ausführungsbeispielen
können die Chipsatzmerkmale in einer unterschiedlichen
Weise rationiert sein und/oder können unter Verwendung
einer unterschiedlichen Anzahl von integrierten Schaltungschips
implementiert sein. Bei einigen Ausführungsbeispielen können
die Graphik- und Speichersteuerfähigkeiten unter Verwendung
von gesonderten Schaltungseinheiten vorgesehen sein.
-
Der
I/O Steuerhub 625 weist bei einigen Ausführungsbeispielen
eine Leistungsmanagementzustandssteuerlogik 642 auf, die
alternativ als C-Zustandssteuerlogik bezeichnet wird. Die Leistungsmanagementzustandssteuerlogik 642 kann
Aspekte der Übergänge zwischen einigen Leistungsmanagement-
und/oder normalen Betriebszuständen, die dem Prozessor 605 zugehörig
sind, steuern, entweder autonom oder in Antwort auf das Betriebssystem oder
andere Software- oder Hardwareereignisse. Bei Prozessoren der Intel® Architektur beispielsweise, bei
denen wenigstens eine aktive Betriebsweise und Leistungsmanagementzustände
bezeichnet als C0, C1, C2 und C4, C5 und C6 unterstützt
werden, kann die Leistungsmanagementzustandssteuerungslogik 642 wenigstens
teilweise Übergänge zwischen wenigstens einem
Untersatz dieser Zustände steuern unter Verwendung eines
oder mehreren eines Stopptaktes (STPLCK#) Prozessor schlafen (SLP#), Tiefschlaf
(DPSLP#), tiefer Stop (DPRSTP#) und/oder Stoppprozessor (STPCPU#)
Signalen.
-
Bei
einigen Ausführungsbeispielen der Erfindung kann Spannung
von dem I/O Steuerhub 625 (VI/O 149) für
den Prozessor 605 vorgesehen sein, um diesen ausreichend
mit Leistung zu dem zugewiesenen Cachespeicher 140 derart
zu versorgen, dass es die Statusvariable speichern kann, die dem Prozessor 605 zugeordnet
sind, während das Restliche des Prozessors durch eine Reduktion
der Betriebsspannung 640 auf einen Nullzustand Leistung entzogen
wird. Bei einigen Ausführungsbeispielen der Erfindung weisen
die Statusvariablen eine warm bit oder dirty bit-Information auf.
-
Bei
anderen Typen von Architekturen und/oder für Prozessoren,
die ein unterschiedliches Leistungsmanagement und/oder normale Betriebszustände
unterstützen, kann die Leistungsmanagementzustandssteuerlogik 642 Übergänge
zwischen zwei und mehreren unterschiedlichen Leistungsmanagement
und/oder normalen Betriebszuständen steuern unter Verwendung
von einem oder mehreren Signalen, die zu den Signalen, die hier
beschrieben werden, ähnlich oder unterschiedlich sein können.
-
Die
Massenspeichereinheit 630 kann eine oder mehrere kompakte
Platten-Nur-Lese-Speicher (CD-ROM) Antriebe und zugehörige
CD eine oder mehrere Festplatten und zugehörige Platten und/oder
eine oder mehrere Massenspeichereinheiten aufweisen, die durch das
Rechnersystem 600 über ein Netzwerk zugänglich
sind. Andere Typen von Massenspeichereinheiten wie, beispielsweise, optische
Antriebe und zugehörige Medien, liegen in dem Schutzbereich
der verschiedenen Ausführungsbeispiele.
-
Bei
einigen Ausführungsbeispielen speichert die Massenspeichereinheit 630 ein
Betriebssystem 645, das einen Code 650 aufweist
zum Unterstützen einer gegenwärtigen und/oder
einer folgenden Version der ACPI Spezifikation, was hier an anderer
Stelle diskutiert wird. ACPI kann zum Steuern einiger Aspekte des
Leistungsmanagements verwendet werden, wie es im Folgenden in größeren
Einzelheiten beschrieben werden wird. Das Betriebssystem 645 kann
ein WindowsTM oder eine andere Art eines
Betriebssystems sein, das von Microsoft® Corporation
of Redmond, Washington, erhältlich isst. Alternativ können
bei anderen Ausführungsbeispielen eine unterschiedliche
Art eines Betriebssystems wie, beispielsweise, ein LinuxTM Betriebssystem und/oder eine unterschiedliche
Art auf einem Betriebssystem beruhenden Leistungsmanagement verwendet
werden. Weiter können Leistungsmanagementfunktionen und Fähigkeiten,
die hier als mit ACPI zugehörig beschrieben worden sind,
durch unterschiedliche Software oder Hardware gebildet werden.
-
Es
sollte weiter beachtet werden, dass das System 600 ein
Display aufweisen kann, etwa eine Kathodenstahlröhre (CRT)
oder ein Flüssigkristalldisplay (LCD) zum Darstellen von
Information für einen Verwender. Weiter kann das System 600 eine
alphanumerische Eingabeeinheit (beispielsweise eine Tastatur) mit
alphanumerischen oder anderen Tasten aufweisen zum Kommunizieren
von Information von Befehlen an dem Prozessor 605. Eine zusätzliche Verwendereingabeeinheit
kann eine Cursorsteuereinheit, etwa eine Maus, einen Trackball,
einen Trackpad, einen Stift oder Cursorrichtungstasten zum Kommunizieren
von Richtungsinformation und einer Befehlsauswahl an dem Prozessor 605 und zum
Steuern der Cursorbewegung auf der Displayeinheit aufweisen.
-
Eine
weitere Einheit, die in dem System vorgesehen sein kann, ist eine
Hardcopyeinheit, die verwendet werden kann zum Ausdrucken von Informationen,
Daten oder anderer Informationen bei einem Medium wie Papier, Film
oder anderen Typen von Medien. Weiter kann eine Tonaufzeichnungs-
und Playbackeinheit, etwa ein Lautsprecher und/oder ein Mikrofon
(nicht gezeigt) optional in dem System zur Aufnahme und Wiedergabe
von Audiosignalen vorgesehen sein.
-
Wenn
das System 600 ein mobiles oder ein portables System ist,
können eine Batterie oder eine Batterieverbindung vorgesehen
sein zum Schaffen einer Leistung zum Betreiben des Systems 600 entweder
exklusiv oder in Abwesenheit einer anderen Leistungsquelle. Zusätzlich
kann bei einigen Ausführungsbeispielen eine Antenne 660 vorgesehen
sein oder gekoppelt sein mit dem System 600 über,
beispielsweise, ein drahtloses lokales Netzwerk (WLAN) 661 zum
Schaffen einer drahtlosen Verbindung für das System 600.
-
Die
WLAN Einheit 661 kann ein Modul zur drahtlosen Kommunikation
aufweisen, das ein Wireless Application Protocol (WAP) verwenden
kann zum Bilden eines drahtlosen Kommunikationskanals. Das Modul
zur drahtlosen Kommunikation kann einen drahtlosen Netzwerkstandard
implementieren wie den des Institut of Electrical and Electronics
Engineers (IEEE) 802.11 Standard, IEEE
802.11-1999 Standard, veröffentlicht 1999.
-
Es
ist anzuerkennen, dass bei einigen Ausführungsbeispielen
der Erfindung der Prozessor 605 von 6 den Übergang
zwischen verschiedenen C-Zuständen bewirken kann. Der normale
Betriebszustand oder aktive Modus für den Prozessor 605 ist der
C0-Zustand, in dem der Prozessor aktive Befehle verarbeitet. In
dem C0-Zustand ist der Prozessor 605 in einem Hochfrequenzmodus
(HFM), in der das Bestimmen der Spannung/Frequenz vorgesehen sein kann
von dem maximalen Spannungs/Frequenz-Paar.
-
Um,
zum Beispiel, Leistung zu sparen und/oder die thermische Belastung
zu reduzieren, kann der Prozessor wenn immer möglich, in
einen tieferen Leistungszustand gebracht werden. Von dem C0-Zustand
kann der Prozessor 605 beispielsweise in Antwort auf eine
Firmware, etwa einem Mikrocode oder eine Software, etwa dem Betriebssystem 645 oder
aber auch in einigen Fällen von der ACPI Software, die
einen HALT oder einem MWAIT Befehl ausführt (nicht gezeigt)
in den C1 oder Auto HALT Zustand übergehen. In den C1 Zustand
können Teile der Prozessorschaltung 605 in der
Leistung herabgesetzt werden und lokale Takts können gegated
werden.
-
Der
Prozessor kann in den C2 Zustand übergehen, auch als Stopp-Zulassung
oder SLEEP Zustand bezeichnet, bei Auftreten des STPCLK# oder einem ähnlichen
Signal beispielsweise von dem I/O Controller 625. Der I/O
Controller 625 kann das STPCLK# Signal in Antwort auf das
Betriebssystem 654 feststellen, das bestimmt, dass ein
Niedrigleistungsmodus erreicht werden kann oder erreicht werden sollte
und gibt dieses über die ACPI Software 650 an. Insbesondere
können eine oder mehrere ACPI Register (nicht gezeigt)
in dem I/O Controller 625 eingeschlossen sein und die ACPI
Software 650 kann in diese Register einschreiben zum Steuern
wenigstens einiger Übergänge zwischen Zuständen.
Während des Betriebs in dem C2 Zustand können
Abschnitte des Prozessors 605 in der Leistung herabgesetzt werden
und interne und externe Kerntakte können gegated werden.
Bei einigen Ausführungsbeispielen kann der Prozessor direkt
von dem C0-Zustand in den C2-Zustand übergehen.
-
Ähnlich
kann der Prozessor 605 in Antwort auf den I/O Controller 605 oder
einem anderen Chipsatzmerkmal in den C3-Zustand übergehen
(als auch Tiefschlafzustand bezeichnet), der einem CPUSLP# Signal
zugehörig ist und sodann einem DPSLP# Signal oder anderen ähnlichen
Signalen. In dem Tiefschlafzustand kann neben dem Herabsetzen der
internen Leistung des Prozessors alle Phase-Lock Loops (PLLs) in
dem Prozessor 605 inaktiviert werden. Weiter kann bei einigen
Ausführungsbeispielen ein STOP_CPU Signal erzeugt werden
durch den Eingangs/Ausgangs-Controller 625 und Empfangenwerden
von dem Taktgenerator 611 zu veranlassen, dass der Taktgenerator
die Taktsignale CLK an den CPU 605 unterbricht.
-
Bei
dem System 600 kann ein Übergang in den C4-Zustand
oder in einen Nullspannungs-Schlafzustand unternommen werden in
Antwort darauf, dass die ACPI Software 650 erkennt, dass
keine Prozessorinterrupts anhängig sind, zum Beispiel.
Die ACPI Software kann dies tun indem es den ICH 625 veranlasst,
eines oder mehrere sich auf das Management beziehende Signale aufrecht
zu erhalten, wie beispielsweise das tiefere Stoppsignal (DPRSTP#) und
beispielsweise das DSSLP# Signal. Das tiefer Stop (DPRSTP#) Signal
wird direkt von dem Chipsatz an den Prozessor angelegt und verursacht,
dass die Takt/Leistungsmanagementlogik 650 auf dem Prozessor
einen Modus mit niedriger Frequenz (LFM) verursacht. Bei dem Modus
mit tiefer Frequenz kann der Prozessor beispielsweise auf die minimale oder
eine andere geringer Betriebsfrequenz übergehen.
-
Nach
einigen Ausführungsbeispielen der Erfindung kann das Auftreten
des DPRSTP# Signals weiter ein Einstellen des internen VID-Targets
auf einen Nullspannungspegel verursachen, was dazu führt,
dass eine Nullbetriebsspannung den Prozessor 605 von dem
Spannungsregler 612 angelegt wird derart, dass der Prozessor
in einen sehr tiefen Schlafzustand übergeht, bei dem sehr
geringe Leistungsverbräuche auftreten.
-
Nach
einigen Ausführungsbeispielen der Erfindung kann eine integrierte
Schaltung, etwa ein Prozessor 605, einen Übergang
in einen Nullspannungs-Leistungsmanagementszustand initiieren. Bei einem
Ausführungsbeispiel kann der Prozessor 605 eine
zentrale Recheneinheit (CPU) 605 sein. Weiter kann der
Nullspannungsmanagementzustand beispielsweise ein tieferer Schlafzustand
sein in Übereinstimmung mit den ACPI Standards. Während
dieses Übergangs kann der Zustand der CPU 605 gesichert
werden. Beispielweise können Statusvariable, die dem CPU 605 zugeordnet
sind, in dem zugeordneten Cachespeicher (beispielsweise SRAM) 140 gesichert
werden.
-
Die
Betriebsspannung des CPU 605 kann nachfolgend auf Null
reduziert werden, so dass der CPU 605 in einem sehr tiefen
Schlafzustand ist, der sehr geringe Leistungsverbrauchseigenschaften
hat. Insbesondere kann die Spannungsregelung 612 die optionale
Nullspannungs-Schlafzustandslogik 102, die Betriebsspannung 640 auf
Null herab reduzieren. Wie vorangehend diskutiert, kann dies erfolgen
in Zusammenhang mit der Nullspannungseingangs/ausgangslogik 154 der
Taktleistungsmanagementlogik 150 des CPU 605.
Bei einigen Ausführungsbeispielen kann dieser Nullspannungs-Leistungsmanagementzustand
bei einer Implementation in Verbindung mit den ACPIs Standards als
C6-Zustand bezeichnet werden.
-
Nachfolgend
kann die CPU 605 in Antwort auf das Empfangen einer Anforderung
zum Austreten aus dem Nullspannungs-Leistungsmanagementzustand aus
dem Nullspannungs-Spannungszustand bei einer höheren Referenzbetriebsspannung
austreten. Insbesondere kann unter der Kontrolle einer Nullspannungs-Eintritts/Austrittslogik 154 der
CPU 605 und die Nullspannungs-Schlaflogik 102 des Spannungsreglers 612,
wie zuvor beschrieben, der Spannungsregler 612 die Referenzbetriebsspannung 640 auf
einen geeigneten Pegel heben derart, dass die CPU 605 geeignet
arbeiten kann. Die kritischen Zustandsvariablen der CPU 605 werden
sodann aus dem vorliegenden Cachespeicher 140 gespeichert.
-
Bei
einigen Ausführungsbeispielen der Erfindung erlaubt das
Leistungsmanagementschema daher der CPU 605 seine Zustandsinformation
zu sichern einschließlich der Information über
die warm bits und die dirty bits, Ausschalten der Leistung und sodann
Aufwachen wenn erforderlich, Rückgewinnen des Zustands
und Fortsetzen, wo die CPU verlassen worden ist. Dies kann bei einigen
Ausführungsbeispielen erfolgen, ohne eine explizite Unterstützung
von dem Betriebssystem 645 und kann erreicht werden mit
einer kürzeren Latenzperiode teilweise aufgrund der Verwendung
der warm bits und/oder der dirty bits.
-
Insbesondere
kann bei einigen Ausführungsbeispielen der Erfindung in
dem Nullspannungsprozessorschlafzustand, der als C6-Zustand in Übereinstimmung
mit den ACPI Standards bezeichnet werden kann, der Zustand des CPU 605 in
dem zugehörigen Schlafzustands SRAM Cache 104 gespeichert werden,
der betrieben werden kann von der I/O Spannungsversorgung (VI/O) 140,
während die Kernbetriebsspannung 640 für
die CPU 605 auf annähernd 0 Volt herabgesetzt
wird. Zu diesem Zeitpunkt ist der CPU 605 fast vollständig
ohne Leistungsversorgung und verbraucht sehr wenig Leistung.
-
Bei
einem Austrittsereignis kann die CPU 605 der Spannungsregelung 612 angeben,
die Betriebsspannung 640 zurück auf (beispielsweise
mit dem VID Code 635) anzusteigen, die Phase Lock Loop
(PLLs) Relocks und den Takt zurück zu der Takt/Leistungs-Management logik 150 zurückzukehren
und den Nullspannungseingangs/Ausgangs-Logik 154. Weiter
kann die CPU 605 einen internen RESET ausführen,
um Zustände zu löschen und kann sodann den Zustand
der CPU 605 wieder herstellen aus dem gegebenen Schlafzustand
SRAM Cache 140 und die CPU 605 kann dort fortsetzen,
wo sie in den Ausführungsstrom eingebracht wird. Diese
Vorgänge können ausgeführt werden in
einer sehr kurzen Zeitdauer (beispielsweise 100 Mikrosekunden) in CPU 605 Hardware,
so dass dies transparent ist für das Betriebssystem 645 und
der existierenden Leistungsmanagementsoftwareinfrastruktur.
-
Bei
einigen Ausführungsbeispielen ist dieses Vorgehen besonders
geeignet für einen CPU 605 mit mehreren Prozessorkernen.
Bei diesem Beispiel werden der Kern 120 (beispielsweise
der Kern #0) und der Kern 122 (beispielsweise der Kern
#1), das heißt ein Zweikern CPU, als Beispiel diskutiert.
Es ist jetzt anzuerkennen, dass jede geeignete Anzahl von CPU Kernen
verwendet werden kann.
-
Dieser
gemeinsam benutzte Cache 120 kann beispielsweise ein Level
2 (L2) Cache 120 sein, der von den Kernen 120 und 122 geteilt
wird.
-
Weiter
weist jeder Kern 120 und 122 einen Kern ID 121,
einen Mikrocode 123, einen gemeinsamen Zustand 124 und
einen zugewiesenen Zustand 125 auf. Der Mikrocode 123,
der Kern 120 und 122 wird verwendet zur Durchführung
von Speicher/Rückgewinnungs-Funktionen des CPU Status und
für verschiedene Datenströme in der Performance
des Nullspannungs-Prozessorschlafzustands in Verbindung mit der
Nullspannungs-Eingangs/Ausgangs-Logik 154 der Takt/Leistungsmanagementlogik 150 der
CPU 605. Weiter kann der jeweilige Schlafzustand SRAM Cache 140 verwendet
werden zum Speichern der Zustände der Kerne als auch von Information,
die sich auf etwaige warm bits/dirty bits beziehen.
-
Der
Fachmann wird wenigstens basierend auf der hier angebotenen Lehre
erkennen, dass das System 600 und/oder andere Systeme verschiedener
Ausführungsbeispiele andere Komponenten oder Elemente,
die nicht in 6 gezeigt sind, aufweisen kann,
und/oder aber nicht alle Elemente, die in 6 vorhanden
sein müssen, bei allen Ausführungsbeispielen der
Systeme vorhanden sein müssen.
-
Weiter
kann die Logik 500 bei einigen Ausführungsbeispielen
als eine Finite State Machine (FSM) mit einem oder mehreren der
Komponenten von 6 implementiert sein. Der Fachmann
wird jedenfalls auf der Grundlage der hier offenbarten Lehre erkennen,
dass ein derartiges FSM in Übereinstimmung mit den im Folgenden
beschriebenen Flussdiagrammen arbeiten würde.
-
Während
manche Einzelheiten eines oder mehrere Ausführungsbeispiele
oben beschrieben worden ist, versteht es sich, dass andere Ansätze zum
Optimieren der Latenz der dynamischen Speichereinteilung bei anderen
Ausführungsbeispielen verwirklicht werden können.
Beispielsweise kann, obwohl bestimmte Leistungszustände
oben erwähnt worden sind, bei anderen Ausführungsbeispielen
andere Leistungszustände und/oder andere Leistungsfaktoren
berücksichtigt werden können bei dem Bestimmen,
dass der Speicherblock modifizierte oder abgerufene Daten beinhaltet.
Obwohl oben ein Speicher in einem Zweikern-Prozessor in einem Personal Computer
beschrieben worden ist, versteht es sich weiter, dass ein optimierter
Latenzansatz zum Einteilen eines dynamischen Speichers entsprechend
einem oder mehrerer Ausführungsbeispiele der vorliegenden
Erfindung angewendet werden können bei verschiedenen Typen
von Speichern und/oder einem hostintegrierten Schaltungschip und/oder
-system.
-
Beispielsweise
kann entsprechend den verschiedenen Ausführungsbeispielen
der Erfindung eine Speicherleistungsmanagementlogik (nicht gezeigt,
aber wenigstens von der Ausführungseinheit 110 implementiert)
oder andere Software oder Hardware die Arbeitsbelastung eines Hostprozessors
im Allgemeinen und/oder des Speichers insbesondere beobachten kann.
Die Speicherleistungsmanagementlogik kann einen Befehl zum effektiven Schrumpfen
des Speichers ausgeben in Abhängigkeit von einem Leistungszustand
des Ganzen oder eines Teiles des Prozessor- oder Rechnersystems, wenn
der Prozessor für eine lange Zeitdauer nicht aktiv ist
und/oder wenn eine Anwendung nur einen geringen Teil des insgesamt
verfügbaren Speichers verbraucht, beispielsweise, und einen
oder mehrere der oben in ihren Einzelheiten beschriebenen Prozesse nach
den 7 bis 9 ausführt. Dies kann
durch Inaktivieren eines Teiles eines aktiven Speichers erfolgen,
beispielsweise einem oder mehreren Wegen, wie bei dem beispielhaften
Ausführungsbeispiel nach den 1 und/oder 2.
Wenn die Speicherleistungsmanagementlogik erkennt, dass der Prozessor für
eine lange Zeit aktiv ist, ist der gesamte oder ein Teil des Prozessor-
oder Hostrechnersystems in einem gegebenen Leistungszustand und/oder
die Speichergröße kann nicht ausreichend sein
für die Operationen, die von dem Prozessor oder dem Computersystem
erforderlich sind, es kann einen Befehl oder eine andere Steuerlogik
ausgeben zum Erweitern des Speichers zum Freigeben von mehr Bereichen
des Speichers, während ähnlich eine oder mehrere
der Prozessoren, die in ihren Einzelheiten unten unter Bezugnahme
auf die 7–9 beschrieben sind,
ausführt.
-
Nach
einigen Ausführungsbeispielen der Erfindung kann ein Hardwarekoordinationsmonitor
oder eine Steuerlogik oder ein PML iterativ bestimmen, wenn eine
erforderliche Anzahl von Wegen geringer ist als die aktivierte Anzahl
von Wegen und die Schlafeinrichtung deaktivieren (oder aktivieren,
in Abhängigkeit darauf, wie die Schlafeinrichtung ausgebildet ist)
zum Inaktivieren eines oder mehrerer Wege derart, dass die freigegebene
Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl
von Wegen.
-
Weiter
kann der Hardwarekoordinationsmonitor unter Verwendung eines oder
mehrere Kohärenzprotokolle entsprechend einiger Ausführungsbeispiele
der Erfindung eine oder mehrere Wege für Daten, die wenigstens
in einen Speicher einzuschreiben sind, abtasten.
-
Bei
einem anderen Ausführungsbeispiel der Erfindung kann der
Hardwarekoordinationsmonitor weiter iterativ bestimmen, ob die erforderliche
Anzahl von Wegen größer ist als die freigegebene
Anzahl von Wegen und die Schlafeinrichtung aktivieren (oder, abhängig
davon, wie die Schlafeinrichtung konfiguriert ist) inaktivieren,
um einen oder mehrere Wege freizugeben derart, dass die freigegebene
Anzahl von Wegen im Wesentlichen gleich ist der erforderlichen Anzahl
von Wegen.
-
Ausführungsbeispiele
der vorliegenden Erfindung können Verfahren aufweisen zum
Ausführen der in der vorangehenden Beschreibung diskutierten Funktionen.
Beispielsweise kann ein Beispiel der Erfindung ein Verfahren aufweisen
zum Beobachten des Prozessors und eines Speichers und Justieren des
Speichers. Der Prozess kann zusätzliche Operationen aufweisen,
Ausführungsbeispiele davon werden im Folgenden unter Bezugnahme
auf die 7–9 beschrieben.
-
In
den Figuren sind Flussdiagramme dargestellt, die einige Ausführungsbeispiele
für die Verläufe für den Eintritt in
den Leistungszustand und den Austritt in den Leistungszustand unter
Verwendung von warmen und dirty bits zeigen. Bei einigen Ausführungsbeispielen
können die dirty bits verwendet werden während
des Leistungszustands. Nach einigen Ausführungsbeispielen
der Erfindung können die dirty bits es dem Prozessor teilweise
erlauben, diejenigen Speicherblocks zu löschen, die nicht
modifizierte Daten beinhalten. Bei einigen Ausführungsbeispielen
können die warm bits verwendet werden während
dem Austreten aus einem Leistungszustand wie, ohne darauf begrenzt
zu sein, einen bestimmten Schlafzustand. Bei einigen Ausführungsbeispielen der
Erfindung können die warm bits es dem Prozessor wenigstens
erlauben, das Ungültigmachen von Statusbits des Speicherblocks
zu löschen, die nicht irgendwelche Daten beinhalten, d.
h., auf die nicht zugegriffen worden ist. Die Verwendung der warm bits
braucht nicht von dem Leistungszustand abhängig zu sein,
der die Statusbits in dem Speicherblock rückhält,
d. h., abhängig von einem bestimmten Pegel der Leistung
zu dem Speicher, wie der Nullspannungslogik, die an anderer Stelle
hier wenigstens unter Bezugnahme auf 6 beschrieben
worden ist, kann es dem Prozessor ermöglichen, die Statusinformation
auch dann beizubehalten, wenn der Prozessor im Wesentlichen schläft
oder ausgeschaltet ist. Bei, mit anderen Worten, in Übereinstimmung
mit einigen Ausführungsbeispielen können alle
Zustandsbits bei dem Austreten aus dem Leistungszustand ungültig
gemacht werden, dies ist aber nicht notwendigerweise erforderlich
(aufgrund des optionalen Vorhandenseins der Nullspannungslogik oder
Alternativen).
-
7 ist
ein Flussdiagramm eines Beispiels eines Verfahrens zum Optimieren
der Speicherlatenz entsprechend einiger Ausführungsbeispiele
der Erfindung. Wie an anderer Stelle hier beschrieben, kann der
Prozess ausgeführt werden im Ganzen oder teilweise von
der Logik 500 einschließlich der Decodierlogik 512 als
auch durch die Leistungsmanagementlogik 150 oder die Steuerlogik 154.
Das Verfahren beginnt bei 700 und schreitet zu 702 fort,
wo es einen warmen Bit erzeugt gemeinsam mit einem Speicherblock,
wenn von dem Prozessor auf den Speicherblock zugegriffen wird. Bei
einigen Ausführungsbeispielen der Erfindung schreitet der
Prozess optional zu 704 fort, wo es ein schmutziges Bit
erzeugt gemeinsam mit einem Speicherblock, wenn der Speicherblock
modifiziert wird.
-
Das
Verfahren schreitet sodann zu 706 fort, wo die Logik 500, 150 oder 154 eine
Anforderung zum Ändern eines Speicherzustands empfängt.
Bei einigen Ausführungsbeispielen der Erfindung kann die
Anforderung eine Änderung in dem Leistungszustand eines
oder mehrerer der Prozessorkerne des Prozessors selbst angeben.
Bei einigen Ausführungsbeispielen der Erfindung kann die
Anforderung angeben, dass eine weitere Einheit, extern zu dem Prozessor 605,
wie, nicht aber begrenzt auf, den WLAN 661. Bei manchen
Ausführungsbeispielen der Erfindung kann die Anforderung
eine Angabe aufweisen, dass der Speicher im Ganzen oder teilweise
heruntergefahren wird, wie an anderer Stelle hier beschrieben werden
wird. Der Prozess schreitet sodann zu 708 fort, wo er dazu
in der Lage ist zu bestimmen aus den warm bits, auf welchen der Speicherblöcke
zugegriffen worden ist. Während der Speicherblockaktivierung
kann der Prozess einen Statusbit von einem Block, der durch ein
warmes Bit markiert ist, ungültig macht.
-
Bei
einigen Ausführungsbeispielen der Erfindung schreitet der
Prozess optional zu 710 fort, wo er dazu in der Lage ist
zu bestimmen, welcher der Speicherblöcke von den dirty
bits modifiziert worden ist. Während der Inaktivierung
eines Speicherblocks kann der Prozess einen Block ungültig
machen, der durch ein schmutziges Bit markiert ist. Der Prozess schreitet
sodann zu 712 fort, wo er endet und dazu in der Lage ist,
wieder gestartet zu werden, ganz oder teilweise, wie der Fachmann
wenigstens auf der Grundlage der hier offenbarten Lehre erkennen
wird.
-
8 ist
ein Flussdiagramm eines Beispiels eines Verfahrens zum Speicheraustritt
nach einigen Ausführungsbeispielen der Erfindung, wie sie
unter Bezugnahme auf ein Ausführungsbeispiel in 7 gezeigt
worden ist, bei 708. Der Prozess kann ausgeführt
werden von der Logik 500, 150 oder 154,
wie dies an anderer Stelle hier beschrieben wird. Der Prozess beginnt
bei 800 und schreitet fort zum Prüfen um zu sehen,
ob irgendeiner der Zustandsbits bei 802 erhalten wird.
Falls nicht, schreitet der Prozess zu 804 fort und kann
alle Zustandsbits ungültig machen. Wenn dies der Fall ist,
schreitet der Prozess zu 806 fort.
-
Bei 806 kann
der Prozess einen nächsten Block zum Ungültigmachen
auswählen. Wenn keine weiteren Blöcke auszuwählen
sind, kann der Prozess zu 812 fortschreiten und beendet werden,
wo er wieder starten kann, ganz oder teilweise, wie der Fachmann
wenigstens anhand der vorliegenden Lehre erkennt. Wenn dies der
Fall ist, kann der Prozess zu 808 fortschreiten.
-
Bei 808 kann
der Prozess prüfen, ob der Block durch ein warmes Bit markiert
ist. Wenn dies der Fall ist, kann der Prozess diese Zustandsbits
ungültig machen für diesen Block bei 810.
Falls nicht, kann der Prozess zu 806 zurückkehren.
Bei einigen Ausführungsbeispielen kehrt der Prozess zu 810 zurück.
-
9 ist
ein Flussdiagramm eines Beispiels eines Prozess für einen
Speichereintrittsfluss nach einigen Ausführungsbeispielen
der Erfindung, wie dies unter Bezugnahme auf ein Ausführungsbeispiel von 7 bei 710 diskutiert
wird. Dieser Prozess kann von der Logik 500, 150 oder 154 ausgeführt werden,
wie dies hier an anderer Stelle beschrieben wird. Der Prozess beginnt
bei 900 und schreitet fort zum Auswählen eines
nächsten ungültig zu machenden Blocks bei 902.
Wenn kein weiterer Block zum Ungültigmachen gegeben ist,
schließt der Prozess selbst bei 908 ab, wo er
dazu in der Lage sein kann, neu gestartet zu werden teilweise oder
im Ganzen, wie der Fachmann wenigstens basierend auf der hier beschriebenen
Lehre erkennen wird. Falls dies der Fall ist, kann der Prozess zu 904 fortschreiten.
-
Bei 904 prüft
der Prozess, ob der Block von einem schmutzigen Bit markiert wird.
Wenn dies der Fall ist, kann der Prozess fortschreiten zum Ungültigmachen
aller Einträge in diesem Block bei 906. Falls nicht,
kann der Prozess zu 902 zurückkehren. Bei einigen
Ausführungsbeispielen kehrt der Prozess nach 906 zu 902 zurück.
-
Jede
Bezugnahme in dieser Beschreibung auf „ein Ausführungsbeispiel", „das
Ausführungsbeispiel", „einige Ausführungsbeispiele"
usw. bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder eine
in Verbindung mit dem Ausführungsbeispiel beschriebene
Eigenschaft in wenigstens einem Ausführungsbeispiel der
Erfindung vorhanden ist. Das Auftreten dieser Ausdrücke
an verschiedenen Orten in der Beschreibung bezieht sich nicht notwendigerweise
auf dasselbe Ausführungsbeispiel. Wenn ein bestimmtes Merkmal,
eine Struktur oder eine Eigenschaft in Verbindung mit einem Ausführungsbeispiel beschrieben
worden ist, ist anzunehmen, dass dies innerhalb des Blickwinkels
des Fachmanns ist, ein solches Merkmal, eine Struktur oder eine
Eigenschaft in Verbindung mit anderen Ausführungsbeispielen
verstanden wird. Zur Vereinfachung des Verständnisses sind
bestimmte Verfahrensschritte angegeben als gesonderte Vorgänge,
diese gesondert dargestellten Prozeduren sollten nicht verstanden werden
als notwendigerweise in ihrer Performance voneinander abhängig.
Das heißt, einige Prozeduren können in einer anderen
Reihenfolge oder gleichzeitig ausgeführt werden, wie es
dem Fachmann wenigstens aufgrund dieser Lehre deutlich wird.
-
Ausführungsbeispiele
der vorliegenden Erfindung können in Einzelheiten beschrieben
werden, zum es dem Fachmann zu erlauben, die Erfindung auszuüben.
Andere Ausführungsbeispiele können verwendet werden
und strukturelle chronologische und intellektuelle Änderungen
können ausgeführt werden ohne sich aus dem Schutzbereich
der vorliegenden Erfindung zu lösen. Weiter versteht es
sich, dass verschiedene Ausführungsbeispiele der Erfindung
zwar unterschiedlich sind nicht aber notwendigerweise gegenseitig
exklusiv. Beispielsweise kann ein bestimmtes Merkmal, eine Struktur
oder eine Eigenschaft, die in einem Ausführungsbeispiel
beschrieben wird, in anderen Ausführungsbeispielen vorhanden
sein. Entsprechend versteht sich die eingehende Beschreibung nicht
in einem einschränkenden Sinn.
-
Die
vorangehenden Ausführungsbeispiele und Vorteile sind lediglich
Beispiele, die nicht als die vorliegende Erfindung einschränkend
zu verstehen sind. Beispielsweise kann die vorliegende Lehre in geeigneter
Weise auf andere Arten von Speichern angewendet werden. Dem Fachmann
ergibt sich aus der vorangehenden Beschreibung, dass die Techniken
der Ausführungsbeispiele der Erfindung in einer Unterschiedlichkeit
von Formen implementiert werden kann. Obwohl Ausführungsbeispiele
der Erfindung in Verbindung mit bestimmten Ausführungsbeispielen
beschrieben worden sind, sollte der wahre Schutzbereich der Erfindung
nicht entsprechend eingeschränkt werden, da andere Modifikationen
sich dem Fachmann bei Studieren der Zeichnungen, der Beschreibung
und der nachfolgenden Ansprüche ergibt.
-
ZUSAMMENFASSUNG
-
Einige
Ausführungsbeispiele der Erfindung weisen ein System und
ein Verfahren auf zum Optimieren der Latenz der dynamischen Speichereinteilung
auf. Bei einigen Ausführungsbeispielen können die
Betriebsanforderungen den Betrag an Speicher, der erforderlich ist
zum Ausführen von geeigneten Operationen. Die Speicherleistungsmanagementlogik
wird verwendet um Speicheranforderungen mit den Betriebsanforderungen
zu koordinieren. Die Latenz dieser Änderungen des Speichers
basierend auf den Betriebsanforderungen werden durch das Verfahren
und das System optimiert. Andere Ausführungsbeispiele werden
beschrieben.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - ACPI Spezifikation,
Rev. 3.0 vom 2. September 2004, Rev. 2.0c, 25. August 2003, Rev.
2.0, 27. Juli 2000 [0016]
- - (IEEE) 802.11 Standard [0061]
- - IEEE 802.11-1999 Standard [0061]