-
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 350–340. Ansonsten wird der Interrupt ohne ein ATT-Scharfschalten verarbeitet, 350–360. Falls der Interrupt ein Timer-Interrupt war, wird der Interrupt dennoch entlang des Pfades 340–360 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.