PatentDe  


Dokumentenidentifikation DE112006000545T5 17.01.2008
Titel System und Verfahren zum kohärenten Datentransfer während Leerlaufzuständen von Prozessoren
Anmelder Intel Corporation, Santa Clara, Calif., US
Erfinder Cline, Leslie, Sunnyvale, Calif., US;
Sritanyaratana, Siripong, Union City, Calif., US;
Naveh, Alon, Ramat Hasharon, IL;
Rotem, Efraim, Haifa, IL;
Samson, Eric, Folsom, Calif., US;
Derr, Michael, El Dorado Hills, Calif., US
Vertreter BOEHMERT & BOEHMERT, 28209 Bremen
DE-Aktenzeichen 112006000545
Vertragsstaaten AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BW, BY, BZ, CA, CH, CN, CO, CR, CU, CZ, DE, DK, DM, DZ, EC, EE, EG, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, KE, KG, KM, KN, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, LY, MA, MD, MG, MK, MN, MW, MX, MZ, NA, NG, NI, NO, NZ, OM, PG, PH, PL, PT, RO, RU, SC, SD, SE, SG, SK, SL, SM, SY, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, YU, ZA, ZM, ZW, EP, AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HU, IE, IS, IT, LT, LU, LV, MC, NL, PL, PT, RO, SE, SI, SK, TR, OA, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG, AP, BW, GH, GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM, ZW, EA, AM, AZ, BY, KG, KZ, MD, RU, TJ, TM
WO-Anmeldetag 13.02.2006
PCT-Aktenzeichen PCT/US2006/005324
WO-Veröffentlichungsnummer 2007030133
WO-Veröffentlichungsdatum 15.03.2007
Date of publication of WO application in German translation 17.01.2008
Veröffentlichungstag im Patentblatt 17.01.2008
IPC-Hauptklasse G06F 12/08(2006.01)A, F, I, 20060213, B, H, DE

Beschreibung[de]
Technisches Gebiet

Eine oder mehrere Ausführungen der vorliegenden Erfindung betreffen im allgemeinen die Leistungssteuerung. Insbesondere betreffen bestimmte Ausführungen die Steuerung der Leistung in Rechnersystemen.

Erörterung

Weil der Trend zu modernen Hauptprozessoreinheiten (CPUs) mit mehr Transistoren und höheren Frequenzen weiter zunimmt, werden Computerdesigner und -hersteller oft mit entsprechenden Zuwächsen an Leistungs- und Energieverbrauch konfrontiert. Darüber hinaus können Fertigungstechnologien, die schnellere und kleinere Komponenten vorsehen, zur gleichen Zeit zu gestiegener Verlustleistung führen. Speziell in mobilen Rechnerumgebungen kann ein gestiegener Leistungsverbrauch zu Überhitzung führen, was die Leistung negativ beeinflussen kann, und kann die Batterielebensdauer wesentlich verringern.

Da Batterien üblicherweise eine beschränkte Kapazität haben, kann das Laufenlassen eines Prozessors eines mobilen Rechnersystems über das Notwendige hinaus die Kapazität schneller als erwünscht entleeren. In manche modernen mobilen Rechnersysteme wird daher versucht, Leistung einzusparen, indem der Prozessor in verschiedene Niederleistungs-/Leerlaufzustände versetzt wird, wenn es keine Befehle auszuführen gibt. Weil die Niederleistungszustände niedriger und niedriger werden, geht oft mehr Funktionalität innerhalb des Prozessors verloren. Ein Zustand mit extrem niedriger Leistung sieht beispielsweise eine so niedrige Senkung der Kernspannung vor, daß es ein Problem wegen des Datenverlusts in dem/den internen Cache(s) des Prozessors geben kann. Wenn ein Prozessor sich daher in diesem Zustand befindet, können die internen Caches des Prozessors in den Hauptspeicher geflusht werden und Snoops auf den Cache können ignoriert und/oder zurückgewiesen werden. Während die Verwendung eines solchen tiefen Niederleistungszustands wesentliche Leistungseinsparungen bereitstellen kann, erfordern Datentransfers zwischen verschiedenen Controller und dem Hauptspeicher üblicherweise Snoops auf den internen Cache des Prozessors. Im Ergebnis kann der Prozessor häufiger aus dem Niederleistungszustand heraus gezwungen werden, als erwünscht.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Die verschiedenen Vorteile der Ausführungen der vorliegenden Erfindung werden dem Fachmann durch das Lesen der folgenden Beschreibung und den angefügten Ansprüchen deutlich werden, sowie durch Bezugnahme auf die folgenden Zeichnungen, bei denen:

1 ein Blockdiagramm eines Beispiels einer Vorrichtung nach einer Ausführung der Erfindung ist;

2 eine Blockdiagramm eines Beispiels eines Systems nach einer Ausführung der Erfindung ist; und

3 ein Flußdiagramm eines Beispiels eines Verfahrens zur Leistungssteuerung nach einer Ausführung der Erfindung ist.

DETAILLIERTE BESCHREIBUNG

In der folgenden Beschreibung werden zum Zweck der Erläuterung viele spezifische Details angegeben, um ein gründliches Verständnis der Ausführungen der vorliegenden Erfindung zu liefern. Es wird jedoch für den Fachmann offensichtlich sein, daß die Ausführungen der vorliegenden Erfindung ohne diese spezifischen Details angewendet werden können. An anderer Stelle wurden spezifische Vorrichtungsstrukturen und Verfahren nicht beschrieben, um die Ausführungen der vorliegenden Erfindung nicht zu verdunkeln. Die folgende Beschreibung und die Zeichnungen dienen zur Erläuterung der Ausführungen der Erfindung und sollen nicht als einschränkend für die Ausführungen der Erfindung aufgefaßt werden.

Die 1 zeigt eine Vorrichtung mit einem Hauptspeicher 18, einem oder mehreren externen Controllern 13, einem Prozessor 12 mit einem Cache 20, und einem Chipsatz 11 mit einem oder mehreren internen Controller 15. Im allgemeinen verwaltet der Chipsatz 11 Datentransfers zwischen den verschiedenen Komponenten der Vorrichtung. Der Prozessor 12 kann in einen oder mehrere aktive und/oder Leerlaufzustände eintreten, basierend auf Belange der Rechenleistung- und/oder der Leistungssteuerung. In dem dargestellten Beispiel befindet sich der Prozessor 12 in einem nicht-belauschbaren („non-snöopable") Leeraufzustand, und der Chipsatz 11 unterstützt Datentransfers zwischen den Controller 13, 15 und dem Hauptspeicher 18, während der Prozessor 12 in dem nicht-belauschbaren Leerlaufzustand ist. Der nicht-belauschbare Leerlaufzustand kann es erlauben, daß der Prozessor 12 eine verringerte Verlustleistung und einen verringerten Leistungsverbrauch erreicht, wobei der Ausdruck „nicht-belauschbar" hier verwendet wird, um einen Zustand zu bezeichnen, bei dem eine Komponente mit einem Cache in diesem Zustand keine Cache-Kohärenz unterstützt. Cache-Kohärenz ist im wesentlichen ein Protokoll zur Steuerung der Caches eines Systems, damit keine Daten verloren gehen oder überschrieben werden, bevor die Daten von einem Cache zu dem Zielspeicher übertragen werden. Bei einem belauschungsbasierten Cache-Kohärenzsystem können alle Caches auf dem Bus ein Verfahren aufweisen, um den Bus zu überwachen (oder zu belauschen), um zu ermitteln, ob sie eine Kopie des Datenblocks haben, der auf dem Bus angefordert wird. Unter normalen Umständen würde der Chipsatz 11 alle Datentransfers an den und von dem Hauptspeicher 18 für den Prozessor 12 überwachen. Wenn sich der dargestellte Prozessor 12 jedoch in dem nicht-belauschbaren Leerlaufzustand befindet, findet eine solche Überwachung nicht statt. Indem er fortfährt, Datentransfers zwischen den Controller 13, 15 und dem Hauptspeicher 18 zu bearbeiten, während der Prozessor 12 in dem nicht-belauschbaren Leerlaufzustand ist, erlaubt der Chipsatz 11 größere Leistungseinsparungen, als sie mit herkömmlichen Ansätzen erreichbar wären.

Wendet man sich nun der 2 zu, so werden ein System 10 mit einem Prozessor 12, einen Hauptspeicher 18 und einen Chipsatz 11' gezeigt, der einen Grafik-Speicher-Controllerhub ((G)MCH) 15a, einen Eingang/Ausgang-Controllerhub (ICH) 15b und einen Grafikcontroller 15c umfaßt. Das System 10 kann Teil eines Rechnersystems sein, wie etwa eines Servers, eines Desktop-Personalcomputers (PC), eines Notebook-PCs, eines Persönlichen Digitalen Assistenten (PDA), eines drahtlosen „Smartphones" und so weiter. Der Prozessor 12 kann einem Pentium® M Prozessor ähneln, der von Intel Corporation in Santa Clara, Kalifornien erhältlich ist, und wird so gezeigt, daß er einen internen Cache 20, wie etwa einen Level-Eins(L1)-, Level-Zwei(L2)-, Trace-, Daten- und/oder Befehlscache aufweist. In einem Beispiel umfaßt der Cache 20 statisches Hochgeschwindigkeits-RAM (SRAM), wobei der Hauptspeicher 18 langsameres dynamisches RAM (DRAN) umfaßt. Die DRAM-Module des Systemspeichers 18 können auch in einem SIMM-Speicherbaustein (SIMM), einem DIMM-Speicherbaustein (DIMM), einem DIMM mit kleinem Gehäuse (SODIMM) und so weiter eingeschlossen sein.

Der dargestellte Prozessor 12 kann Programmcode/-befehle ausführen und kann auch Befehlsabrufeinheiten, Befehlsdecoder, Ausführungseinheiten und so weiter umfassen. Der Prozessor 12 kann auch mit einem Spannungsregler 34 verbunden sein, der eine Kernspannung 36 für den Prozessor 12 aufbaut. Wie detaillierter beschrieben wird, kann der Spannungsregler 34 die Kernspannung 36 des Prozessors 12, in Reaktion auf ein Leistungszustands-Steuersignal 38 von dem ICH 15b auf einen Pegel unter einer Datenerhalt-Schwelle des Caches 20 verringern.

Der dargestellte Prozessor 12 kann mit dem MCH 15a über eine Schnittstelle kommunizieren, wie etwa einen Frontside-Bus (FSB) 22, wobei der MCH 15a manchmal als eine Northbridge bezeichnet wird. Der MCH 15a kann mit dem Hauptspeicher 18 über einen Speicherbus 24 und mit dem Grafikcontroller 15c über einen Grafikbus 28 kommunizieren, wie etwa einen PCI-Express-Grafics(PEG, z. B. Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group)-Bus oder einen Accelerated-Graphics-Port(z. B. AGP V3.0 Interface Specification, September 2002, Intel® Corporation)-Bus. Der MCH 15a kann auch mit dem ICH 15b, der als eine Southbridge bezeichnet werden kann, über einen Hub-Bus 30 kommunizieren. In einer Ausführung wird der Hub-Bus 30 durch einen DMI(Direct Media Interface)-Bus gebildet. Das dargestellte System 10 weist auch einen oder mehrere Peripheriecontroller 13' auf, wie etwa eine Wi-Fi(z. B. IEEE 802.11a, b, g)-Netzwerkschnittstelle, einen Ethernet-Controller (z. B. IEEE 802.3), einen PC-Karten-Controller (z. B. CardBus-PCMCIA-Standard) und so weiter. Das System 10 kann demnach chipsatz-interne Controller, wie etwa den MCH 15a, den Grafikcontroller 15b und den ICH, und externe Controller, wie etwa den Peripheriecontroller 13', umfassen. Der ICH 15c kann auch interne Controller aufweisen, wie etwa USB (Universal Serial Bus, z. B. USB Specification 2.0, USB Implemented Forum), Serielles ATA (SATA, z. B. SATA 1.0a Specification, 4. Februar 2004, SATA International Organization/SATA-IO), High Definition Audio und andere Controller.

Wie schon angemerkt wurde, kann der dargestellte ICH 15b den Prozessor 12 in einen oder mehrere Zustände mit niedriger Leistung versetzen, um den Leistungsverbrauch zu verringern, indem er mehrere Leistungszustands-Steuersignale 38 an den Spannungsregler 34 sendet. Alternativ kann der Prozessor 12 sich in verschiedene Zustände niedriger Leistung versetzen und den Chipsatz 11' von seinem niedrigen Leistungs-Zustandsstatus informieren. Die Zustände niedriger Leistung können in Übereinstimmung mit der „Advanced Configuration and Power Interface"-Spezifikation (ACPI Specification, Rev. 3, 2. September 2004) hergestellt werden, wobei die Leistungszustände des Prozessors (Cx-Zustände) Leistungsverbrauchs- und Thermische-Steuerungsszustände des Prozessors innerhalb eines globalen Arbeitszustandes bilden. Obwohl bestimmte Ausführungen mit Bezug auf ACPI-Cx-Zustände, die als Niederleistungszustände verwendet werden, beschrieben werden können, sind die Ausführungen der Erfindung nicht in dieser Hinsicht beschränkt.

Tatsächlich können die hier beschriebenen Prinzipien in jeder cache-kohärenten Umgebung nützlich sein, in der Leistungsverbrauch ein Thema von Bedeutung ist. Dessen ungeachtet gibt es eine Anzahl von Ausführungen, für die ACPI-Cx-Zustände gut geeignet sind.

Im allgemeinen können, wenn der Prozessor 12 in tiefere und tiefere Niederleistungszustände eintritt, zusätzliche Leistungseinsparmaßnamen getroffen werden, um die Verlustleistung und/oder den Leistungsverbrauch zu verringern, wobei der Eintritt in und der Austritt aus den Zuständen langer und langer dauern kann. Insbesondere können Niederleistungszustände, wie etwa die Cx-Zustände, spezifische Eintritts- und Austrittssemantiken und zugehörige Latenzen besitzen. Während sich der Prozessor 12 beispielsweise in dem C0-Zustand befindet, führt er Befehle aus, und während sich der Prozessor 12 in dem C1-Zustand befindet, ist er untätig und weist üblicherweise die niedrigsten Eintritts-/Austrittslatenzen auf. Die Hardwarelatenz in dem C1-Zustand ist im allgemeinen niedrig genug, daß die Betriebssystem(OS)-Software den Latenzaspekt des Zustands unberücksichtigt läßt, wenn sie entscheidet, ob sie ihn verwendet. Abgesehen davon, daß er den Prozessor 12 in einen nicht-ausführenden Leistungszustand versetzt, ist es möglich, daß der C1-Zustand keine anderen für die Software sichtbaren Effekte hat. Hardwareaspekte des C1-Zustands können die Torsteuerung eines oder mehrerer nicht genutzter Taktsignale umfassen, um Leistung zu sparen. Ein anderer Prozessor-Leistungszustand ist der C2-Zustand, der verbesserte Leistungsersparnisse gegenüber dem C1-Zustand bieten kann. Die Hardwarelatenz des C2-Zustands im ungünstigsten Fall kann über die ACPI-Systemfirmware bereitgestellt werden, und die Betriebssoftware kann diese Information verwenden, um zu bestimmen, wann der C1-Zustand anstatt des C2-Zustands verwendet werden soll. Abgesehen vom Versetzen des Prozessors 12 in einen nicht-ausführenden Leistungszustand ist es möglich, daß dieser Zustand keine anderen für die Software sichtbaren Effekte hat. Hardwareaspekte des C2-Zustands können die Torsteuerung von zusätzlichen Taktsignalen umfassen.

Der Prozessor 12 kann auch in den C3-Zustand versetzt werden, der verbesserte Leistungseinsparungen gegenüber dem C1- und dem C2-Zustand bietet. Die Hardwarelatenz im ungünstigsten Fall für diesen Zustand kann auch über die ACPI-Systemfirmware bereitgestellt werden, wobei die OS-Software diese Information verwenden kann, um zu bestimmen, warm der C2-Zustand anstatt des C3-Zustands verwendet werden soll. Bestimmte Taktgeber können, während sie sich im C3-Zustand befinden, abgeschaltet werden, und die Kernspannung 36 kann auf einen Pegel gesenkt werden, der ausreichend niedrig ist, um mehr Leistung zu sparen, aber hoch genug ist, daß die Caches 20 des Prozessors ihren Zustand beibehalten. In diesem Zustand können die Caches 20 alle Snoops ignorieren. Die Caches 20 können auch aus dem Hauptspeicher geflusht werden, gemäß der Cache-Kohärenz-Verfahrensweise, die mit dem C3-Zustand verknüpft ist.

Andere, tiefere Leistungszustände können einen C4-Zustand umfassen, bei dem die Kernspannung 36 des Prozessors 12 um etwa 100–200 mV unter den niedrigsten Arbeitspunkt gesenkt werden kann. Zusätzlich kann ein noch tieferer C5-Zustand verwendet werden, um den Prozessor 12 anzuweisen, einen Arbeitskontext für sich zu speichern. Sobald der Arbeitskontext für den Prozessor 12 gespeichert wurde, kann die Kernspannung auf einen Pegel unterhalb eines Kontext-Sicherungspunktes für den Prozessor 12 verringert werden. Der Kontext-Sicherungspunkt kann beispielsweise durch einen Arbeitspegel gebildet werden, bei dem der Arbeitskontext für den Prozessor 12 möglicherweise teilweise oder völlig verloren geht. In sowohl dem C3-Zustand als auch tieferen Zuständen kann der Prozessor 12 als in einem nicht-belauschbaren Zustand betrachtet werden, weil Snoops in dem Cache 20 nicht gestattet sind. Wie schon bemerkt, ist Cache-Belauschen ein Vorgang, bei dem Zugriffe (d. h. Lesen/Schreiben) auf den Hauptspeicher 18 durch Controller, wie etwa den MCH 15a, den Grafikcontroller 15c, den ICH 15b und den Peripheriecontroller 13', verwendet werden, um zu bestimmen, ob Daten in dem Cache 20 gültig sind. Bei herkömmlichen Ansätzen erfordern es diese Zugriffe, die jeweils durch die Datenwege 40 (40a40d) dargestellt sind, daß der Prozessor 12 in einen belauschbaren Zustand (z. B. C2 oder flacher) versetzt wird.

In dem dargestellten Beispiel können die Daten jedoch über die Wege 40 bewegt werden, während der Prozessor sich in einem nicht-belauschbaren Zustand befindet, wie etwa den Prozessor-Leistungszuständen C3 oder tiefer. Insbesondere umfaßt der dargestellte ICH 15b Leistungssteuerungslogik 42, um den Prozessor 12 in den nicht-belauschbaren Leerlaufzustand zu versetzen, und der MCH 15a umfaßt Nicht-Belauschmodus-Logik 44, um Datentransfers zwischen dem Hauptspeicher 18 und den Systemcontrollern zu bearbeiten, während der Prozessor 12 sich in dem nicht-belauschbaren Leerlaufzustand befindet. Obwohl die Leistungssteuerungslogik 42 und die Nicht-Belauschmodus-Logik 44 so dargestellt sind, daß sie auf dem ICH 15b bzw. dem MCH 15a liegen, können die Leistungssteuerungslogik 42 und die Nicht-Belauschmodus-Logik 44 am selben Ort sein oder anderweitig in dem System 10 verteilt sein, ohne vom Geist und Schutzumfang der hier beschriebenen Ausführungen abzuweichen. Beispielsweise kann die Leistungssteuerungslogik 42 innerhalb des Prozessors 12 angeordnet sein, so daß der Prozessor seine eigenen Leistungszustandsübergänge steuern kann.

Der gegenüber dem Chipsatz externe Peripheriecontroller 13' kann einen Wi-Fi-Controller umfassen, der eine Bus-Master-Anforderung sendet, um Daten auf einen cachebaren Abschnitt des Hauptspeichers 18 zu schreiben (oder von ihm zu lesen), während sich der Prozessor 12 in dem extrem tiefen C5-Leistungszustand befindet. In einem solchen Fall kann die Nicht-Belauschmodus-Logik 44 die Anforderungen bearbeiten, die mit dem Datenweg 40d verknüpft sind, ohne daß es nötig ist, den Prozessor 12 aus dem C5-Zustand herauszuführen. Ähnlich kann der gegenüber dem Chipsatz interne Grafikcontroller 26 eine Bus-Master-Anforderung senden, um Daten über den Datenweg 40b auf einen cachebaren Abschnitt des Hauptspeichers 18 zu schreiben (oder von ihm zu lesen). Wiederum kann der Datentransfer bearbeitet werden, ohne den Prozessor 12 aus dem extrem tiefen Leistungszustand herauszuführen. Zusätzlich kann der MCH 15a Daten über den Datenweg 40a übertragen und der ICH 15b kann Daten über den Datenweg 40c übertragen, ohne den Leerlaufzustand des Prozessors 12 zu stören. Als Ergebnis der Fähigkeit des Prozessors 12, in einem tieferen Leerlaufzuständen für längere Zeitspannen zu verweilen, können die Verlustleistung und der allgemeine Leistungsverbrauch wesentlich verringert werden.

Bevor sie den Prozessor 12 in den nicht-belauschbaren Leerlaufzustand versetzt, kann die Leistungssteuerungslogik 42 ermitteln, daß der Prozessor 12 den Cache 20 in den Hauptspeicher 18 geflusht hat, indem sie eine spezifische Anforderung detektiert. Beispielsweise kann der Prozessor 12 eine Eingang-/Ausgang(I/O)-Anforderung senden, um aus einem bestimmten Register (z. B. einem LVL5-Register, der nicht gezeigt ist) innerhalb des ICH 15b zu lesen. Beim Empfang einer solchen Lese-Anforderung kann die Leistungssteuerungslogik 42 einen Übergang des Prozessors 12 in den nicht-belauschbaren Leerlaufzustand auslösen.

Zusätzlich kann die Leistungssteuerungslogik 42 ein Reaktivierungsereignis, wie etwa eine unmaskierte System-Unterbrechungsanforderung, detektieren und den Prozessor 12 in Reaktion auf das Detektieren des Reaktivierungsereignisses aus dem nicht-belauschbaren Leerlaufzustand entfernen. Unmaskierte System-Unterbrechungsanforderung können mit Bezug auf den Chipsatz 11' intern oder extern sein, abhängig von den Umständen. Sobald der Prozessor 12 den nicht-belauschbaren Leerlaufzustand verlassen hat, kann der Chipsatz 11' den Nicht-Belauschmodus verlassen und Cache-Kohärenz-Verarbeitung mit Bezug auf den Cache 20 wieder aufnehmen.

Betrachtet man nun die 3, so wird bei 46 ein Verfahren zur Leistungssteuerung gezeigt. Das Verfahren 46 kann als eine Nicht-Belauschmodus-Logik und/oder Leistungssteuerungslogik in Hardware mit fester Funktionalität, Mikrocode, Software oder irgendeiner Kombination daraus implementiert werden. Beispielsweise kann eine bestimmte Hardwarekomponente die Verwendung von komplementären Metall-Oxid-Halbleitern (CMOS) vorsehen, die in der Halbleiterindustrie bekannt sind. Insbesondere sieht das Bearbeiten des Blocks 48 ein Ermitteln vor, daß ein Prozessor einen internen Cache des Prozessors an einen cachebaren Hauptspeicher geflusht hat. Wie schon angemerkt wurde, liegt ein Ansatz zum Durchführen der Ermittlung bei Block 48 darin, eine spezifische I/O-Leseanforderung von dem Prozessor zu detektieren.

Der Block 50 sieht das Versetzen des Prozessors in einen nicht-belauschbaren Leerlaufzustand vor, wie etwa einen C3-Zustand oder tieferen Leistungszustand. Ein oder mehrere Datentransfers werden zwischen dem cachebaren Hauptspeicher und einem Controller bei Block 52 abgewickelt, während sich der Prozessor in dem nicht-belauschbaren Leerlaufzustand befindet. In einer Ausführung wird das Bearbeiten bei Block 52 durchgeführt, indem eine Bus-Master-Anforderung von dem fraglichen Controller detektiert wird und Daten zwischen den Controller und dem Hauptspeicher bewegt werden, basierend auf der Bus-Master-Anforderung. Der Block 54 sorgt für das Detektieren eines Reaktivierungsereignisses, wie etwa einer unmaskierten System-Unterbrechungsanforderung, und der Block 56 sorgt dafür, daß der Prozessor in Antwort auf das Detektieren des Reaktivierungsereignisses aus dem nicht-belauschbaren Leerlaufzustand herausgeführt wird. Eine oder mehrere Datentransferanforderungen werden in Übereinstimmung mit einem gewöhnlichen Cache-Kohärenzprotokoll bei Block 58 verarbeitet. Somit können Snoops auf den internen Prozessorcache zugelassen werden.

Viele der hier beschriebenen Prinzipien sorgen demnach für verbesserte Leistungseinsparungen, gesenkte Temperaturen und eine längere Batterielebensdauer, indem sie es einem System-Mikroprozessor erlauben, während längerer Zeitspannen in einem extrem niedrigen Leistungszustand zu bleiben. Solche Vorteile stellen eine wesentliche Abweichung von herkömmlichen Ansätzen dar und können besonders nützlich in Umgebungen von mobilen Plattformen sein.

Der Fachmann wird aus der vorangegangenen Erklärung erkennen, daß die allgemeinen Techniken der Ausführungen der vorliegenden Erfindung auf einer Vielzahl von Weisen implementiert werden können. Während daher die Ausführungen dieser Erfindung im Zusammenhang mit speziellen Beispielen von ihr beschrieben wurden, sollte der wahre Schutzumfang der Ausführungen der Erfindung nicht auf diese Art beschränkt sein, da andere Modifikationen dem Fachmann beim Studium der Zeichnungen, der Patentschrift und der folgenden Ansprüche deutlich sein werden.

Zusammenfassung

Systeme und Verfahren zur Leistungssteuerung sehen das Versetzen eines Prozessors in einen nicht-belauschbaren Zustand vor, wobei der Prozessor mit einem Hauptspeicher verknüpft ist. Ein oder mehrere Datentransfers zwischen einem Controller und dem Hauptspeicher können abgewickelt werden, während der Prozessor sich in dem nicht-belauschbaren Zustand befindet. In einer Ausführung wird ermittelt, daß der Prozessor einen internen Cache des Prozessors in den Hauptspeicher geflusht hat, bevor der Prozessor in den nicht-belauschbaren Zustand versetzt wird.


Anspruch[de]
Verfahren, welches folgendes umfaßt:

Versetzen eines Prozessors in einen nicht-belauschbaren Leerlaufzustand, wobei der Prozessor mit einem Hauptspeicher verknüpft ist; und

Abwickeln eines Datentransfers zwischen dem Hauptspeicher und einem Controller, während sich der Prozessor in dem nicht-belauschbaren Leerlaufzustand befindet.
Verfahren nach Anspruch 1, welches weiter das Ermitteln, daß der Prozessor einen internen Cache des Prozessors in den Hauptspeicher geflusht hat, bevor der Prozessor in den nicht-belauschbaren Leerlaufzustand versetzt wird, umfaßt. Verfahren nach Anspruch 2, wobei das Ermitteln das Detektieren einer Eingang/Ausgang-Leseanforderung von dem Prozessor umfaßt. Verfahren nach Anspruch 1, welches weiter umfaßt:

Detektieren eines Reaktivierungsereignisses; und

Versetzen des Prozessors aus dem nicht-belauschbaren Leerlaufzustand in Reaktion auf das Detektieren des Reaktivierungsereignisses.
Verfahren nach Anspruch 4, wobei das Detektieren das Detektieren einer unmaskierten System-Unterbrechungsanforderung umfaßt. Verfahren nach Anspruch 1, wobei das Bearbeiten folgendes umfaßt:

Detektieren einer Bus-Master-Anforderung von einem Speichersteuerungshub; und

Bewegen von Daten zwischen dem Hauptspeicher und dem Speichersteuerungshub, basierend auf der Bus-Master-Anforderung.
Verfahren nach Anspruch 1, wobei das Bearbeiten folgendes umfaßt:

Detektieren einer Bus-Master-Anforderung von einem Grafikcontroller; und

Bewegen von Daten zwischen dem Hauptspeicher und dem Grafikcontroller, basierend auf der Bus-Master-Anforderung.
Verfahren nach Anspruch 1, wobei das Bearbeiten folgendes umfaßt:

Detektieren einer Bus-Master-Anforderung von einem Peripheriecontroller; und

Bewegen von Daten zwischen dem Hauptspeicher und dem Peripheriecontroller, basierend auf der Bus-Master-Anforderung.
Verfahren nach Anspruch 1, wobei das Bearbeiten folgendes umfaßt:

Detektieren einer Bus-Master-Anforderung von einem Eingang/Ausgang-Controllerhub; und

Bewegen von Daten zwischen dem Hauptspeicher und dem Eingang/Ausgang-Controllerhub, basierend auf der Bus-Master-Anforderung.
Vorrichtung, welche folgendes umfaßt:

Leistungssteuerungslogik, um einen Prozessor in einen nicht-belauschbaren Leerlaufzustand zu versetzen, wobei der Prozessor mit einem Hauptspeicher verknüpft sein soll; und

Nicht-Belauschmodus-Logik, um einen Datentransfer zwischen dem Hauptspeicher und einem Controller abzuwickeln, während sich der Prozessor in dem nicht-belauschbaren Leerlaufzustand befindet.
Vorrichtung nach Anspruch 10, bei der die Leistungssteuerungslogik ermitteln soll, daß der Prozessor einen internen Cache des Prozessors in den Hauptspeicher geflusht hat, bevor der Prozessor in den nicht-belauschbaren Leerlaufzustand versetzt wird. Vorrichtung nach Anspruch 11, bei der die Leistungssteuerungslogik ermitteln soll, daß der Prozessor den internen Cache des Prozessors geflusht hat, indem eine Eingang/Ausgang-Leseanforderung von dem Prozessor detektiert wird. Vorrichtung nach Anspruch 10, bei der die Leistungssteuerungslogik ein Reaktivierungsereignis detektieren soll und den Prozessor in Antwort auf das Detektieren des Reaktivierungsereignisses aus dem nicht-belauschbaren Leerlaufzustand entfernen soll. Vorrichtung nach Anspruch 13, bei der das Reaktivierungsereignis eine unmakierte System-Unterbrechungsanforderung umfassen soll. Vorrichtung nach Anspruch 10, bei dem die Nicht-Belauschmodus-Logik den Datentransfer abwickelt, indem sie eine Bus-Master-Anforderung von dem Controller empfangt und Daten zwischen dem Controller und dem Hauptspeicher bewegt, basierend auf der Bus-Master-Anforderung, wobei der Controller aus einer Gruppe ausgewählt ist, welche einen Speicher-Controllerhub (MCH), einen Grafikcontroller, einen Peripheriecontroller und einen Eingang/Ausgang-Controllerhub (ICH) umfaßt. Vorrichtung nach Anspruch 10, wobei die Leistungssteuerungslogik innerhalb des Prozessors angeordnet ist. Vorrichtung nach Anspruch 10, wobei die Leistungssteuerungslogik innerhalb eines Eingang/Ausgang-Controllerhubs (ICH) angeordnet ist. Vorrichtung nach Anspruch 10, wobei die Leistungssteuerungslogik innerhalb eines Speicher-Controllerhubs (MCH) angeordnet ist. System, welches folgendes umfaßt:

einen Prozessor;

Small-Outline-Dual-Inline-Speichermodul mit beidseitig beschichteter Platine mit kleinen Abmessungen (SODIMM);

einen Eingang/Ausgang-Controllerhub (ICH) mit einer Leistungssteuerungslogik, um den Prozessor in einen nicht-belauschbaren Leerlaufzustand zu versetzen; und

einen Speicher-Controllerhub (MCH) mit einer Nicht-Belauschmodus-Logik, um einen Datentransfer zwischen dem SODIMM und einem Controller abzuwickeln, während sich der Prozessor in dem nicht-belauschbaren Leerlaufzustand befindet.
System nach Anspruch 19, bei dem der Prozessor einen internen Cache aufweist, wobei die Leistungssteuerungslogik ermittelt, ob der Prozessor den internen Cache in den SODIMM geflusht hat, bevor der Prozessor in den nicht-belauschbaren Leerlaufzustand versetzt wird. System nach Anspruch 20, bei dem die Leistungssteuerungslogik ermittelt, ob der Prozessor den internen Cache geflusht hat, indem sie eine Eingang/Ausgang-Leseanforderung von dem Prozessor detektiert. System nach Anspruch 19, bei dem die Leistungssteuerungslogik ein Reaktivierungsereignis detektiert und den Prozessor in Antwort auf das Detektieren des Reaktivierungsereignisses aus dem nicht-belauschbaren Leerlaufzustand entfernt. System nach Anspruch 22, bei dem das Reaktivierungsereignis eine unmaskierte System-Unterbrechungsanforderung umfaßt. System nach Anspruch 19, bei dem die Nicht-Belauschmodus-Logik den Datentransfer abwickelt, indem sie eine Bus-Master-Anforderung von dem Controller detektiert und Daten zwischen dem Controller und dem Hauptspeicher bewegt, basierend auf der Bus-Master-Anforderung, wobei der Controller aus einer Gruppe ausgewählt ist, welche den MCH, einen Grafikcontroller, einen Peripheriecontroller und den ICH umfaßt. Verfahren, welches folgendes umfaßt:

Ermitteln, daß ein Prozessor einen internen Cache des Prozessors in einen Hauptspeicher geflusht hat;

Versetzen des Prozessors in einen nicht-belauschbaren Leerlaufzustand in Reaktion auf das Ermitteln, daß der Prozessor den internen Cache geflusht hat;

Detektieren einer Bus-Master-Anforderung von einem Controller, welcher aus einer Gruppe ausgewählt ist, welche einen Speicher-Controllerhub, einen Grafikcontroller, einen Peripheriecontroller und einen Eingang/Ausgang-Controllerhub umfaßt;

Bewegen von Daten zwischen dem Hauptspeicher und dem Controller, während sich der Prozessor in dem nicht-belauschbaren Leerlaufzustand befindet;

Detektieren eines Reaktivierungsereignisses; und

Entfernen des Prozessors aus dem nicht-belauschbaren Leerlaufzustand in Reaktion auf das Detektieren des Reaktivierungsereignisses.
Verfahren nach Anspruch 25, bei dem das Ermitteln das Detektieren eines Eingang/Ausgang-Leseanforderung von dem Prozessor umfaßt. Verfahren nach Anspruch 25, bei dem das Detektieren das Detektieren einer unmaskierten System-Unterbrechungsanforderung umfaßt.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com