DE112008000603B4 - Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi - Google Patents

Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi Download PDF

Info

Publication number
DE112008000603B4
DE112008000603B4 DE112008000603T DE112008000603T DE112008000603B4 DE 112008000603 B4 DE112008000603 B4 DE 112008000603B4 DE 112008000603 T DE112008000603 T DE 112008000603T DE 112008000603 T DE112008000603 T DE 112008000603T DE 112008000603 B4 DE112008000603 B4 DE 112008000603B4
Authority
DE
Germany
Prior art keywords
processor
timer
power
response
state
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
DE112008000603T
Other languages
English (en)
Other versions
DE112008000603T5 (de
Inventor
Bruce L. Fleming
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 DE112008000603T5 publication Critical patent/DE112008000603T5/de
Application granted granted Critical
Publication of DE112008000603B4 publication Critical patent/DE112008000603B4/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

Verfahren, welches folgende Schritte umfasst: Starten (340) eines Arbeitstakttimers mit einer vorgegebenen Arbeitstaktperiode und einem vorgegebenen Leistungszustand durch einen Prozessor, wobei die vorgegebene Arbeitstaktperiode eine erste Periode, in der sich der Prozessor in einer Vollaktivkondition befindet, und eine zweite Periode umfasst, in der sich der Prozessor in einer Leerlaufkondition befindet; falls der Arbeitstakttimer abläuft (380), Platzieren (320) des Prozessors in den vorgegebenen Leistungszustand in Reaktion auf das Ablaufen des Arbeitstakttimers; und falls der Arbeitstakttimer nicht abgelaufen ist und falls ein Interrupt, welcher kein Timer-Tick-Interrupt ist, empfangen wird, Abbrechen des Arbeitstakttimers in Reaktion auf den Interrupt, welcher kein Timer-Tick-Interrupt ist.

Description

  • Hintergrund
  • Niedrigleistungseigenschaften von prozessorbasierten Plattformen sind nützlich für Mobile Computing, um eine Batterielebensdauer von Geräten wie Notebookcomputern, Handheldcomputern, „Smartphones” u. a. zu erhöhen. In ähnlicher Weise können thermische Anforderungen in prozessorbasierten Plattformen, wie z. B. dicht gepackten Servern es wichtig machen, den Leistungsverbrauch in solchen Umgebungen zu steuern. Leistungseffizienz ist für prozessorbasierte Plattformen im Allgemeinen wichtig, und daher können Eigenschaften zum Unterstützen eines niedrigeren Leistungsverbrauchs in viele verschiedene Arten von Plattformen einbezogen werden. Solche Eigenschaften können z. B. ein Anschneiden oder Ausschalten von Teilbereichen von Logik, ein Herabsetzen einer Betriebsfrequenz, ein Dimmen von Anzeigen, und vieles andere beinhalten. Diese Eigenschaften können in Chipsatz- und Prozessorkerne einbezogen sein.
  • Aktuelle Umsetzungen beruhen auf einem stringenten Steuern von Anwendungen und Diensten, welche auf einer Plattform wie z. B. in aktuellen Designs für mobile Telefone für einen niedrigen Leistungsverbrauch laufen. Dies wird für eine offene Plattform, welche sehr lange Bereitschaftszeiten unterstützen muss, nicht praktisch sein.
  • Die Advanced-Configuration-and-Power-Interface-(ACPI)-Spezifikation definiert eine Betriebssystem-(BS)-geregelte Leistungsmanagementschnittstelle, welche System- und Geräteleistungszustände beinhaltet, wie gut bekannt ist. Die Spezifikation ist unter www.acpi.info auf dem World Wide Web verfügbar.
  • In typischen prozessorbasierten Plattformen gibt es zumindest zwei Arten von Interrupts, welche einen Prozessor veranlassen können, einen Leerlauf- oder Niedrigleistungszustand zu verlassen und aktiv zu werden. Die erste Art von Interrupt wird durch verschiedene Arten von Timern verursacht, welche von einem Betriebssystem verwendet werden können, wie es in der Technik bekannt ist. Andere Arten von Interrupts sind ereignisgesteuert und werden durch Ereignisse verursacht, wie ein externes Eingabeereignis, Fehlerbedingungen u. a.
  • In einigen prozessorbasierten Plattformen kann der Arbeitstakt eines Prozessors variiert werden. Für jede Zeitscheibe kann der Prozessor nur für einen Teil der Zeit in der Zeitscheibe in einem Vollaktivmodus betrieben werden, und für den Rest der Zeit in der Zeitscheibe in einen Leerlauf versetzt sein. Dieser Teil wird als Arbeitstakt bezeichnet.
  • US 2005/0149768 A1 beschreibt ein Verfahren zum Überwachen von Speicher-Transaktionen, welche zwischen einer Peripherie-Vorrichtung und einem Chipsatz übertragen werden, welches dazu führt, dass ein Prozessor in einen C3- oder C4-Leistungszustand eintreten kann, sobald die Puffer-Anforderungen ausstehender Speicher-Transaktionen einen bestimmten Schwellwert überschreiten.
  • Kurze Beschreibung der Figuren
  • 1 zeigt ein prozessorbasiertes System in einer Ausführungsform.
  • 2 zeigt einen Prozessor in einer Ausführungsform.
  • 3 zeigt den Ablauf einer Verarbeitung in einer Ausführungsform.
  • Detaillierte Beschreibung
  • In einigen Ausführungsformen weist eine prozessorbasierte Plattform eine Hardware-Komponente auf, welche als Arbeitstakttimer (ATT) bezeichnet werden kann. Diese Komponente kann in einen Chipsatz als Teil der Leistungsmanagementfunktionalität des Prozessors oder direkt in den Prozessor selbst einbezogen sein oder in eine andere Hardware-Komponente der Plattform.
  • 1 zeigt ein prozessorbasiertes System oder Plattform 100, welches einen Arbeitstakttimer als Teil eines Chipsatzes des Prozessors einbezieht. Das System 100 besteht aus einem Prozessor 105 mit zwei Kernen 140. Der Prozessor ist mit einem internen Speichergerät wie z. B. einem Plattenlaufwerksystem 115 und einem Speicher 110 über einen oder mehrere Busse in einem internen Bussystem 112 verbunden. Das interne Bussystem ist auch mit einem externen Bus oder Bussen 135 verbunden, welches mit Peripheriegeräten wie z. B. einer externen Anzeigevorrichtung 125, externen Massespeichervorrichtungen wie z. B. einem CDROM- oder DVD-RW-Gerät 120 und anderen Peripheriegeräten 130 verbinden kann.
  • Viele verschiedene Ausführungsformen eines prozessorbasierenden Systems wie jenes, welches in 1 gezeigt wird, sind möglich. In einigen Ausführungsformen können mehr oder weniger als zwei Kerne im Prozessor 105 vorhanden sein. Insbesondere kann der Prozessor in einigen Ausführungsformen ein Einzelkernprozessor sein. In noch anderen Ausführungsformen kann ein Multi-Prozessorsystem mit einem Cache-System verwendet werden, welches Threads erlaubt, auf jedem der Prozessoren mit gleichzeitigem, geteiltem Zugriff auf den Cache abzulaufen. Die spezifische Organisation des Speichers, des Speichergerätes und der Peripheriegeräte in einigen Ausführungsformen können sich unterscheiden. In einigen Ausführungsformen können bestimmte Peripheriegeräte ausgelassen sein oder das System kann andere Schnittstellen aufweisen, welche in der Figur nicht gezeigt sind, wie z. B. Netzwerkanschlüsse, Audio I/O und viele andere. Viele andere Ausführungsformen können eingesetzt werden wie es ein Fachkundiger einschätzen würde.
  • Die Plattform, welche in 1 gezeigt ist, beinhaltet einen Chipsatz 117, welcher ebenfalls mit dem Bus 135 verbunden ist, welcher eine Eigenschaft oder Funktionalität der Plattform einschließlich einer Leistungsmanagementfunktionalität steuert. In dieser Ausführungsform kann der Chipsatz einen Arbeitstakttimer (ATT) einbeziehen. Im Allgemeinen dient die ATT-Logik dazu, den Arbeitstakt des Prozessors der Plattform in Antwort auf Leistungsmanagementerfordernisse, Interrupts, thermische Ereignisse neben anderen Parametern zu verwalten.
  • 2 zeigt auf hoher Ebene einige Blockebeneneigenschaften eines Prozessors 218 in der Ausführungsform von 2. Im Allgemeinen kann ein Prozessor wie jener, welcher in 2 bei 218 gezeigt ist, einen Prozessorbus oder -busse aufweisen, wie z. B. jener, welcher bei 237 in 2A angezeigt ist. Ferner kann, wie in 2 gezeigt, ein Prozessor Register 250 in einer oder mehreren Banken aufweisen, und jedes Register kann die Kapazität haben, 32, 64, 128 oder eine andere Anzahl von Datenbits zu speichern, wie bekannt ist. Jede Registerbank kann weiterhin mehrere Register aufweisen, wie z. B. 8, 32, 64 Register. Einige Register können für eine Steuerungs- und Statusverwendung reserviert sein, wie z. B. um die CR-Bits wie in einer x86 Ausführungsform zu speichern. In anderen Ausführungsformen können andere Steuerungsregister und Flags in dem Prozessor gespeichert sein, um verschiedene Betriebsmodi und eine Statuskontrolle zu erlauben, wie in der Technik bekannt ist. Im Allgemeinen würde ein Prozessor wie jener, welcher in der Ausführungsform von 2 gezeigt ist, eine Logik oder eine Logikschalttechnik 230 beinhalten, um Anweisungen und Daten von einem Speicher, einem Cache oder einem anderen Speichergerät zu holen; eine Logik oder eine Logikschalttechnik, um Anweisungen zu decodieren und Ausführungseinheiten wie z. B. 234 um die Anweisungen durchzuführen. Viele Variationen dieser funktionalen Einheiten sind möglich, z. B. kann eine Ausführung in der Ausführungseinheit ge-pipelined sein; oder eine Erwartung und Sprungvorhersage aufweisen; oder andere Eigenschaften, wie sie sich auf einen besonderen Prozessor oder eine Anwendung beziehen, haben. Andere funktionale Logik 265 kann in dem Prozessor vorhanden sein, wie z. B. Logik für arithmetische, grafische Verarbeitung und viele andere spezifische Funktionen des Prozessor wie bekannt ist. Ein boardseitiger Cache 260 kann in einigen Ausführungsformen vorhanden sein. Dieser Cache kann verschiedene Größen aufweisen, wie z. B. 128 MB, 1 GB, etc. wie bekannt ist. Wie zuvor mit Bezug auf 2 angezeigt, weist der Prozessor 218 eine Arbeitstakttimer-(ATT)-Einheit oder eine Logikschaltung 222 auf. Wie mit Bezug auf 1 diskutiert, dient die ATT-Logik im Allgemeinen dazu, den Arbeitstakt des Prozessors der Plattform in Antwort auf Leistungsmanagementerfordernisse, Interrupts, thermische Ereignisse neben anderen Parameter zu verwalten.
  • In jeder der oben diskutierten Ausführungsformen kann der ATT im Zusammenhang mit einer Anweisung des Prozessors verwendet werden, welcher den gewünschten Arbeitstakt des Kerns für eine vorgegebene Zeitscheibe definiert. Während einer normalen Verwendung können prozessorbasierte Systeme gelegentlich in einen groben Leerlaufzustand eintreten. In dieser Ausführungsform würde der Eingang in den groben Leerlaufzustand den ATT, welcher entweder in der Leistungsmanagementlogik des Systems oder des Chipsatzes 117 der Ausführungsform, welche in 1 gezeigt wird, oder in der Prozessorlogik 222, welche in 2 gezeigt ist, enthalten ist, das System veranlassen, einen Niedrigleistungskernzustand zu verwenden. In einem System, welches dem ACPI-Protokoll folgt, kann dieser Zustand der C6-Zustand sein, wie er in der ACPI-Spezifikation definiert ist. Im Allgemeinen könnten Interrupts den Prozessor aus diesem Niedrigleistungsmodus bringen. Eine gemeinsame Quelle solcher Interrupts wäre ein Timer-Tick in einem System in einem solch groben Leerlauf. Die neue Anweisung würde nach dem Entdecken, dass ein Timer-Tick empfangen wurde, während der Kern sich in dem niedrigsten zustandshaltenden Leistungsmodus befand, verwendet werden. Die Anweisung würde den gewünschten Arbeitstakt des Kerns und den Kernleistungsmodus, in welchen eingetreten werden soll, sobald der Arbeitstakt verbraucht ist, anzeigen. Die Anweisung kann dann veranlassen, dass der ATT scharfgeschaltet wird und zu ticken beginnt. Falls die aktiven Threads ausgeführt werden, wenn der Arbeitstakt abläuft, würden die Leistungsmanagementeinrichtungen des Systems den Kern anhalten und den Kern und das System in den vorbestimmten Zustand zwingen, wie z. B. einen C6-Zustand in einem ACPI-konformen System oder seinem Äquivalent in anderen. Nach dem nächsten Timer-Tick-Interrupt, welcher das System aus dem aufgezwungenen Niedrigleistungszustand bringen würde, erschiene es dem BS und jedem ausführenden Thread, dass es das gesamte Quantum verbraucht hätte, und wahrscheinlich an das Ende der umgeplanten Schlange verschoben würde. Falls das Betriebssystem eine Leerlaufbedingung anzeigt, bevor der Arbeitstakt aufgebraucht wurde, könnte der Leistungsmanagementcode in dem Betriebssystem ein Bewegen in einen neuen Niedrigleistungsmodus anfordern. Die Aktion des Anforderns, in den neuen Niedrigleistungsszustand überzugehen, würde den ATT abbrechen.
  • In einigen Ausführungsformen kann eine ATT-Logik einer Plattform ermöglichen, sich schnell auf eine Nicht-Leerlauf- oder begleitete Arbeitslast einzustellen. Diese Art von Arbeitslast kann im Allgemeinen ein externes Ereignis erfordern, um den Übergang zu veranlassen. Dieses externe Ereignis kann in der Form einer Anwendereingabe wie z. B. einem Tastaturereignis, einem Mausereignis, einer Touchscreen-Eingabe, einer Sprachaufnahme neben vielen anderen, einem Leistungsmanagementereignis, wie z. B. einer Veränderung zu einem weniger effizienten und höher performanten Modus, als ein Beispiel, oder einem netzwerkgetriebenen Ereignis wie z. B. einem Stimmanruf, einem Push-Upgrade, oder einer Push-Email vorliegen. In diesem Fall kann jede Interruptquelle, welche kein Timer-Interrupt ist, dann jeden vorher instanziierten Arbeitstakttimer abbrechen. Sobald der ATT abgebrochen ist, darf der Prozessor zeitsensiblen Threads oder Vorgängen, wie z. B. Treiber- und Interrupt-Code nicht erlauben, bis zum Abschluss auszuführen. Anders als Handler für Treiber und externe Interrupts, weisen Timer-Tick-Interrupts oder Threads, welche auf periodischen Timern basieren, typischerweise keine festen Zeitfristen zum Abschließen auf, sondern vielmehr einen festgelegten Satz von Funktionen, von welchen gewünscht ist, dass sie auf eine synchrone Weise abgeschlossen werden, und so bis zu dem folgenden Planungsquantum des BS verzögert oder vorbelegt werden können.
  • Die Funktionalität der ATT-Logik, wie sie entweder in der Plattformhardware oder in der Prozessorhardware enthalten ist, ist in 3 gezeigt. In der Figur wird ein Verarbeiten innerhalb der ATT-Logikschaltung auf einer hohen Ebene gezeigt. Das relevante Verarbeiten beginnt in einem Leerlaufzustand eines prozessorbasierten Systems 310. Leistungsmanagementlogik kann das System dann in einen Zustand niedrigen Leistungsverbrauchs wie z. B. C6 in einer ACPI-konformen Plattform versetzen, 320. Dann kann ein Interrupt ankommen, 330.
  • Falls der Interrupt ein üblicher Perioden- oder Timer-Interrupt ist, 350, wird eine Leistungsmanagementanweisung herausgegeben, den ATT scharf zu schalten und den Niedrigleistungskernzustand zu bestimmen, in welchen der Kern nach dem ATT-Ablauf eintritt, bei 350340. Ansonsten wird der Interrupt ohne ein ATT-Scharfschalten verarbeitet, 350360. Falls der Interrupt ein Timer-Interrupt war, wird der Interrupt dennoch entlang des Pfades 340360 verarbeitet, aber ist einer Unterbrechung und einem Leerlauf durch das ATT-Timer-Ablaufereignis unterworfen, 380. Der Thread, welcher den Interrupt abwickelt, setzt dann in jedem Szenario die Verarbeitung fort, 370.
  • Wenn der ATT abläuft, 380, zwingt er das System in den vorgegebenen Niedrigleistungszustand und das Verarbeiten kehrt in den Zustand bei 320 zurück.
  • In einigen Ausführungsformen kann der ATT auch für ein aktives thermisches Management auf einer Plattform verwendet werden. Thermische Sensoren können in diesen Ausführungsformen als Eingänge für eine Verfahrensweise verwendet werden, welche kontinuierlich den Arbeitstakt des Kerns verändern kann. Dies kann in einigen Ausführungsformen eine schnellere Dissipation von Wärme bereitstellen aufgrund der Fähigkeit, wesentlich den durchschnittlichen Leistungsverbrauch (und eine damit verbundene thermische Generation) der Plattform zu beeinflussen.
  • Die Verwendung des ATT in Ausführungsformen stellt mit geringem Overhead eine Fähigkeit bereit, eine Steuerung hoher Granularität über den Arbeitstakt und eine darauf folgende durchschnittliche Bereitschaftsleistung der Plattform aufrechtzuerhalten. Der ATT erlaubt der Plattform, sich auf die Leerlaufcharakteristiken der Plattform einzustellen, ohne Bereitschafts- und Batterielebenserfordernisse wesentlich zu beeinflussen. Der Mechanismus berücksichtigt auch eine zeitkritische Ausführung sowie eine versetzte Ausführung von Threads bis zu einem Abschluss, sobald die Plattform in einem aktiven Zustand ist.
  • Es sollte bemerkt werden, dass viele Variationen der oben beschriebenen Ausführungsformen möglich sind. Eine ATT-Logik kann in verschiedene Komponenten in verschiedenen Plattformen, z. B. in dem Chipsatz, in dem Prozessor, in BIOS-Firmware, u. a. einbezogen sein. Die tatsächlichen Leistungszustände, welche für eine Plattform für den Leerlaufzustand verfügbar sind, welcher nach einem Timerablauf vorbestimmt ist, können von der Plattform abhängen. Andere Zustände als ACPI-Zustände können in nicht-ACPI konformen Systemen verwendet werden. Viele Variationen der logischen Organisation des Systems in 1 und des Prozessors in 2 sind möglich. Das Ablaufdiagramm von 3 ist auf einer hohen Ebene und kann in einer sehr großen Vielzahl verschiedener Arten in Logikschaltungen, Mikrocode, oder in Programmen, welche in Firmware eingebettet sind, implementiert sein und kann von einem Medium wie z. B. einer Platte oder einem anderen Speichergerät herunterladbar sein.
  • In der vorhergehenden Beschreibung sind zahlreiche spezifische Details zu Zwecken einer Beschreibung dargelegt, um ein gründliches Verstehen der beschriebenen Ausführungsformen zu bieten, dennoch wird ein Fachmann wahrnehmen, dass viele andere Ausführungsformen ohne diese spezifischen Details ausgeführt werden können.
  • Einige Teilbereiche der obigen detaillierten Beschreibung sind vermittels Algorithmen und symbolischer Darstellungen von Operationen auf Datenbits innerhalb eines prozessorbasierten Systems vorgestellt. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, welche von Fachleuten verwendet werden, um am effektivsten den Inhalt ihrer Arbeit anderen Technikern mitzuteilen. Die Operationen sind solche, welche physikalische Manipulationen physikalischer Größen erfordern. Diese Größen können die Form elektrischer, magnetischer, optischer oder anderer physikalischer Signale annehmen, welche fähig sind, gespeichert, übertragen, kombiniert, verglichen und auf andere Weise manipuliert zu werden. Es hat sich zu Zeiten als zweckdienlich erwiesen, vornehmlich aus Gründen einer gemeinsamen Benutzung, diese Signale als Bits, Größen, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder ähnliches zu bezeichnen.
  • Es sollte dennoch berücksichtigt werden, dass all diese und ähnliche Ausdrücke den entsprechenden physikalischen Größen zugeordnet werden sollen und nur zweckdienliche Bezeichnungen sind, welche auf diese Größen angewandt werden. Falls nicht spezifisch anders angegeben, können sich, wie aus der Beschreibung erkennbar, Ausdrücke wie „ausführen” oder „verarbeiten” oder „ausrechnen” oder „berechnen” oder „bestimmen” oder ähnliche auf das Handeln und Prozesse eines prozessorbasierten Systems oder eines ähnlichen elektronischen Berechnungsgerätes, welches Daten, welche als physikalische Größen innerhalb des Speichergerätes des prozessorbasierten Systems dargestellt sind, manipuliert und in andere Daten, welche auf ähnliche Weise dargestellt sind, transformiert, oder eines anderen derartigen Informationsspeichergerätes, Übertragungs- oder Anzeigegerätes beziehen.
  • In der Beschreibung der Ausführungsformen kann auf beigefügte Zeichnungen Bezug genommen sein. In den Zeichnungen beschreiben ähnliche Zahlzeichen im Wesentlichen ähnliche Komponenten in den verschiedenen Ansichten. Andere Ausführungsformen können angewandt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden. Ferner muss verstanden werden, dass die verschiedenen Ausführungsformen, obwohl sie sich unterscheiden, einander nicht notwendigerweise ausschließen. Zum Beispiel kann ein besonderes Merkmal, Struktur oder Charakteristik, welche in einer Ausführungsform beschrieben ist, innerhalb anderer Ausführungsformen eingeschlossen sein.
  • Darüber hinaus kann ein Design einer Ausführungsform, welche in einem Prozessor implementiert ist, durch verschiedene Phasen gehen, von der Erzeugung zur Simulation zur Herstellung. Daten, welche ein Design darstellen, können das Design in einer Anzahl von Weisen darstellen. Zunächst kann die Hardware, wie es in Simulationen nützlich ist, mittels einer Hardwarebeschreibungssprache oder einer anderen funktionalen Beschreibungssprache dargestellt sein. Zusätzlich kann ein Schaltungsebenenmodell mit Logik und/oder Transitorgates in einigen Phasen des Designprozesses hergestellt werden. Darüber hinaus erreichen die meisten Designs in einer Phase eine Ebene, auf welcher Daten die physikalische Platzierung verschiedener Vorrichtungen in dem Hardwaremodell darstellen. In dem Fall, in welchem herkömmliche Halbleiterherstellungstechniken angewandt werden, können Daten, welche ein Hardwaremodell darstellen, die Daten sein, welche die Anwesenheit oder Abwesenheit verschiedener Merkmale auf verschiedenen Maskenebenen für Masken spezifizieren, welche verwendet werden, um die integrierte Schaltung herzustellen. In jeder Darstellung des Designs können die Daten in jeder Form eines maschinenlesbaren Mediums gespeichert sein. Eine optische oder elektrische Welle, welche moduliert oder auf andere Weise erzeugt wird, um solche Informationen zu übertragen, ein Speicher, oder ein magnetisches oder optisches Speichergerät wie z. B. eine Platte können das maschinenlesbare Medium sein. Jedes dieser Medien kann die Design- oder Softwareinformationen „tragen” oder „anzeigen”. Wenn eine elektrische Trägerwelle, welche den Code oder das Design anzeigt oder trägt, übertragen wird, wird eine neue Kopie hergestellt in dem Ausmaß, in welchem ein Kopieren, ein Zwischenspeichern oder eine Neu-Übertragung des elektrischen Signals durchgeführt wird. Daher kann ein Kommunikationsanbieter oder Netzwerkanbieter Kopien eines Artikels (einer Trägerwelle), welcher eine Ausführungsform ausmacht oder darstellt, anfertigen.
  • Ausführungsformen können als ein Programmprodukt bereitgestellt werden, welches ein maschinenlesbares Medium aufweist, auf welchem Daten gespeichert sind, welche, wenn auf sie von einer Maschine zugegriffen wird, die Maschine dazu veranlassen, einen Prozess gemäß des Anspruchsgegenstandes durchzuführen. Das maschinenlesbare Medium kann Floppy-Disketten, optische Platten, DVD-ROM Platten, DVD-RAM Platten, DVD-RW Platten, DVD+RW Platten, CD-R Platten, CD-RW Platten, CD-ROM Platten und magnetooptische Platten, ROMs, RAMs, EPROMs, EEPROMs, magnetische oder optische Karten, Flash-Speicher oder eine andere Art von Medien/maschinenlesbarem Medium, welches für ein Speichern elektronischer Anweisungen geeignet ist, aufweisen, aber ist hierauf nicht beschränkt. Darüber hinaus können Ausführungsformen auch als ein Programmprodukt heruntergeladen werden, wobei das Programm von einer entfernten Datenquelle zu einem anfordernden Gerät mittels Datensignalen übertragen werden kann, welche auf einer Trägerwelle oder einem anderen Ausbreitungsmedium über eine Kommunikationsverbindung (z. B. ein Modem oder eine Netzwerkverbindung) enthalten sind.
  • Viele der Verfahren werden in ihrer grundsätzlichsten Form beschrieben, aber Schritte können jedem der Verfahren hinzugefügt oder daraus gelöscht werden, und Informationen können jeder der beschriebenen Mitteilungen hinzugefügt oder davon abgezogen werden, ohne den grundsätzlichen Anwendungsbereich des Anspruchsgegenstandes zu verlassen. Es wird für die Fachleute erkennbar sein, dass viele weitere Modifikationen und Anpassungen vorgenommen werden können.

Claims (20)

  1. Verfahren, welches folgende Schritte umfasst: Starten (340) eines Arbeitstakttimers mit einer vorgegebenen Arbeitstaktperiode und einem vorgegebenen Leistungszustand durch einen Prozessor, wobei die vorgegebene Arbeitstaktperiode eine erste Periode, in der sich der Prozessor in einer Vollaktivkondition befindet, und eine zweite Periode umfasst, in der sich der Prozessor in einer Leerlaufkondition befindet; falls der Arbeitstakttimer abläuft (380), Platzieren (320) des Prozessors in den vorgegebenen Leistungszustand in Reaktion auf das Ablaufen des Arbeitstakttimers; und falls der Arbeitstakttimer nicht abgelaufen ist und falls ein Interrupt, welcher kein Timer-Tick-Interrupt ist, empfangen wird, Abbrechen des Arbeitstakttimers in Reaktion auf den Interrupt, welcher kein Timer-Tick-Interrupt ist.
  2. Verfahren nach Anspruch 1, welches weiterhin umfasst: Ausführen einer Anweisung zum Starten (340) des Arbeitstakttimers des Prozessors durch den Prozessor.
  3. Verfahren nach Anspruch 1, welches weiterhin umfasst: Starten (340) des Arbeitstakttimers durch den Prozessor in Reaktion auf ein Empfangen eines Timer-Tick-Interrupts in einem Niedrigleistungszustand.
  4. Verfahren nach Anspruch 1, welches weiterhin umfasst: Abbrechen des Arbeitstakttimers durch den Prozessor in Reaktion darauf, dass ein Anzeigen der Leerlaufkondition durch den Prozessor empfangen wird.
  5. Verfahren nach Anspruch 1, welches weiterhin umfasst: Starten (340) des Arbeitstakttimers durch den Prozessor in Reaktion auf ein Empfangen (330) eines Timer-Tick-Interrupts in einem Niedrigleistungszustand.
  6. Verfahren nach Anspruch 1, welches weiterhin umfasst: Starten (340) des Arbeitstakttimers durch den Prozessor in Reaktion auf ein Feststellen einer Änderung eines thermischen Zustands des Prozessors in einen Zustand außerhalb eines vorgegebenen Bereichs thermischer Zustände; und Abbrechen des Arbeitstakttimers in Reaktion darauf, dass der thermische Zustand des Prozessors in einen Zustand innerhalb des vorgegebenen Bereichs thermischer Zustände zurückkehrt.
  7. Verfahren nach Anspruch 1, wobei der Arbeitstakttimer in Logikschaltungen des Prozessors einbezogen ist.
  8. Verfahren nach Anspruch 1, wobei der Prozessor und der Arbeitstakttimer Hardwarekomponenten einer prozessorbasierten Plattform sind.
  9. Prozessor, welcher Folgendes umfasst: einen Prozessorbus (237); eine Fetchlogik (230), um eine Anweisung zu empfangen und einen Operanden zu empfangen; eine Decodierlogik (232), um die Anweisung zu decodieren; und eine Logikschaltung (234), um zumindest teilweise in Reaktion auf das Decodieren der Anweisung Folgendes auszuführen: Starten eines Arbeitstakttimers (222) mit einer vorgegebenen Arbeitstaktperiode und einem vorgegebenen Leistungszustand, wobei die vorgegebene Arbeitstaktperiode eine erste Periode, in der sich der Prozessor in einer Vollaktivkondition befindet, und eine zweite Periode umfasst, in der sich der Prozessor in einer Leerlaufkondition befindet; falls der Arbeitstakttimer (222) abläuft, Platzieren des Prozessors in den vorgegebenen Leistungszustand in Reaktion auf das Ablaufen des Arbeitstakttimers (222); und falls der Arbeitstakttimer (222) nicht abgelaufen ist und falls ein Interrupt, welcher kein Timer-Tick-Interrupt ist, empfangen wird, Abbrechen des Arbeitstakttimers (222) in Reaktion auf den Interrupt, welcher kein Timer-Tick-Interrupt ist.
  10. Prozessor nach Anspruch 9, wobei die Logikschaltung (234) eine Logikschaltung umfasst, welche zumindest teilweise basierend auf Mikrocode-Anweisungen arbeitet.
  11. Prozessor nach Anspruch 9, wobei die Logikschaltung (234) ferner ein Starten des Arbeitstakttimers (222) in Reaktion auf ein Empfangen eines Timer-Tick-Interrupts in einem Niedrigleistungszustand durchführt.
  12. Prozessor nach Anspruch 9, wobei die Logikschaltung (234) ferner ein Abbrechen des Arbeitstakttimers (222) in Reaktion darauf durchführt, dass ein Anzeigen der Leerlaufkondition durch den Prozessor empfangen wird.
  13. Prozessor nach Anspruch 9, wobei die Logikschaltung (234) ferner ein Starten des Arbeitstakttimers (222) als Reaktion auf ein Empfangen eines Timer-Tick-Interrupts in einem Niedrigleistungszustand durchführt.
  14. Prozessor nach Anspruch 9, wobei die Logikschaltung (234) ferner ein Starten des Arbeitstakttimers (222) in Reaktion auf ein Feststellen einer Änderung eines thermischen Zustands des Prozessors in einen Zustand außerhalb eines vorgegebenen Bereichs thermischer Zustände durchführt, und ein Abbrechen des Arbeitstakttimers (222) in Reaktion darauf durchführt, dass der thermische Zustand des Prozessors in einen Zustand innerhalb des vorgegebenen Bereichs thermischer Zustände zurückkehrt.
  15. Prozessor nach Anspruch 9, wobei der Prozessor ein x86-Prozessor ist; und der vorgegebene Leistungszustand ein ACPI-Leistungszustand ist.
  16. Prozessor nach Anspruch 15, wobei die Anweisung zumindest teilweise auf einer MWAIT-Anweisung basiert; und der vorgegebene Leistungszustand ein C6-Leistungszustand ist.
  17. Plattform, welche Folgendes umfasst: einen Prozessor (105); einen Speicher (110); einen Bus (112), welcher den Prozessor (105) und den Speicher (110) verbindet; wobei der Prozessor (105) weiterhin Folgendes umfasst: einen Prozessorbus; eine Fetchlogik, um eine Anweisung zu empfangen und einen Operanden zu empfangen; eine Decodierlogik, um die Anweisung zu decodieren; und eine Logikschaltung, um zumindest teilweise in Reaktion auf das Decodieren der Anweisung Folgendes durchzuführen: Starten eines Arbeitstakttimers mit einer vorgegebenen Arbeitstaktperiode und einem vorgegebenen Leistungszustand, wobei die vorgegebene Arbeitstaktperiode eine erste Periode, in der sich der Prozessor (105) in einer Vollaktivkondition befindet, und eine zweite Periode umfasst, in der sich der Prozessor (105) in einer Leerlaufkondition befindet; falls der Arbeitstakttimer abläuft, Platzieren des Prozessors (105) in den vorgegebenen Leistungszustand in Reaktion auf das Ablaufen des Arbeitstakttimers; und falls der Arbeitstakttimer nicht abgelaufen ist und falls ein Interrupt, welcher kein Timer-Tick-Interrupt ist, empfangen wird, Abbrechen des Arbeitstakttimers.
  18. Plattform nach Anspruch 17, wobei die Logikschaltung weiterhin ein Starten des Arbeitstakttimers in Reaktion auf ein Empfangen eines Timer-Tick-Interrupts in einem Niedrigleistungszustand durchführt.
  19. Plattform nach Anspruch 17, wobei die Logikschaltung weiterhin ein Abbrechen des Arbeitstakttimers in Reaktion darauf durchführt, dass ein Anzeigen der Leerlaufkondition durch den Prozessor (105) empfangen wird.
  20. Plattform nach Anspruch 17, wobei: die Logikschaltung weiterhin ein Starten des Arbeitstakttimers in Reaktion auf ein Feststellen einer Änderung eines thermischen Zustands des Prozessors (105) oder Systems durchführt; und ein Abbrechen des Arbeitstakttimers in Reaktion darauf durchführt, dass der thermische Zustand des Prozessors (105) in einen Zustand innerhalb des vorgegebenen Bereichs thermischer Zustände zurückkehrt.
DE112008000603T 2007-03-29 2008-03-25 Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi Expired - Fee Related DE112008000603B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/729,792 US7774626B2 (en) 2007-03-29 2007-03-29 Method to control core duty cycles using low power modes
US11/729,792 2007-03-29
PCT/US2008/058161 WO2008121624A1 (en) 2007-03-29 2008-03-25 A method to control core duty cycles using low power modes

Publications (2)

Publication Number Publication Date
DE112008000603T5 DE112008000603T5 (de) 2010-02-25
DE112008000603B4 true DE112008000603B4 (de) 2013-03-14

Family

ID=39796358

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008000603T Expired - Fee Related DE112008000603B4 (de) 2007-03-29 2008-03-25 Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi

Country Status (5)

Country Link
US (1) US7774626B2 (de)
CN (1) CN101657783B (de)
DE (1) DE112008000603B4 (de)
TW (1) TWI360777B (de)
WO (1) WO2008121624A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774626B2 (en) 2007-03-29 2010-08-10 Intel Corporation Method to control core duty cycles using low power modes
US8064197B2 (en) 2009-05-22 2011-11-22 Advanced Micro Devices, Inc. Heat management using power management information
JP4894961B1 (ja) * 2011-03-15 2012-03-14 オムロン株式会社 Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体
JP5994157B2 (ja) * 2011-07-26 2016-09-21 マーベル ワールド トレード リミテッド 即座にonになるゼロ電力のハイバーネイトモード
US9992745B2 (en) * 2011-11-01 2018-06-05 Qualcomm Incorporated Extraction and analysis of buffered audio data using multiple codec rates each greater than a low-power processor rate
KR20180137041A (ko) 2011-12-07 2018-12-26 퀄컴 인코포레이티드 디지털화된 오디오 스트림을 분석하는 저전력 집적 회로
US9195285B2 (en) * 2012-12-27 2015-11-24 Intel Corporation Techniques for platform duty cycling
WO2015004500A1 (en) * 2013-07-09 2015-01-15 Freescale Semiconductor, Inc. Method and apparatus for controlling an operating mode of a processing module
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US10467011B2 (en) 2014-07-21 2019-11-05 Intel Corporation Thread pause processors, methods, systems, and instructions
US9848515B1 (en) 2016-05-27 2017-12-19 Advanced Micro Devices, Inc. Multi-compartment computing device with shared cooling device
US11080095B2 (en) 2017-06-04 2021-08-03 Apple Inc. Scheduling of work interval objects in an AMP architecture using a closed loop performance controller
US11137815B2 (en) * 2018-03-15 2021-10-05 Nvidia Corporation Metering GPU workload with real time feedback to maintain power consumption below a predetermined power budget

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149768A1 (en) * 2003-12-30 2005-07-07 Kwa Seh W. Method and an apparatus for power management in a computer system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69415284T2 (de) * 1993-11-23 1999-08-19 Advanced Micro Devices Inc Leistungssteuerungssysteme für Rechner
EP0666530A3 (de) * 1994-02-02 1996-08-28 Advanced Micro Devices Inc Periodische Systemverwaltungsinterruptquelle und Leistungsverwaltungssystem unter dessen Verwendung.
KR960012838B1 (ko) * 1994-06-20 1996-09-24 삼성전자 주식회사 스톱 클럭 제어장치와 그 방법
KR19990054607A (ko) 1997-12-26 1999-07-15 윤종용 컴퓨터에서의 휴식모드 제어방법 및 그 장치
EP1164460A4 (de) * 2000-01-13 2008-12-10 Access Co Ltd Rechnersystem und stromsparendes steuerumgsverfahren
US7082542B2 (en) * 2001-12-21 2006-07-25 Intel Corporation Power management using processor throttling emulation
CN1924761A (zh) * 2005-08-31 2007-03-07 松下电器产业株式会社 数据处理装置、程序、记录介质和内容回放装置
US7774626B2 (en) 2007-03-29 2010-08-10 Intel Corporation Method to control core duty cycles using low power modes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050149768A1 (en) * 2003-12-30 2005-07-07 Kwa Seh W. Method and an apparatus for power management in a computer system

Also Published As

Publication number Publication date
CN101657783A (zh) 2010-02-24
CN101657783B (zh) 2012-06-27
US20080244285A1 (en) 2008-10-02
TW200847012A (en) 2008-12-01
WO2008121624A1 (en) 2008-10-09
DE112008000603T5 (de) 2010-02-25
US7774626B2 (en) 2010-08-10
TWI360777B (en) 2012-03-21

Similar Documents

Publication Publication Date Title
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
Rzadca et al. Autopilot: workload autoscaling at google
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE112011105298B4 (de) Reduzieren des Energieverbrauchs von Uncore-Schaltkreisen eines Prozessors
DE112006002835B4 (de) Verfahren und System zum Optimieren der Latenz bei dynamischer Speichereinteilung
CN102057344B (zh) 睡眠处理器
DE60223830T2 (de) Selektives suspendieren von bus-einrichtungen
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE112017000721T5 (de) Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene
DE102013104329B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112011103216T5 (de) Scheduling von Anwendungen in heterogenen Multiprozessorcomputerplattformen
DE102010034555A1 (de) Bereitstellen von Zustandsspeicher in einem Prozessor für Systemmanagement-Modus
DE112011103194B4 (de) Koordinieren von Gerät- und Anwendungsunterbrechungsereignissen zum Plattformenergiesparen
DE102013104328A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112006003575T5 (de) Verfahren und Vorrichtung für einen Nullspannungs-Prozessorschlafzustand
DE112011105590T5 (de) Energieeffiziente Prozessorarchitektur
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE112011100743T5 (de) Datenverarbeitungsvorrichtung und -verfahren zum Übertragen einer Arbeitslast zwischen Quell- und Zielverarbeitungsschaltkreisen
DE112011100744T5 (de) Datenverarbeitungsvorrichtung und -Verfahren zum Schalten einer Arbeitslast zwischen ersten und zweiten Verarbeitungsschaltkreisen
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final

Effective date: 20130615

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee