| 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 (40a–40d) 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.
|
|
Patent Zeichnungen (PDF)
|