-
STAND DER TECHNIK
-
Technisches Gebiet
-
Ausführungsformen betreffen allgemein die Verwaltung von Plattformunterbrechungsereignissen. Insbesondere betreffen Ausführungsformen das Koordinieren der Ausgabe von Unterbrechungsereignissen von verschiedenen Quellen zum Verbessern von Plattformenergieeinsparungen.
-
Erörterung
-
In gebräuchlichen Mobile-Computing-Plattformen können mehrere Eingabe/Ausgabe-Geräte (E/A) (z. B. Kommunikationsschnittstellen) und Software-Anwendungen dazu tendieren, unkoordinierte Unterbrechungsereignisse zu erzeugen, was einen schnellen Eintritt der Plattform und ihrer Komponenten in niedrigere Energiezustände und ihr Verbleiben in diesen Zuständen während längerer Zeiträume verhindern kann. Tatsächlich kann die Tatsache, dass die Plattform häufiger als notwendig in hohen Energiezuständen verbleibt, eine kürzere und suboptimale Batteriebetriebszeit zur Folge haben.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die verschiedenen Vorteile der Ausführungsformen der vorliegenden Erfindung sind für den Fachmann aus der Lektüre der folgenden Beschreibung und der beigefügten Ansprüche und unter Bezugnahme auf die folgenden Zeichnungen ersichtlich; es zeigen:
-
1 ein Blockdiagramm eines Beispiels mehrerer koordinierter Unterbrechungsereignisse gemäß einer Ausführungsform;
-
2 ein Blockdiagramm eines Beispiels einer Unterbrechungsereignis-Verwaltungseinheit gemäß einer Ausführungsform;
-
3 ein Ablaufdiagramm eines Beispiels eines Verfahrens zum Koordinieren der Ausgabe von Unterbrechungsereignissen gemäß einer Ausführungsform;
-
4 ein Blockdiagramm einer Unterbrechungsereignis-Verwaltungseinheit und mehrerer Vereinigungseinheiten gemäß einer Ausführungsform; und
-
5 ein Blockdiagramm eines Beispiels einer Plattform gemäß einer Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen können ein Verfahren bereitstellen, in dem ein erstes Unterbrechungsereignis von einer ersten Ereignisquelle ermittelt wird und ein zweites Unterbrechungsereignis von einer zweiten Ereignisquelle ermittelt wird. Das Verfahren kann auch das Koordinieren der Ausgabe des ersten und des zweiten Unterbrechungsereignisses an eine Plattform zumindest teilweise auf der Grundlage von der Plattform zugehörigen Laufzeitinformationen bereitstellen.
-
Andere Ausführungsformen können einen maschinenlesbaren Datenträger umfassen, der eine Menge von Befehlen aufweist, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass ein Computer ein erstes Unterbrechungsereignis von einer ersten Ereignisquelle ermittelt und ein zweites Unterbrechungsereignis von einer zweiten Ereignisquelle ermittelt. Die Befehle können auch bewirken, dass ein Computer die Ausgabe des ersten und des zweiten Unterbrechungsereignisses an eine Plattform zumindest teilweise auf der Grundlage von der Plattform zugehörigen Laufzeitinformationen bewirkt.
-
Zusätzlich können Ausführungsformen eine Vorrichtung umfassen, die ein Eingabe/Ausgabe Modul (E/A) mit Logik zum Ermitteln eines ersten Unterbrechungsereignisses von einer ersten Ereignisquelle und zum Ermitteln eines zweiten Unterbrechungsereignisses von einer zweiten Ereignisquelle aufweist. Die Logik kann auch die Ausgabe des ersten und des zweiten Unterbrechungsereignisses an eine Plattform zumindest teilweise auf der Grundlage von der Plattform zugehörigen Laufzeitinformationen koordinieren.
-
Ausführungsformen können auch ein System umfassen, das eine erste Ereignisquelle, eine zweite Ereignisquelle, einen Prozessor und ein an den Prozessor gekoppeltes Eingabe/Ausgabe-Modul (E/A) aufweist. Das E/A-Modul kann Logik zum Ermitteln eines ersten Unterbrechungsereignisses von der ersten Ereignisquelle und zum Ermitteln eines zweiten Unterbrechungsereignisses von einer zweiten Ereignisquelle aufweisen. Zusätzlich kann die Logik die Ausgabe des ersten und des zweiten Unterbrechungsereignisses an das System zumindest teilweise auf der Grundlage von dem System zugehörigen Laufzeitinformationen koordinieren.
-
Mit Bezug auf 1 sind mehrere Unterbrechungsereignisse 10 (10a bis 10f) von verschiedenen Quellen (z. B. Energieverwaltungseinheiten) vor und nach dem Koordinieren der Ausgabe der Unterbrechungsereignisse 10 an eine Plattform gezeigt. Im veranschaulichten Beispiel wird für eine Zeitinstanz t1 ein Eingabe/Ausgabeereignis (E/A) (z. B. Unterbrechung) von einem Gerät, wie beispielsweise einer Maus, angefordert und ein Zeitgeberereignis 10b von einer aktiven Anwendung, die auf der Plattform ausgeführt wird, für die Zeitinstanz t2 angefordert. Zusätzlich können eine Reihe von E/A-Ereignissen 10c von einem anderen Gerät, wie beispielsweise einer Netzwerkkarte (Network Interface Card – NIC) für die Zeitinstanz t3 angefordert werden. Wie später ausführlicher erörtert wird, können die E/A-Ereignisse 10c selbst durch eine Vereinigungseinheit, die entweder auf der NIC oder an einem zentralen Ort angeordnet ist, zusammen gruppiert werden. Ein E/A-Ereignis 10d von einem Audiogerät kann auch für die Zeitinstanz t4 angefordert werden. Zusätzlich zeigt das veranschaulichte Beispiel die Ermittlung von Zeitgeberereignissen 10e und 10f von aktiven Anwendungen für die Zeitinstanzen t5 beziehungsweise t6 auf. In ihrem nativen Zustand könnten die Unterbrechungsereignisse 10 ein Zeitprofil aufweisen, das verhindern würde, dass die Plattform während langer Zeiträume in bestimmte Energiesparzustände eintritt.
-
Dementsprechend kann die Ausgabe der Unterbrechungsereignisse 10 an die Plattform koordiniert werden, um es der Plattform zu ermöglichen, den Stromverbrauch zu senken. Zum Beispiel wird das veranschaulichte E/A-Ereignis 10a von der Maus derart bis zu einer verzögerten Zeitinstanz t1d verzögert, dass es mit der Ausgabe des Anwendungszeitgeberereignisses 10b abgestimmt ist, das an einer verzögerten Zeitinstanz t2d ausgegeben werden kann. In einem anderen Beispiel kann das Zeitgeberereignis 10b ein nicht verzögerbares Ereignis sein. In einem solchen Fall kann das E/A-Ereignis 10a verzögert werden, während das Zeitgeberereignis 10b ausgegeben werden könnte, wie geplant. In beiden Fällen kann ein längerer Ruhezustandszeitraum 12 erzeugt werden, während die Plattform aufgrund des längeren Zeitraums 12 schneller und während längerer Zeiträume in tiefere Stromsparzustände eintreten kann (z. B. ACPI/Advanced Configuration and Power Interface Specification, ACPI Specification, Rev. 4.0, June 16, 2009, low power states). Zusätzlich können die E/A-Ereignisse 10c von der NIC mit dem E/A-Ereignis 10d vom Audiogerät an verzögerten Zeitinstanzen t3d beziehungsweise t4d abgestimmt werden, um einen weiteren längeren Zeitraum 14 zu erzeugen. Auf ähnliche Weise können die Anwendungszeitgeberereignisse 10e und 10f auf Zeitinstanzen t5d beziehungsweise t6d verzögert werden, was einen längeren Zeitraum 16 ergeben kann. Einfach ausgedrückt, können die längeren Zeiträume 12, 14 und 16 verbesserte Plattformenergieeinsparungen und eine längere Batteriebetriebszeit ermöglichen.
-
2 zeigt eine Unterbrechungsereignis-Verwaltungseinheit (BMU) 18, die Unterbrechungsereignisse 20 ermitteln kann und sie zumindest teilweise auf der Grundlage von Laufzeitinformationen 24, die einer/einem Plattform/Betriebssystem (OS) 26 zugehörig sind, als koordinierte Unterbrechungsereignisse 22 abstimmen kann. Die BMU 18 kann in einem Modul der Plattform 26, wie beispielsweise einer Systemsteuereinheit (System Control Unit – SCU) einer Plattform für ein mobiles Internetgerät (Mobile Internet Device – MID) oder einem Platform Controller Hub (PCH) einer Laptop-Platform ausgeführt sein. Tatsächlich kann die BMU 18 sich im Kernraum des Betriebssystems (OS) mit leicht unterschiedlichen Schnittstellen- und Ausführungstechniken oder im Benutzerraum befinden. Im veranschaulichten Beispiel können die Laufzeitinformationen 24 von den Quellen 28 der Unterbrechungsereignisse 20 wie auch von der Plattform 26 selbst erhalten werden. Zum Beispiel können Laufzeitinformationen 24, die von einem Gerät erhalten werden, das an die Plattform gekoppelt ist, Angaben zur Dienstgüte (Quality of Service – QoS) umfassen, die eine maximale Verzögerungszeit für eines oder mehrere E/A-Ereignisse bestimmen. Zusätzlich könnten Laufzeitinformationen 24, die von einer Anwendung erhalten werden, eine Verzögerungsfähigkeitseigenschaft von einem oder mehreren Zeitgeberereignissen bestimmen. Wenn zum Beispiel ein Zeitgeberereignis nicht verzögert werden kann, kann die BMU 18 versuchen, andere Unterbrechungsereignisse mit dem nicht verzögerbaren Unterbrechungsereignis abzustimmen. Anderenfalls könnte die BMU 18 die Zeitgeberereignisse für eine optimale Plattformenergieersparnis und -leistung verwalten.
-
Als Beispiel kann die BMU 18, wenn eine Anwendung anfordert, dass ein Zeitgeberereignis alle 50 ms eintritt, das auf eine maximale Häufigkeit von alle 100 ms verzögert werden kann, das Zeitgeberereignis alle 100 ms auslösen, während die Plattform 26 relativ inaktiv ist. Wenn die Plattform 26 indes aufgrund von durch andere Quellen erzeugten Unterbrechungsereignissen aktiver wird, könnte die BMU 18 die Ausgabe der Zeitgeberereignisse in Richtung der 50 ms anpassen, um ohne negative Auswirkungen auf den Energieverbrauch eine bessere Leistung der Anwendung zu erzielen.
-
Zusätzlich kann die Plattform 26 Laufzeitinformationen 24 in der Form einer Break-Even-Zeit eines niedrigen Energiezustands, programmierbaren Leistungsanforderungen und so weiter bereitstellen. Die Break-Even-Zeit des niedrigen Energiezustands kann den Betrag der Zeit angeben, während der die Plattform 26 in einem bestimmten niedrigen Energiezustand bleiben sollte, um den Mehrverbrauch an Energie auszugleichen/zu amortisieren, der mit dem Eintritt in den und dem Austritt aus dem niedrigen Energiezustand verbunden ist. Wie später ausführlicher erörtert wird, kann die BMU 18 die Break-Even-Zeit für den niedrigen Energiezustand verwenden, um eine Haltezeit für jedes verzögerte Unterbrechungsereignis zu bestimmen. In dieser Hinsicht können die Vorteile des Energiesparens rasch abnehmen, wenn die Haltezeit viel länger wird als die Break-Even-Zeit, während die Leistung beträchtlich nachlassen kann. Daher kann die BMU 18 auf der Grundlage der Break-Even-Zeit und der gewünschten Leistung eine vernünftige Haltezeit bestimmen.
-
Die programmierbaren Leistungsanforderungen könnten durch einen Benutzer der Plattform 26 definiert werden. So kann die Haltezeit, wenn der Benutzer eine höhere Leistung bevorzugt, niedriger eingestellt werden, um eine schnellere Reaktion und eine verbesserte Leistung (bei möglichem Verlust einiger Gelegenheiten zum Energiesparen) bereitzustellen. Wenn der Benutzer andererseits eine längere Batteriebetriebszeit fordert, kann die Haltezeit auf einen relativ längeren Wert eingestellt werden, um für die Plattform 26 mehr Gelegenheiten zum Verbleiben in niedrigeren Energiezuständen bereitzustellen.
-
Nun wird mit Bezug auf 3 ein Beispiel für ein Verfahren 30 zum Koordinieren der Ausgabe von Unterbrechungsereignissen gezeigt. Das Verfahren 30 kann in Hardware mit fester Funktion unter Verwendung von Schaltungstechnologien, wie beispielsweise ASIC, komplementärer Metalloxid-Halbleiter-(Complementary Metal Oxide Semiconductor – CMOS), oder Transistor-Transistor-Logik-(TTL)Technologie, in ausführbarer Software, wie beispielsweise einer Menge von Firmware- und/oder logischen Befehlen, die in einem maschinen- oder computerlesbaren Datenträger von einem Speicher, wie beispielsweise einem Schreib-Lesespeicher mit wahlfreiem Zugriff (Random Access Memory – RAM), einem Nur-Lese-Speicher (Read-Only Memory – ROM), einem programmierbaren ROM (PROM) einem Flash-Speicher, usw. oder einer Kombination davon gespeichert sind, ausgeführt werden. Der Verarbeitungsblock 32 sorgt für das Erfassen von Laufzeitinformationen von Geräten, Anwendungen und der Plattform und das Bestimmen einer Haltezeit auf der Grundlage der Laufzeitinformationen. Wie bereits erwähnt, kann die Bestimmung der Haltezeit Break-Even-Zeiten für niedrige Energie und programmierbare Leistungsanforderungen sowie maximale Verzögerungszeiten für E/A-Ereignisse und Verzögerungsfähigkeitseigenschaften von Zeitgeberereignissen berücksichtigen.
-
Wenn in Block 34 ein Unterbrechungsereignis ermittelt wird, kann im Block 36 eine Bestimmung vorgenommen werden, ob die Haltezeit abgelaufen ist. Wenn nicht, kann das Unterbrechungsereignis im Block 38 verzögert werden. Die Verzögerung des Unterbrechungsereignisses könnte in Abhängigkeit von den Umständen auf eine Anzahl von verschiedenen Arten bewerkstelligt werden. Zum Beispiel könnte das Unterbrechungsereignis in einer Warteschlange untergebracht werden, wobei die Warteschlange in der BMU 18 (2), in dem Gerät, das das Unterbrechungsereignis ausgibt, in einer dem Gerät zugehörigen Vereinigungseinheit und so weiter angeordnet sein könnte. Tatsächlich könnte das Unterbrechungsereignis, wenn das Unterbrechungsereignis einer Bus-Master-Transaktion (z. B. DMA/direkter Speicherzugriff) zugehörig ist, durch Deaktivieren eines PCIe (Peripheral Components Interconnext Express) OBFF (Opportunistic Buffer Flush/Fill) Signals verzögert werden, um das Quellgerät darüber zu informieren, dass der PCIe-Bus nicht verfügbar ist.
-
Wenn entweder in Block 40 ein nicht verzögerbares Unterbrechungsereignis ermittelt oder in Block 36 bestimmt wird, dass die Haltezeit abgelaufen ist, können in Block 42 alle verzögerten Unterbrechungsereignisse freigegeben/ausgegeben werden. Der veranschaulichte Block 44 stellt die Planung der nächsten Haltezeit auf der Grundlage der erfassten Laufzeitinformationen bereit. Wie bereits erwähnt, kann die Haltezeit dynamisch angepasst werden. Die Plattform-Energieverwaltungseinheit kann in Block 46 über die nächste Haltezeit informiert werden.
-
4 zeigt ein System 48, in dem eine BMU 50 an einen Prozessor/eine Plattform 52 gekoppelt ist, die verschiedene Unterbrechungsereignisse von Anwendungszeitgebern 54 und Geräten 56 (56a bis 56c) empfängt, wobei die Unterbrechungsereignisse bewirken können, dass der Prozessor/die Plattform 52 aus einem oder mehreren niedrigen Energiezuständen austritt (oder den Eintritt in diese/n verhindert). Im veranschaulichten Beispiel können die Vereinigungseinheiten 58 verwendet werden um die Anzahl der Unterbrechungsereignisse zu vermindern, indem sie zum Beispiel mehrere Pakete, die anderenfalls mehrere Unterbrechungsereignisse bewirken würden, zu einem einzigen Unterbrechungsereignis verbinden. Die Vereinigungseinheiten 58 können daher für Kommunikationsgeräte, wie beispielsweise Netzsteuerungen, besonders nützlich sein, obgleich auch andere Geräte und Anwendungen einen Nutzen aus dem Vereinigungsverfahren ziehen können.
-
Beginnend von der Initialisierungsphase an einem Boot-Zeitpunkt können die Vereinigungseinheiten 58 Systemparameter, wie beispielsweise Richtlinien für Programmeingriffe, Gerätepuffergrößen, Gerätelatenzzeit-Toleranzanforderungen, usw. erhalten oder bereits kennen. Diese Parameter können durch die Vereinigungseinheiten 58 verwendet werden, um eine anfängliche geräte/anwendungsbasierte Haltezeit zu bestimmen, die später auf der Grundlage des Laufzeitverhaltens nach Bedarf angepasst werden kann. Während der Laufzeit können die Vereinigungseinheiten 58 jedes unterbrechungsereignisfähige Gerät verfolgen, um zu bestimmen, ob das Gerät während eines vorhergehend bestimmten Zeitraums ruhig gewesen ist (d. h. während mindestens α ms keine Unterbrechungen erzeugt hat). Bei einer solchen Inaktivität kann die betreffende Vereinigungseinheit 58 (z. B. während β ms) in ein Halteintervall eintreten, in dem keine Unterbrechungen von dieser bestimmten Quelle bis zur BMU 50 und/oder dem/der Prozessor/Plattform 52 weitergeleitet werden. Dieser Ansatz kann auf der Grundlage jedes Geräts oder jeder Anwendung und mit verschiedenen Parametern für jedes Gerät/jede Anwendung ausgeführt werden. Zusätzlich können bestimmte Strategien verwendet werden, um die Vereinigungseinheit 58 zu umgehen, wie zum Beispiel Hochleistungs-/Benchmarking-Betriebsmodi, usw.
-
Während die Vereinigungseinheiten 58 in den Geräten 56 und dem Anwendungszeitgeber 54 ausgeführt werden könnten, könnte ihre Unterbringung in der BMU 50 skalierbarer sein, indem für die Gerätehersteller die Notwendigkeit der Unterstützung der Abstimmung der Unterbrechungsereignisse beseitigt würde. Das Ausführen der Vereinigungseinheit 58 in der BMU 50 kann das Sicherstellen umfassen, dass die Obergrenze des Haltezeitgebers β mit der Größe des internen Puffers des Geräts kompatibel ist, um Pufferüberläufe zu verhindern. Zusätzlich kann der Inaktivitätszeitgeber α auf einen Wert eingestellt werden, der ausreichend groß ist, um einen vorzeitigen Ablauf und ggf. negative Auswirkungen auf die maximale Systemleistung zu verhindern.
-
Zur Anpassung des Vereinigungszeitgebers kann eine Anzahl verschiedener Strategien verwendet werden. Zum Beispiel kann eine „statische Richtlinie” das Verbinden des Vereinigungsverhaltens mit durch den Benutzer eingestellten (oder auf dem Profil des Betriebssystems basierenden) Systemeinstellungen beinhalten. So kann das Verbinden, wenn der Benutzer ein hohes Leistungsprofil bevorzugt, mit β = 0 umgangen werden. Für ein ausgeglichenes Leistungs/Energieprofil könnte ein typischer Wert von β = 5 ms ausgewählt werden. Für einen Betriebsmodus mit niedrigem Energieverbrauch und maximalen Energieeinsparungen kann ein typischer Wert von β = 10 ms ausgewählt werden. Alternativ könnte eine „dynamische Richtlinie” verwendet werden, in der β basierend auf einer geschlossenen Schleife auf der Grundlage der über einen bestimmten Zählzeitraum beobachteten Zählung der durchschnittlichen Anzahl der Unterbrechungsereignisse gesteuert wird. Der Ansatz kann daher das Verbinden so unaufdringlich wie möglich machen, derart, dass sich das Unterbrechungsereignisverhalten (im Durchschnitt) nicht wesentlich ändert. Ausgehend von einem typischerweise kleinen Wert für β kann die Anzahl von Unterbrechungsereignissen von einzelnen Geräten über relativ längere Zeiträume (d. h. in der Größenordnung von Sekunden) beobachtet werden, und β kann additiv erhöht werden, bis sich die durchschnittliche Anzahl an Ereignissen wesentlich ändert. Abhängig von der Änderung könnte β entweder zurückgesetzt, um von vorne angepasst oder multiplikativ vermindert zu werden.
-
Mit Bezug auf 5 wird ein System 60 gezeigt. Das System 60 kann Teil einer mobilen Plattform sein, die Rechenfunktionalität (z. B. persönlicher digitaler Assistent/PDA, Laptop), Kommunikationsfunktionalität (z. B. drahtloses Smartphone), Bildgebungsfunktionalität, Medienspielerfunktionalität oder eine Kombination davon aufweist (z. B. ein mobiles Internetgerät/MID). Im veranschaulichten Beispiel umfasst das System 60 einen Prozessor 62, einen integrierten Speichercontroller (Integrated Memory Controller – IMC) 74, ein E/A-Modul 64, einen Systemspeicher 66, eine Netzsteuerung (z. B. Netzwerkkarte) 68, ein Audio-E/A-Gerät 72, eine Festkörperplatte (Solid State Disk – SSD) 70 und eine oder mehrere andere Steuereinheiten 80. Der Prozessor 62, der einen Kernbereich mit einem oder mehreren Prozessorkernen 76 umfassen kann, kann eine Energieverwaltungseinheit (Power Management Unit – PMU) 78 verwenden, um seine Kerne 76 und anderen Systemkomponenten auf der Grundlage von Leistungs- und/oder Energieverwaltungsgesichtspunkten, wie bereits erwähnt, in einen oder mehrere aktive und/oder Ruhezustände zu versetzen.
-
Das veranschaulichte E/A-Modul 64, das manchmal auch als Southbridge oder South Complex eines Chipsatzes bezeichnet wird, wirkt als ein Host-Gerät und kommuniziert mit der Netzsteuerung 68, was Kommunikationsfunktionalität außerhalb der Plattform für eine breite Palette von Zwecken, wie beispielsweise Mobiltelefon (z. B. W-CDMA (UMTS), CDMA2000 (IS-865/IS-2000), usw.), WiFi (z. B. IEEE 802.11, 1999 Edition, LAN/MAN Wireless LANS), Bluetooth (z. B. IEEE 802.15.1-2005, Wireless Personal Area Networks), WiMax (z. B. IEEE 802.16-2004, LAN/MAN Broadband Wireless LANS), Global Positioning System (GPS), Spreizspektrum (z. B. 900 MHz) und andere Hochfrequenz-Telefoniezwecke (HF) bereitstellen könnte. Das E/A-Modul 64 kann auch einen oder mehrere drahtlose Hardware-Schaltungsblöcke umfassen, um solche Funktionalität zu unterstützen.
-
Die SSD 70 kann einen oder mehrere NAND-Chips umfassen und könnte verwendet werden, um eine Datenspeicherung mit hoher Kapazität und/oder einem beträchtlichen Betrag an Parallelität bereitzustellen. Es können auch Lösungen vorhanden sein, die NAND-Steuerungen umfassen, die als getrennte Steuerungen für anwendungsspezifische integrierte Schaltungen (Application Specific Integrated Circuit – ASIC) ausgeführt werden, die auf Standard-Bussen, wie beispielsweise einem Serial ATA (SATA, z. B. SATA Rev. 3.0. Specification, May 27, 2009, SATA International Organization/SATA-IO) Bus oder PCI Express Graphics (PEG, z. B. Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group) Bus mit dem E/A-Modul 64 verbunden sind. Die SSD 70 könnte auch als ein USB-Flash-Speicher (Universal Serial Bus, z. B. USB Specification 2.0, USB Implementers Forum) verwendet werden.
-
Das veranschaulichte E/A-Modul 64 umfasst eine BMU 82, die konfiguriert ist, um Unterbrechungsereignisse von mehreren verschiedenen Quellen, wie beispielsweise einer Netzsteuerung 68, einem Audio-E/A-Gerät 72, einer SSD 70, aktiven Anwendungen, die auf dem Prozessor 62 ausgeführt werden, usw., und die Ausgabe von Unterbrechungsereignissen an den Prozessor 62 basierend auf Laufzeitinformationen koordinieren, die dem System 60 zugehörig sind. In einem Beispiel umfasst das Koordinieren der Ausgabe von Unterbrechungsereignissen das Bestimmen einer Haltezeit auf der Grundlage der Laufzeitinformationen und das Verzögern von mindestens einem der Unterbrechungsereignisse auf der Grundlage der Haltezeit. Zum Beispiel könnte das System 60 eine VoIP (Voice Over Internet Protocol) Anwendung ausführen, in der die Netzsteuerung 68 und das Audio-E/A-Gerät 72 jeweils aktiv E/A-Ereignissen ohne oder bei geringer Berücksichtigung der durch das andere Gerät erzeugten E/A-Ereignisse erzeugen. Durch die Verwendung der BMU 82 zum Koordinieren der Unterbrechungsereignisse von der Netzsteuerung 68 und dem Audio-E/A-Gerät 72 kann das veranschaulichte E/A-Modul 64 es den Komponenten des Systems 60 ermöglichen, während längerer Zeiträume in niedrigere Energiezustände einzutreten und daher die durch das System 60 erzielten Energieeinsparungen erheblich verbessern.
-
So können die vorhergehenden Techniken einen holistischen Ansatz zum Definieren von Rechnersystemarchitekturen und Schnittstellen bereitstellen, derart, dass sie die Tätigkeiten von mehreren E/A-Geräten und Anwendungen koordinieren und abstimmen. Folglich kann der Ruhezustand der Plattform für ein optimales Energiesparen der Plattform maximiert werden. Zusätzlich könnte eine solche Koordinierung und Abstimmung eine nähere Annäherung der Plattform an einen idealen Energieverbrauch mit robuster Leistung ermöglichen, der „proportional zur Auslastung” ist.
-
Die Ausführungsformen der vorliegenden Erfindung sind anwendbar zur Verwendung mit allen Typen von Chips mit integrierten Halbleiterschaltungen („IC”). Beispiele dieser integrierten Schaltungschips umfassen Prozessoren, Steuereinheiten, Chipsatz-Bauelemente, programmierbare logische Anordnungen (Programmable Logic Array – PLA), Speicherchips, Netzchips, System-on-Chips (SoC), SSD/NAND-Steuerungs-ASICs und dergleichen, sind aber nicht darauf beschränkt. Zusätzlich sind in einigen der Zeichnungen Signalleiterleitungen durch Linien dargestellt. Einige davon können dicker sein, um mehrere einzelne Signalwege darzustellen, eine Nummernbezeichnung aufweisen, um eine Anzahl der einzelnen Signalwege anzugeben, und/oder an einem oder mehreren Enden Pfeile aufweisen, um die Hauptrichtung des Informationsflusses anzugeben. Dies sollte indes nicht als einschränkend ausgelegt werden. Stattdessen können solche zusätzlichen Details in Verbindung mit einem oder mehreren Ausführungsbeispielen verwendet werden, um ein einfacheres Verständnis einer Schaltung zu erleichtern. Die dargestellten Signalleitungen können, unabhängig davon, ob sie zusätzliche Informationen aufweisen oder nicht, tatsächlich eines oder mehrere Signale umfassen, das/die sich in mehrere Richtungen bewegen und mit irgendeinem geeigneten Typ von Signalschema ausgeführt werden kann/können, z. B. digitale oder analoge Leitungen, die mit Differentialpaaren, Glasfaserleitungen und/oder Leitungen mit einseitigem Abschluss ausgeführt sind.
-
Es kann sein, dass Beispiele für Größen/Modelle/Werte/Bereiche angegeben wurden, obgleich die Ausführungsformen der vorliegenden Erfindung nicht darauf beschränkt sind. Da die Herstellungstechniken (z. B. Fotolithografie) mit der Zeit immer ausgereifter werden, wird erwartet, dass Geräte mit geringerer Größe hergestellt werden könnten. Darüber hinaus kann es sein, dass bekannte Strom/Erdungsverbindungen mit den IC-Chips und anderen Bauelementen der Einfachheit der Veranschaulichung und Erörterung halber und, um bestimmte Gesichtspunkte der Ausführungsformen der Erfindung nicht unklar zu machen, nicht innerhalb der Figuren gezeigt sind. Darüber hinaus können Anordnungen in der Form von Blockdiagrammen gezeigt sein, um zu vermeiden, dass Ausführungsformen der Erfindung unklar gemacht werden, und auch im Hinblick auf die Tatsache, dass die spezifischen Angaben in Bezug auf die Ausführung solcher Blockdiagrammanordnungen in hohem Maße von der Plattform abhängig sind, in der die Ausführungsform ausgeführt werden soll, d. h. solche spezifischen Angaben sollten sich in der Reichweite des Fachmanns befinden. Wo spezifische Einzelheiten (z. B. Schaltungen) dargelegt werden, um Ausführungsbeispiele der Erfindung zu beschreiben, wird der Fachmann verstehen, dass Ausführungsformen der Erfindung ohne oder mit Änderungen dieser spezifischen Einzelheiten in die Praxis umgesetzt werden können. Daher ist die Beschreibung als veranschaulichend und nicht als einschränkend anzusehen.
-
Der Begriff „gekoppelt” kann hier verwendet werden, um jede Art von direkter oder indirekter Beziehung zwischen den betreffenden Bauelementen zu bezeichnen und kann sich auf elektrische, mechanische, fluidische, optische, elektromechanische oder andere Verbindungen beziehen. Darüber hinaus werden die Begriffe „erste/r”, „zweite/r” usw. hier lediglich zur Vereinfachung der Erörterung verwendet und haben keine besondere zeitliche oder chronologische Bedeutung, es sei denn, dies wird anderweitig angegeben.
-
Der Fachmann wird aufgrund der vorhergehenden Beschreibung verstehen, dass die breiten Techniken der Ausführungsformen der vorliegenden Erfindung in einer Vielzahl von Formen ausgeführt werden können. Daher ist, obgleich die Ausführungsformen dieser Erfindung in Verbindung mit bestimmten Beispielen davon beschrieben wurden, der tatsächliche Schutzbereich der Ausführungsformen der Erfindung nicht derart beschränkt, da bei der Untersuchung der Zeichnungen, der Beschreibung und der folgenden Ansprüche andere Änderungen für den fachkundigen Praktiker ersichtlich werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- ACPI/Advanced Configuration and Power Interface Specification, ACPI Specification, Rev. 4.0, June 16, 2009, low power states [0014]
- W-CDMA (UMTS), CDMA2000 (IS-865/IS-2000) [0027]
- IEEE 802.11, 1999 Edition, LAN/MAN Wireless LANS [0027]
- IEEE 802.15.1-2005, Wireless Personal Area Networks [0027]
- IEEE 802.16-2004, LAN/MAN Broadband Wireless LANS [0027]
- SATA, z. B. SATA Rev. 3.0. Specification, May 27, 2009, SATA International Organization/SATA-IO [0028]
- Peripheral Components Interconnect/PCI Express x16 Graphics 150W-ATX Specification 1.0, PCI Special Interest Group [0028]
- USB Specification 2.0 [0028]
- USB Implementers Forum [0028]