DE60110847T2 - Rechnersystem mit niedrigem energieverbrauch - Google Patents

Rechnersystem mit niedrigem energieverbrauch Download PDF

Info

Publication number
DE60110847T2
DE60110847T2 DE60110847T DE60110847T DE60110847T2 DE 60110847 T2 DE60110847 T2 DE 60110847T2 DE 60110847 T DE60110847 T DE 60110847T DE 60110847 T DE60110847 T DE 60110847T DE 60110847 T2 DE60110847 T2 DE 60110847T2
Authority
DE
Germany
Prior art keywords
task
processing units
processing
computer system
sch
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 - Lifetime
Application number
DE60110847T
Other languages
English (en)
Other versions
DE60110847D1 (de
Inventor
Lewis Morrow
Claus Olsen
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60110847D1 publication Critical patent/DE60110847D1/de
Application granted granted Critical
Publication of DE60110847T2 publication Critical patent/DE60110847T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/0293Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment having a sub-controller with a low clock frequency switching on and off a main controller with a high clock frequency
    • 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/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Multi Processors (AREA)
  • Nitrogen Condensed Heterocyclic Rings (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Computersysteme und im Besonderen auf ein Computersystem mit niedrigem Energieverbrauch.
  • Hintergrund der Erfindung
  • In den vergangenen Jahren wurden so genannte Pervasive Devices (PvDs), d.h. allgegenwärtige, in beliebige Alltagsgegenständige integrierte und mit Netzzugriffsfähigkeit ausgestattete Kleinstrechner immer beliebter. Die Fähigkeiten dieser Einheiten zur drahtlosen Kommunikation steigen ebenso wie die Rechenkomplexität, die für bestimmte Aufgaben erforderlich ist. Ein Haupthindernis für den Erfolg der PvDs besteht im Energieverbrauch, da PvDs üblicherweise batteriebetrieben sind. Im Allgemeinen hat eine PvD-Batterie eine Lebensdauer, die von einer Stunde bis hin zu einem Jahr reichen kann, abhängig von der Nutzung des PvD. Wenn der PvD für die Spracherkennung und/oder die Unterstützung von Hochgeschwindigkeits-Funkverbindungen verwendet wird, lässt sich ein deutlicher Anstieg des Energieverbrauchs nicht vermeiden. Der Grund hierfür liegt darin, dass zur Unterstützung der Millionen Anweisungen pro Sekunde (Million Instructions Per Second, MIPS), die für derartige Aufgaben erforderlich sind, Verarbeitungseinheiten mit einer mittleren bis hohen Leistungsfähigkeit benötigt werden. Leider sinkt mit zunehmender Leistung jedoch der Energienutzungsgrad. Im Folgenden bezieht sich der Begriff „Energienutzungsgrad" auf die Einheit „Joule pro Aufgabe" (Joules Per Task, JPT) (und andere gleichwertige Einheiten).
  • Trotz der hohen Leistungsfähigkeit und der komplexen Aufgaben, die derzeitige PvDs ausführen können, ist ein üblicher PvD überwiegend mit der Ausführung einfacher Aufgaben mit geringen Leistungsanforderungen beschäftigt, z.B. mit dem Aktualisieren des Zeitregisters, dem regelmäßigen Austausch von Standortinformationen mit der Funk-Basisstation, dem Messen der Umgebungstemperatur, dem Protokollieren einer GPS-Standortmarke, dem Abrufen eines Adressbucheintrags, dem Aktualisieren des Bildschirmpuffers, dem Erkennen einer Tastatureingabe usw. Die Ausführung derartiger einfacher Aufgaben durch einen Hochleistungsprozessor ist unter JPT-Gesichtspunkten betrachtet äußerst unwirtschaftlich.
  • Aus diesem Grund gab es eine Reihe von Versuchen, den energiebewussten Betrieb von Verarbeitungseinheiten zu erreichen. So haben einige Prozessorhersteller (siehe beispielsweise T. R. Halfhill, „Transmeta Breaks x86 Low-Power Barrier", Microprozessor Report, S. 1, Feb. 2000; sowie S. Liebson, „Xscale (StrongARM-2) Muscles In", Microprozessor Report, S. 1, Feb. 2000) z.B. Verarbeitungseinheiten mit einem höheren Energienutzungsgrad hergestellt, bei denen der Energieverbrauch pro Zyklus angepasst werden kann, indem Versorgungsspannung und Frequenz gleichzeitig geändert werden, was auch als Spannungsskalierung bekannt ist (siehe z.B. Brodersen et. al., „Low Power Digital CMOS Design", Kluwer Academic Publishers, 1995). Allerdings gibt es Grenzen dafür, wie langsam diese Verarbeitungseinheiten betrieben werden können bzw. wie weit die Versorgungsspannung abgesenkt werden kann. Daraus ergibt sich, dass diese Verarbeitungseinheiten selbst dann, wenn sie überwiegend zur Ausführung einfacher Aufgaben mit geringen Leistungsanforderungen verwendet würden, immer noch erheblich mehr Energie verbrauchen würden als Verarbeitungseinheiten, die speziell für die Ausführung derartiger einfacher Aufgaben entwickelt worden sind.
  • Daneben haben einige Hersteller von Mobiltelefonen und tragbaren Funkgeräten (siehe z.B. US-Patentschrift 5 487 181 und US-Patentschrift 5 058 203) die Verwendung anwendungsspezifischer integrierter Schaltungen (Application Specific Integrated Circuits, ASIC) mit einem hohen Energienutzungsgrad vorgeschlagen, um den Hauptprozessor mit dem geringeren Energienutzungsgrad bei der Ausführung häufig auftretender und routinemäßiger Funktionen zu entlasten. Allerdings eignet sich dieser Ansatz zur Verminderung des Energieverbrauchs nicht für eine allgemeinere und besser konfigurierbare Rechenplattform, die dem Benutzer ein höheres Maß an Flexibilität bereitstellen soll. Bei einem hochgradig flexiblen Rechnersystem kann der Benutzer die Funktionalität ändern und neue Funktionen mit geringem Aufwand installieren (z.B. das Desktop-Benutzer-Paradigma). Die vorgeschlagenen herkömmlichen Lösungen sind keine flexiblen Systeme. Vielmehr handelt es sich um Systeme mit einer spezifischen und beschränkten Funktionalität.
  • US-Patentschrift 5142684A beschreibt eine Mikroprozessor-gesteuerte Einheit mit zwei Mikroprozessoren, wobei der eine Prozessor einen niedrigen Energieverbrauch und eine geringe Leistung hat und Hintergrundaufgaben ausführt, während der andere Prozessor einen hohen Energieverbrauch und eine hohe Leistung hat und rechenintensive Aufgaben im Vordergrund ausführt. US-Patentschrift 5 790 817A beschreibt eine Mehrprozessorarchitektur, bei der eine Mikro-Ablaufsteuerung eine Anzahl von digitalen Signalprozessoren (DSPs) und/oder Recheneinheiten auf eine Art und Weise steuert, dass Rechendurchsatz und Energieverbrauch je nach ausgeführter Anwendung in einem ausgewogenen Verhältnis zueinander gehalten werden.
  • Somit besteht nach wie vor ein Bedarf nach einer allgemeinen, konfigurierbaren Rechenplattform mit einem niedrigen Energieverbrauch unabhängig von den Anforderungen der Benutzer an die Systemfunktionalität, die neuen Anwendungscode zur Überprüfung und späteren Ausführung mit dem höchstmöglichen Energienutzungsgrad herunterladen kann.
  • Beschreibung der Erfindung
  • Entsprechend stellt die vorliegende Erfindung einen geringeren Energieverbrauch bei allgemeinen und in hohem Maße konfigurierbaren Rechnersystemen bereit. Beispiele für einige der Ziel-Rechensysteme, die aus der Erfindung Nutzen ziehen könnten, sind z.B. persönliche digitale Assistenten (PDAs), Computer im Westentaschenformat (Handheld-Computer), Taschencomputer, tragbare Telefone, Laptop-Computer, am Körper tragbare Rechner usw. Außerdem ist die vorliegende Erfindung insbesondere anwendbar auf Rechnersysteme, die für ein hohes Maß an Benutzerflexibilität ausgelegt sind (z.B. Systeme, bei denen der Benutzer neue Anwendungen herunterladen kann, seine eigenen Anwendungen erstellen und/oder das System nach seinen Bedürfnissen anpassen kann).
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Computersystem bereitgestellt. Das Computersystem beinhaltet mindestens zwei Verarbeitungseinheiten, die unterschiedliche Energienutzungsgrade haben und so gestaltet sind, dass sie mindestens in der Lage sind, Aufgaben ausgehend von den Verarbeitungsanforderungen der Aufgaben und einer entsprechenden Verarbeitungskapazität auszuführen. Eine Ablaufsteuerung wird bereitgestellt, die so gestaltet ist, dass sie eine gegebene Aufgabe, die zur Ausführung durch eine der mindestens zwei Verarbeitungseinheiten vorgesehen ist, so einplant, dass sie die geringste Menge an Energie verbraucht, und dass sie die gegebene Aufgabe, die zur Ausführung durch eine andere der mindestens zwei Verarbeitungseinheiten vorgesehen ist, auf einen anderen Zeitpunkt verlegt, wenn ermittelt wird, dass die eine der mindestens zwei Verarbeitungseinheiten ausgehend von den Verarbeitungsanforderungen der gegebenen Aufgabe und der entsprechenden Verarbeitungskapazität nicht in der Lage ist, die Ausführung der gegebenen Aufgabe zu übernehmen.
  • Vorzugsweise umfassen die Verarbeitungsanforderungen einen Endzeitpunkt, an dem die gegebene Aufgabe abgeschlossen sein muss. Noch deutlicherer Vorzug wird einer Ablaufsteuerung gegeben, die eine Funktion ist, welche im Rahmen einer anderen Hardwarekomponente ausgeführt ist als die mindestens zwei Verarbeitungseinheiten. Bei einer bevorzugten Ausführungsform beinhaltet eine der mindestens zwei Verarbeitungseinheiten die Ablaufsteuerung. Idealerweise ist die Ablaufsteuerung weiterhin so gestaltet, dass sie Unterbrechungen von den mindestens zwei Verarbeitungseinheiten und Peripheriegeräten abfängt.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung teilen sich die mindestens zwei Verarbeitungseinheiten Speicherplatz. Idealerweise teilen sich die mindestens zwei Verarbeitungseinheiten Ein-/Ausgabeplatz. Noch besser ist es, wenn sich die mindestens zwei Verarbeitungseinheiten Ein-/Ausgabeplatz teilen und wenn sich die Ablaufsteuerung und die mindestens zwei Verarbeitungseinheiten Speicherplatz teilen.
  • Bei einer bevorzugten Ausführungsform beinhaltet das Computersystem weiter einen Aufgabenattributspeicher, der so gestaltet ist, dass er mindestens einige der Verarbeitungsanforderungen von mindestens einigen der eingeplanten Aufgaben speichert. Bei einer bevorzugten Ausführungsform erfolgt die Ermittlung entweder durch die Ablaufsteuerung oder durch die eine der mindestens zwei Verarbeitungseinheiten. Idealerweise sind die mindestens zwei Verarbeitungseinheiten weiter so gestaltet, dass sie die zur Ausführung anstehenden Aufgaben annehmen oder ablehnen können. Noch besser ist es, wenn die Verarbeitungsanforderungen eine Verarbeitungskapazität beinhalten, die für die Ausführung der gegebenen Aufgabe notwendig ist.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird ein Computersystem bereitgestellt. Das Computersystem beinhaltet eine Vielzahl von Verarbeitungseinheiten. Eine jede Einheit aus der Vielzahl der Verarbeitungseinheiten ist so gestaltet, dass sie Aufgaben ausführen kann. Mindestens zwei Einheiten aus der Vielzahl der Verarbeitungseinheiten haben unterschiedliche Energienutzungsgrade. Eine Ablaufsteuerung ist so gestaltet, dass sie eine gegebene Aufgabe, die zur Ausführung durch eine Einheit aus der Vielzahl der Verarbeitungseinheiten vorgesehen ist, einplant, indem sie die Vielzahl der Verarbeitungseinheiten so lange in einer partiellen Reihenfolge des abnehmenden Energienutzungsgrads daraufhin abfragt, ob diese die Ausführung der gegebenen Aufgabe annehmen oder ablehnen, bis die gegebene Aufgabe von der einen Einheit aus der Vielzahl der Verarbeitungseinheiten angenommen und ausgeführt und von sämtlichen anderen Einheiten aus der Vielzahl der Verarbeitungseinheiten abgelehnt wird.
  • Vorzugsweise ist die Ablaufsteuerung weiterhin so gestaltet, dass sie eine beliebige Einheit aus der Vielzahl der Verarbeitungseinheiten, ausgehend von mindestens einer vorbestimmten Bedingung, aus der partiellen Reihenfolge ausschließt.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung wird ein Computersystem bereitgestellt. Das Computersystem beinhaltet mindestens zwei Verarbeitungseinheiten, die unterschiedliche Energienutzungsgrade haben und so gestaltet sind, dass sie eingeplante Aufgaben ausgehend von den Verarbeitungsanforderungen der eingeplanten Aufgaben und einer entsprechenden Verarbeitungskapazität annehmen oder ablehnen können. Die mindestens zwei Verarbeitungseinheiten sind außerdem so gestaltet, dass sie mindestens in der Lage sind, die angenommenen eingeplanten Aufgaben auszuführen. Eine Ablaufsteuerung ist so gestaltet, dass sie eine gegebene Aufgabe, die zur Ausführung durch eine der mindestens zwei Verarbeitungseinheiten vorgesehen ist, so einplant, dass sie die geringste Menge an Energie verbraucht, und dass sie die gegebene Aufgabe, die zur Ausführung durch eine andere der mindestens zwei Verarbeitungseinheiten vorgesehen ist, auf einen anderen Zeitpunkt verlegt, wenn die eine der mindestens zwei Verarbeitungseinheiten die Ausführung der gegebenen Aufgabe ablehnt.
  • Gemäß einer bevorzugten Ausführungsform der Erfindung wird ein Computersystem bereitgestellt. Das Computersystem beinhaltet eine Vielzahl von Verarbeitungseinheiten. Eine jede Einheit aus der Vielzahl der Verarbeitungseinheiten ist so gestaltet, dass sie Aufgaben ausführen kann. Mindestens zwei Einheiten aus der Vielzahl der Verarbeitungseinheiten haben unterschiedliche Energienutzungsgrade. Eine Tabelle der Prozessorattribute ist so gestaltet, dass sie Daten zur Verarbeitungskapazität für mindestens einige Prozessoren aus der Vielzahl der Prozessoren speichert und die Daten zur Verarbeitungskapazität dynamisch aktualisiert, wenn sich diese ändern. Eine Ablaufsteuerung ist so gestaltet, dass sie für eine gegebene Aufgabe mindestens einige der Daten zur Verarbeitungskapazität aus der Tabelle der Prozessorattribute abruft und dabei eine partielle und eine strikte Reihenfolge des abnehmenden Energienutzungsgrads zugrunde legt, bis sich herausstellt, dass ein Prozessor aus der Vielzahl der Prozessoren mit Blick auf die Verarbeitungsanforderungen der Aufgabe über eine angemessene Verarbeitungskapazität für die gegebene Aufgabe verfügt. Die Ablaufsteuerung ist außerdem so gestaltet, dass sie die gegebene Aufgabe zur Ausführung durch einen Prozessor aus der Vielzahl der Prozessoren einplant.
  • Geeigneterweise umfasst das Computersystem darüber hinaus mindestens einen Funktionsblock, der so gestaltet ist, dass er mindestens eine einer Unterbrechung zugehörige Funktion ausführt.
  • Vorzugsweise umfasst das Computersystem weiter mindestens einen Funktionsblock, der so gestaltet ist, dass er mindestens eine Funktion, die von einer Aufgabe genutzt wird, ausführt.
  • Kurze Beschreibung der Zeichnungen
  • Die vorliegende Erfindung wird nun beispielhaft mit Blick auf ihre bevorzugten Ausführungsformen und mit Blick auf die folgenden Zeichnungen beschrieben, wobei:
  • 1 ein Blockschaltbild ist, das ein Computersystem 100 mit einem niedrigen Energieverbrauch gemäß einer zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
  • 2 eine Tabelle ist, die eine Liste der Aufgabenattribute gemäß einer zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
  • 3 eine Tabelle ist, die eine Liste der Prozessorattribute gemäß einer zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
  • 4 ein Ablaufdiagramm ist, das die Aufgabeneinplanung durch eine Ablaufsteuerungseinheit SCH gemäß einer zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt; und
  • 5 ein Ablaufdiagramm ist, das die Aufgabenverarbeitung durch Pj (d.h. die Verarbeitungseinheit P1 oder P2) gemäß einer zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt.
  • Ausführliche Beschreibung der vorliegenden Erfindung
  • Die vorliegende Beschreibung bezieht sich auf ein Computersystem mit niedrigem Energieverbrauch. Dabei sollte klar sein, dass die vorliegende Erfindung in verschiedenen Formen von Hardware, Software, Firmware, Spezial-Verarbeitungseinheiten oder auch einer Kombination daraus realisiert werden kann. Vorzugsweise wird die vorliegende Erfindung als eine Kombination sowohl von Hardware als auch von Software realisiert. Die Software kann als ein Anwendungsprogramm realisiert sein, das in greifbarer Form auf einer Programmspeichereinheit enthalten ist. Das Anwendungsprogramm kann in eine Maschine hinaufgeladen und von dieser ausgeführt werden, die eine beliebige geeignete Architektur aufweist. Vorzugsweise ist die Maschine auf einer Computerplattform realisiert, die über Hardware wie beispielsweise Zentraleinheiten (CPUs), einen Direktzugriffsspeicher (RAM) und eine oder mehrere Ein-/Ausgabeschnittstelle(n) (E/A-Schnittstelle(n)) verfügt. Die Computerplattform kann außerdem ein Betriebssystem und/oder Mikrobefehlscode enthalten. Die verschiedenen hier beschriebenen Prozesse und Funktionen können entweder Teil des Mikrobefehlscodes oder des vom Betriebssystem ausgeführten Anwendungsprogramms (oder auch einer Kombination beider Elemente) sein. Darüber hinaus können verschiedene andere Peripheriegeräte mit der Computerplattform verbunden sein, wie beispielsweise eine zusätzliche Datenspeichereinheit und eine Druckereinheit.
  • Da einige der hier zugehörigen und in den beigefügten Figuren abgebildeten Systemkomponenten und Verfahrensschritte in Software realisiert sein können, versteht es sich ebenfalls, dass die tatsächlichen Verbindungen zwischen den Systemkomponenten (oder Verfahrensschritten) je nach Programmierung der vorliegenden Erfindung unterschiedlich ausfallen können.
  • Zum besseren Verständnis der vorliegenden Erfindung folgt nun eine Definition der verwendeten Begriffe. Der Begriff „Verarbeitungseinheit" wird als ein Mikroprozessor, ein Mikrocontroller, ein Prozessor für die digitale Signalverarbeitung (DSP) oder eine andere Einheit definiert, die in der Lage ist, Befehle auszuführen. Dabei kann auch eine beliebige Kombination der oben genannten Elemente verwendet werden. Daneben wird der Begriff „Funktionsblock" als ein Schaltkreis für die Verarbeitung digitaler oder digitaler und analoger Signale definiert, der in der Lage ist, eine oder mehrere spezifische Funktionen auszuführen, ohne jedoch Befehle ausführen zu können; außerdem kann die Funktionalität eines Funktionsblocks nicht geändert werden. Mit Blick auf die Erfindung werden eine anwendungsspezifische integrierte Schaltung (ASIC), eine Schaltung für schnelle Fourier-Transformationen (Fast Fourier Transformation, FFT) und ein Schaltnetz als Funktionsblöcke betrachtet. Dabei ist zu beachten, dass eine Verarbeitungseinheit keine Funktionseinheit und eine Funktionseinheit keine Verarbeitungseinheit sein kann. Weiterhin wird der Begriff „Aufgabe" als ein Codeteil definiert, der entweder unabhängig und gleichzeitig mit anderen Aufgaben oder aber separat ausgeführt werden kann. Unter Zugrundelegung dieser Definition können z.B. Anwendungen, Teilprozesse, Programme für die Unterbrechungsbehandlung und der Betriebssystemkern als Aufgaben betrachtet werden.
  • 1 ist ein Blockschaltbild, das ein Computersystem 100 mit niedrigem Energieverbrauch gemäß einer zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt. Das Computersystem 100 beinhaltet zwei Verarbeitungseinheiten P1 und P2 (im Folgenden allgemein als Verarbeitungseinheit Pj bezeichnet) sowie eine Ablaufsteuerung SCH. P1 und P2 führen Aufgaben aus. P1 ist die Verarbeitungseinheit mit dem besten Energienutzungsgrad, hat jedoch eine geringe Rechenleistung. P2 ist die Verarbeitungseinheit mit dem schlechtesten Energienutzungsgrad und der besten Rechenleistung. Alle Unterbrechungen vom E/A-Platz und den beiden Verarbeitungseinheiten werden zur SCH geleitet. Dabei ist MEM der Speicherplatz und E/A der E/A-Platz. BUSP1, BUSP2, BUSMEM und BUSI/O bezeichnen den Bus von der Ablaufsteuerung zu P1, den Bus von der Ablaufsteuerung zu P2, den Speicherbus bzw. den E/A-Bus. BCMEM und BCI/O sind die Steuereinheiten für den Speicherbus bzw. den E/A-Bus. Bei einer bevorzugten Ausführungsform der Erfindung arbeiten die Verarbeitungseinheiten P1 und P2 gleichzeitig, und jede Verarbeitungseinheit hat ein mehrprogrammfähiges Betriebssystem, das auf ihr läuft.
  • Während die SCH in der zur Veranschaulichung dienenden Ausführungsform aus 1 als ein separater Funktionsblock realisiert ist, sollte klar sein, dass die Funktionalität von der SCH auch als Bestandteil anderer Verarbeitungseinheiten (z.B. P1 und/oder P2), als Softwareprogramm(e) oder als eine Kombination daraus realisiert sein kann. So kann die SCH beispielsweise als eine Funktion (Software, Abfolge von Logikkomponenten usw.) innerhalb einer Hardwarekomponente (z.B. ein beliebiger Funktionsblock oder eine Verarbeitungseinheit) realisiert sein.
  • Es folgt eine kurze Beschreibung des Betriebs des Computersystems 100. Die SCH fängt alle Unterbrechungssignale ab, löst die Unterbrechung in eine Aufgabenkennzahl (Task Identification Number, TID) auf und verhandelt anschließend mit den Verarbeitungseinheiten P1 und P2 über die Ausführung der Aufgabe, wobei sie diejenige Verarbeitungseinheit mit dem geringen Energieverbrauch auswählt, um die Aufgabe auszuführen und rechtzeitig abzuschließen. Damit die SCH und Pj eine derartige Verhandlung führen können, sollten bestimmte Merkmale der Aufgabe bekannt sein. Diese Merkmale und andere aufgabenbezogene Daten werden in einer Liste der Aufgabenattribute bereitgestellt. 2 ist eine Tabelle, welche eine Liste der Aufgabenattribute gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Es ist Aufgabe der SCH, bestimmte Aufgabenattribute zur Unterbrechungszeit abzurufen. Zur Veranschaulichung dienende Aufgabenattribute werden weiter unten mit Blick auf 2 ausführlicher gezeigt und beschrieben.
  • TID ist die Aufgabenkennzahl der anstehenden Aufgabe. NP ist die Anzahl der Verarbeitungseinheiten, welche die Aufgabe ausführen können. PTID,1 ist die Kennung der Verarbeitungseinheit mit dem besten Energienutzungsgrad, welche die Aufgabe ausführen kann. CPSTID,1 ist die Anzahl der Zyklen, welche die Verarbeitungseinheit im ungünstigsten Falle benötigt, um die Aufgabe rechtzeitig auszuführen. ADDRTID,1 ist die Adresse der Speicherstelle der Aufgabe. PTID,1 ist die Verarbeitungseinheit mit dem i-besten Energienutzungsgrad, welche die Aufgabe ausführen kann, wobei 1 ≤ i ≤ NP ist.
  • CPSTID,i ist die Anzahl der Zyklen, welche die Verarbeitungseinheit im ungünstigen Falle benötigt, um die Aufgabe rechtzeitig auszuführen. ADDRTID,i ist die Adresse der Speicherstelle der Aufgabe. PTID,NP ist die Verarbeitungseinheit mit dem niedrigsten Energienutzungsgrad der NP Verarbeitungseinheiten, welche die Aufgabe ausführen können. CPSTID,NP ist die Anzahl der Zyklen, welche die Verarbeitungseinheit im ungünstigen Falle benötigt, um die Aufgabe rechtzeitig auszuführen. ADDRTID,NP ist die Adresse der Speicherstelle der Aufgabe. Dabei ist zu beachten, dass ADDR grundsätzlich für jede Verarbeitungseinheit verschieden sein kann, wenn die Verarbeitungseinheiten nicht die gleiche Architektur aufweisen. So ist es z.B. nicht ungewöhnlich, dass zwei verschiedene Verarbeitungseinheiten auch unterschiedliche Befehlssätze haben und/oder dass eine Verarbeitungseinheit eine 32-Bit-Architektur und die andere eine 8-Bit-Architektur aufweist.
  • Ausdrücklich wird darauf verwiesen, dass der Wert CPS den ungünstigsten Fall angibt. Als Beispiel soll der Benutzer eine Anwendung DateBook starten, die eine Anzahl von DateBook-Einträgen aufführt. Die entsprechende Aufgabe ist während etwa einer Sekunde aktiv und befindet sich danach im Ruhemodus, und die DateBook-Liste mit den Einträgen wird nun auf dem Bildschirm angezeigt. Danach wählt der Benutzer einen Eintrag aus, zu dem er ausführlichere Informationen wünscht. Die Aufgabe ruft daraufhin Daten aus der Datenbank ab, zeigt die Daten auf dem Bildschirm an und kehrt in den Ruhemodus zurück. Mit Blick auf eine Aufgabe kann CPS daher folgendermaßen beschrieben werden: CPS steht dafür, welche Verarbeitungsgeschwindigkeit die Verarbeitungseinheit mit Blick auf die Aufgabe benötigt, wobei diese auf die Eingabeaufforderung des Benutzers reagiert, die Daten aus der Datenbank abruft und sie schließlich auf dem Bildschirm anzeigt. Den größten Teil der Zeit befindet sich die Aufgabe jedoch im Ruhemodus.
  • Die SCH verhandelt mit den Verarbeitungseinheiten P1 und P2 in der Reihenfolge, in der die Verarbeitungseinheiten in der Attributliste aufgeführt sind. Somit verhandelt die SCH mit Blick auf die zur Veranschaulichung dienende Liste der Aufgabeattribute aus 2 mit der Verarbeitungseinheit mit dem besten Energienutzungsgrad, PTID,1. PTID,1 ermittelt daraufhin umgehend, ob sie angesichts der Beschränkungen für die erforderlichen Zyklen pro Sekunde in der Lage ist, die fragliche Aufgabe zu verarbeiten. PTID,1 nimmt die Aufgabe dann entweder an oder lehnt sie ab. Wenn PTID,1 die Aufgabe ablehnt oder nach einer kurzen Zeit feststellt, dass sie nicht in der Lage sein wird, die Aufgabe rechtzeitig abzuschließen, unterbricht sie die SCH. Daraufhin versucht es die SCH mit der nächsten Verarbeitungseinheit in der Attributliste (d.h., sie verhandelt mit dieser), bis eine der aufgeführten Verarbeitungseinheiten die Aufgabe annimmt oder alle aufgeführten Verarbeitungseinheiten durchprobiert wurden.
  • Dabei sollte klar sein, dass die Liste der Aufgabenattribute ermöglichen soll, die Annahme/Ablehnung auf der Grundlage der Verarbeitungsanforderungen einer gegebenen auszuführenden Aufgabe sowie der Verarbeitungskapazität des Prozessors, der die gegebene Aufgabe ausführen soll, zu ermitteln. Zu den Verarbeitungsanforderungen können z.B. eine Mindestverarbeitungskapazität, die für die Ausführung der Aufgabe notwendig ist, ein Endzeitpunkt, bis zu dem die Aufgabe ausgeführt sein muss, eine spezifische Bitbreite des Datenpfads usw. gehören. Die Verarbeitungskapazität kann eine momentan verfügbare Verarbeitungskapazität, eine momentane Bitbreite des Datenpfads usw. beinhalten.
  • Weiterhin sollte klar sein, dass die eigentliche Entscheidung darüber, ob ein gegebener Prozessor eine gegebene Aufgabe ausführen kann, durch den Prozessor, der gefragt wird, ob er die Aufgabe annehmen kann, oder aber durch die SCH getroffen werden kann. Eine derartige Entscheidung sollte vorzugsweise auf der Grundlage der Verarbeitungsanforderungen der Aufgabe und der Verarbeitungskapazitäten des Prozessors erfolgen, wobei die Verarbeitungsanforderungen in der Liste der Aufgabenattribute beschrieben sein können und wobei die Verarbeitungskapazitäten entweder ausschließlich für den Prozessor oder, über eine gemeinsam genutzte Liste der Prozessorattribute, auch für die Ablaufsteuerung zugänglich sein können. 3 ist eine Tabelle, die eine Liste der Prozessorattribute zeigt, welche für den Zugriff durch die SCH geeignet ist. In 3 ist N ist die Anzahl der Verarbeitungseinheiten und CPSj die momentan verfügbare maximale Verarbeitungskapazität des Prozessors j, wobei 1 ≤ j ≤ N ist. Die Liste der Prozessorattribute muss von den betreffenden Prozessoren zu dem Zeitpunkt dynamisch aktualisiert werden, zu dem die Prozessoren entweder eine neue Aufgabe annehmen oder eine Aufgabe beenden, so dass die Werte in der Attributliste eine nahezu ständig aktuelle Momentaufnahme der Verarbeitungskapazitäten der betreffenden Prozessoren darstellen. Selbstverständlich können einige der Verarbeitungsanforderungen und/oder Verarbeitungskapazitäten für eine künftige Verwendung auch in anderen Speicherstrukturen als den Listen für die Aufgaben- und Prozessorattribute gespeichert werden.
  • Zum besseren Verständnis sollen für Unterbrechungen die folgenden Voraussetzungen/Bedingungen gelten. Die SCH verarbeitet jeweils eine E/A-Unterbrechung. Eine E/A-Unterbrechung kann weder Vorrang vor der Verarbeitung einer anderen E/A-Unterbrechung haben, noch kann eine E/A-Unterbrechung Vorrang vor der Verarbeitung einer Prozessorunterbrechung haben. E/A-Unterbrechungen werden in der Reihenfolge ihres Empfangs in die Warteschlange gestellt. Prozessorunterbrechungen haben Vorrang vor E/A-Unterbrechungen.
  • 4 ist ein Ablaufdiagramm, das die Aufgabeneinplanung durch die SCH gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Wenn eine Unterbrechung empfangen wurde, wird zunächst ihre Kategorie ermittelt (Schritt 310). Wenn es sich um eine E/A-Unterbrechung handelt, wird sie unter Berücksichtigung der Eingangsreihenfolge in die Warteschlange gestellt (Schritt 315).
  • Danach wird ermittelt, ob sich die SCH im Ruhezustand befindet (Schritt 316). Wenn dies nicht der Fall ist (d.h., wenn sich die SCH im Belegtzustand befindet), wechselt die SCH in den Wartemodus (Schritt 317). Im Wartemodus kann die SCH keine anderen E/A-Unterbrechungen abarbeiten, sie lässt jedoch zu, dass die E/A-Unterbrechungen, wie oben mit Blick auf Schritt 315 beschrieben, in die Warteschlange gestellt werden. Wenn sich die SCH jedoch im Ruhezustand befindet, fährt sie anschließend fort, indem sie die nächste Unterbrechung in der Warteschlange abruft (Schritt 318), bei der es sich standardmäßig um die gerade eben empfangene E/A-Unterbrechung handelt. Als Nächstes wechselt sie in den Belegtzustand (Schritt 319).
  • Die Unterbrechung wird in eine Adresse der Aufgabenattributliste aufgelöst, indem die SCH eine Tabelle der Unterbrechungsvektoren abfragt (Schritt 320). Anschließend werden die Aufgabenattribute für die Aufgabe abgerufen (Schritt 325). Im Anschluss daran gibt die SCH eine Anforderung an die erste in der Attributliste aufgeführte Verarbeitungseinheit aus, die Aufgabe (mit Aufgabenkennzahl TID), welche zu der gegenwärtigen E/A-Unterbrechung zugehörig ist, anzunehmen oder abzulehnen (Schritt 330). Während der Schritte 319 bis 330 befindet sich die SCH im Belegtzustand. Nachdem Schritt 330 durchgeführt wurde, wechselt die SCH in den Wartemodus (Schritt 317). Während sich die SCH im Wartemodus befindet, wartet sie im Wesentlichen darauf, dass die derzeitige Verarbeitungseinheit antwortet, ob sie die Aufgabe (mit Aufgabenkennzahl TID), welche zu der gegenwärtigen E/A-Unterbrechung zugehörig ist, annehmen oder ablehnen wird.
  • Die derzeitige Verarbeitungseinheit antwortet der SCH, indem sie eine Prozessorunterbrechung erzeugt, die wie oben erwähnt Vorrang gegenüber Unterbrechungen des E/A-Typs hat. Wenn also ermittelt wird, dass die empfangene Unterbrechung in die Kategorie der Prozessorunterbrechungen fällt (Schritt 310), wird die Prozessorunterbrechung sofort verarbeitet. Die SCH fragt die Verarbeitungseinheit PTID,i auf die Unterbrechungsfunktion IF_Accept ab (Schritt 340). Eine Unterbrechungsfunktion IF_Accept gibt einen Booleschen Wert „wahr" zurück, wenn die Verarbeitungseinheit die Aufgabe angenommen hat, und einen Booleschen Wert „falsch", wenn die Verarbeitungseinheit die Aufgabe abgelehnt hat. Daraufhin wird ermittelt, ob der von der Unterbrechungsfunktion IF_Accept zurückgegebene Wert „wahr" oder „falsch" lautet.
  • Wenn IF_Accept den Wert „wahr" liefert, kehrt die SCH in den Ruhezustand zurück (Schritt 352). Als Nächstes prüft die SCH, ob sich in der Schlange noch weitere E/A-Unterbrechungen befinden (Schritt 360). Wenn sich in der Schlange keine weiteren Unterbrechungen mehr befinden, wechselt die SCH in den Bereitschaftsmodus, in dem sie einfach auf eine weitere E/A-Unterbrechung wartet (Schritt 361). Falls andernfalls weitere Unterbrechungen vorhanden sein sollten, kehrt das Verfahren zu Schritt 318 zurück, in dem die nächste E/A-Unterbrechung in der Warteschlange abgerufen wird.
  • Wenn IF_Accept den Wert „falsch" liefert, wird der Wert von i um Eins erhöht (Schritt 355), und das Verfahren kehrt zu Schritt 330 zurück (so dass die SCH eine Anforderung an die nächste in der Attributliste aufgeführte Verarbeitungseinheit ausgeben kann, die Aufgabe (mit Aufgabenkennzahl TID), die zu der gegenwärtigen E/A-Unterbrechung zugehörig ist, anzunehmen oder abzulehnen).
  • 5 ist ein Ablaufdiagramm, das die Aufgabenverarbeitung durch Pj (d.h. die Verarbeitungseinheit P1 oder P2) darstellt. Zum besseren Verständnis sollen bestimmte Voraussetzungen gegeben sein. Eine Verarbeitungseinheit kann auf zwei Arten unterbrochen werden: durch die SCH und durch den lokalen BS-Zeitgeber des Prozessors. Eine Unterbrechung von der SCH wird immer sofort abgearbeitet. Die Zeitgeberunterbrechung wird ebenfalls immer sofort abgearbeitet, es sei denn, die Verarbeitungseinheit Pj arbeitet gerade eine Unterbrechung von der SCH ab. Die Abarbeitungszeit für eine SCH-Unterbrechung ist sehr viel kürzer als das Intervall T für eine Unterbrechung des BS-Hauptzeitgebers. BS-Code wird lokal gespeichert, d.h., das BS befindet sich nicht in dem gemeinsam genutzten Speicherplatz MEM.
  • Bei einem erneuten Blick auf 4 wird deutlich, dass die SCH jeweils eine E/A-Unterbrechungsquelle verarbeitet und dass die SCH als Folge der Unterbrechung nacheinander mit einer oder mehreren Verarbeitungseinheiten verhandelt. Auf diese Weise verhandelt die SCH jeweils mit einer Verarbeitungseinheit, und somit wird zu jedem beliebigen Zeitpunkt höchstens eine Unterbrechung von der SCH durch eine der Verarbeitungseinheiten abgearbeitet. Eine Unterbrechung von der SCH kann nie in einer Verarbeitungseinheit in die Warteschlange gestellt werden, da die SCH so lange keine weitere Unterbrechung ausgeben kann, bis eine Verarbeitungseinheit die gegenwärtige Unterbrechung von der SCH vollständig abgearbeitet hat.
  • Im Folgenden wird eine kurze Beschreibung der Aufgabenzulassung in Pj gegeben, gefolgt von einer ausführlicheren Beschreibung mit Bezug auf 5. Wenn die Verarbeitungseinheit Pj eine Unterbrechung empfängt, ermittelt sie zunächst den Ursprung der Unterbrechung (d.h., ob diese von der SCH oder vom lokalen BS-Zeitgeber der Verarbeitungseinheit Pj kommt). Wenn es sich bei der Unterbrechung um die SCH-Unterbrechung handelt, speichert die Verarbeitungseinheit den gegenwärtigen Zustand im lokalen Speicher und arbeitet die Unterbrechung ab. Somit kann eine Unterbrechung von der SCH Vorrang vor einer beliebigen anderen derzeit ausgeführten Aufgabe haben. Nach Abschluss der SCH- Unterbrechungsaufgabe fährt die Verarbeitungseinheit Pj mit der Ausführung der zurückgestellten Aufgabe fort. Während die Verarbeitungseinheit Pj eine SCH-Unterbrechung abarbeitet, sind Unterbrechungen deaktiviert. Sollte eine Zeitgeberunterbrechung auftreten, während die SCH-Unterbrechung abgearbeitet wird, wird die Zeitgeberunterbrechung erst dann abgearbeitet, wenn die SCH-Unterbrechung abgeschlossen wurde.
  • Mit erneutem Blick kauf 5 ermittelt die Verarbeitungseinheit Pj, wenn sie eine Unterbrechung empfängt, zunächst den Ursprung der Unterbrechung (Schritt 410). Beim Empfang einer SCH-Unterbrechung deaktiviert die Verarbeitungseinheit Pj Unterbrechungen und speichert den gegenwärtigen Programmkontext (Schritt 415). Danach ruft die Verarbeitungseinheit Pj TID-Attribute von Belang ab, die für die TID-Zulassungsprüfung benötigt werden (Schritt 420). Die TID-Attribute von Belang beinhalten die der Pj zugehörige CPS-Verarbeitungsanforderung. Die Adresse der Aufgabenattributtabelle kann von der SCH über einen gemeinsam genutzten Puffer an die Verarbeitungseinheit weitergeleitet werden (z.B. in Schritt 325 aus 4). Anschließend wird die TID-Zulassungsprüfung durchgeführt (Schritt 425). Die TID-Zulassungsprüfung kann beispielsweise durch die Verwendung von Gleichung 1 erfolgen, die weiter unten ausführlich beschrieben wird. Im Anschluss daran wird ermittelt, ob das Ergebnis der Zulassungsprüfung eine Ablehnung oder eine Annahme der TID ist (Schritt 430). Bei einer Annahme wird die TID registriert, der Aufgabenzeiger ADDR wird in die Zeitgeberkette eingefügt, und der TID wird eine Zeitscheibe zugewiesen (Schritt 435), und das Verfahren kehrt mit Schritt 440 fort. Andernfalls fährt das Verfahren direkt mit Schritt 440 fort.
  • In Schritt 440 wird die SCH über das Ergebnis der Zulassungsprüfung (d.h. die Entscheidung der Verarbeitungseinheit Pj) unterrichtet, indem die SCH unterbrochen und das Boolesche Ergebnis in einen gemeinsam genutzten Puffer gestellt wird, auf den die SCH zugreifen kann. Danach aktiviert die Verarbeitungseinheit Pj wieder Unterbrechungen und stellt den Aufgabenkontext wieder her (Schritt 445).
  • Mit Bezug auf die Zuweisung einer Zeitscheibe in Schritt 435 erfolgt deren Berechnung auf der Grundlage der erforderlichen Rechenkapazität (CPS) für die Aufgabe (in Schritt 420 abgerufen) sowie der derzeitigen Auslastung der Verarbeitungseinheit Pj. Zur besseren Veranschaulichung wird eine Art der Zeitscheibenberechnung in Gleichung 2 gezeigt, die weiter unten beschrieben wird.
  • Wenn in Schritt 410 ermittelt wird, dass es sich bei der empfangenen Unterbrechung um eine Zeitgeberunterbrechung handelt, wird der gegenwärtige Aufgabenkontext gespeichert (Schritt 450), die nächste Aufgabe in der Zeitgeberkette wird geladen (Schritt 475), und der lokale Zeitgeber wird so programmiert, dass er gemäß der Zeitscheibe, die der nächsten Aufgabe zugewiesen wurde, unterbricht (Schritt 480). Auf diese Weise werden die registrierten Aufgaben nacheinander ausgeführt. Wenn die letzte Aufgabe in der Zeitgeberkette ausgeführt wurde, wird der Zeitgeber so programmiert, dass er beim nächsten Hauptzeitgeber-Intervall T, zu dem die Aufgaben in regelmäßigen Abständen zur Ausführung geladen werden, unterbricht. Dabei ist zu beachten, dass eine beliebige registrierte Aufgabe bei Bedarf in einen deaktivierten Modus versetzt (z.B. wenn der Benutzer eine Anwendung nicht verwendet) und so vorübergehend aus der Zeitgeberkette herausgenommen werden kann, so dass der Prozessor möglichst häufig in den Schlafmodus wechseln kann, um Energie zu sparen.
  • Mit Bezug auf die Zulassungsprüfung aus Schritt 425 soll eine Verarbeitungseinheit Pj betrachtet werden, die gegenwärtig K Aufgaben ausführt. Daraufhin soll eine neue Aufgabe TIDK+1 betrachtet werden, welche die SCH zur Prüfung an Pj übergibt. Aus der Liste der Attribute der neuen Aufgaben ist ersichtlich, dass TIDK+1 eine Rechenkapazität von mindestens CPSTIDK+1 benötigt. Damit die neue Aufgabe TIDK+1 auf Pj zugelassen wird, muss der Term aus Gleichung 1 erfüllt sein, wonach CPSCLK die Taktfrequenz der Verarbeitungseinheit, CPSOS die dem Betriebssystem zugewiesene CPS, CPSSCH die der SCH-Interaktion zugewiesene CPS (d.h., der Zulassungsteilprozess nimmt einen Teil dieser Zuweisung für sich in Anspruch) und CPSTIDK die CPS ist, die der k-ten Aufgabe zugewiesen ist, die derzeit auf der Pj ausgeführt wird. Dabei ist zu beachten, dass alle Parameter der Gleichung 1 spezifisch für Pj sind, und dass das Suffix Pj daher weggelassen wurde.
  • Figure 00230001
  • Dabei ist zu beachten, dass die Ermittlung der für eine Aufgabe erforderlichen CPS in vielen Fällen auf der Erfahrung des Programmierers beruht. Eine Art und Weise, wie die erforderliche CPS für eine Aufgabe ermittelt werden kann, besteht darin, die Aufgabe auf der Ziel-Verarbeitungseinheit zu starten, auf der zusätzlich eine so genannte Drosselaufgabe läuft, deren CPS angepasst werden kann. Zunächst wird der Aufgabe die höchstmögliche CPS zur Verfügung gestellt, d.h. CPSmax = CPSCLK – CPSOS – CPSSCH – CPSTHROTTLE (= 0). Dann erhöht der Programmierer nach und nach die Drossel-CPS der betreffenden Aufgabe. Auf diese Weise kann der Programmierer feststellen, ab wann die neue Aufgabe nicht mehr zufrieden stellend ausgeführt wird.
  • Mit Blick auf die Ziel-Zeitscheibe soll erneut eine Verarbeitungseinheit Pj betrachtet werden, auf der K Aufgaben ausgeführt werden. Nun soll eine neue Aufgabe TIDK+1 betrachtet werden, welche die SCH zur Prüfung an Pj übergibt. Außerdem soll angenommen werden, dass jede Aufgabe TIDK mit dem Haupt-Zeitintervall T ausgeführt wird, das von dem lokalen BS verwaltet und durch eine geeignete Programmierung des lokalen Zeitgebers ermöglicht wird. Wenn Pj nun die Aufgabe zulässt, wird der neuen Aufgabe TIDK+1 nun gemäß Gleichung 2 die Zeitscheibe ΔTK+1 zugewiesen.
  • Figure 00240001
  • Es sollte deutlich geworden sein, dass die Erfindung auch so realisiert werden kann, dass die Verarbeitungseinheit, die zur Ausführung einer Aufgabe eingeplant ist, nicht die Verarbeitungseinheit ist, welche die geringste Menge an Energie verbraucht, sondern diejenige mit dem zweitniedrigsten, drittniedrigsten usw. Energieverbrauch. Obwohl das Ziel letztendlich darin besteht, die Verarbeitungseinheit mit dem höchsten Energienutzungsgrad auszuwählen, bedeutet dies, dass auch andere Verarbeitungseinheiten mit ähnlichem Energienutzungsgrad ausgewählt werden können, wie der Fachmann ohne weiteres erkennen wird. So kann die Verarbeitungseinheit mit dem höchsten Energienutzungsgrad beispielsweise mit der Verarbeitung einer anderen Aufgabe beschäftigt sein, oder es ist aus Gründen der Einplanung sinnvoll, die Verarbeitungseinheit mit dem zweitbesten, drittbesten oder N-ten Energienutzungsgrad zu verwenden. Auf diese Weise können die Verarbeitungseinheiten daraufhin abgefragt werden, ausgehend von einer partiellen Reihenfolge des abnehmenden Energienutzungsgrads eine gegebene Aufgabe zur Ausführung anzunehmen oder abzulehnen. Die partielle Reihenfolge bedeutet, dass einige Verarbeitungseinheiten mit Blick auf den Energienutzungsgrad entweder außerhalb der Reihenfolge ausgewählt werden können, dass sie vollständig außer Betracht gelassen werden können oder dass eine Kombination dieser Faktoren für sie gelten kann. Vor dem Hintergrund der Lehren der hier bereitgestellten Erfindung ist der Fachmann in der Lage, diese und andere Variationen, Abänderungen und Erweiterungen der Aufgabeneinplanung mit Bezug auf einen niedrigen Energieverbrauch in Betracht zu ziehen, ohne dass der Geltungsumfang der Erfindung dadurch berührt würde.
  • Weiterhin ist zu beachten, dass die hier beschriebenen Verarbeitungseinheiten z.B. Mikroprozessoren, Mikrocontroller, Prozessoren für die digitale Signalverarbeitung (DSPs) oder andere Einheiten sein können, die in der Lage sind, Befehle auszuführen. Außerdem kann auch eine Kombination der oben genannten Elemente verwendet werden.
  • Schließlich ist auch zu beachten, dass die Verarbeitungseinheiten Aufgaben ausführen, die durch die Ablaufsteuerung eingeplant werden, sowie möglicherweise anderweitige Aufgaben, die nicht durch die Ablaufsteuerung eingeplant werden.

Claims (10)

  1. Computersystem, das Folgendes umfasst: mindestens zwei Verarbeitungseinheiten (P1, P2), die über einen unterschiedlichen Energienutzungsgrad verfügen und so gestaltet sind, dass sie mindestens in der Lage sind, Aufgaben ausgehend von den Verarbeitungsanforderungen der Aufgaben und einer entsprechenden Verarbeitungskapazität auszuführen, gekennzeichnet durch eine Ablaufsteuerung (SCH), die so gestaltet ist, dass sie eine gegebene Aufgabe, die zur Ausführung durch eine der mindestens zwei Verarbeitungseinheiten vorgesehen ist, so einplant, dass sie die geringste Menge an Energie verbraucht, sowie, dass sie die gegebene Aufgabe, die zur Ausführung durch eine andere der mindestens zwei Verarbeitungseinheiten vorgesehen ist, auf einen anderen Zeitpunkt verlegt, wenn ermittelt wird, dass die eine der mindestens zwei Verarbeitungseinheiten ausgehend von den Verarbeitungsanforderungen der gegebenen Aufgabe und der entsprechenden Verarbeitungskapazität nicht in der Lage ist, die Ausführung der gegebenen Aufgabe zu übernehmen.
  2. Computersystem nach Anspruch 1, bei dem die Ablaufsteuerung so gestaltet ist, dass sie eine gegebene Aufgabe, die zur Ausführung durch eine der mindestens zwei Verarbeitungseinheiten vorgesehen ist, einplant, indem sie die mindestens zwei Verarbeitungseinheiten so lange in einer partiellen Reihenfolge des abnehmenden Energienutzungsgrads daraufhin abfragt, ob diese die Ausführung der gegebenen Aufgabe annehmen oder ablehnen, bis die gegebene Aufgabe von der einen der mindestens zwei Verarbeitungseinheiten angenommen und ausgeführt und von einer anderen der mindestens zwei Verarbeitungseinheiten abgelehnt wird.
  3. Computersystem nach Anspruch 2, bei dem die Ablaufsteuerung weiter so gestaltet ist, dass sie, ausgehend von mindestens einer vorbestimmten Bedingung, eine beliebige der mindestens zwei Verarbeitungseinheiten aus der partiellen Reihenfolge ausschließt.
  4. Computersystem nach einem beliebigen der voranstehenden Ansprüche, das weiter Folgendes umfasst: eine Tabelle der Prozessorattribute, die so gestaltet ist, dass sie Daten zur Verarbeitungskapazität für mindestens einen der mindestens zwei Prozessoren speichert und die Daten zur Verarbeitungskapazität dynamisch aktualisiert, wenn sich diese ändern.
  5. Computersystem nach Anspruch 4, bei dem die Ablaufsteuerung so gestaltet ist, dass sie für eine gegebene Aufgabe mindestens einige der Daten zur Verarbeitungskapazität aus der Tabelle der Prozessorattribute abruft und dabei eine partielle und eine strikte Reihenfolge des abnehmenden Energienutzungsgrads zugrunde legt, bis sich herausstellt, dass einer der mindestens zwei Prozessoren über eine angemessene Verarbeitungskapazität für die gegebene Aufgabe verfügt, sowie, dass sie die gegebene Aufgabe zur Ausführung durch einen der mindestens zwei Prozessoren einplant.
  6. Computersystem nach einem beliebigen der voranstehenden Ansprüche, bei dem die Ablaufsteuerung weiter so gestaltet ist, dass sie Unterbrechungen von den mindestens zwei Verarbeitungseinheiten und Peripheriegeräten abfängt.
  7. Computersystem nach einem beliebigen der voranstehenden Ansprüche, das weiter einen Aufgabenattributspeicher umfasst, der so gestaltet ist, dass er mindestens einige der Verarbeitungsanforderungen von mindestens einigen der eingeplanten Aufgaben speichert.
  8. Computersystem nach einem beliebigen der voranstehenden Ansprüche, bei dem die Verarbeitungsanforderungen einen Endzeitpunkt umfassen, an dem die gegebene Aufgabe abgeschlossen sein muss.
  9. Computersystem nach einem beliebigen der voranstehenden Ansprüche 1 bis 8, bei dem die Ermittlung durch die Ablaufsteuerung erfolgt.
  10. Computersystem nach einem beliebigen der Ansprüche 1 bis 8, bei dem die Ermittlung durch eine der mindestens zwei Verarbeitungseinheiten erfolgt.
DE60110847T 2001-01-05 2001-12-21 Rechnersystem mit niedrigem energieverbrauch Expired - Lifetime DE60110847T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/755,861 US6986066B2 (en) 2001-01-05 2001-01-05 Computer system having low energy consumption
US755861 2001-01-05
PCT/GB2001/005714 WO2002054198A2 (en) 2001-01-05 2001-12-21 Computer system having low energy consumption

Publications (2)

Publication Number Publication Date
DE60110847D1 DE60110847D1 (de) 2005-06-16
DE60110847T2 true DE60110847T2 (de) 2006-02-23

Family

ID=25040965

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60110847T Expired - Lifetime DE60110847T2 (de) 2001-01-05 2001-12-21 Rechnersystem mit niedrigem energieverbrauch

Country Status (10)

Country Link
US (1) US6986066B2 (de)
EP (1) EP1381932B1 (de)
JP (1) JP3790743B2 (de)
KR (1) KR100516290B1 (de)
CN (1) CN1258128C (de)
AT (1) ATE295566T1 (de)
AU (1) AU2002217289A1 (de)
DE (1) DE60110847T2 (de)
TW (1) TW546558B (de)
WO (1) WO2002054198A2 (de)

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020173344A1 (en) * 2001-03-16 2002-11-21 Cupps Bryan T. Novel personal electronics device
US20030163601A1 (en) * 2001-03-16 2003-08-28 Cupps Bryan T. Novel personal electronics device with common application platform
US7184003B2 (en) * 2001-03-16 2007-02-27 Dualcor Technologies, Inc. Personal electronics device with display switching
US20030100340A1 (en) * 2001-03-16 2003-05-29 Cupps Bryan T. Novel personal electronics device with thermal management
US7231531B2 (en) * 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
US7216242B2 (en) * 2001-03-16 2007-05-08 Dualcor Technologies, Inc. Personal electronics device with appliance drive features
US20030153354A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with keypad application
US20030153353A1 (en) * 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with simultaneous multi-processor operation
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
US7254812B1 (en) * 2002-05-31 2007-08-07 Advanced Micro Devices, Inc. Multi-processor task scheduling
US7100060B2 (en) * 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
US7111089B2 (en) * 2002-12-23 2006-09-19 Motorola, Inc. Programmable scheduler for digital signal processor
US7191349B2 (en) * 2002-12-26 2007-03-13 Intel Corporation Mechanism for processor power state aware distribution of lowest priority interrupt
US20060206689A1 (en) * 2003-08-07 2006-09-14 Matsushita Electric Industrial Co., Ltd. Processor integrated circuit and product development method using the processor integrated circuit
US20050060385A1 (en) * 2003-09-15 2005-03-17 Gupta Vivek G. Method and apparatus for sharing a GPRS module with two computing devices
US7194643B2 (en) * 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
JP3830491B2 (ja) * 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
US8537384B2 (en) * 2004-04-01 2013-09-17 United Parcel Service Of America, Inc. Integrated task management systems and methods for executing rule-based operations
US7152171B2 (en) * 2004-04-28 2006-12-19 Microsoft Corporation Task-oriented processing as an auxiliary to primary computing environments
US7617359B2 (en) * 2004-06-10 2009-11-10 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7730335B2 (en) 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US20080140921A1 (en) * 2004-06-10 2008-06-12 Sehat Sutardja Externally removable non-volatile semiconductor memory module for hard disk drives
US7725749B2 (en) * 2004-08-05 2010-05-25 Panasonic Corporation Information processing device for assigning processes to a main CPU or sub-CPU based on a sleeping state
US20060064606A1 (en) * 2004-09-21 2006-03-23 International Business Machines Corporation A method and apparatus for controlling power consumption in an integrated circuit
US20060200651A1 (en) * 2005-03-03 2006-09-07 Collopy Thomas K Method and apparatus for power reduction utilizing heterogeneously-multi-pipelined processor
US7627770B2 (en) * 2005-04-14 2009-12-01 Mips Technologies, Inc. Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US7600135B2 (en) * 2005-04-14 2009-10-06 Mips Technologies, Inc. Apparatus and method for software specified power management performance using low power virtual threads
US20060265712A1 (en) * 2005-05-18 2006-11-23 Docomo Communications Laboratories Usa, Inc. Methods for supporting intra-document parallelism in XSLT processing on devices with multiple processors
US20060294401A1 (en) * 2005-06-24 2006-12-28 Dell Products L.P. Power management of multiple processors
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US8255745B2 (en) * 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US20070050604A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Fetch rerouting in response to an execution-based optimization profile
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US8214191B2 (en) 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US8181004B2 (en) * 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US8375247B2 (en) * 2005-08-29 2013-02-12 The Invention Science Fund I, Llc Handling processor computational errors
US7774558B2 (en) 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US20070094435A1 (en) * 2005-10-25 2007-04-26 Fry Walter G Computer docking system and method
WO2007077516A1 (en) * 2006-01-06 2007-07-12 Koninklijke Philips Electronics, N.V. Power aware dynamic scheduling in multiprocessor system employing voltage islands
CN100550766C (zh) * 2006-01-24 2009-10-14 华为技术有限公司 预定任务执行方法和管理任务执行方法、及其终端设备
CN101385000A (zh) * 2006-02-17 2009-03-11 高通股份有限公司 用于多处理器应用程序支持的***及方法
JP4800837B2 (ja) * 2006-05-22 2011-10-26 株式会社日立製作所 計算機システム、その消費電力低減方法、及びそのプログラム
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
CN101529383B (zh) * 2006-08-24 2012-05-30 科尼龙硅公司 任务处理装置
US20080127192A1 (en) * 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
US8201165B2 (en) * 2007-01-02 2012-06-12 International Business Machines Corporation Virtualizing the execution of homogeneous parallel systems on heterogeneous multiprocessor platforms
DE102007007345A1 (de) * 2007-02-14 2008-08-21 Siemens Enterprise Communications Gmbh & Co. Kg Verfahren und Anordnung zum Bereitstellen eines drahtlosen Mesh-Netzwerks
US10339227B1 (en) 2007-06-08 2019-07-02 Google Llc Data center design
US20090125010A1 (en) * 2007-07-06 2009-05-14 Sharkey Hugh R Uterine Therapy Device and Method
US8069354B2 (en) 2007-08-14 2011-11-29 Mips Technologies, Inc. Power management for system having one or more integrated circuits
US8032681B2 (en) * 2007-09-06 2011-10-04 Intel Corporation Processor selection for an interrupt based on willingness to accept the interrupt and on priority
US8395621B2 (en) * 2008-02-12 2013-03-12 Accenture Global Services Limited System for providing strategies for increasing efficiency of data centers
US8635625B2 (en) * 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US7779191B2 (en) * 2008-07-29 2010-08-17 Nvidia Corporation Platform-based idle-time processing
US9043795B2 (en) 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
US7653826B1 (en) 2009-01-20 2010-01-26 International Business Machines Corporation Method and apparatus for query optimization and management of sleepy drives
US8178997B2 (en) 2009-06-15 2012-05-15 Google Inc. Supplying grid ancillary services using controllable loads
US8239699B2 (en) * 2009-06-26 2012-08-07 Intel Corporation Method and apparatus for performing energy-efficient network packet processing in a multi processor core system
CN101604264B (zh) * 2009-07-08 2012-07-25 深圳先进技术研究院 超级计算机的任务调度方法及***
US8776066B2 (en) * 2009-11-30 2014-07-08 International Business Machines Corporation Managing task execution on accelerators
US8423799B2 (en) * 2009-11-30 2013-04-16 International Business Machines Corporation Managing accelerators of a computing environment
JP5621287B2 (ja) * 2010-03-17 2014-11-12 富士通株式会社 負荷分散システムおよびコンピュータプログラム
US8279597B2 (en) 2010-05-27 2012-10-02 International Business Machines Corporation Heatsink allowing in-situ maintenance in a stackable module
US8174826B2 (en) 2010-05-27 2012-05-08 International Business Machines Corporation Liquid cooling system for stackable modules in energy-efficient computing systems
US8358503B2 (en) 2010-05-28 2013-01-22 International Business Machines Corporation Stackable module for energy-efficient computing systems
US8179674B2 (en) 2010-05-28 2012-05-15 International Business Machines Corporation Scalable space-optimized and energy-efficient computing system
WO2013016313A1 (en) 2011-07-25 2013-01-31 Servergy, Inc. Method and system for building a low power computer system
US8688883B2 (en) 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
CN102508714A (zh) * 2011-11-03 2012-06-20 南京邮电大学 一种云计算中基于绿色计算的虚拟机调度方法
US9009500B1 (en) 2012-01-18 2015-04-14 Google Inc. Method of correlating power in a data center by fitting a function to a plurality of pairs of actual power draw values and estimated power draw values determined from monitored CPU utilization of a statistical sample of computers in the data center
US9489067B2 (en) * 2012-08-17 2016-11-08 Qualcomm Incorporated Scalable touchscreen processing with realtime role negotiation among asymmetric processing cores
US9424212B2 (en) 2013-06-13 2016-08-23 Microsoft Technology Licensing, Llc Operating system-managed interrupt steering in multiprocessor systems
CN103677212A (zh) * 2013-12-12 2014-03-26 中南林业科技大学 一种基于cps的低功耗实时数据处理的方法
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
CN105094283A (zh) * 2015-07-23 2015-11-25 上海新储集成电路有限公司 一种超低功耗且高性能的微处理器及其运行方法
CN108710538B (zh) * 2018-05-14 2023-06-02 中国平安人寿保险股份有限公司 一种线程配置方法、计算机可读存储介质及终端设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0778785B2 (ja) * 1986-03-29 1995-08-23 株式会社東芝 プロセッサ選択方法
JPH0642691B2 (ja) * 1988-05-21 1994-06-01 富士通株式会社 移動電話端末
US5142684A (en) 1989-06-23 1992-08-25 Hand Held Products, Inc. Power conservation in microprocessor controlled devices
JP2970262B2 (ja) * 1992-09-30 1999-11-02 日本電気株式会社 プログラムディスパッチ方式
US5487181A (en) * 1992-10-28 1996-01-23 Ericsson Ge Mobile Communications Inc. Low power architecture for portable and mobile two-way radios
US5790817A (en) 1996-09-25 1998-08-04 Advanced Micro Devices, Inc. Configurable digital wireless and wired communications system architecture for implementing baseband functionality
US6314447B1 (en) * 1999-10-04 2001-11-06 Sony Corporation System uses local registry and load balancing procedure for identifying processing capabilities of a remote device to perform a processing task
US6501999B1 (en) * 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching

Also Published As

Publication number Publication date
CN1596392A (zh) 2005-03-16
DE60110847D1 (de) 2005-06-16
AU2002217289A1 (en) 2002-07-16
TW546558B (en) 2003-08-11
EP1381932B1 (de) 2005-05-11
JP3790743B2 (ja) 2006-06-28
JP2004530181A (ja) 2004-09-30
US20020124196A1 (en) 2002-09-05
KR20030066768A (ko) 2003-08-09
WO2002054198A3 (en) 2003-11-13
US6986066B2 (en) 2006-01-10
CN1258128C (zh) 2006-05-31
KR100516290B1 (ko) 2005-09-21
ATE295566T1 (de) 2005-05-15
EP1381932A2 (de) 2004-01-21
WO2002054198A2 (en) 2002-07-11

Similar Documents

Publication Publication Date Title
DE60110847T2 (de) Rechnersystem mit niedrigem energieverbrauch
DE102014011332B4 (de) Priorisieren von anweisungen basierend auf typ
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE102014101633B4 (de) Unterbrechung von Aufgaben zur Verwatlung von Chip-Komponenten
DE102013104328A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE10141626B4 (de) Dynamische Angleichung von Leistungsvermögen und Strombedarf
DE102013014169B4 (de) Dynamisch grössenveränderbare Zirkularpuffer
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE102008062692B4 (de) Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
DE60223555T2 (de) Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
DE102013104329B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112017000721T5 (de) Verfahren, einrichtung und befehle für thread-aussetzung auf benutzerebene
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE112011100715T5 (de) Hardware-hilfs-thread
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE102005044533A1 (de) Aufgabenplanungsverfahren für geringe Leistungsableitung in einem Systemchip
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112014006501T5 (de) Synchronisierung der Unterbrechungsverarbeitung zur Verringerung des Stromverbrauchs
DE112013001361T5 (de) Bereitstellung Snoop-Filterung zugeordnet mit einem Datenpuffer
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
CN100445972C (zh) 多处理器***
DE102020128808A1 (de) Einrichtung und Verfahren zur adaptiven Planung von Arbeit auf heterogenen Verarbeitungsressourcen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7