DE112006003575B4 - Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand - Google Patents

Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand Download PDF

Info

Publication number
DE112006003575B4
DE112006003575B4 DE112006003575.4T DE112006003575T DE112006003575B4 DE 112006003575 B4 DE112006003575 B4 DE 112006003575B4 DE 112006003575 T DE112006003575 T DE 112006003575T DE 112006003575 B4 DE112006003575 B4 DE 112006003575B4
Authority
DE
Germany
Prior art keywords
processor
core
state
power management
voltage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE112006003575.4T
Other languages
English (en)
Other versions
DE112006003575T5 (de
DE112006003575B8 (de
Inventor
Robert Milstrey
Alon Naveh
Varghese George
Sanjeev Jahagirdar
Stephen A. Fischer
John B. Conrad
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112006003575T5 publication Critical patent/DE112006003575T5/de
Publication of DE112006003575B4 publication Critical patent/DE112006003575B4/de
Application granted granted Critical
Publication of DE112006003575B8 publication Critical patent/DE112006003575B8/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/281Single cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/10Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B70/00Technologies for an efficient end-user side electric power management and consumption
    • Y02B70/30Systems integrating technologies related to power network operation and communication or information technologies for improving the carbon footprint of the management of residential or tertiary loads, i.e. smart grids as climate change mitigation technology in the buildings sector, including also the last stages of power distribution and the control, monitoring or operating management systems at local level
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P80/00Climate change mitigation technologies for sector-wide applications
    • Y02P80/10Efficient use of energy, e.g. using compressed air or pressurized fluid as energy carrier

Abstract

Verfahren, das folgendes umfasst: Einleiten (105) eines Übergangs in einen Nullspannungs-Energieverwaltungszustand für einen ersten Kern und einen zweiten Kern eines Prozessors, wobei eine an den Prozessor angelegte Betriebsspannung im Nullspannungs-Energieverwaltungszustand auf ungefähr Null Volt zu reduzieren ist; Während des Übergangs, unabhängig Speichern (110) von Zustandsvariablen des ersten Kerns und des zweiten Kerns des Prozessors in einem dedizierten Cachespeicher, der mit einer Spannung versorgt bleibt, die von einem E/A-Kontroller zugeführt wird, der mit dem Prozessor gekoppelt ist, während die an den Prozessor angelegte Betriebsspannung auf ungefähr null reduziert wird, wobei der erste Kern in einen ersten Schlafzustand eintritt, nachdem die Zustandsvariablen für den ersten Kern gespeichert sind und der zweite Kern in den ersten Schlafzustand eintritt, nachdem die Zustandsvariablen für den zweiten Kern gespeichert sind; Nach dem Speichern (110) der Zustandsvariablen im dedizierten Cachespeicher, Reduzieren (115) der Betriebsspannung auf ungefähr Null Volt, wobei der Prozessor in den Nullspannungs-Energieverwaltungszustand übergeht; und Austreten (120) aus dem Nullspannungs-Energieverwaltungszustand bei einer an den Prozessor angelegen Betriebsspannung, die höher als die ungefähr Null Volt ist.

Description

  • Die Ausführungsformen der Erfindung betreffen das Gebiet der elektronischen Systeme und der Energieverwaltung. Die Ausführungsformen der Erfindung betreffen insbesondere ein Verfahren und eine Vorrichtung für einen Nullspannungs-Prozessorschlafzustand.
  • Bei einem wachsenden Trend hin zu fortgeschrittenen Mikroprozessoren, z. B. Zentraleinheiten (CPUs), mit mehr Transistoren und höheren Frequenzen, sehen sich Computerkonstrukteure und -hersteller oft mit entsprechenden Steigerungen des Strom- und Energieverbrauchs konfrontiert. Insbesondere bei mobilen Geräten kann ein gesteigerter Energieverbrauch zu Überhitzung führen, was die Leistung in negativer Weise beeinträchtigen und die Lebensdauer der Batterie erheblich verkürzen kann. Da Batterien typischerweise eine begrenzte Kapazität aufweisen, könnte die Kapazität schneller verbraucht werden als erwünscht, wenn der Prozessor eines mobilen Geräts mehr als nötig laufengelassen wird.
  • Daher bleibt der Energieverbrauch für mobile Geräte, einschließlich Laptop-Computern, drahtlosen Handgeräten, persönlichen digitalen Assistenten, usw. ein beträchtliches Problem. Bei heutigen mobilen Geräten können zum Beispiel bestimmte Bauteile basierend auf verringerter Aktivität oder Nachfrage in Schlafzustände mit geringerer Energie versetzt werden, um dem Problem des Leistungsverlusts zu begegnen.
  • Bei einem Ansatz kann ein Betriebssystem eine eingebaute Energieverwaltungs-Softwareschnittstelle, wie Advanced Configuration and Power Interface (ACPI) (z. B. Advanced Configuration and Power Interface, Ver. X285, Juni 2004) unterstützen. ACPI beschreibt eine Energieverwaltungspolitik, die verschiedene „C-Zustände” umfaßt, die durch Prozessoren und/oder Chipsätze unterstützt werden können. Für diese Politik ist C0 als der Run-Time-Zustand definiert, in dem der Prozessor bei hoher Spannung und hoher Frequenz arbeitet. C1 ist als der Auto-HALT-Zustand definiert, in dem der Kerntakt intern angehalten ist. C2 ist als der Stop-Clock-Zustand definiert, in dem der Kerntakt extern angehalten ist. C3 ist als ein Deep-Sleep-Zustand definiert, in dem alle Prozessortakte ausgeschaltet sind und C4 ist als ein Deeper-Sleep-Zustand definiert, in dem alle Prozessortakte angehalten sind und die Prozessorspannung auf einen niedrigeren Datenerhaltepunkt verringert ist. Es wurden auch verschiedene zusätzliche tiefere Schlafenergiezustände C5...Cn vorgeschlagen. Diese zusätzlichen Energiezustände sind durch eine gleichwertige Semantik der Energiezustände C1 bis C4 aber mit unterschiedlichen Eingangs-/Ausgangslatenzen und Energieeinsparungen gekennzeichnet.
  • Beim Betrieb kann ACPI einen Zeitschlitz ermitteln, in dem keine neuen oder ausstehenden Unterbrechungen des mobilen Prozessors vorhanden sind. Die ACPI-Politik verwendet dann einen Eingangs/Ausgangscontroller (E/A) oder andere Chipsatzmerkmale, um den mobilen Prozessor in die tieferen Schlafzustände zu versetzen.
  • Nachdem der Prozessor in den tieferen Schlafzustand versetzt wurde, kann ein Unterbrechungsereignis oder eine Unterbrechung vom Betriebssystem oder einer anderen Quelle an den Chipsatz gesendet werden und der Chipsatz wird dann dem Prozessor den Austritt aus dem tieferen Schlafzustand ermöglichen. Die Fähigkeit, zwischen verschiedenen Energieverwaltungszuständen, einschließlich tieferen Schlafzuständen, überzugehen, kann die Verringerung des Leistungsverlusts und die Steigerung der Batterielebensdauer ermöglichen.
  • Gegenwärtig wird der Eintritt in tiefere Schlafzustände durch Verweisen auf eine externe Spannungsreferenz in einer Prozessor-Spannungsreglerschaltung und das Regeln auf diese Bezugsspannung vorgenommen, wenn ein „Deeper Sleep” Plattformsignal, wie das DPRSLPVR-Signal oder ein anderes ähnliches Signal durch den E/A-Controller oder eine andere integrierte Schaltung aktiviert wird. Der Spannungsregler geht dann von einer ersten Spannung in eine zweite, niedrigere Spannung über, die dem tieferen Schlafzustand zugeordnet ist. Beim Austritt aus dem tieferen Schlafzustand findet ein Spannungsübergang in die andere Richtung mit einem ähnlichen angegebenen Zeitfenster statt.
  • Wie vorhergehend erwähnt, ist das Erhalten von Schlafzuständen mit geringer Energie wichtig, um in mobilen Geräten eine bessere Batterielebensdauer zu erreichen. Der Markt der mobilen Geräte ist ein heftig umkämpftes Produktsegment und einer der Schlüsselbereiche des Fortschritts in diesem Segment sind Lösungen mit geringer Energie zur Wahrung der Batterielebensdauer.
  • Unglücklicherweise verbrauchen die bestehenden tieferen Schlafzustände für Prozessoren in mobilen Geräten immer noch einen nicht zu vernachlässigenden Betrag an Energie, da immer noch das Anlegen von Spannung an den Prozessor erforderlich ist und dieser nicht vollständig ausgeschaltet werden kann.
  • US 2003/0101362 A1 offenbart ein Verfahren und eine Vorrichtung zur Ermöglichung eines Selbst-Unterbrechungsmodus für einen Prozessor, wobei ein Triggerereignis initiiert wird, um den Prozessor in einen Niedrigenergiezustand zu versetzen. Die zu einem Kern des Prozessors zugeführte Spannung eines ersten Spannungsreglers kann auf einen niedrigeren Pegel reduziert werden, bei dem der Prozessorkern nicht betriebsbereit ist und der Prozessorzustand verloren geht. Der Prozessor kann einen Speicherbereich aufweisen, in dem der Prozessorzustand beim Eintritt in den Niedrigenergiezustand gespeichert werden kann. Dieser Speicherbereich kann durch einen zweiten Spannungsregler mit Strom versorgt werden, sodass sein Inhalt nicht verloren geht, während er sich im Niedrigenergiezustand befindet.
  • US 6,711,691 B1 offenbart ein Energiemanagement für Computersysteme. Das Energiemanagement umfasst verschiedene Energiemanagementebenen, sodass der Energieverbrauch des Computersystems vom Umfang der Arbeit abhängt der den Verarbeitungsressourcen des Computersystems auferlegt wird.
  • Es ist die Aufgabe der vorliegenden Erfindung ein Verfahren zur Energieverwaltung von Kernen eines Prozessors bereitzustellen, mit dem der Stromverbrauch des Prozessors in einem Schlafzustand weiter reduziert werden kann, sowie eine entsprechende Vorrichtung.
  • Die Aufgabe wird gelöst mit einem Verfahren mit den Merkmalen gemäß Anspruch 1 sowie mit einer Vorrichtung mit den Merkmalen gemäß Anspruch 8.
  • Bevorzugte Ausführungsformen sind in den Unteransprüchen angegeben.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Ablaufdiagramm, das ein Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung zum Übergang in einen und aus einem Nullspannungs-Energieverwaltungszustand für einen Prozessor veranschaulicht.
  • 2 ist ein Blockdiagramm eines beispielhaften Systems gemäß einer Ausführungsform der vorliegenden Erfindung, das verwendet werden kann, um den Ansatz des Nullspannungs-Energieverwaltungszustands auszuführen.
  • 3 ist ein Blockdiagramm, das ein Beispiel eines dedizierten Schlafzustand-SRAM-Caches und eine SRAM-Schnittstelle gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht, das verwendet werden kann, um in einen Nullspannungs-Prozessorschlafzustand einzutreten.
  • 5 ist ein Ablaufdiagramm, das ein Verfahren gemäß einer Ausführungsform der Erfindung veranschaulicht, das verwendet werden kann, um aus einem Nullspannungs-Prozessorschlafzustand auszutreten.
  • BESCHREIBUNG
  • In der folgenden Beschreibung werden die verschiedenen Ausführungsformen der Erfindung mit Einzelheiten beschrieben. Solche Einzelheiten werden indes zur Erleichterung des Verständnisses der Erfindung und zur Beschreibung von Ausführungsbeispielen zur Verwendung der Erfindung aufgenommen. Solche Einzelheiten sollten nicht verwendet werden, um die Erfindung auf die bestimmten beschriebenen Ausführungsformen zu beschränken, da andere Änderungen und Ausführungsformen möglich sind, ohne den Umfang der Erfindung zu verlassen. Ferner wird es für den Fachmann ersichtlich sein, daß, obgleich zahlreiche Einzelheiten dargelegt werden, um ein eingehendes Verständnis der Ausführungsformen der Erfindung bereitzustellen, diese spezifischen Einzelheiten nicht erforderlich sind, um die Ausführungsformen der Erfindung herzustellen.
  • In der folgenden Beschreibung werden zu Veranschaulichungszwecken bestimmte Komponenten, Schaltungen, Zustandsdiagramme, Softwaremodule, Systeme, Zeitabläufe, usw. beschrieben. Man wird indes verstehen, daß andere Ausführungsformen auf andere Typen von zum Beispiel Komponenten, Schaltungen, Zustandsdiagrammen, Softwaremodulen, Systemen und/oder Zeitabläufen anwendbar sind.
  • Mit Bezug auf 1 leitet in einer Ausführungsform eine integrierte Schaltungsvorrichtung, wie zum Beispiel ein Prozessor, in Block 105 einen Übergang in einen Nullspannungs-Energieverwaltungszustand ein. Der Nullspannungs-Energieverwaltungszustand kann zum Beispiel ein Deeper Sleep Zustand gemäß der Advanced Configuration and Power Interface (ACPI) Specification, Revision 2.0a vom 31. März 2002 (und veröffentlicht von Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd. und Toshiba Corporation) sein. Während dieses Übergangs wird der kritische Zustand des Prozessors gespeichert (Block 110). Der kritische Zustand des Prozessors umfaßt Zustandsvariablen, die mit dem Architektur-, Mikroarchitektur-, Fehlerbeseitigungszustand verbunden sind, und/oder ähnliche Zustandsvariablen, die mit diesem Prozessor verbunden sind. Die Betriebsspannung des Prozessors wird anschließend auf ungefähr null verringert, derart, daß der Prozessor sich in einem sehr tiefen Schlafzustand befindet, der sehr geringe Energieverbrauchseigenschaften aufweist (Block 115). Hiernach bedeutet die Bezugnahme auf den Zustand oder kritischen Zustand des Prozessors oder der CPU, daß die Zustandsvariablen, die mit dem Prozessor oder der CPU verbunden sind, darin enthalten sind.
  • Anschließend tritt der Prozessor als Reaktion auf den Empfang einer Anforderung zum Austritt aus dem Nullspannungs-Energieverwaltungszustand bei Block 120 bei einer höheren Referenzbetriebsspannung aus der Nullspannungs-Energieverwaltung aus. Die kritischen Zustandsvariablen, die mit dem Prozessor verbunden sind, werden auch wiederhergestellt (Block 125). Es sei erwähnt, daß die Referenzbetriebsspannung für einige Ausführungsformen zum Beispiel eine Mindestbetriebsspannung für einen aktiven Zustand sein kann.
  • Weitere Einzelheiten davon und andere Ausführungsformen werden in der folgenden Beschreibung bereitgestellt.
  • Ausführungsformen der Erfindung können aus Hardware, Firmware und Software oder in einer Kombination davon ausgeführt werden. Ausführungsformen der Erfindung können auch als Ganzes oder teilweise als auf einem maschinenlesbaren Medium gespeicherte Befehle ausgeführt werden, die durch mindestens einen Prozessor gelesen und ausgeführt werden können, um die hierin beschriebenen Betriebsabläufe durchzuführen. Ein maschinenlesbares Medium kann irgendeinen Mechanismus zum Speichern oder Übertragen von Informationen in einer Form umfassen, die durch eine Maschine (z. B. einen Computer) gelesen werden kann. Ein maschinenlesbares Medium kann zum Beispiel einen Nurlesespeicher (ROM); einen Speicher mit wahlfreiem Zugriff (Random Access Memory – RAM), ein Magnetplatten-Speichermedium; ein optisches Speichermedium; Flash-Speichereinrichtungen; elektrische, optische, akustische oder eine andere Form von verbreiteten Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale, usw.) und andere sein.
  • 2 ist ein Blockdiagramm eines beispielhaften Systems 200, das den Ansatz des Nullspannungs-Energieverwaltungsübergangs einer oder mehrerer Ausführungsformen ausführt. Es sei erwähnt, daß 2 in 2A und 2B unterteilt ist. Das System 200 kann ein Notebook- oder Laptop-Computersystem oder irgendein unterschiedlicher Typ von mobilem elektronischem System, wie ein mobiles Gerät, ein persönlicher digitaler Assistent, ein drahtloses Telefon/Handgerät oder sogar ein nichtmobiles System, wie ein Desktop- oder Unternehmensrechensystem sein. Andere Typen von elektronischen Systemen liegen auch innerhalb des Umfangs verschiedener Ausführungsformen.
  • Das System 200 umfaßt einen Prozessor 205, einen Taktgeber 211 auf Plattformebene, einen Spannungsregler 212, der an den Prozessor 205 gekoppelt ist, einen Memory Controller Hub 215, der über einen Bus 217 an den Prozessor 205 gekoppelt ist, einen Speicher 220, der einen oder mehrere Speicher mit wahlfreiem Zugriff (Random Access Memory – RAM), Flash-Speicher und/oder einen anderen Typ von Speicher umfassen kann, einen Eingangs/Ausgangs-(E/A)Controller Hub 225, der über einen Bus 227 an den Memory Controller Hub 215 gekoppelt ist, und einen Massenspeicher 230, der über einen Bus 232 an den E/A-Controller Hub 225 gekoppelt ist. Obgleich ein System 200 in einer Ausführungsform ein mobiles Gerät mit den beschriebenen Teilsystemen sein kann, sollte man verstehen, daß das System 200 ein unterschiedlicher Typ von mobilem Gerät oder ein nichtmobiles Gerät sein kann, das mehr oder weniger als die beschriebenen Teilsysteme umfaßt.
  • In einer Ausführungsform kann der Prozessor 205 ein Mikroprozessor der Intel®-Architektur, wie zum Beispiel ein Folgeprozessor des Intel Pentium® M Prozessors sein, der einen oder mehrere Verarbeitungskerne (z. B. 320 und 322) und mindestens eine Ausführungseinheit 310 zum Verarbeiten von Befehlen umfaßt. Für solche Ausführungsformen kann der Prozessor 205 Intel SpeedStep®-Technologie oder eine andere die Energieverwaltung betreffende Technologie umfassen, die für zwei oder mehr Spannungs-/Frequenzbetriebspunkte sorgt. Eine zugeordnete Takt-/Energieverwaltungseinheit 350 kann in den Prozessor 205 aufgenommen werden, um die Übergänge zwischen zwei oder mehr der Spannungs-/Frequenzpaare zu steuern.
  • In anderen Ausführungsformen kann der Prozessor 205 ein unterschiedlicher Typ von Prozessor, wie ein digitaler Signalprozessor, ein eingebetteter Prozessor oder ein Mikroprozessor von einer unterschiedlichen Quelle sein.
  • Ferner kann der Prozessor 205 einen dedizierten Cache-Speicher 340 (z. B. einen synchronen Speicher mit wahlfreiem Zugriff-(Synchronous Random Access Memory – SRAM)) umfassen, der verwendet werden kann, um die kritischen Zustandsvariablen des Prozessors zu speichern, wenn der Prozessor in den Nullspannungs-Schlafzustand eintritt, wie beschrieben werden wird. Die Cachespeicher können in den Chip des Prozessors eingebaut oder in das gleiche Gehäuse wie der Prozessorchip gepackt werden.
  • Dort, wo Intel SpeedStep®-Technologie oder ein anderer Typ von Energieverwaltungstechnologie in dem Prozessor 205 enthalten ist, umfassen die verfügbaren Spannungs-/Frequenzpaare, die mit der Technologie verbunden sind, ein Mindestspannungs-/Frequenzpaar, die einer Betriebsspannung einer Mindestaktivitäts-Betriebsart und einer für eine vollständig funktionsfähige Betriebsart mit dem Prozessor 205 verbundenen Mindestbetriebsfrequenz entsprechen. Dies kann hierin als Mindestbetriebsspannung und Mindestbetriebsfrequenz oder Mindestaktivitäts-Betriebsart-Betriebsspannung beziehungsweise -frequenz bezeichnet werden. Auf ähnliche Weise kann eine Maximalbetriebsspannung und -frequenz definiert werden. Andere verfügbare Spannungsfrequenzpaare können als Betriebsspannungs-/Frequenzpaare oder einfach andere Spannungs-/Frequenz- oder Frequenz-/Spannungspaare bezeichnet werden.
  • Die Nullspannungs-Eintritts/Austrittslogik 354 kann auch im Prozessor 205, entweder innerhalb oder außerhalb der Energieverwaltungslogik 350, enthalten sein, um in den Nullspannungs-Schlafzustand, der hierin auch als der C6-Zustand bezeichnet wird, einzutreten und daraus auszutreten. Der Nullspannungs-Prozessor-Schlafzustand mit geringem Energieverbrauch wird hiernach mit mehr Einzelheiten beschrieben.
  • Ein Speicher 352 zur Spannungsidentifikation (VID – Voltage Identification), auf den durch die Nullspannungs-Eintritts/Austrittslogik 354 zugegriffen werden kann, kann enthalten sein, um eine Spannungsidentifikationscode-Nachschlagtabelle zu speichern. Der VID-Speicher kann ein On-Chip- oder Off-Chip-Register oder ein anderer Typ von Speicher sein und die VID-Daten können zum Beispiel über Software, Basisdaten-Austauschsystemcode 278 (Basic Input/Output System – BIOS) (der auf einem Firmware-Hub 279 oder in einem anderen Speicher gespeichert sein kann), ein Betriebssystem, andere Firmware und/oder fest eingefügten Code in den Speicher geladen werden. Alternativ kann auf eine andere Art durch die Logik 350 auf eine Software-Nachschlagtabelle, die VID und damit verbundene Daten enthält, zugegriffen werden. Die VID-Informationen können auch als Sicherungen (z. B. programmierbare ROMs (PROMs)) gespeichert werden.
  • Ein Analog-Digitalwandler (ADC) 356 kann auch als Teil der Nullspannungs-Eintritts/Austrittslogik 350 bereitgestellt werden, um einen Spannungsversorgungspegel zu überwachen und eine zugeordnete digitale Ausgabe bereitzustellen, wie unten mit mehr Einzelheiten beschrieben.
  • Der Spannungsregler 212 stellt eine Versorgungsbetriebsspannung für den Prozessor 205 bereit und kann gemäß einer Version der Intel Mobile Voltage Positioning (IMVP) Spezifikation, wie zum Beispiel der IMVP-6-Spezifikation ausgestaltet sein. Für solche Ausführungsformen ist der Spannungsregler 212 gekoppelt, um über einen Bus 235 VID-Signale vom Prozessor 205 zu empfangen, und stellt in Reaktion auf die VID-Signale über eine Signalleitung 240 eine zugeordnete Betriebsspannung für den Prozessor 205 bereit. Der Spannuungsregler 212 kann eine Nullspannungs-Schlaflogik 302 umfassen, die auf eines oder mehrere Signale reagiert, um die Spannung 240 für den Prozessor 205 auf einen Nullzustand zu verringern und dann die Spannung für den Prozessor nach dem Austritt aus dem Nullspannungs-Schlafzustand wieder zu erhöhen. Für andere Ausführungsformen kann ein unterschiedlicher Typ von Spannungsregler, einschließlich eines Spannungsreglers gemäß einer unterschiedlichen Spezifikation, verwendet werden. Ferner kann der Spannungsregler für einige Ausführungsformen mit einer anderen Komponente des Systems 200, einschließlich des Prozessors 205, integriert werden. Man sollte verstehen, daß der Spannungsregler abhängig von Konstruktionsüberlegungen in der CPU integriert sein kann oder nicht.
  • Der Memory Controller Hub 215 kann sowohl Grafik- als auch Speichersteuerungsfähigkeiten aufweisen und kann hierin alternativ als Grafik- und Memory Controller Hub (G/MCH) oder eine Northbridge bezeichnet werden. Der Grafik- und Memory Controller Hub 215 und der E/A-Controller Hub 225 (der auch als eine Southbridge bezeichnet werden kann) können gemeinsam als der Chipsatz bezeichnet werden. Für andere Ausführungsformen können Chipsatzmerkmale auf eine unterschiedliche Weise partitioniert werden und/oder unter Verwendung einer unterschiedlichen Anzahl von IC-Chips ausgeführt werden. Zum Beispiel können für einige Ausführungsformen Grafik- und Speichersteuerungsfähigkeiten unter Verwendung separater integrierter Schaltungsvorrichtungen bereitgestellt werden.
  • Der E/A-Controller-Hub 255 einer Ausführungsform umfaßt die Energieverwaltungs-Zustandssteuerlogik 242, die hierin alternativ als C-Zustandssteuerlogik bezeichnet wird. Die Energieverwaltungs-Zustandssteuerlogik 242 kann Gesichtspunkte der Steuerung der Übergänge zwischen einigen Energieverwaltungs- und/oder normalen Betriebszuständen, die mit dem Prozessor 205 verbunden sind, entweder autonom oder in Reaktion auf Betriebssystem- oder andere Software- oder Hardwareereignisse steuern. Zum Beispiel kann für Prozessoren der Intel®-Architektur, für die zumindest die aktive Betriebsart und die Energieverwaltungszustände unterstützt werden, die als C0, C1, C2 und C4 bezeichnet werden, die Energieverwaltungs-Zustandssteuerlogik 242 die Übergänge zwischen zumindest einer Teilmenge dieser Zustände unter Verwendung von einem oder mehreren von Stop Clock (STPCLK#), Processor Sleep (SLP#), Deep Sleep (DSLP#), Deeper Stop (DPRSTP#) und/oder Stop Processor (STPCPU#) Signalen teilweise steuern, wie unten mit mehr Einzelheiten beschrieben.
  • Auch kann in einer Ausführungsform Spannung vom E/A-Controller-Hub 225 (VI/O 349) für den Prozessor 205 bereitgestellt werden, um genügend Energie für den dedizierten Cache-Speicher 340 bereitzustellen, derart, daß er die kritischen Zustandsvariablen, die mit dem Prozessor 205 verbunden sind, speichern kann, während der Rest des Prozessors 205 durch die Verringerung der Betriebsspannung 240 auf einen Nullzustand ausgeschaltet wird.
  • Für andere Typen von Architekturen und/oder Prozessoren, die unterschiedliche Energieverwaltungs- und/oder normale Betriebszustände unterstützen, kann die Energieverwaltungs-Zustandssteuerungslogik 242 Übergänge zwischen zwei oder mehr unterschiedlichen Energieverwaltungs- und/oder normalen Betriebszuständen unter Verwendung von einem oder mehreren Signalen, die den in 2 gezeigten Signalen ähnlich sein oder sich davon unterscheiden können, steuern.
  • Der Massenspeicher 230 kann eines oder mehrere Compact-Disk-Nurlesespeicherlaufwerke (CD-ROM) und verbundene Scheibe/n, eines oder mehrere Festplattenlaufwerke und verbundene Platte/n und/oder eine oder mehrere Massenspeicher umfassen, auf die durch das Computersystem 200 über ein Netzwerk zugegriffen werden kann. Andere Typen von Massenspeichern, wie zum Beispiel optische Laufwerke und verbundene Medien liegen innerhalb des Umfangs verschiedener Ausführungsformen.
  • Für eine Ausführungsform speichert der Massenspeicher 230 ein Betriebssystem 245, das Code 250 zum Unterstützen einer gegenwärtigen und/oder Folgeversion der Advanced Configuration and Power Interface (ACPI) Spezifikation umfaßt. ACPI kann verwendet werden, um einige Aspekte des Energiemanagements zu steuern, wie unten mit mehr Einzelheiten beschrieben. Das Betriebssystem 245 kann ein WindowsTM oder ein anderer Typ von Betriebssystem sein, das bei Microsoft Corporation aus Redmond, Washington verfügbar ist. Alternativ kann für andere Ausführungsformen ein unterschiedlicher Typ von Betriebssystem wie zum Beispiel ein Linux-Betriebssystem und/oder ein unterschiedlicher Typ von betriebssystembasierter Energieverwaltung verwendet werden. Ferner können die hierin als mit ACPI verbunden beschriebenen Energieverwaltungsfunktionen und -fähigkeiten durch unterschiedliche Software oder Hardware bereitgestellt werden.
  • Man sollte auch verstehen, daß das System 200 eine Anzeigevorrichtung, wie eine Kathodenstrahlröhre (Cathode Ray Tube – CRT) oder Flüssigkristallanzeige (Liquid Crystal Display – LCD) zum Anzeigen von Informationen für einen Benutzer umfassen kann. Ferner kann das System 200 ein alphanumerisches Eingabegerät (z. B. eine Tastatur) umfassen, die alphanumerische oder andere Tasten umfaßt, um Informationen und Befehlsauswahlen an den Prozessor 205 zu übermitteln. Ein zusätzliches Benutzereingabegerät kann ein Cursorsteuerungsgerät wie eine Maus, eine Steuerkugel, ein Trackpad, ein Eingabestift oder Cursorsteuertasten zum Übermitteln von Richtungsinformationen und Befehlsauswahlen an den Prozessor 205 und zum Steuern der Cursorbewegung auf der Anzeigevorrichtung sein.
  • Ein anderes Gerät, das im System enthalten sein kann, ist ein Hardcopy-Gerät, das verwendet werden kann, um Befehle, Daten oder andere Informationen auf einem Medium wie Papier, Film oder ähnlichen Typen von Medien zu drucken. Ferner kann ein Tonaufnahme- und Wiedergabegerät, wie ein Lautsprecher und/oder Mikrofon (nicht gezeigt) wahlweise zur Bildung einer Audioschnittstelle im System 200 enthalten sein.
  • Wo das System 200 ein mobiles oder tragbares System ist, kann eine Batterie oder ein Batterieverbinder 225 darin enthalten sein, um Energie zum Betrieb des Systems 200 entweder ausschließlich oder bei Abwesenheit eines anderen Typs von Energiequelle bereitzustellen. Zusätzlich kann für einige Ausführungsformen eine Antenne 260 enthalten sein und zum Beispiel über eine drahtlose lokale Netzwerkvorrichtung (WLAN) 261 an das System 200 gekoppelt sein, um eine drahtlose Verbindung für das System 200 bereitzustellen.
  • Die (WLAN-)Vorrichtung 261 kann ein drahtloses Kommunikationsmodul umfassen, das ein Wireless Application Protocol verwenden kann, um einen drahtlosen Kommunikationskanal einzurichten. Das drahtlose Kommunikationsmodul kann einen drahtlosen Vernetzungsstandard, wie den Institute of Electrical and Electronics Engineers (IEEE) 802.11 Standard, IEEE-Std. 802.11-1999, veröffentlicht 1999, ausführen.
  • Man sollte verstehen, daß der Prozessor 205 von 2 in einer Ausführungsform zwischen verschiedenen bekannten C-Zuständen übergehen kann. Der normale Betriebszustand oder die aktive Betriebsart für den Prozessor 205 ist der C0-Zustand, in dem der Prozessor aktiv Befehle verarbeitet. Im C0-Zustand befindet der Prozessor 205 sich in einer Hochfrequenz-Betriebsart (HFM), in der die Spannungs-/Frequenzeinstellung durch das Maximalspannungs-/Frequenzpaar bereitgestellt werden kann.
  • Zum Energiesparen und/oder zur Verringerung der Wärmebelastung kann der Prozessor 205 zum Beispiel, immer wenn dies möglich ist, in einen Zustand mit geringem Energieverbrauch übergehen. Zum Beispiel kann der Prozessor 205 durch die Ausführung eines HALT- oder MWAIT-Befehls (nicht gezeigt) in Reaktion auf Firmware, wie Mikrocode, oder Software, wie das Betriebssystem 245, oder in einigen Fällen sogar ACPI-Software, vom C0-Zustand in den C1- oder Auto-HALT-Zustand übergehen. Im C1-Zustand können Abschnitte der Schaltungen des Prozessors 205 abgeschaltet werden und lokale Takte Tor-gesteuert werden.
  • Der Prozessor kann bei der Aktivierung (assertion) des STPCLK# oder eines ähnlichen Signals durch zum Beispiel den E/A-Controller 225 in den C2-Zustand übergehen, der auch als der Stop-Grant- oder SLEEP-Zustand bezeichnet wird. Der E/A-Controller 225 kann in Reaktion darauf, daß das Betriebssystem 245 bestimmt, daß in eine Betriebsart mit geringerem Energieverbrauch eingetreten werden kann oder sollte, und dies über ACPI-Software 250 angibt, das STPCLK#-Signal aktivieren (assert). Insbesondere können eines oder mehrere ACPI-Register (nicht gezeigt) vom E/A-Controller 225 umfasst sein, und die ACPI-Software 250 kann in diese Register schreiben, um mindestens einige Übergänge zwischen Zuständen zu steuern. Während des Betriebs im C2-Zustand können Abschnitte der Schaltungen des Prozessors 205 ausgeschaltet sein und es können interne und externe Kerntakte Tor-gesteuert werden. Für einige Ausführungsformen kann der Prozessor direkt vom C0-Zustand in den C2-Zustand übergehen.
  • Auf ähnliche Weise kann der Prozessor 205 als Reaktion darauf, daß der E/A-Controller 225 oder ein anderes Chipsatzmerkmal ein CPUSLP#-Signal und dann ein DPSLP#-Signal oder andere gleichwertige Signale aktiviert (assert), in den C3-Zustand übergehen, der auch als der Deep-Sleep-Zustand bezeichnet wird. Im Deep-Sleep-Zustand können zusätzlich zum Abschalten von internen Prozessorschaltungen sämtliche Phasenregelschleifen (PLL) im Prozessor 205 deaktiviert werden. Ferner kann für einige Ausführungsformen durch den Eingangs/Ausgangscontroller 225 ein STOP_CPU-Signal aktiviert werden und durch den Taktgeber 221 empfangen werden, um zu bewirken, daß der Taktgeber das Taktsignal CLK an die CPU 205 anhält.
  • Im System 200 von 2 kann ein Übergang in den C4-Zustand oder in einen Nullspannungs-Schlafzustand in Reaktion darauf vorgenommen werden, daß die ACPI-Software 250 zum Beispiel detektiert, daß keine ausstehenden Prozessorunterbrechungen vorhanden sind. Die ACPI-Software kann dies vornehmen, indem der ICH 225 eines oder mehrere die Energieverwaltung betreffende Signale aktiviert, wie das beispielhafte Deeper Stop (DPRSTP#) Signal und das beispielhafte DPSLP#-Signal. Das Deeper Stop (DPRSTP#) Signal wird direkt vom Chipsatz für den Prozessor bereitgestellt und bewirkt, daß die Takt/Energieverwaltungslogik 350 auf dem Prozessor eine Niederfrequenz-Betriebsart (LFM) einleitet. Für die Niederfrequenz-Betriebsart kann der Prozessor zum Beispiel zur Minimal- oder einer anderen niedrigen Betriebsfrequenz übergehen.
  • Gemäß einigen Ausführungsformen der Erfindung kann die Aktivierung des DPRSTP#-Signals wie hiernach beschrieben, ferner bewirken, daß das interne VID-Ziel auf einen Nullspannungspegel eingestellt wird, was dazu führt, daß eine Betriebsspannung von null durch den Spannungsregler 212 an den Prozessor 205 angelegt wird, derart, daß der Prozessor in einen sehr tiefen Schlafzustand übergeht, der sehr geringe Energieverbrauchsmerkmale aufweist.
  • Gemäß einer Ausführungsform der Erfindung kann eine integrierte Schaltung wie der Prozessor 205 zum Beispiel einen Übergang zu einem Nullspannungs-Energieverwaltungszustand einleiten. In einem Beispiel kann der Prozessor 205 eine Zentraleinheit (CPU) 205 sein. Ferner kann der Nullspannungs-Verwaltungszustand zum Beispiel ein tieferer Schlafzustand gemäß den ACPI-Standards sein. Während dieses Übergangs kann der kritische Zustand der CPU 205 gespeichert werden. Zum Beispiel können kritische Zustandsvariablen, die mit der CPU 205 verbunden sind, im dedizierten Cachespeicher (z. B. SRAM) 340 gespeichert werden.
  • Die Betriebsspannung der CPU 205 kann anschließend auf Null reduziert werden, derart, daß die CPU 205 sich in einem sehr tiefen Schlafzustand befindet, der sehr niedrige Energieverbrauchseigenschaften aufweist. Insbesondere kann der Spannungsregler 212, der die Nullspannungs-Schlafzustandslogik 302 verwendet, die Betriebsspannung 240 auf null reduzieren. Wie vorhergehend erörtert, kann dies gemeinsam mit der Nullspannungseintritts/Austrittslogik 354 der Takt/Energieverwaltungslogik 350 der CPU 205 erfolgen.
  • In einer Ausführungsform kann dieser Nullspannungs-Energieverwaltungszustand, wenn er in Verbindung mit den ACPI-Standards ausgeführt wird, als der C6-Zustand bezeichnet werden.
  • Danach tritt die CPU 205 in Reaktion auf den Empfang einer Anforderung zum Austritt aus dem Nullspannungs-Energieverwaltungszustand bei einer höheren Referenzbetriebsspannung aus dem Nullspannungs-Energieverwaltungszustand aus. Insbesondere kann der Spannungsregler 212 unter der Steuerung der Nullspannungseintritts/Austrittslogik 354 der CPU 205 und der Nullspannungs-Schlaflogik 302 des Spannungsreglers 212, wie vorhergehend beschrieben, die Referenzbetriebsspannung 240 auf einen zweckmäßigen Pegel anheben, derart, daß die CPU 205 richtig arbeiten kann. Die kritischen Zustandsvariablen der CPU 205 werden dann vom dedizierten Cachespeicher 340 wiederhergestellt.
  • Daher ermöglicht das Energieverwaltungsschema es der CPU 205, ihren Zustand zu speichern, den Strom abzuschalten und dann geweckt zu werden, wenn erforderlich, den kritischen Zustand wiederherzustellen und weiterzumachen, wo die CPU stehengeblieben ist. Dies kann in einigen Ausführungsformen ohne ausdrückliche Unterstützung vom Betriebssystem 245 erfolgen und kann mit einer extrem kurzen Latenzperiode erreicht werden.
  • Genauer gesagt, wird der kritische Zustand der CPU 205 in einer Ausführungsform im Nullspannungs-Prozessorschlafzustand (der gemäß den ACPI-Standards als C6-Zustand bezeichnet werden kann) im dedizierten Schlafzustand-SRAM-Cache 340 gespeichert, die durch die E/A-Energieversorgung (VI/O) 349 ausgeschaltet werden kann, während die Kernbetriebsspannung 240 für die CPU 205 auf ungefähr 0 Volt gesenkt wird. An diesem Punkt ist die CPU 205 beinahe vollständig ausgeschaltet und verbraucht sehr wenig Strom.
  • Bei einem Austrittsereignis gibt die CPU 205 dem Spannungsregler 212 an, die Betriebsspannung 240 wieder zu erhöhen (z. B. mit einem VID-Code 235), sperrt die Phasenregelschleife (PLL) wieder und schaltet die Takte über die Takt-/Energieverwaltungslogik 350 und die Nullspannungseintritts-/Austrittslogik 354 wieder ein. Ferner kann die CPU 205 einen internen RESET durchführen, um die Zustände zu löschen und dann den Zustand der CPU 205 vom dedizierten Schlafzustand-SRAM-Cache 340 wiederherstellen und die CPU 205 macht dort weiter, wo sie im Ausführungsfluß stehengeblieben ist. Diese Betriebsabläufe können in einem sehr kleinen Zeitraum (z. B. ungefähr 100 Mikrosekunden) in der Hardware der CPU 205 durchgeführt werden, derart, daß sie für das Betriebssystem 245 und die bestehende Energieverwaltungs-Softwareinfrastruktur transparent ist.
  • In einer Ausführungsform ist diese Verfahrensweise besonders für eine CPU 205 geeignet, die mehrere Prozessorkerne aufweist. In diesem Beispiel werden der Kern 320 (z. B. Kern #0) und der Kern 322 (z. B. Kern #1), d. h. eine Doppelkern-CPU als ein Beispiel erörtert. Man sollte indes verstehen, daß irgendeine geeignete Anzahl von CPU-Kernen verwendet werden kann. In der Doppelkernstruktur verwenden die CPU-Kerne 320 und 322 einen gemeinsamen Cache 330. Dieser gemeinsame Cache 330 kann zum Beispiel ein Level-2-Cache (L2) 320 sein, der von den Kernen 320 und 322 gemeinsam genutzt wird.
  • Ferner umfaßt jeder Kern 320 und 322 eine Kern-ID 321, Mikrocode 323, einen gemeinsamen Zustand 324 und einen dedizierten Zustand 325. Der Mikrocode 323 der Kerne 320 und 322 wird bei der Durchführung der Speicherungs-/Wiederherstellungsfunktionen des CPU-Zustands und für verschiedene Datenflüsse in der Leistung des Nullspannungsprozessor-Schlafzustands in Verbindung mit der Nullspannungseintritts/Austrittslogik 354 der Takt/Energieverwaltungslogik 350 der CPU 205 verwendet. Ferner wird der dedizierte Schlafzustands-SRAM-Cache 340 verwendet, um die Zustände der Kerne zu speichern, wie unten mit mehr Einzelheiten beschrieben.
  • Man wird verstehen, daß das System 200 und/oder andere Systeme von verschiedenen Ausführungsformen andere Komponenten oder Bestandteile umfassen können, die nicht in 2 gezeigt werden, und/oder nicht alle der in 2 gezeigten Bestandteile in Systemen aller Ausführungsformen vorhanden sein müssen.
  • Kurz auf 3 Bezug nehmend, ist 3 ein Blockdiagramm, das ein Beispiel des dedizierten Schlafzustand-SRAM-Caches 340 und einer SRAM-Schnittstelle 364 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Der dedizierte Schlafzustand-SRAM-Cache 340 kann Zustandsvariablen speichern, die mit dem Architektur-, Mikroarchitektur-, Debug-Zustand und Mikrocodepatch verbunden sind, wenn die CPU 205 sich im vorhergehend beschriebenen Nullspannungs-Schlafzustand (z. B. dem C6-Zustand) befindet.
  • In einem Beispiel kann die Größe des SRAM 340 8 KB pro CPU-Kern betragen und 32 Bit breit sein und durch die Takt/Energieverwaltungslogik 350 getaktet werden. Wie vorhergehend erörtert, kann der dedizierte Schlafzustand-SRAM-Cache 340 durch E/A-Spannung (VI/O 349) mit Energie versorgt werden, derart, daß seine Inhalte bewahrt werden, wenn die Betriebsspannung für die CPU 205 ausgeschaltet wird.
  • Der dedizierte Schlafzustands-SRAM 340 kann als 2K-Eingänge von jeweils 32 Bits strukturiert sein und einen ECC-Schutz für Einzelbitfehlererkennung und -korrektur aufweisen. Der Datenweg kann 32-Bit umfassen und eine 2-Zyklen-Latenz in das Array unterstützen. Wie in 3 ersichtlich, kann die SRAM-Schnittstelle 364 einen 32-Bit-Datenbus von einem Datenpuffer 370 umfassen, der 32-Bit-Daten verwendet.
  • In einem Beispiel kann eine Steuerregister-Busschnittstelle verwendet werden, um durch Verwendung einer Front-End-Clusterschnittstelle zur Verringerung der Komplexität der Adressierung des SRAM auf einfache Weise eine Schnittstelle mit dem Mikrocode zu bilden. Die Schnittstelle kann 2K-Steuerregister und ein Adressierungsschema mit zwei Ebenen verwenden. Zwei Register können zur Adressierung des SRAM definiert sein – das erste kann ein SRAM-Basisregister sein und das zweite kann ein SRAM-Datenregister sein. Mikrocode kann das Basisregister vor Beginn des Zugriffs auf den SRAM initialisieren. Der Inhalt des Basisregisters kann als ein Index in den SRAM für das nächste Lesen/Schreiben aus dem/in das Datenregister verwendet werden. Nach jedem Zugriff auf das Datenregister kann der Index in den SRAM automatisch um eins inkrementiert werden.
  • Wie in 3 veranschaulicht, kann die SRAM-Schnittstelle 364 in einem Beispiel einen Datenpuffer 370 umfassen, der 32-Bit-Daten basierend auf Lese/Schreibfreigabesignalen vom Adressdecoder 380 in und aus dem SRAM 340 puffert. Der Adressdecoder 380 kann auch eine Schreibfreigabe für das Basisregister 382 und einen Rücksetzzeiger freigeben. Das Basisregister 382 kann verwendet werden, um das Register 384 zu inkrementieren, das durch einen 12-Bit-Zeiger und eine 2-Bit-Lese/Schreib-Freigabe auf dem SRAM 340 arbeitet. Der Inhalt des Basisregisters 382 kann als ein Index in den SRAM für das nächste Lesen/Schreiben in das/aus dem Datenregister verwendet werden. Nach jedem Zugriff auf das Datenregister kann der Index in den SRAM automatisch um eins erhöht werden. Ferner kann das Register 384 den SRAM basierend auf einem Rücksetzzeiger zurücksetzen.
  • Nun wird auf 4 Bezug genommen. 4 ist ein Ablaufdiagramm, das ein Verfahren 400 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht, das verwendet werden kann, um in den Nullspannungs-Prozessorschlafzustand einzutreten. In einer Ausführungsform kann die folgende Reihe von Betriebsabläufen durch den Mikrocode 323 der CPU-Kerne 320 und 322 der CPU 205 gesteuert werden. In der ACPI-Ausführungsform, die den C6-Zustand darlegt, kann der Eintritt in den Nullspannungs-Prozessorschlafzustand durch einen MWAIT-Befehl eingeleitet werden, wie vorhergehend erörtert.
  • Aus der Perspektive der Software kann jeder CPU-Kern 320 oder 322 den MWAIT-Befehl unabhängig ausführen. In einer Ausführungsform verwenden die CPU-Kerne 320 und 322 indes einen gemeinsamen L2-Cache 330 und die gleiche Spannungsebene. Daher erfordert diese Ausführungsform eine Hardware-Koordinierung in der CPU 205 für die C-Zustände auf Paketebene und insbesondere den C6-Zustand.
  • In dieser Ausführungsform kann jeder Kern 320 und 322 einen MWAIT-Befehl ausführen und der initialisierende CPU-Kern geht in einen Wartezustand (z. B. CC6) über und wartet darauf, daß der andere Kern auch in den CC6-Zustand übergeht, bevor das gesamte Paket (das z. B. die beiden Kerne 320 und 322 umfaßt) dazu übergeht, was als der Paket-C6-Schlafzustand bezeichnet werden kann.
  • Insbesondere mit Hinblick auf 4 wird eine Veranschaulichung des Eintritts in den Nullspannungs-Prozessorschlafzustand bereitgestellt. Wie in 4 gezeigt, führt jeder Kern unabhängig eine Zustandspeicherung durch, wenn der Nullspannungs-Prozessorschlafzustand eingeleitet wird. Insbesondere mit Hinblick auf einen CPU-Kern #0 320 ist der erste CPU-Kern #0 aktiv (Kreis 402) und dann wird ein Befehl für einen Nullspannungs-Schlafzustand eingeleitet (z. B. über einen Sleep- oder MWAIT-Befehl) (Kreis 404). In Reaktion darauf wird der Zustand des CPU-Kerns 320 in Kreis 406 im dedizierten Cachespeicher 340 gespeichert. Dies umfaßt den dedizierten Zustand 325 und den gemeinsamen Zustand 324. Der CPU-Kern 320 geht dann in einen ersten Schlafzustand 408 (z. B. CC6) über, in dem er darauf wartet, daß der andere Kern auch in den CC6-Zustand übergeht, bevor das ganze Paket in den Gesamtpaket-Schlafzustand (z. B. C6) übergehen kann.
  • Auf die gleiche Weise befiehlt der andere CPU-Kern (z. B. der CPU-Kern #1 322) in Kreis 414 gleichfalls einen Schlafbefehl (z. B. MWAIT) und sein Zustand (z. B. sowohl sein gemeinsamer Zustand 324 als auch sein dedizierter Zustand 325) wird auch im dedizierten Cache-Speicher 340 gespeichert (Kreis 418). In diesem Fall wird der gemeinsame Cache 330, da dies der letzte Kern ist, der in einen Schlafzustand übergeht, auch vermindert und im dedizierten Cachespeicher 340 gespeichert (Kreis 416). Dann tritt der zweite CPU-Kern 322 in Kreis 420 gleichfalls in einen Schlafzustand (z. B. CC6) ein.
  • Es sei erwähnt, daß der Mikrocode 323 der CPU-Kerne 320 und 322 allgemein wissen muß, welche Steuerregister für den Nullspannungs-Prozessorschlafzustand gespeichert und wiederhergestellt werden müssen. Die Liste der Register kann eine Teilmenge der gesamten Register auf der CPU 205 sein. Zum Beispiel kann die Liste als ein Bitvektor (z. B. 1024 Bits lang) gespeichert werden. Jedes Bit im Vektor kann einem Steuerregister in der Steuerregister-Adressbasis entsprechen. Zum Beispiel kann Mikrocode die Bitposition in die Steuerregisteradresse umwandeln und das Register speichern/wiederherstellen, wenn das Bit „1” ist, und sie überspringen, wenn das Bit „0” ist. Wenn ein Steuerregister eine besondere Handhabung erfordert, kann das Speicherungs-/Wiederherstellungsbit im Vektor auf „0” eingestellt werden und die Speicherung/Wiederherstellung durch einen besonderen Mikrocodefluß außerhalb der Hauptspeicher/Wiederherstellungsschleife gehandhabt werden.
  • Nachdem die Mikrocode-Betriebsabläufe durchgeführt wurden, wie vorhergehend erörtert, übernimmt die Nullspannungseintritts/Austrittslogik 354 der Takt/Energieverwaltungslogik 350 die Datenflüsse (z. B. C6-Flüsse). Insbesondere tritt dies ein, nachdem die Mikrocode-Betriebsabläufe hinsichtlich der Zustandsspeicherungen (406 und 418) beendet wurden und nachdem jeder CPU-Kern 320 und 322 einen individuellen Schlafzustand 408 und 420 (z. B. CC6-Zustand) erreicht hat.
  • An diesem Punkt wurde der gesamte erforderliche Zustand der CPU 205 gespeichert oder von der CPU 205 gelöscht. Die Nullspannungseintritts/Austrittslogik 354 der Takt/Energieverwaltungslogik 350 leitet dann eine externe Eintrittsequenz auf Plattformebene (z. B. C6) ein, indem ein Lesen des E/A-Registers vom ICH 225 durchgeführt wird. In einer Ausführungsform kann dies das ACPI-definierte Verfahren des Eintritts in die CPU-„C”-Zustände sein.
  • Die Folge von Ereignissen aus der Perspektive des externen Busses ab diesem Punkt ist in 4 gezeigt. Die E/A-Befehle 410 können vom ICH 225/MCH 215 ausgegeben werden. Insbesondere kann bei Kreis 430 (z. B. STPCLK#) ein Taktstopsignal aktiviert werden. Dann kann ein Schlafsignal aktiviert werden (Kreis 431) (z. B. SLP#). Ferner kann bei Kreis 432 ein Deep-Sleep-Signal aktiviert werden (DPSLP#). Diese Befehle werden in der vorhergehend beschriebenen Reihenfolge ausgegeben, derart, daß die CPU 205 durch das Abschalten ihrer internen Taktverteilung und dann der PLLs reagiert.
  • Wenn bei Kreis 435 ein Deeper-Stop-Signal (z. B. DPRSTP#) aktiviert wird, schaltet die CPU 205 seine VID auf einen Nullspannungspegel, um den Spannungsregler 212 anzuweisen, die Energieversorgung zu entfernen, und daß dies sicher ist. Dies kann als eine C6-VID bezeichnet werden. Auf diese Weise wird die Energieversorgung deaktiviert. Man sollte indes verstehen, daß anstelle von null Volt ein anderer sehr geringer Betrag einer Spannung als die VID gewählt werden kann.
  • Man sollte verstehen, daß der Spannungspegel anstatt auf einem Spannungspegel von genau null, auf einen „Pegel von ungefähr null Volt” eingestellt werden kann. Dieser Spannungspegel von ungefähr null Volt kann ein sehr niedriger Spannungspegel, wie 0,3 V oder 0.5 V, sein. In einigen Ausführungsformen kann ein solcher sehr niedriger Spannungspegel von ungefähr null die Eintritts- und Austrittslatenzen in den beziehungsweise aus dem Schlafzustand optimieren. Zusätzlich sollte man verstehen, daß der Spannungspegel von ungefähr null Volt für das System (z. B. aus Silizium) während der Herstellung (z. B. nach einem Tape-Out) gewählt und während unterschiedlicher Steppings und Revisionen der CPU unterschiedlich programmiert werden kann.
  • Das Paket von CPU-Kernen (z. B. Kern 320 und Kern 322) wird bei Kreis 440 als sich in einem Paketschlafzustand (C6) befindlich betrachtet, wenn die Betriebsspannung 240 vom Spannungsregler 212 null Volt oder einen anderen nominal niedrigen Pegel erreicht. Es sei erwähnt, daß, da kein aktives Absenken der Betriebsspannung des Geräts stattfindet, diese einfach langsam absinkt, während die Ladung aufgrund des Verlusts der CPU 205 verloren geht. So ist die CPU 205 in den Nullspannungs-Paketschlafzustand (C6) übergegangen. Man sollte verstehen, daß die vorhergehend beschriebene Folge von Betriebsabläufen in einer Vielzahl von unterschiedlichen Reihenfolgen durchgeführt werden kann und daß die vorhergehend beschriebene Reihenfolge lediglich ein Beispiel ist.
  • Nun wird Bezug auf 5 genommen. 5 ist ein Ablaufdiagramm, das ein Beispiel eines Verfahrens 500 für eine Austrittsfolge aus dem Nullspannungs-Prozessorschlafzustand veranschaulicht. Ein Austritt aus dem Nullspannungs-Prozessorschlafzustand beginnt typischerweise, wenn der Chipsatz ein Ereignis detektiert, das ein Wecken der CPU 205 erfordert – am wahrscheinlichsten ein Interrupt-Ereignis. Es sei indes erwähnt, daß der Chipsatz mit Masterzugriffen auf den Speicher vorgehen kann, ohne die CPU bei der Ausführung von Snoops zu wecken. Die Folge von externen Ereignissen und Handshakes, die zwischen dem Chipsatz und der CPU 205 während einem Austritt aus dem Nullspannungs-Prozessorschlafzustand eintreten, werden mit Bezug auf 5 erörtert. Diese Folge kann insbesondere als die Umkehrung dessen betrachtet werden, was während der vorhergehend beschriebenen Eintrittsphase erfolgt.
  • Vom Paketschlafzustand (C6) (Kreis 440) wird das Deeper-Stop-Signal (DPRSTP#) in einer Ausführungsform deaktiviert (deasserted) (Kreis 502), was derart durch die CPU 205 und die Nullspannungs-Eintritts/Austrittslogik 354 der Takt/Energieverwaltungslogik 350 detektiert wird, daß die Niederfrequenz-Betriebsart (LFM) VID an den Spannungsregler 212 gesendet wird. Dies weist den Spannungsregler 212 an, die Betriebsspannung des Kerns wieder hinauf auf die erforderliche VID zu steuern.
  • Zu einem vorbestimmten Zeitpunkt (z. B. durch die Zeitgeber im ICH 225 gesteuert) wird ein Signal zur erneuten Aktivierung der Takte aktiviert und das Deep-Sleep-Signal (DPSLP#) wird deaktiviert (Kreis 505), was die PLLs der Takt/Energieverwaltungslogik 350 startet. Danach initiiert die CPU 205 einen internen Reset (Kreis 506). Nachdem dieser Reset abgeschlossen wurde, sind die Energie und die Takte der CPU 205 wieder eingeschaltet und sie ist bereit zur Wiederherstellung der kritischen Zustandsvariablen, die mit der CPU 205 verbunden sind.
  • Als ein Beispiel wartet in der ACPI-Ausführungsform die CPU 205 typischerweise während eines C-Zustandsaustrittsereignisses bis zur Deaktivierung des STPCLK#, um intern innerhalb der CPU etwas vorzunehmen. Gemäß Ausführungsformen der vorliegenden Erfindung wird STPCLK# indes im Nullspannungs-Prozessorschlafzustand (z. B. C6) aufgrund der längeren Latenz der Wiederherstellung der Zustände, usw. außer Kraft gesetzt und es wird mit einer Zustandswiederherstellung (Kreis 510 und Kreis 530) für die entsprechenden Kerne 320 und 322 der CPU 205 als Vorbereitung des C6-Austritts begonnen, sobald die Energie und die Takte verfügbar sind. Nachdem die Zustände der Kerne 320 und 322 wiederhergestellt wurden, ist die CPU 205 bereit, um dort weiterzumachen, wo sie aufgehört hat. Der Mikrocode 323 von beiden Kernen 320 beziehungsweise 322 der CPU 205 werden zurückgesetzt (Kreise 512 und 532).
  • Keiner der CPU-Kerne 320 beziehungsweise 322 wird indes aktiv (Kreise 514 und 534) und führt Befehle aus, solange das Schlafsignal deaktiviert ist (Kreis 540) und das Stop-Clock-Signal (STPCLK#) deaktiviert ist. Nachdem das Stop-Clock indes deaktiviert wurde und das Schlafsignal deaktiviert wurde, werden sowohl die CPU 205 als auch die Kerne 320 und 322 und der Chipsatz alle eingeschaltet und sind betriebsfähig, und beide Kerne werden aktiv (Kreis 514 und Kreis 534). Die CPU 205 beginnt dann typischerweise mit einigen Codeabrufen, da ihre Caches leer sind, und beginnt dann mit den normalen Betriebsabläufen. Insbesondere werden beide Kerne im C0-Zustand geweckt. Das Betriebssystem kann bestimmen, welcher CPU-Kern die Ereignisse handhaben wird, und der andere Kern kann bald darauf wieder in einen Schlafzustand zurückversetzt werden.
  • Vorzugsweise kann die Software, wie vorhergehend erklärt, da die CPU 205 den Großteil der C-Zustandskoordinierung in Hardware ausführt, in jedem Kern ohne Softwarekoordinierung mit anderen Kernen unabhängig den Eintritt in den Nullspannungs-Prozessorschlafzustand (z. B. C6) anfordern. Insbesondere wird die durch die CPU 205 im Schlafzustand benötigte Energie durch die Verwendung des Nullspannungs-Prozessorschlafzustands (z. B. C6) auf nahezu null vermindert.
  • Auch wird in der ACPI-Ausführungsform, in der der C6-Zustand beschrieben wird, auch ein wirksames Verfahren zum Erreichen der Zustandsspeicherung und der Wiederherstellung des gemeinsamen Zustands 324 der Kerne 320 und 322 des Prozessors 205 unter Verwendung eines Kern-ID-Felds 321 offenbart. Dieses Verfahren dient als die Synchronisierung für den Kernaustritt in C0. Die Kernkennungen 321 können über Sicherungen in jedem Kern 320 und 322 fest verdrahtet sein und können jederzeit für die Kerne der CPU 205 verfügbar sein.
  • Beide Kerne 320 und 322 können den dedizierten Zustand 325 und den gemeinsamen Zustand 324 zum Zeitpunkt des Eintritts speichern. Die Kerne 320 und 322 werden vorzugsweise während der Zustandsspeicherung kein Ordnungsverfahren (wie einen Semaphor) verwenden. Am Ende der Zustandsspeicherung kann jeder Kern seine eindeutige Kernkennung 321 in einem Hardwarezustand speichern.
  • Wenn der zweite Kern seine Zustandsspeicherung abschließt, kann dieser Kern seine eindeutige Kernkennung 321 im gleichen Hardwarezustand schreiben, wodurch die Kernkennung des ersten Kerns effektiv außer Kraft gesetzt wird. Dieser Hardwarezustand, der die Kernkennung enthält, wird während des Verbleibens im C6 gespeichert, indem er durch eine immer EIN geschaltete Energiequelle mit Energie versorgt wird. Beim C6-Austritt wird es der Kernkennung, die mit der gespeicherten Kernkennung übereinstimmt, wie vorhergehend erörtert, ermöglicht, die Wiederherstellung des gemeinsamen Zustands 324 durchzuführen, wenn die Kerne 320 und 320 die Zustandswiederherstellung durchführen. Beide Kerne 320 und 322 können die Wiederherstellung des dedizierten Zustands 325 durchführen. Die Kerne werden dann auf die gespeicherte Kernkennung 321 zugreifen, um zu prüfen, ob sie die Wiederherstellung des gespeicherten Zustands durchführen müssen. Es muß nur einem Kern die Durchführung der Wiederherstellung erlaubt werden. Die anderen Kerne können warten, während der gemeinsame Zustand 324 wiederhergestellt wird. Wenn die Wiederherstellung abgeschlossen ist, gehen beide Kerne in den C0-Zustand über.
  • In einer Ausführungsform können die Kerne 320 und 322 einen Hardwaresemaphor „C6-Reihenfolgesemaphor” verwenden, um während der Wiederherstellung einen ausschließlichen Zugriff auf das Feld der Kernkennung 321 zu gewährleisten. Ein Beispiel eines Pseudocodes zur Ermöglichung des Wiederherstellens des gemeinsamen Zustands wird unten bereitgestellt:
  • Kern, der zuerst in CC6 übergegangen ist
    • Dedizierten Zustand wiederherstellen
    • C6-Reihenfolgensemaphor ergreifen
    • C6-wakeup.core ID lesen
    • C6-wakeup.core ID gegen eigene core ID abgleichen
    • Keine Übereinstimmung, Freigabe von C6-Reihenfolgensemaphor
    • Restore_Complete: Warten
    • C6-wakeup.core ID lesen
    • Wenn core ID !=00 auf Restore_Complete springen
    • Wenn core ID = 0 auf Befehl nach mwait springen
  • Kern, der zuletzt in C06 übergegangen ist
    • Dedizierten Zustand wiederherstellen
    • C6-Reihenfolgensemaphor ergreifen
    • C6-wakeup.core ID lesen
    • C6-wakeup.core ID gegen eigene core ID abgleichen
    • Abgeglichen, C6-Reihenfolgensemaphor sperren
  • Zu geteilter Zustandswiederherstellung gehen
  • Man wird verstehen, daß, obgleich Ausführungsbeispiele mit Bezug auf einen Nullspannungs–Prozessorschlafzustand beschrieben wurden, der in einen und aus einem Deeper-Sleep-C6-Zustand übergeht, der mit einer Zentraleinheit und einem Spannungsregler verbunden ist, verschiedene Ausführungsformen auf unterschiedliche Typen von Energieverwaltungskonfigurationen und/oder unterschiedliche Typen von integrierten Schaltungen angewandt werden können. Ferner liegen, obgleich in den hierin beschriebenen Ausführungsbeispielen Spannungssteuerungen unter Verwendung von VID-Signalen ausgeführt werden, andere Ansätze zum Bereitstellen von Spannungssteuerung innerhalb des Umfangs verschiedener Ausführungsformen.
  • So wurden verschiedene Ausführungsformen eines Verfahrens und einer Vorrichtung für einen Nullspannungs-Prozessorschlafzustand beschrieben. In der vorhergehenden Beschreibung wurden Ausführungsformen der Erfindung mit Bezug auf spezifische Ausführungsbeispiele davon beschrieben.

Claims (18)

  1. Verfahren, das folgendes umfasst: Einleiten (105) eines Übergangs in einen Nullspannungs-Energieverwaltungszustand für einen ersten Kern und einen zweiten Kern eines Prozessors, wobei eine an den Prozessor angelegte Betriebsspannung im Nullspannungs-Energieverwaltungszustand auf ungefähr Null Volt zu reduzieren ist; Während des Übergangs, unabhängig Speichern (110) von Zustandsvariablen des ersten Kerns und des zweiten Kerns des Prozessors in einem dedizierten Cachespeicher, der mit einer Spannung versorgt bleibt, die von einem E/A-Kontroller zugeführt wird, der mit dem Prozessor gekoppelt ist, während die an den Prozessor angelegte Betriebsspannung auf ungefähr null reduziert wird, wobei der erste Kern in einen ersten Schlafzustand eintritt, nachdem die Zustandsvariablen für den ersten Kern gespeichert sind und der zweite Kern in den ersten Schlafzustand eintritt, nachdem die Zustandsvariablen für den zweiten Kern gespeichert sind; Nach dem Speichern (110) der Zustandsvariablen im dedizierten Cachespeicher, Reduzieren (115) der Betriebsspannung auf ungefähr Null Volt, wobei der Prozessor in den Nullspannungs-Energieverwaltungszustand übergeht; und Austreten (120) aus dem Nullspannungs-Energieverwaltungszustand bei einer an den Prozessor angelegen Betriebsspannung, die höher als die ungefähr Null Volt ist.
  2. Verfahren nach Anspruch 1, das ferner das Wiederherstellen (125) der Zustandsvariablen des Prozessors nach dem Austreten aus dem Nullspannungs-Energieverwaltungszustand umfasst.
  3. Verfahren nach Anspruch 1, wobei das Speichern der Zustandsvariablen des Prozessors ferner das Speichern der Zustandsvariablen des Prozessors, durch Microcode aufweist, der auf einem Kern des Prozessors ausgeführt wird, wobei der Microcode auf eine Liste von Registern zugreift, die einer Untergruppe aller Register des Prozessors entspricht, die in dem bestimmten Cachespeicher gespeichert werden sollen.
  4. Verfahren nach Anspruch 1, wobei der Prozessor mindestens einen ersten Kern und einen zweiten Kern umfasst.
  5. Verfahren nach Anspruch 4, das ferner das Speichern sowohl eines Zustands des ersten Kerns als auch eines Zustands des zweiten Kerns, wenn der Prozessor in den Nullspannungs-Energieverwaltungszustand übergeht, und das Synchronisieren der Wiederherstellung des Zustands des ersten Kerns und des Zustands des zweiten Kerns umfasst.
  6. Verfahren nach Anspruch 1, das ferner das Überwachen eines gegenwärtigen Spannungspegels während des Übergangs in den Nullspannungs-Energieverwaltungszustand umfasst.
  7. Verfahren nach Anspruch 6, wobei das Überwachen des gegenwärtigen Spannungspegels ferner folgendes umfasst: Bestimmen des gegenwärtigen Spannungspegels des Prozessors unter Verwendung eines Analog/Digitalwandlers (ADC); Bereitstellen einer digitalen Darstellung einer Spannungsidentifikation (VID) basierend auf dem festgestellten gegenwärtigen Spannungspegel für einen Spannungsregler, wobei der Spannungsregler die Betriebsspannung für den Prozessor bereitstellt; und Bestimmen, ob der gegenwärtige Spannungspegel höher ist als die Betriebsspannung, durch Vergleichen entsprechender VIDs.
  8. Vorrichtung, die folgendes umfasst: einen Prozessor (205) mit einem ersten und einem zweiten Kern und einem dedizierten Cachespeicher (340), der dem Prozessor (205) zugeordnet ist; und einen Spannungsregler (212), der an den Prozessor (205) gekoppelt ist, um eine Betriebsspannung für den Prozessor (205) bereitzustellen, wobei der erste Kern und der zweite Kern in Reaktion auf eine Initiierung eines Übergangs in einen Nullspannungs-Energieverwaltungszustand für den Prozessor (205) Zustandsvariablen, die mit dem Prozessor assoziiert sind, im dedizierten Cachespeicher (340) unabhängig speichern sollen, wobei der erste Kern in einen ersten Schlafzustand eintreten soll, nachdem die Zustandsvariablen für den ersten Kern gespeichert sind und der zweite Kern in den ersten Schlafzustand eintreten soll, nachdem die Zustandsvariablen für den zweiten Kern gespeichert sind; wobei der Spannungsregler (212) betriebfähig ist, um die an den Prozessor (205) angelegte Betriebsspannung während des Übergangs in den Nullspannungs-Energieverwaltungszustand für den Prozessor (205) nach einem Speichern der mit dem Prozessor assoziierten Zustandsvariablen im dedizierten Cachespeicher (340) auf ungefähr Null Volt zu reduzieren, wobei der Prozessor in den Nullspannungs-Energieverwaltungszustand übergeht, wobei der dedizierte Cachespeicher (340) betriebsfähig ist, um die Zustandsvariablen zu empfangen, die mit dem Prozessor verbunden sind, wobei der dedizierte Cachespeicher mit einer Stromquelle eines Eingabe/Ausgabe-Kontrollers gekoppelt ist, der mit dem Prozessor gekoppelt ist, der mit Strom versorgt bleibt, während die an dem Prozessor angelegte Betriebsspannung auf ungefähr Null Volt reduziert wird.
  9. Vorrichtung nach Anspruch 8, wobei der Spannungsregler (212) nach dem Austritt aus dem Nullspannungs-Energieverwaltungszustand betriebsfähig ist, um die an den Prozessor (205) angelegte Betriebsspannung durch Lieferung einer Spannung, die höher ist als die ungefähr Null Volt, auf einen Betriebsspannungszustand zu erhöhen und der Betriebszustand des Prozessors (205) vom dedizierten Cachespeicher (340) wiederhergestellt wird.
  10. Vorrichtung nach Anspruch 8, wobei der dedizierte Cachespeicher (340) ein synchroner Speicher mit wahlfreiem Zugriff (Synchronous Random Access Memory – SRAM) innerhalb eines Pakets ist, das den Prozessor (205) enthält.
  11. Vorrichtung nach Anspruch 8, wobei der Prozessor (205) mindestens einen ersten Kern (320) und einen zweiten Kern (322) umfasst.
  12. Vorrichtung nach Anspruch 11, wobei der erste Kern (320) eine erste eindeutige Kennung aufweist und der zweite Kern (322) eine zweite eindeutige Kennung aufweist und der dedizierte Cachespeicher (340) die Zustandsvariablen eines bestimmten Kerns basierend auf der eindeutigen Kennung dieses bestimmten Kerns wiederherstellt.
  13. Vorrichtung nach Anspruch 12, wobei der dedizierte Cachespeicher (340) Zustandsvariablen des Kerns (320, 322) wiederherstellt, der der letzte Kern war, der seine Zustandsvariablen im dedizierten Cachespeicher (340) gespeichert hat.
  14. Maschinenlesbares Speichermedium, das darauf gespeicherte Befehle aufweist, die, wenn sie durch eine Maschine ausgeführt werden, bewirken, dass die Maschine die Betriebsabläufe durchführt, die folgendes umfassen: Einleiten (105) eines Übergangs in einen Nullspannungs-Energieverwaltungszustand für einen ersten Kern und einen zweiten Kern eines Prozessors, wobei eine angelegte Betriebsspannung im Nullspannungs-Energieverwaltungszustand auf ungefähr null zu reduzieren ist; Während des Übergangs, unabhängig Speichern (110) von Zustandsvariablen des ersten Kerns und des zweiten Kerns des Prozessors in einem dedizierten Cachespeicher, der mit einer Spannung versorgt bleibt, die von einem E/A-Kontroller zugeführt wird, der mit dem Prozessor gekoppelt ist, während die an den Prozessor angelegte Betriebsspannung auf ungefähr null reduziert wird, wobei der erste Kern in einen ersten Schlafzustand übergeht, nachdem die Zustandsvariablen für den ersten Kern gespeichert sind und der zweite Kern in den ersten Schlafzustand übergeht, nachdem die Zustandsvariablen für den zweiten Kern gespeichert sind; Nach dem Speichern (110) der Zustandsvariablen im dedizierten Cachespeicher, Reduzieren (115) der Betriebsspannung auf ungefähr Null Volt, wobei der Prozessor in den Nullspannungs-Energieverwaltungszustand übergeht; Austreten (120) aus dem Nullspannungs-Energieverwaltungszustand bei einer höheren Betriebsspannung; und Wiederherstellen (125) der Zustandsvariablen von dem Speicher nach dem Austreten aus dem Nullspannungs-Energieverwaltungszustand.
  15. Maschinenlesbares Speichermedium nach Anspruch 14, wobei das Speichern der Zustandsvariablen ferner Befehle umfasst, um die Zustandsvariablen durch Mikrocode zu speichern, der in einem Kern des Prozessors ausgeführt wird, wobei der Mikrocode eingerichtet ist, um auf eine Liste von Registern zuzugreifen, die einer Untergruppe aller Register des Prozessors entsprechen, um den dedizierten Cachespeicher zu speichern.
  16. Maschinenlesbares Speichermedium nach Anspruch 15, wobei der Cachespeicher ein synchroner Speicher mit wahlfreiem Zugriff (Synchronous Random Access Memory – SRAM) ist.
  17. Maschinenlesbares Speichermedium nach Anspruch 14, das ferner Befehle zum Überwachen eines gegenwärtigen Spannungspegels während des Übergangs in den Nullspannungs-Energieverwaltungszustand umfasst.
  18. Maschinenlesbares Speichermedium nach Anspruch 14, das ferner Befehle zum Speichern von sowohl Zustandsvariablen eines ersten Kerns als auch von Zustandsvariablen eines zweiten Kerns eines Prozessors beim Übergehen in den Nullspannungs-Energieverwaltungszustand umfasst.
DE112006003575.4T 2005-12-30 2006-12-18 Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand Expired - Fee Related DE112006003575B8 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,254 US7664970B2 (en) 2005-12-30 2005-12-30 Method and apparatus for a zero voltage processor sleep state
US11/323,254 2005-12-30
PCT/US2006/048296 WO2007078925A1 (en) 2005-12-30 2006-12-18 Method and apparatus for a zero voltage processor sleep state

Publications (3)

Publication Number Publication Date
DE112006003575T5 DE112006003575T5 (de) 2008-11-06
DE112006003575B4 true DE112006003575B4 (de) 2015-10-08
DE112006003575B8 DE112006003575B8 (de) 2016-10-20

Family

ID=38050291

Family Applications (2)

Application Number Title Priority Date Filing Date
DE112006003575.4T Expired - Fee Related DE112006003575B8 (de) 2005-12-30 2006-12-18 Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE200611004276 Withdrawn DE112006004276A5 (de) 2005-12-30 2006-12-18 Verfahren und Vorrichtung für einen Nullspannungsprozessorschlafzustand

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE200611004276 Withdrawn DE112006004276A5 (de) 2005-12-30 2006-12-18 Verfahren und Vorrichtung für einen Nullspannungsprozessorschlafzustand

Country Status (7)

Country Link
US (14) US7664970B2 (de)
JP (1) JP4875710B2 (de)
KR (1) KR101021405B1 (de)
CN (3) CN101351762A (de)
DE (2) DE112006003575B8 (de)
TW (1) TWI334979B (de)
WO (1) WO2007078925A1 (de)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7523327B2 (en) * 2005-03-05 2009-04-21 Intel Corporation System and method of coherent data transfer during processor idle states
US7802116B2 (en) * 2006-09-27 2010-09-21 Intel Corporation Subsystem power management
US8812885B2 (en) * 2006-12-28 2014-08-19 Texas Instruments Incorporated Detecting wake-up events for a chip based on an I/O power supply
US7941683B2 (en) * 2007-05-02 2011-05-10 Advanced Micro Devices, Inc. Data processing device with low-power cache access mode
EP2058725A3 (de) * 2007-06-11 2015-07-22 Mediatek Inc. Verfahren und Vorrichtung zur Verringerung des Stromverbrauchs innerhalb einer integrierten Schaltung
US8683247B2 (en) * 2008-06-12 2014-03-25 Advanced Micro Devices, Inc. Method and apparatus for controlling power supply to primary processor and portion of peripheral devices by controlling switches in a power/reset module embedded in secondary processor
KR101000555B1 (ko) * 2008-06-16 2010-12-14 엘지전자 주식회사 동적 전력관리 프로세서의 소음저감장치 및 방법
US8078891B2 (en) 2008-06-30 2011-12-13 Intel Corporation Method, device, and system for guaranteed minimum processor power state dwell time
US7779191B2 (en) * 2008-07-29 2010-08-17 Nvidia Corporation Platform-based idle-time processing
US8028181B2 (en) * 2008-09-19 2011-09-27 Intel Corporation Processor power consumption control and voltage drop via micro-architectural bandwidth throttling
US8122270B2 (en) * 2008-09-29 2012-02-21 Intel Corporation Voltage stabilization for clock signal frequency locking
US8495423B2 (en) * 2009-08-11 2013-07-23 International Business Machines Corporation Flash-based memory system with robust backup and restart features and removable modules
US8352770B2 (en) * 2009-09-25 2013-01-08 Intel Corporation Method, system and apparatus for low-power storage of processor context information
US8539260B2 (en) * 2010-04-05 2013-09-17 Intel Corporation Method, apparatus, and system for enabling platform power states
US8782456B2 (en) * 2010-06-01 2014-07-15 Intel Corporation Dynamic and idle power reduction sequence using recombinant clock and power gating
US8117498B1 (en) * 2010-07-27 2012-02-14 Advanced Micro Devices, Inc. Mechanism for maintaining cache soft repairs across power state transitions
US8887012B2 (en) * 2010-08-24 2014-11-11 Advanced Micro Devices, Inc. Method and apparatus for saving and restoring soft repair data
US9339224B2 (en) 2011-02-24 2016-05-17 Rochester Institute Of Technology Event dosimeter devices and methods thereof
US10292445B2 (en) 2011-02-24 2019-05-21 Rochester Institute Of Technology Event monitoring dosimetry apparatuses and methods thereof
US8924752B1 (en) 2011-04-20 2014-12-30 Apple Inc. Power management for a graphics processing unit or other circuit
US8924756B2 (en) * 2011-06-27 2014-12-30 Intel Corporation Processor core with higher performance burst operation with lower power dissipation sustained workload mode
WO2013015924A1 (en) * 2011-07-26 2013-01-31 Marvell World Trade Ltd. Zero power hibernation mode with instant on
CN103765409A (zh) 2011-09-06 2014-04-30 英特尔公司 有功率效率的处理器体系结构
US8856566B1 (en) 2011-12-15 2014-10-07 Apple Inc. Power management scheme that accumulates additional off time for device when no work is available and permits additional power consumption by device when awakened
US9665144B2 (en) * 2011-12-21 2017-05-30 Intel Corporation Methods and systems for energy efficiency and energy conservation including entry and exit latency reduction for low power states
US8874949B2 (en) 2011-12-22 2014-10-28 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including enhanced temperature based voltage control
US8819461B2 (en) * 2011-12-22 2014-08-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including improved processor core deep power down exit latency by using register secondary uninterrupted power supply
US9400545B2 (en) 2011-12-22 2016-07-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices
US9122464B2 (en) * 2011-12-22 2015-09-01 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including energy efficient processor thermal throttling using deep power down mode
US8713256B2 (en) 2011-12-23 2014-04-29 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance
US8230247B2 (en) * 2011-12-30 2012-07-24 Intel Corporation Transferring architectural functions of a processor to a platform control hub responsive to the processor entering a deep sleep state
TWI475841B (zh) * 2012-02-14 2015-03-01 Htc Corp 連線休眠方法、無線通信裝置以及電腦可讀記錄媒體
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
US9390461B1 (en) 2012-05-08 2016-07-12 Apple Inc. Graphics hardware mode controls
US9250665B2 (en) 2012-06-07 2016-02-02 Apple Inc. GPU with dynamic performance adjustment
US9152205B2 (en) * 2012-08-28 2015-10-06 Intel Corporation Mechanism for facilitating faster suspend/resume operations in computing systems
US8984313B2 (en) * 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9600382B2 (en) * 2012-09-03 2017-03-21 Southeast University Error recovery circuit oriented to CPU pipeline
US9690353B2 (en) * 2013-03-13 2017-06-27 Intel Corporation System and method for initiating a reduced power mode for one or more functional blocks of a processor based on various types of mode request
US9465432B2 (en) * 2013-08-28 2016-10-11 Via Technologies, Inc. Multi-core synchronization mechanism
US9262322B2 (en) * 2013-09-17 2016-02-16 Advanced Micro Devices, Inc. Method and apparatus for storing a processor architectural state in cache memory
US10705961B2 (en) 2013-09-27 2020-07-07 Intel Corporation Scalably mechanism to implement an instruction that monitors for writes to an address
EP3074840A4 (de) * 2013-11-29 2017-06-28 Intel Corporation Leistungsverwaltung bei computervorrichtungen
KR102210996B1 (ko) * 2014-01-03 2021-02-02 삼성전자주식회사 프로세서 및 프로세서 제어 방법
US10261882B2 (en) 2014-01-31 2019-04-16 Hewlett Packard Enterprise Development Lp Functional unit promotion to management unit
US9612643B2 (en) * 2014-03-29 2017-04-04 Intel Corporation Controlling the CPU slew rates based on the battery state of charge
US9426748B2 (en) * 2014-07-11 2016-08-23 Qualcomm Incorporated Dynamic sleep mode based upon battery charge
US9582068B2 (en) * 2015-02-24 2017-02-28 Qualcomm Incorporated Circuits and methods providing state information preservation during power saving operations
CN104731616A (zh) * 2015-03-25 2015-06-24 浪潮集团有限公司 一种关闭Linux OS下Intel CPU节能模式的方法
US10234932B2 (en) * 2015-07-22 2019-03-19 Futurewei Technologies, Inc. Method and apparatus for a multiple-processor system
CN106227317B (zh) * 2016-08-02 2019-02-05 联想(北京)有限公司 一种信号处理方法及电子设备
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
TWI626535B (zh) * 2017-02-15 2018-06-11 新唐科技股份有限公司 電源管理系統和控制器
US10990159B2 (en) 2017-04-25 2021-04-27 Apple Inc. Architected state retention for a frequent operating state switching processor
GB2564878B (en) * 2017-07-25 2020-02-26 Advanced Risc Mach Ltd Parallel processing of fetch blocks of data
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
US11429385B2 (en) * 2018-12-29 2022-08-30 Intel Corporation Hardware processors and methods for extended microcode patching and reloading
US11703933B2 (en) * 2019-01-24 2023-07-18 Intel Corporation Remote register updates
KR20200114017A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법
US11658571B2 (en) 2020-04-01 2023-05-23 Analog Devices International Unlimited Company Low power regulator circuit
KR20220046221A (ko) * 2020-10-07 2022-04-14 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11861781B2 (en) 2020-12-28 2024-01-02 Samsung Electronics Co., Ltd. Graphics processing units with power management and latency reduction
TWI824464B (zh) * 2022-03-31 2023-12-01 仁寶電腦工業股份有限公司 電子裝置以及用於電子裝置的啟動方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101362A1 (en) * 2001-11-26 2003-05-29 Xiz Dia Method and apparatus for enabling a self suspend mode for a processor
US6711691B1 (en) * 1999-05-13 2004-03-23 Apple Computer, Inc. Power management for computer systems

Family Cites Families (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819154A (en) 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
AT378369B (de) 1983-08-26 1985-07-25 Krems Chemie Gmbh Verfahren zur herstellung von methylolierten melaminen
JPH0195355A (ja) * 1987-10-07 1989-04-13 Mitsubishi Electric Corp マルチプロセッサシステム
US5526487A (en) 1989-02-09 1996-06-11 Cray Research, Inc. System for multiprocessor communication
US5153535A (en) 1989-06-30 1992-10-06 Poget Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5551033A (en) 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
JPH06236284A (ja) 1991-10-21 1994-08-23 Intel Corp コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム
JP2880863B2 (ja) 1992-10-29 1999-04-12 株式会社東芝 サスペンド制御方法およびシステム
JP2809962B2 (ja) 1993-03-02 1998-10-15 株式会社東芝 資源管理方式
US5502838A (en) 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
JP3304577B2 (ja) * 1993-12-24 2002-07-22 三菱電機株式会社 半導体記憶装置とその動作方法
US5918061A (en) 1993-12-29 1999-06-29 Intel Corporation Enhanced power managing unit (PMU) in a multiprocessor chip
US5632038A (en) 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
US5623677A (en) 1994-05-13 1997-04-22 Apple Computer, Inc. Apparatus and method for reducing power consumption in a computer system
US5560022A (en) 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US5530879A (en) 1994-09-07 1996-06-25 International Business Machines Corporation Computer system having power management processor for switching power supply from one state to another responsive to a closure of a switch, a detected ring or an expiration of a timer
US5990516A (en) 1994-09-13 1999-11-23 Kabushiki Kaisha Toshiba MOSFET with a thin gate insulating film
JP2005217436A (ja) * 1994-09-13 2005-08-11 Toshiba Corp 半導体装置および半導体集積回路装置
US5734585A (en) 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
JP3028041B2 (ja) * 1995-02-17 2000-04-04 ヤマハ株式会社 楽音要素抽出装置
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5787294A (en) 1995-10-13 1998-07-28 Vlsi Technology, Inc. System for reducing the power consumption of a computer system and method therefor
US5812860A (en) 1996-02-12 1998-09-22 Intel Corporation Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption
US5784628A (en) * 1996-03-12 1998-07-21 Microsoft Corporation Method and system for controlling power consumption in a computer system
US5940785A (en) 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US5765001A (en) 1996-04-29 1998-06-09 International Business Machines Corporation Computer system which is operative to change from a normal operating state to a suspend state when a power supply thereof detects that an external source is no longer providing power to said power supply at a predetermined level
US6061711A (en) 1996-08-19 2000-05-09 Samsung Electronics, Inc. Efficient context saving and restoring in a multi-tasking computing system environment
JPH1091603A (ja) 1996-09-12 1998-04-10 Fujitsu Ltd デュアルcpuシステムにおける立ち上げ同期確立方法及び異常監視方法
US5870616A (en) 1996-10-04 1999-02-09 International Business Machines Corporation System and method for reducing power consumption in an electronic circuit
US5862368A (en) 1996-12-11 1999-01-19 Dell Usa, L.P. Process to allow automatic microprocessor clock frequency detection and selection
JP3253881B2 (ja) 1997-01-06 2002-02-04 株式会社東芝 コンピュータシステムおよびそのシステムにおけるハイバネーション制御方法
GB2338806A (en) 1997-03-31 1999-12-29 Intel Corp Automatic transitioning between ACPI C3 and C2 states
US6167488A (en) 1997-03-31 2000-12-26 Sun Microsystems, Inc. Stack caching circuit with overflow/underflow unit
US6021500A (en) 1997-05-07 2000-02-01 Intel Corporation Processor with sleep and deep sleep modes
US6223208B1 (en) 1997-10-03 2001-04-24 International Business Machines Corporation Moving data in and out of processor units using idle register/storage functional units
US6205521B1 (en) 1997-11-03 2001-03-20 Compaq Computer Corporation Inclusion map for accelerated cache flush
US5953685A (en) 1997-11-26 1999-09-14 Intel Corporation Method and apparatus to control core logic temperature
US6115763A (en) 1998-03-05 2000-09-05 International Business Machines Corporation Multi-core chip providing external core access with regular operation function interface and predetermined service operation services interface comprising core interface units and masters interface unit
US6408325B1 (en) 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6141762A (en) 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
US6347379B1 (en) 1998-09-25 2002-02-12 Intel Corporation Reducing power consumption of an electronic device
JP2000112585A (ja) * 1998-10-02 2000-04-21 Toshiba Corp システムlsi及びパワーマネジメント方法
US6415388B1 (en) 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US6230274B1 (en) 1998-11-03 2001-05-08 Intel Corporation Method and apparatus for restoring a memory device channel when exiting a low power state
US6272642B2 (en) 1998-12-03 2001-08-07 Intel Corporation Managing a system's performance state
US6535798B1 (en) 1998-12-03 2003-03-18 Intel Corporation Thermal management in a system
US6118306A (en) 1998-12-03 2000-09-12 Intel Corporation Changing clock frequency
US6389556B1 (en) 1999-01-21 2002-05-14 Advanced Micro Devices, Inc. Mechanism to prevent data loss in case of a power failure while a PC is in suspend to RAM state
US6363490B1 (en) 1999-03-30 2002-03-26 Intel Corporation Method and apparatus for monitoring the temperature of a processor
TW425506B (en) 1999-06-11 2001-03-11 Via Tech Inc Voltage switching device for suspending to RAM mode
WO2001001228A1 (fr) 1999-06-29 2001-01-04 Hitachi, Ltd. Systeme lsi
US6571341B1 (en) 1999-07-23 2003-05-27 Intel Corporation Using a hardware-driven event to wake a computer from a sleeping state
US6584573B1 (en) 1999-08-30 2003-06-24 Intel Corporation Placing a computer system into a sleeping state
US6523128B1 (en) 1999-08-31 2003-02-18 Intel Corporation Controlling power for a sleeping state of a computer to prevent overloading of the stand-by power rails by selectively asserting a control signal
TW448352B (en) 1999-09-06 2001-08-01 Via Tech Inc Power-saving device and method for suspend to RAM
US6505216B1 (en) 1999-10-01 2003-01-07 Emc Corporation Methods and apparatus for backing-up and restoring files using multiple trails
JP2003514296A (ja) 1999-11-09 2003-04-15 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの動作パラメータをその環境に従って動的に調節する方法
US6499102B1 (en) 1999-12-29 2002-12-24 Intel Corporation Method of dynamically changing the lowest sleeping state in ACPI
US6550020B1 (en) 2000-01-10 2003-04-15 International Business Machines Corporation Method and system for dynamically configuring a central processing unit with multiple processing cores
US6633987B2 (en) * 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US6543698B1 (en) 2000-04-10 2003-04-08 Heat-N-Glo Fireplace Products, Inc. Fireplace make-up air heat exchange system
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US6691234B1 (en) 2000-06-16 2004-02-10 Intel Corporation Method and apparatus for executing instructions loaded into a reserved portion of system memory for transitioning a computer system from a first power state to a second power state
US6411157B1 (en) * 2000-06-29 2002-06-25 International Business Machines Corporation Self-refresh on-chip voltage generator
US6438658B1 (en) 2000-06-30 2002-08-20 Intel Corporation Fast invalidation scheme for caches
US6748545B1 (en) * 2000-07-24 2004-06-08 Advanced Micro Devices, Inc. System and method for selecting between a voltage specified by a processor and an alternate voltage to be supplied to the processor
WO2002013014A2 (en) 2000-08-04 2002-02-14 Marconi Communications, Inc. System and method for implementing a redundant data storage architecture
US6664775B1 (en) 2000-08-21 2003-12-16 Intel Corporation Apparatus having adjustable operational modes and method therefore
US6941480B1 (en) 2000-09-30 2005-09-06 Intel Corporation Method and apparatus for transitioning a processor state from a first performance mode to a second performance mode
US6678767B1 (en) 2000-10-06 2004-01-13 Broadcom Corp Bus sampling on one edge of a clock signal and driving on another edge
ATE492840T1 (de) 2000-10-31 2011-01-15 Millennial Net Inc Vernetztes verarbeitungssystem mit optimiertem leistungswirkungsgrad
US6988214B1 (en) 2000-11-06 2006-01-17 Dell Products L.P. Processor power state transistions using separate logic control
US6691216B2 (en) 2000-11-08 2004-02-10 Texas Instruments Incorporated Shared program memory for use in multicore DSP devices
US6845432B2 (en) 2000-12-28 2005-01-18 Intel Corporation Low power cache architecture
US6738675B2 (en) 2000-12-30 2004-05-18 Intel Corporation Method, apparatus, and system to reduce microprocessor power dissipation
JP2002215599A (ja) 2001-01-18 2002-08-02 Mitsubishi Electric Corp マルチプロセッサシステムおよびその制御方法
US6883037B2 (en) 2001-03-21 2005-04-19 Microsoft Corporation Fast data decoder that operates with reduced output buffer bounds checking
KR100424484B1 (ko) 2001-07-05 2004-03-24 엘지전자 주식회사 중앙 처리 장치용 전원 공급기
JP4733877B2 (ja) 2001-08-15 2011-07-27 富士通セミコンダクター株式会社 半導体装置
US7539878B2 (en) 2001-09-19 2009-05-26 Freescale Semiconductor, Inc. CPU powerdown method and apparatus therefor
FR2832233B1 (fr) 2001-11-13 2004-01-02 France Telecom Reconfiguration de composants programmables dans un appareil electronique
US6804632B2 (en) * 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6823240B2 (en) 2001-12-12 2004-11-23 Intel Corporation Operating system coordinated thermal management
US6714891B2 (en) 2001-12-14 2004-03-30 Intel Corporation Method and apparatus for thermal management of a power supply to a high performance processor in a computer system
EP1338947A1 (de) 2002-02-22 2003-08-27 Hewlett-Packard Company Leistungszustanduntersystem und Verfahren zur Leistungszustandänderung eines ausgewählten Rechnersystems
US6954864B2 (en) 2002-03-29 2005-10-11 Intel Corporation Method and apparatus for remotely placing a computing device into a low power state
EP1351146A1 (de) 2002-04-04 2003-10-08 Hewlett-Packard Company Leistungssteuerungsvorrichtung und Verfahren mit Stromausfallrückstellung
US6920574B2 (en) 2002-04-29 2005-07-19 Apple Computer, Inc. Conserving power by reducing voltage supplied to an instruction-processing portion of a processor
US6885233B2 (en) 2002-05-02 2005-04-26 Intel Corporation Altering operating frequency and voltage set point of a circuit in response to the operating temperature and instantaneous operating voltage of the circuit
JP2004038642A (ja) * 2002-07-04 2004-02-05 Renesas Technology Corp マルチプロセッサ
US7020786B2 (en) 2002-07-23 2006-03-28 Dell Products L.P. System and method for selecting a voltage output reference
US6983386B2 (en) 2002-08-12 2006-01-03 Hewlett-Packard Development Company, L.P. Voltage management of blades in a bladed architecture system based on thermal and power budget allocation
KR100505638B1 (ko) 2002-08-28 2005-08-03 삼성전자주식회사 워킹 콘텍스트 저장 및 복구 장치 및 방법
US6901298B1 (en) 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
US20050044429A1 (en) 2003-08-22 2005-02-24 Ip-First Llc Resource utilization mechanism for microprocessor power management
US7076672B2 (en) 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
TW575803B (en) * 2002-10-17 2004-02-11 Uniwill Comp Corp The method of managing portable computer power cord
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US7036040B2 (en) 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
US7028196B2 (en) 2002-12-13 2006-04-11 Hewlett-Packard Development Company, L.P. System, method and apparatus for conserving power consumed by a system having a processor integrated circuit
US7010438B2 (en) 2002-12-23 2006-03-07 Power Measurement Ltd. Integrated circuit with power monitoring/control and device incorporating same
US6711447B1 (en) 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7080269B2 (en) 2003-05-15 2006-07-18 International Business Machines Corporation Method and apparatus for implementing power-saving sleep mode in design with multiple clock domains
JP2005011166A (ja) * 2003-06-20 2005-01-13 Renesas Technology Corp 情報処理装置
GB2403561A (en) * 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Power control within a coherent multi-processor system
US7134031B2 (en) 2003-08-04 2006-11-07 Arm Limited Performance control within a multi-processor system
US7412565B2 (en) 2003-08-18 2008-08-12 Intel Corporation Memory optimization for a computer system having a hibernation mode
US7546418B2 (en) 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US7067672B2 (en) * 2003-08-27 2006-06-27 North Carolina State University Regioselective halogenation of nicotine and substituted nicotines
KR100598379B1 (ko) 2003-09-08 2006-07-06 삼성전자주식회사 컴퓨터 시스템 및 그 제어방법
JP4263976B2 (ja) 2003-09-24 2009-05-13 株式会社東芝 オンチップマルチコア型耐タンパプロセッサ
US7174469B2 (en) 2003-09-30 2007-02-06 International Business Machines Corporation Processor power and energy management
US7127560B2 (en) 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7502887B2 (en) 2003-11-12 2009-03-10 Panasonic Corporation N-way set associative cache memory and control method thereof
JP3834323B2 (ja) 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7848718B2 (en) * 2004-05-05 2010-12-07 St-Ericsson Sa Method apparatus comprising integrated circuit and method of powering down such circuit
US7401240B2 (en) * 2004-06-03 2008-07-15 International Business Machines Corporation Method for dynamically managing power in microprocessor chips according to present processing demands
JP4262637B2 (ja) 2004-06-11 2009-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 持ち運び可能で蓋体を開いて使用される電子機器、電子機器の制御方法、およびプログラム
JP4421390B2 (ja) 2004-06-21 2010-02-24 富士通マイクロエレクトロニクス株式会社 半導体集積回路
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7966511B2 (en) 2004-07-27 2011-06-21 Intel Corporation Power management coordination in multi-core processors
US7664970B2 (en) 2005-12-30 2010-02-16 Intel Corporation Method and apparatus for a zero voltage processor sleep state
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US20060143485A1 (en) 2004-12-28 2006-06-29 Alon Naveh Techniques to manage power for a mobile device
US7363523B2 (en) 2004-08-31 2008-04-22 Intel Corporation Method and apparatus for controlling power management state transitions
JP2006045738A (ja) * 2004-08-09 2006-02-16 Yamaha Motor Co Ltd 鞍乗型車両のライダー用衣服
US20060053325A1 (en) 2004-09-03 2006-03-09 Chary Ram V Storing system information in a low-latency persistent memory device upon transition to a lower-power state
US20060059486A1 (en) 2004-09-14 2006-03-16 Microsoft Corporation Call stack capture in an interrupt driven architecture
JP4708752B2 (ja) 2004-09-28 2011-06-22 キヤノン株式会社 情報処理方法および装置
US7389403B1 (en) 2005-08-10 2008-06-17 Sun Microsystems, Inc. Adaptive computing ensemble microprocessor architecture
US20070043965A1 (en) 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
US7356647B1 (en) 2005-08-23 2008-04-08 Unisys Corporation Cache with integrated capability to write out entire cache
KR100680793B1 (ko) 2005-11-21 2007-02-08 기아자동차주식회사 자동차의 휠 조립 장치 및 조립 방법
US8799687B2 (en) 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711691B1 (en) * 1999-05-13 2004-03-23 Apple Computer, Inc. Power management for computer systems
US20030101362A1 (en) * 2001-11-26 2003-05-29 Xiz Dia Method and apparatus for enabling a self suspend mode for a processor

Also Published As

Publication number Publication date
US20160091958A1 (en) 2016-03-31
US20080072088A1 (en) 2008-03-20
US20150052377A1 (en) 2015-02-19
US20120072750A1 (en) 2012-03-22
DE112006003575T5 (de) 2008-11-06
TWI334979B (en) 2010-12-21
CN104965581B (zh) 2018-03-02
US20150006938A1 (en) 2015-01-01
US7664970B2 (en) 2010-02-16
US7953993B2 (en) 2011-05-31
WO2007078925A1 (en) 2007-07-12
US8707066B2 (en) 2014-04-22
US9874925B2 (en) 2018-01-23
CN104965581A (zh) 2015-10-07
CN102306048A (zh) 2012-01-04
KR101021405B1 (ko) 2011-03-14
TW200739332A (en) 2007-10-16
CN101351762A (zh) 2009-01-21
US9870044B2 (en) 2018-01-16
US9141180B2 (en) 2015-09-22
US20140310544A1 (en) 2014-10-16
US20170269672A9 (en) 2017-09-21
US8707062B2 (en) 2014-04-22
DE112006004276A5 (de) 2014-12-04
US9223389B2 (en) 2015-12-29
US20110231681A1 (en) 2011-09-22
KR20080072095A (ko) 2008-08-05
US20130013945A1 (en) 2013-01-10
US20150058667A1 (en) 2015-02-26
US9223390B2 (en) 2015-12-29
JP2009516309A (ja) 2009-04-16
DE112006004276A8 (de) 2016-11-10
US20170017297A1 (en) 2017-01-19
US20100146311A1 (en) 2010-06-10
US9235258B2 (en) 2016-01-12
US9081575B2 (en) 2015-07-14
US9841807B2 (en) 2017-12-12
US20160098075A1 (en) 2016-04-07
US20150169043A1 (en) 2015-06-18
DE112006003575B8 (de) 2016-10-20
US20070157036A1 (en) 2007-07-05
JP4875710B2 (ja) 2012-02-15

Similar Documents

Publication Publication Date Title
DE112006003575B4 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE112006002835B4 (de) Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung
DE112005002027B4 (de) Verfahren und Vorrichtung zur Steuerung von Leistungsverwaltungszustandsübergängen
DE60128396T9 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102009015495B4 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
DE102013224175B4 (de) Niedrig-Leistungs-Zustände für ein Computer-System mit integriertem Basis-Band
DE102012212441B4 (de) Verfahren zum Eintreten in und Verlassen eines Schlafmodus in einer Graphikverarbeitungseinheit
DE112015002522B4 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
US9128703B1 (en) Processor that transitions to an idle mode when no task is scheduled to execute and further enters a quiescent doze mode or a wait mode depending on the value of a reference counter
DE112005003133T5 (de) Verminderung hörbarer Geräusche bei Leitungszustandsübergängen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112020001693T5 (de) Autonomer kernperimeter für prozessorzustände mit geringer leistung
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102020128219A1 (de) System, Einrichtung und Verfahren zur Latenzüberwachung und Reaktion
DE102020127742A1 (de) System, vorrichtung und verfahren für eine global bewusste reaktive lokale leistungssteuerung in einem prozessor

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R130 Divisional application to

Ref document number: 112006004276

Country of ref document: DE

R016 Response to examination communication
R130 Divisional application to

Ref document number: 112006004276

Country of ref document: DE

Effective date: 20141010

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee