DE102004059996B4 - Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors - Google Patents

Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors Download PDF

Info

Publication number
DE102004059996B4
DE102004059996B4 DE102004059996A DE102004059996A DE102004059996B4 DE 102004059996 B4 DE102004059996 B4 DE 102004059996B4 DE 102004059996 A DE102004059996 A DE 102004059996A DE 102004059996 A DE102004059996 A DE 102004059996A DE 102004059996 B4 DE102004059996 B4 DE 102004059996B4
Authority
DE
Germany
Prior art keywords
processor
clock frequency
buffer memory
data
output buffer
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.)
Active
Application number
DE102004059996A
Other languages
English (en)
Other versions
DE102004059996A1 (de
Inventor
Achim Degenhardt
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102004059996A priority Critical patent/DE102004059996B4/de
Priority to US11/303,055 priority patent/US7669067B2/en
Publication of DE102004059996A1 publication Critical patent/DE102004059996A1/de
Application granted granted Critical
Publication of DE102004059996B4 publication Critical patent/DE102004059996B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • 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

Landscapes

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

Abstract

Verfahren zum Einstellen der Taktfrequenz (f) eines Prozessors (10; 10'), umfassend die Schritte:
– Ermitteln eines Prozessorauslastungswerts, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor (10) ausgeführten Instruktionen darstellt, und
– Einstellen der Taktfrequenz (f) eines Taktsignals (CL) des Prozessors (10; 10') abhängig von dem ermittelten Prozessorauslastungswert,
gekennzeichnet durch die Schritte:
– Zwischenspeichern von durch den Prozessor (10; 10') zu verarbeitenden Daten (1) in einem Eingabe-Pufferspeicher (11; 11') und
– Anpassen der Taktfrequenz (f) abhängig von dem Füllstand des Eingabe-Pufferspeichers (11; 11').

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Einstellen der Taktfrequenz eines Prozessors sowie eine entsprechend ausgestaltete Vorrichtung. Bei dem Prozessor kann es sich insbesondere um einen digitalen Signalprozessor, beispielsweise für Kommunikationsanwendungen, oder einen Mikrokontroller handeln.
  • In vielen kommerziellen Produkten werden zunehmend digitale Signalprozessoren und/oder Mikrokontroller eingesetzt. Es ist in diesem Zusammenhang üblich, den Signalprozessoren oder Mikrokontrollern eine Vielzahl verschiedener Aufgaben zuzuweisen, wofür eine nicht unerhebliche Rechenleistung erforderlich ist. Diese Rechenleistung variiert jedoch abhängig von der jeweils zu bearbeitenden Aufgabe. Eine hohe Rechenleistung geht in der Regel einher mit einem entsprechend vergrößerten Energiebedarf und auch einer verstärkten Wärmeentwicklung. Daher ist nicht nur bei batterie- oder akkugetriebenen Produkten eine möglichst energiesparende Technik extrem wichtig, um zum einen eine möglichst lange Betriebsdauer im Batteriebetrieb erreichen zu können und zum anderen eine unnötige Wärmeentwicklung vermeiden zu können.
  • Ein bekannte Methode, die Energieaufnahme eines digitalen Signalprozessors oder Mikrokontrollers zu verringern, ist es, die Taktfrequenz des Prozessors derart zu reduzieren, dass die verfügbare Rechenleistung einem Worst-Case-Bedarf an Rechenleistung für die jeweils ausgeführten Algorithmen oder Programme angepasst wird. Im Prinzip wird hierfür die maximal erforderliche Rechenleistung für jedes ausgeführte Programm bzw. für jeden ausgeführten Algorithmus aufaddiert und die Taktfrequenz an diese Rechenleistung angepasst. In der Regel benötigen die Algorithmen und Programme im Mittel jedoch weit weniger Rechenleistung als die Worst-Case-Rechenleistung. Somit wird mit dieser bekannten Methode zwar eine Energieeinsparung erreicht, jedoch noch ein erheblicher Spielraum für weitere Energieeinsparungen belassen.
  • Eine weitere Methode zur Reduzierung der Energieaufnahme basiert darauf, das Taktsignal des Signalprozessors oder Mikrokontrollers anzuhalten, wenn alle Aufgaben abgehandelt wurden. Das Taktsignal bleibt dabei so lange angehalten, bis eines der ausgeführten Programme oder einer der ausgeführten Algorithmen wieder Prozessorleistung benötigt. Da der Signalprozessor oder Mikrokontroller entweder vollständig aktiv oder vollständig inaktiv ist, entstehen bei Anwendung dieser Methode Stromspitzen bei der Aktivierung bzw. Deaktivierung des Signalprozessors oder Mikrokontrollers. Insbesondere wenn der Signalprozessor oder Mikrokontroller als integrierte Schaltung auf einem Halbleiterchip implementiert ist bzw. einen Teil einer solchen Schaltung bildet, können hierdurch Probleme entstehen, da die extreme Modulation der Stromaufnahme zu Überkopplungen auf andere Komponenten, zum Beispiel auf Analog-Digital-Wandler oder Digital-Analog-Wandler führen kann.
  • Aus der DE 699 07 512 T2 sind ein Gerät und ein Verfahren zur automatischen Frequenzregelung einer zentralen Verarbeitungseinheit bekannt. Insbesondere wird darin ein CPU-Geschwindigkeitsregelsystem beschrieben, welches ein Taktmodul aufweist, das einer zentralen Verarbeitungseinheit bzw. CPU eine programmierbar einstellbare Taktfrequenz liefert. Es wird vorgeschlagen, die Höhe der CPU-Auslastung zu ermitteln und die Taktfrequenz abhängig von der ermittelten CPU-Auslastung zu verändern.
  • Die Aufgabe der vorliegenden Erfindung ist es, ein verbessertes Verfahren sowie eine verbesserte Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors bereitzustellen, durch welche eine geringere Energieaufnahme des Prozessors ermög licht wird, wobei gleichzeitig eine hohe Zuverlässigkeit bei der Bearbeitung der durch den Prozessor durchzuführenden Aufgaben gewährleistet ist.
  • Diese Aufgabe wird gelöst durch ein Verfahren gemäß dem unabhängigen Anspruch 1, ein Verfahren gemäß dem unabhängigen Anspruch 6, durch eine Vorrichtung gemäß dem unabhängigen Anspruch 12, und durch eine Vorrichtung gemäß dem unabhängigen Anspruch 16. Die abhängigen Ansprüche definieren vorteilhafte und bevorzugte Ausführungsformen der Erfindung.
  • Der erfindungsgemäße Ansatz basiert darauf, einen Prozessorauslastungswert, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor ausgeführten Instruktionen darstellt, zu ermitteln und die Taktfrequenz eines Taktsignals des Prozessors abhängig von dem ermittelten Prozessorauslastungswert einzustellen. Hierdurch kann der momentane Bedarf an Rechenleistung präzise ermittelt werden und die tatsächlich bereitgestellte Rechenleistung über die Taktfrequenz an diesen Bedarf angepasst werden. Da der tatsächliche momentane Bedarf an Rechenleistung in der Regel erheblich unterhalb dem Worst-Case-Bedarf an Rechenleistung liegt, kann auf diese Weise eine deutlich geringere Energie- oder Leistungsaufnahme des Prozessors erreicht werden. Nach Anpassung der bereitgestellten Rechenleistung an die tatsächlich erforderliche Rechenleistung kommt es darüber hinaus kaum oder sogar gar nicht mehr zu inaktiven Phasen des Prozessors, in welchen keine Aufgaben zur Bearbeitung anstehen.
  • Gemäß einem ersten Aspekt des erfindungsgemäßen Verfahrens werden durch den Prozessor verarbeitende Daten in einem Eingabe-Pufferspeicher zwischengespeichert. Gemäß einem zweiten Aspekt des erfindungsgemäßen Verfahrens ist vorgesehen, durch den Prozessor verarbeitete Daten in einem Ausgabe-Pufferspeicher zwischenzuspeichern. Durch die Zwischenspeicherung von Daten wird erreicht, dass auch im Fall einer Unterschätzung des tatsächlichen Bedarfs an Rechenleistung auf Basis des Prozessorauslastungswerts eine Echtzeitverarbeitung der Daten möglich ist, da der Empfang der Daten an einem Dateneingang des Prozessors und die Ausgabe von Daten an einem Datenausgang des Prozessors sichergestellt ist.
  • Erfindungsgemäß ist weiterhin vorgesehen, die Taktfrequenz des Prozessors abhängig von dem Füllstand des Eingabe-Pufferspeichers bzw. des Ausgabe-Pufferspeichers anzupassen. Allgemein wird hierbei die Taktfrequenz umso höher gewählt, je höher der Füllstand des Eingabe-Pufferspeichers ist. Gleichermaßen wird die Taktfrequenz umso höher gewählt, je niedriger der Füllstand des Ausgabe-Pufferspeichers ist. Vorzugsweise wird dabei für den Eingabe-Pufferspeicher und/oder den Ausgabe- Pufferspeicher ein Soll-Füllstand vorgegeben, bei dessen Überschreitung bzw. Unterschreitung die Taktfrequenz erhöht wird. Durch diese Anpassung der Taktfrequenz wird eine effiziente Anpassung der bereitgestellten Rechenleistung an den erforderlichen Bedarf insbesondere im Bereich eines hohen Werts der Prozessorauslastung ermöglicht.
  • Vorzugsweise wird jedoch nicht nur der Wert des Füllstands des Eingabe-Pufferspeichers bzw. des Ausgabe-Pufferspeichers bei der Anpassung der Taktfrequenz berücksichtigt, sondern auch deren zeitliche Veränderung. So deutet eine Zunahme des Füllstands des Eingabe-Pufferspeichers mit einer hohen Geschwindigkeit auf eine deutlich zu geringe bereitgestellte Rechenleistung hin. In diesem Fall wird eine entsprechend deutliche Erhöhung der Taktfrequenz veranlasst. Auch eine Abnahme des Füllstands des Ausgabe-Pufferspeichers mit einer hohen Geschwindigkeit deutet auf eine deutlich zu geringe bereitgestellte Rechenleistung hin. Um dem entgegenzuwirken, wird auch in diesem Fall eine deutliche Erhöhung der Taktfrequenz veranlasst.
  • Das Ermitteln des Prozessorauslastungswerts umfasst vorzugsweise ein Erfassen eines inaktiven Zustand des Prozessors, in welchem der Prozessor keine Instruktionen ausführt bzw. in welchem keine Aufgaben zur Bearbeitung anstehen. Basierend auf dem Erfassen des inaktiven Zustands wird der relative Zeitanteil erfasst, in welchem sich der Prozessor in dem inaktiven Zustand befindet. Dies kann beispielsweise geschehen, indem für eine bestimmte Zeitdauer die Zeitspannen erfasst werden, in welchen sich der Prozessor in dem inaktiven Zustand befindet, und diese Zeitspannen aufsummiert werden. Der relative Zeitanteil, in welchen sich der Prozessor in dem inaktiven Zustand befindet, ergibt sich dann als Quotient aus den aufsummierten Zeitspannen und der bestimmten Zeitdauer. Das Erfassen des relativen Zeitanteils, in welchem sich der Prozessor in dem inaktiven Zustand befindet, erfolgt vorzugsweise mittels eines Zeitzählers, welcher gestartet wird, wenn der Prozessor in den inaktiven Zustand eintritt, und welcher angehalten wird, wenn der Prozessor durch neue auszuführende Instruktionen bzw. neue zu bearbeitende Aufgaben aus dem inaktiven Zustand in den aktiven Zustand versetzt wird. Selbstverständlich ist es auch möglich, den Zeitzähler zu starten, wenn der Prozessor aus dem inaktiven Zustand in den aktiven Zustand versetzt wird und den Zeitzähler anzuhalten, wenn der Prozessor aus den aktiven Zustand in den inaktiven Zustand eintritt. In diesem Fall würde der Zeitanteil erfasst werden, in welchem sich der Prozessor nicht in dem inaktiven Zustand, d. h. in einem aktiven Zustand befindet.
  • Die einzustellende Taktfrequenz wird dann vorzugsweise abhängig von dem momentanen Wert der Taktfrequenz und dem relativen Zeitanteil, in welchem sich der Prozessor in dem aktiven bzw. inaktiven Zustand befindet berechnet. Im Prinzip kann dies dadurch geschehen, dass der momentane Wert der Taktfrequenz mit dem relativen Zeitanteil, in welchem sich der Prozessor nicht in dem inaktiven Zustand, d. h. in dem aktiven Zustand, befindet, multipliziert wird. Der relative Zeitanteil, in welchem sich der Prozessor in dem inaktiven bzw. in dem aktiven Zustand befindet, multipliziert mit dem momentanen Wert der Taktfrequenz, stellt ein präzises Maß für die momentan bereitgestellte jedoch nicht benötigte Rechenleistung bzw. für die momentan benötigte Rechenleistung dar. Somit kann auf Basis dieses Prozessorauslastungswertes die Taktfrequenz in besonders genauer Weise an den momentanen Bedarf an Rechenleistung angepasst werden. Um eine zu geringe Rechenleistung durch Einstellung einer zu geringen Taktfrequenz möglichst zu vermeiden, ist es bevorzugt, einen auf Basis des Prozessorauslastungswerts berechneten neuen Wert für die Taktfrequenz zusätzlich durch einen Sicherheitsaufschlag, welcher additiv oder multiplikativ sein kann, zu erhöhen.
  • Weiterhin ist es bevorzugt, während einer Einstellungsphase, in der Zeitspannen auftreten können, in denen sich der Prozessor in dem inaktiven Zustand befindet, den Prozessortakt anzuhalten, während sich der Prozessor in dem inaktiven Zustand befindet. Auf diese Weise kann während der Einstellungsphase die Energieaufnahme verringert werden. Sobald jedoch die Taktfrequenz an den momentanen Bedarf an Rechenleistung angepasst ist, tritt der inaktive Zustand des Prozessors nur noch selten oder gar nicht mehr auf, so dass Überkopplungen aufgrund einer starken Modulation der Stromaufnahme des Prozessors vermieden werden.
  • Die erfindungsgemäße Vorrichtung zur Einstellung der Taktfrequenz eines Prozessors umfasst eine Taktsignalquelle, welche ein Taktsignal erzeugt, dessen Taktfrequenz anhand eines Taktfrequenz-Steuersignals einstellbar ist. Die Vorrichtung umfasst weiterhin Steuermittel zur Einstellung der Taktfrequenz, wobei die Steuermittel dazu ausgestaltet sind, einen Prozessorauslastungswert, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor ausgeführten Instruktionen darstellt, zu ermitteln und abhängig von dem ermittelten Prozessorauslastungswert das Steuersignal für die Taktsignalquelle zu erzeugen. Hierdurch kann die Vorrichtung durch eine genaue Anpassung der bereitgestellten Rechenleistung an die momentan erforderliche Rechenleistung die Energieaufnahme des Prozessors verringern und dabei gleichzeitig eine zuverlässige Bearbeitung der Aufgaben des Prozessors gewährleisten.
  • Die Vorrichtung umfasst gemäß einem ersten Aspekt der Erfindung einen Eingabe-Pufferspeicher, welcher einem Dateneingang des Prozessors zugeordnet ist, und gemäß einem zweiten Aspekt der Erfindung einen Ausgabe-Pufferspeicher, welcher einem Datenausgang des Prozessors zugeordnet ist. Der Eingabe-Pufferspeicher und/oder der Ausgabe-Pufferspeicher können durch eigens dafür bereitgestellte Speicherhardware implementiert sein. Die Steuermittel sind dazu ausgestaltet, das Steuersignal für die Taktsignalquelle abhängig von dem Füllstand des Eingabe-Pufferspeichers und/oder des Ausgabe-Pufferspeichers anzupassen.
  • Gemäß einem bevorzugten Ausführungsbeispiel ist der Eingabe-Pufferspeicher und/oder der Ausgabe-Pufferspeicher als Teil eines Datenspeichers implementiert, wobei der Prozessor dazu konfiguriert ist, den Datenspeicher derart anzusteuern, dass durch den Prozessor zu verarbeitende Daten vor ihrer Verarbeitung in einem als Eingabe-Pufferspeicher verwendeten Bereich des Datenspeichers zwischengespeichert werden bzw. dass durch den Prozessor verarbeitete Daten in einem als Ausgabe-Pufferspeicher verwendeten Bereich des Datenspeichers zwischengespeichert werden. Dies geschieht vorzugsweise durch eine entsprechend ausgestaltete Software, die durch den Prozessor ausgeführt wird. Auf diese Weise vereinfacht sich nicht nur der Aufbau der Vorrichtung, sondern es erhöht sich auch deren Flexibilität. Insbesondere kann durch den Prozessor die Größe des Eingabe-Pufferspeichers bzw. des Ausgabe-Pufferspeichers bedarfsgerecht angepasst werden.
  • Die Steuermittel können ebenfalls in Form eines separaten Hardwaremoduls implementiert sein. Es ist jedoch auch hier bevorzugt, dass die Steuermittel durch den Prozessor implementiert sind, wobei der Prozessor dazu konfiguriert ist, wie zuvor beschrieben den Prozessorauslassungswert zu ermitteln und die Taktfrequenz abhängig von dem ermittelten Prozessorauslassungswert einzustellen. Dies geschieht wiederum durch eine entsprechend ausgestaltete Software, welche von dem Prozessor ausgeführt wird. Hierdurch wird der Aufbau der Vorrichtung erheblich vereinfacht, da die Funktionen der Steuermittel durch den Prozessor ausgeführt werden.
  • Bei dem Prozessor handelt es sich vorzugsweise um einen digitalen Signalprozessor oder einen Mikrokontroller. Bevorzugt ist die erfindungsgemäße Vorrichtung, gegebenenfalls zuammen mit weiteren Komponenten, auf einem Halbleiterchip angeordnet.
  • Die vorliegende Erfindung ermöglicht es, die Taktfrequenz eines Prozessor, beispielsweise eines digitalen Signalprozessors oder eines Mikrokontrollers, effizient zu regeln, um dessen Energieaufnahme zu minimieren. Da die bereitgestellte Rechenleistung über die Taktfrequenz an die momentan erforderliche Rechenleistung angepasst wird, wird gleichzeitig so wohl eine minimale Energieaufnahme als auch eine zuverlässige Bearbeitung der Aufgaben des Prozessors gewährleistet. Durch die bevorzugt verwendeten Eingabe- bzw. Ausgabe-Pufferspeicher kann die Toleranz gegenüber einem vorübergehenden Unterschreiten der erforderlichen Rechenleistung, insbesondere in dem Falle eines sich verändernden Bedarfs an Rechenleistung, erhöht werden.
  • Weitere Eigenschaften und Vorteile der vorliegenden Erfindung werden aus der nachfolgenden Beschreibung von bevorzugten Ausführungsbeispielen anhand der beigefügten Zeichnungen hervorgehen.
  • 1 zeigt schematisch eine Schaltungsanordnung mit einem Signalprozessor, bei welcher eine Vorrichtung zum Einstellen der Taktfrequenz gemäß einem Ausführungsbeispiel der Erfindung vorgesehen ist.
  • 2 zeigt eine weitere Schaltungsanordnung mit einem Signalprozessor, wobei eine Vorrichtung zum Einstellen der Taktfrequenz des Signalprozessors gemäß einem weiteren Ausführungsbeispiel der Erfindung vorgesehen ist.
  • 3 zeigt ein Flussdiagramm, welches ein Ausführungsbeispiel eines erfindungsgemäßen Verfahrens zum Einstellen der Taktfrequenz eines Prozessors veranschaulicht.
  • 4 zeigt ein Flussdiagramm, welches das Ermitteln eines Prozessorauslastungswertes gemäß dem Ausführungsbeispiel des erfindungsgemäßen Verfahrens veranschaulicht.
  • 5 zeigt ein Flussdiagramm, welches ein Anpassen der Taktfrequenz abhängig von dem Füllstand eines Eingabe-Pufferspeichers und/oder eines Ausgabe-Pufferspeichers gemäß dem Ausführungsbeispiel des erfindungsgemäßen Verfahrens veranschaulicht.
  • 1 zeigt eine Schaltungsanordnung mit einem Signalprozessor 10, welcher im Folgenden allgemein als Prozessor 10 bezeichnet wird. Der Prozessor 10 verarbeitet Daten 1, welche in digitaler Form durch einen Analog-Digital-Wandler 20 bereitgestellt werden. Bei den Daten 1 kann es sich insbesondere um Sprachdaten handeln, welche im Rahmen einer digitalen Kommunikationsanwendung verarbeitet werden. Die Verarbeitung durch den Prozessor 10 erfolgt anhand einer entsprechend gestalteten Software, d. h. anhand eines Programms oder eines Algorithmus, wobei das Programm bzw. der Algorithmus Instruktionen umfasst, welche durch den Prozessor 10 ausgeführt werden. Zu diesem Zweck ist der Prozessor 10 mit einem Datenspeicher 13 verbunden, in welchem der Prozessor 10 Verarbeitungsergebnisse ablegt und zur weitern Verarbeitung wieder entnimmt. Weiterhin kann der Datenspeicher 13 einen Programmcode enthalten, welcher die von dem Prozessor 10 auszuführenden Instruktionen umfasst. Dieser Programmcode kann zuvor aus einem nicht flüchtigem ROM-Speicher (nicht dargestellt) in den Datenspeicher 13 kopiert worden sein.
  • Dem Prozessor 10 ist sein Taktsignal von einer Taktsignalquelle 14 zugeführt. Die Taktsignalquelle 14 ist dazu ausgestaltet, das Taktsignal CL mit einer durch ein Taktsignal-Steuersignal SCL einstellbaren Frequenz f zu erzeugen. Im Folgenden soll davon ausgegangen werden, dass der Prozessor 10 mit jedem Taktzyklus des Taktsignals CL eine Instruktion ausführt. Die nachfolgend beschriebene Einstellung und Anpassung des Taktsignals kann jedoch ohne weiteres auch auf Prozessoren angewendet werden, welche in einem Taktzyklus mehrere Instruktionen ausführen.
  • Einem Dateneingang des Prozessors 10 ist ein Eingabe-Pufferspeicher 11 zugeordnet, in welchem die von dem Analog-Digital-Wandler 20 übermittelten Daten 1 zwischengespeichert werden, bevor sie durch den Prozessor 10 verarbeitet werden. An einem Datenausgang des Prozessors 10 ist ein Ausgabe-Pufferspeicher 12 vorgesehen, in welchem von dem Prozessor 10 verarbeitete Daten 1 zwischengespeichert werden, bevor sie an den Digital-Analog-Wandler 30 ausgegeben werden.
  • Der Eingabe-Pufferspeicher 11 erzeugt ein Füllstandssignal FL1, welches den Füllstand des Eingabe-Pufferspeichers 11 widerspiegelt. Der Ausgabe-Pufferspeicher 12 erzeugt ein Füllstandssignal FL2, welches den Füllstand des Ausgabe-Pufferspeichers 12 widerspiegelt. Die Füllstandssignale FL1 und FL2 sind Steuermitteln in Form einer Steuereinheit 16 zugeführt, welche die Füllstandssignale FL1 und FL2 verarbeitet, um abhängig davon das Taktsignal-Steuersignal SCL zu erzeugen.
  • Weiterhin ist ein Zeitzählermodul 18 vorgesehen, welches dazu ausgestaltet ist, Zeitspannen, in welchen sich der Prozessor 10 in einem aktiven bzw. in einem inaktiven Zustand befindet, zeitlich zu erfassen. Zu diesem Zweck ist der Prozessor 10 dazu ausgestaltet, abhängig davon, ob zu bearbeitende Aufgaben vorliegen oder nicht, ein Statussignal S zu erzeugen. Wenn keine zu bearbeitenden Aufgaben vorliegen, wird durch das Statussignal S veranlasst, dass in dem Zeitzählermodul 18 ein Zeitzähler gestartet wird. Der Zeitzähler läuft so lange weiter wie sich der Prozessor 10 in dem inaktiven Zustand befindet, d. h. keine Instruktionen verarbeitet. Sobald für den Prozessor 10 eine neue zu bearbeitende Aufgabe vorliegt, beispielsweise bei Empfang neuer Daten 1, wird durch das Statussignal S veranlasst, dass der Zeitzähler in dem Zeitzählermodul 18 angehalten wird. Auf diese Weise werden in dem Zeitzählermodul 18 Zeitspannen erfasst, in welchen sich der Prozessor in dem inaktiven Zustand befindet. Alternativ oder zusätzlich ist es auch möglich, Zeitspannen zu erfassen, in welchen sich der Prozessor 10 in dem aktiven Zustand befindet, d. h. Instruktionen ausführt, wobei hierfür der Zeitzähler gestartet wird, wenn eine neue Aufgabe für den Prozessor 10 vorliegt, und angehalten wird, wenn keine Aufgaben für den Prozessor 10 vorliegen. Um eine zusätzliche Energieeinsparung zu erreichen, wird das Taktsignal CL angehalten, während sich der Prozessor 10' in dem inaktiven Zustand befindet.
  • Die in dem Zeitzählermodul 18 erfassten Zeitspannen werden aufaddiert. Dies kann dadurch geschehen, dass der Zeitzähler, wenn er angehalten ist, seinen Wert beibehält und bei einem erneuten Start von diesem Wert ausgehend weiterzählt. Alternativ kann der Zeitzähler auch nach jedem Zählvorgang zurückgesetzt werden, und die Zeitspannen können durch eine Addierer addiert werden. Der Zeitzähler wird in regelmäßigen Zeitabständen beispielsweise in Abständen von 30 Millisekunden oder 60 Millisekunden, zurückgesetzt. Gleichzeitig wird ein Gesamtzeitzähler, welcher unabhängig von dem aktiven oder inaktiven Zustand des Prozessors 10 weiterzählt, d. h. die Gesamtzeit misst, ebenfalls zurückgesetzt. Vor jedem Rücksetzvorgang wird das Verhältnis der aufaddierten Zeitspannen zu der Gesamtzeit, d. h. der Quotient
    Figure 00130001
    gebildet, wobei tI die Summe der Zeitspannen bezeichnet, in welchen sich der Prozessor 10 in dem inaktiven Zustand befand, tT die durch den Gesamtzeitzähler erfasste Gesamtzeit bezeichnet und TI den relativen Zeitanteil bezeichnet, in welchem sich der Prozessor in dem inaktiven Zustand befand.
  • Wenn in dem Zeitzählermodul 18 die Zeitspannen erfasst werden, in welchen sich der Prozessor in dem aktiven Zustand befand, wird entsprechend das Verhältnis der Summe der Zeitspannen, in welchen sich der Prozessor 10 in dem aktiven Zustand befand, und der Gesamtzeit, d. h. der Quotient
    Figure 00130002
    gebildet, wobei TA die Summe der Zeitspannen bezeichnet, in welchen sich der Prozessor 10 in dem aktiven Zustand befand, und TA den relativen Zeitanteil, in welchem sich der Prozessor 10 in dem aktiven Zustand befand, bezeichnet.
  • Offensichtlich gilt dabei TA = 1 – TI.d. h. es genügt im Allgemeinen, eine der beiden Größen TA oder TI zu bestimmen. Ohne sich auf diese Variante einzuschränken, wird im Folgenden davon ausgegangen, dass durch das Zählermodul 18 der relative Zeitanteil TI, in welchem sich der Prozessor 10 in dem inaktiven Zustand befand, erfasst wird. Der von dem Zeitzählermodul 18 erfasste Wert des relativen Zeitanteils TI ist über ein entsprechendes Signal der Steuereinheit 16 zugeführt.
  • Die Steuereinheit 16 berechnet den neu einzustellenden Wert der Taktfrequenz f abhängig von dem relativen Anteil TI und abhängig von der momentanen Taktfrequenz fM. Dies geschieht anhand der Gleichung f = (1 – TI) fM + A,wobei A einen additiven Sicherheitsaufschlag bezeichnet, welcher hinzuaddiert wird, um zu vermeiden, dass eine zu geringe Rechenleistung bereitgestellt wird. Alternativ ist es auch möglich einen multiplikativen Sicherheitsaufschlag B zu verwenden und den einzustellenden Wert für die Taktfrequenz f gemäß f = [(1 – TI) fM] Bzu berechnen. In beiden Fällen versteht es sich, dass wenn der berechnete Wert über einer maximalen Taktfrequenz des Prozessors 10 liegt, dieser maximale Wert der Taktfrequenz als neu einzustellender Wert verwendet wird. Dieses Einstel len der Taktfrequenz f geschieht jedes Mal, wenn ein neuer Wert für den relativen Anteil TI verfügbar ist.
  • Weiterhin sind der Steuereinheit die Füllstandssignale FL1 und FL2 zugeführt. Abhängig von diesen Füllstandssignalen FL1 und FL2 erfolgt eine Anpassung der Taktfrequenz f. Allgemein wird die angepasste Taktfrequenz f umso höher gewählt, je höher der Füllstand des Eingabe-Pufferspeichers 11 ist und je niedriger der Füllstand des Ausgabe-Pufferspeichers 12 ist.
  • Die Anpassung der Taktfrequenz f auf Basis der Füllstände erfolgt in regelmäßigen Zeitabständen, welche jedoch nicht mit den Zeitabständen übereinstimmen müssen, in welchen die Einstellung der Taktfrequenz f auf Basis des Prozessorauslastungswerts erfolgt. Dabei sind die Zeitabstände, in welchen die Anpassung der Taktfrequenz f auf Basis der Füllstände des Eingabe-Pufferspeichers 11 und des Ausgabe-Pufferspeichers 12 erfolgt, abhängig von der Größe des Eingabe-Pufferspeichers 11 bzw. der Ausgabe-Pufferspeichers 12 gewählt. Dies bedeutet speziell das die Anpassung der Taktfrequenz f umso häufiger erfolgt, je kleiner der Eingabe-Pufferspeicher 11 bzw. der Ausgabe-Pufferspeicher 12 dimensioniert ist.
  • Zur Anpassung der Taktfrequenz f abhängig von dem Füllstand des Ausgabe-Pufferspeichers 12 wird der Füllstand des Ausgabe-Pufferspeichers 12 mit einem vorgegebenen Sollfüllstand verglichen. Je stärker der Füllstand nach unten von dem Sollfüllstand abweicht, desto mehr wird die Taktfrequenz f nach oben angepasst. Dies kann beispielsweise im Rahmen einer Proportionalregelung geschehen, bei welcher die Taktfrequenz f um einen Betrag angepasst wird, welcher zu der Differenz zwischen dem Füllstand des Ausgabe-Pufferspeichers 12 und dem vorgegebenen Sollfüllstand proportional ist. Auf diese Weise kann durch die erhöhte bereitgestellte Rechenleistung der Füllstand des Ausgabe-Pufferspeichers 12 wieder an den vorgegebenen Sollfüllstand angeglichen werden, so dass stets Daten 1 zur Ausgabe in den Ausgabe-Pufferspeicher 12 verfügbar sind.
  • Zur Anpassung der Taktfrequenz f abhängig von dem Füllstand des Eingabe-Pufferspeichers 11 wird in analoger Weise verfahren. Das heißt, dass der Füllstand des Eingabe-Pufferspeichers 11 mit einem vorgegebenen Sollfüllstand verglichen wird, und die Taktfrequenz f umso mehr nach oben angepasst wird, je stärker der Füllstand den vorgegebenen Sollfüllstand des Eingabe-Pufferspeichers 11 überschreitet. Die Taktfrequenz f wird somit umso stärker nach oben angepasst, je höher der Füllstand des Eingabe-Pufferspeichers ist. Dies kann beispielsweise durch eine Proportionalregelung geschehen, bei welcher die Taktfrequenz f um einen Betrag angepasst wird, welcher zu der Differenz zwischen dem Füllstand und dem vorgegebenen Sollfüllstand des Eingabe-Pufferspeichers 11 proportional ist. Auf diese Weise wird gewährleistet, dass durch eine erhöhte bereitgestellte Rechenleistung ein hoher Füllstand des Eingabe-Pufferspeichers 11 abgebaut werden und an den vorgegebenen Sollfüllstand angeglichen werden kann, so dass ein Überlaufen des Eingabe-Pufferspeichers vermieden wird.
  • Bei der Anpassung der Taktfrequenz f kann zusätzlich auch die zeitliche Veränderung des Füllstands des Eingabe-Pufferspeichers 11 bzw. des Ausgabe-Pufferspeichers 12 herangezogen werden. Dies kann beispielsweise dadurch geschehen, dass die Differenz des Füllstandes zu einem bei dem vorangegangenen Anpassungsvorgang ermittelten Füllstand gebildet wird. Da die Anpassung der Taktfrequenz f in regelmäßigen Zeitabständen erfolgt, kann hierdurch auf einfach Weise ein Maß für die zeitliche Veränderung des Füllstands gewonnen werden. Dabei wird die Taktfrequenz f umso stärker nach oben angepasst, je schneller der Füllstand des Eingabe-Pufferspeichers zunimmt bzw. je schneller der Füllstand des Ausgabe-Pufferspeichers 12 abnimmt. Da sowohl eine Zunahme des Füllstands des Eingabe-Pufferspeichers 11 mit einer hohen Geschwindigkeit als auch eine Abnahme des Füllstands des Ausgabe-Pufferspeichers 12 mit einer hohen Geschwindigkeit auf eine deutlich zu geringe bereitgestellte Rechenleistung hinweisen, kann auf diese Weise eine schnellere und effektivere Anpassung der bereitgestellten Rechenleistung an den momentanen Bedarf an Rechenleistung erfolgen.
  • Im Vorangegangenen wurde sowohl die Anpassung der Taktfrequenz f abhängig von dem Füllstand des Eingabe-Pufferspeichers 11 als auch von dem Füllstand des Ausgabe-Pufferspeichers 12 beschrieben. Da insbesondere in dem Fall, dass die Daten 1 in regelmäßigen Zeitabständen in dem Eingabe-Pufferspeicher 11 eintreffen und in regelmäßigen Zeitabständen aus dem Ausgabe-Pufferspeicher 12 angegeben werden, die Füllstände des Eingabe-Pufferspeichers 11 und des Ausgabe-Pufferspeichers 12 nicht voneinander unabhängig sind, kann die Anpassung der Taktfrequenz f vereinfacht werden, indem lediglich ein Füllstand, entweder des Eingabe-Pufferspeichers 11 oder des Ausgabe-Pufferspeichers 12, zur Anpassung der Taktfrequenz f herangezogen wird. Insbesondere in dem Fall, dass die Daten 1 in unregelmäßigen Zeitabständen in dem Eingabe-Pufferspeicher 11 eintreffen und/oder in unregelmäßigen Zeitabständen aus dem Ausgabe-Pufferspeicher 12 entnommen werden, ist es jedoch vorteilhaft, beide Füllstände zur Anpassung der Taktfrequenz f heranzuziehen.
  • In 1 sind der Eingabe-Pufferspeicher 11, der Datenspeicher 13 und der Ausgabe-Pufferspeicher 12 als separate Komponenten dargestellt. Ebenso ist die Steuereinheit 16 als separate Komponente vorgesehen. Diese Darstellung entspricht einer Implementierung der Einstellung der Taktfrequenz f, welche für den Eingabe-Pufferspeicher 11, den Ausgabe-Pufferspeicher 12 und die Steuereinheit 16 jeweils eigene Hardwaremodule vorsieht.
  • In 2 ist ein weiteres Beispiel einer Schaltungsanordnung mit einem Signalprozessor 10', welcher nachfolgend allgemein als Prozessor 10' bezeichnet wird, dargestellt. Die in 2 dargestellten Komponenten der Schaltungsanordnung entsprechen grundsätzlich den in 1 dargestellten Komponenten, welche mit denselben Bezugszeichen bezeichnet sind. Im Unterschied zu 1 sind jedoch ein Eingabe-Pufferspeicher 11' und ein Ausgabe-Pufferspeicher 12' als Teil eines Datenspeichers 13' implementiert. Weiterhin ist der Prozessor 10' dazu konfiguriert, zusätzlich zu der Verarbeitung der Daten 1 auch die Funktionen der Steuereinheit 16' auszuüben. Dies ist mittels eines entsprechend ausgestalteten Programmcodes bewerkstelligt, welcher durch den Prozessor 10' ausgeführt wird.
  • Zur Implementierung des Eingabe-Pufferspeichers 11' und des Ausgabe-Pufferspeichers 12' in dem Datenspeicher 13' ist ein Programmcode vorgesehen, welcher eine Ansteuerung des Datenspeichers 13' in einer solchen Weise bewirkt, dass von dem Prozessor 10' zu verarbeitende Daten 1 vor der Verarbeitung in einem als Eingabe-Pufferspeicher vorgesehen Bereich des Datenspeichers 13' zwischengespeichert werden. Ebenso werden von dem Prozessor 10' verarbeitete Daten nach der Verarbeitung in einem als Ausgabe-Pufferspeicher 12' vorgesehenen Bereich des Datenspeichers 13' zwischengespeichert, bevor sie ausgegeben werden. Der Eingabe-Pufferspeicher 11' und der Ausgabe-Pufferspeicher 12' sind somit durch Software implementiert. Dies weist den Vorteil auf, dass der Eingabe-Pufferspeicher 11' und der Ausgabe-Pufferspeicher 12' nicht in ihrer Größe festgelegt sind, sondern vielmehr im Rahmen des durch den Datenspeicher 13' bereitgestellten Speicherplatzes an die Erfordernisse angepasst werden können. Diese Vorgehensweise gewährleistest somit eine höhere Flexibilität und einen geringeren Implementierungsaufwand.
  • Auch die Steuereinheit 16' ist bei der in 2 dargestellten Schaltungsanordnung mittels eines entsprechend gestalteten Programmcodes, welcher durch den Prozessor 10' ausgeführt wird, d. h. durch Software, implementiert. Dies bedeutet, dass der Prozessor 10' durch den Programmcode dazu konfigu riert ist, die anhand von 1 beschriebenen Schritte zur Einstellung und Anpassung der Taktfrequenz f auszuführen. Hierfür ermittelt der Prozessor 10', welcher auch die Ansteuerung des Datenspeichers 13' vornimmt, um den Eingabe-Pufferspeicher 11' und den Ausgabe-Pufferspeicher 12' zu implementieren, die erforderlichen Informationen bezüglich der Füllstände des Eingabe-Pufferspeichers 11' und des Ausgabe-Pufferspeichers 12'. Weiterhin wird dem Prozessor 10' von dem Zeitzählermodul 18 der relative Zeitanteil TI bzw. TA zugeführt, in welchem sich der Prozessor 10' in dem inaktiven bzw. in dem aktiven Zustand befindet. Auf Basis des durch den relativen Zeitanteil TI bzw. TA dargestellten Prozessorauslastungswerts berechnet der Prozessor 10' in regelmäßigen Zeitabständen den einzustellenden Wert für die Taktfrequenz f und erzeugt darauf basierend das Steuersignal SCL für die Taktsignalquelle 14. Weiterhin nimmt der Prozessor 10' in regelmäßigen Zeitabständen die Anpassung der Taktfrequenz f auf Basis der Füllstände des Eingabe-Pufferspeichers 11' und des Ausgabe-Pufferspeichers 12' vor.
  • Die Implementierung der Steuereinheit 16' durch einen von dem Prozessor 10' ausgeführten Programmcode gewährleistet einen deutlich geringeren Implementierungsaufwand.
  • Das Zeitzählermodul 18 ist als von dem Prozessor 10' unabhängige Hardware realisiert. Dies gewährleistet eine Messung der Zeitspannen, in welchen sich der Prozessor 10' in dem aktiven bzw. in dem inaktiven Zustand befindet, die unabhängig von der momentan eingestellten Taktfrequenz f ist. Weiterhin ist es hierdurch möglich, das Taktsignal CL anzuhalten, während sich der Prozessor 10' in dem inaktiven Zustand befindet. Dies kann beispielsweise dann geschehen, wenn keine Daten 1 empfangen werden. Entsprechend würde der Prozessor 10' durch Empfang von Daten 1 aus dem inaktiven Zustand in den aktiven Zustand versetzt werden.
  • Wenn ein Anhalten des Taktsignals CL während des inaktiven Zustands des Prozessors 10' nicht vorgesehen ist, kann selbstverständlich auch das Zeitzählermodul 18 durch einen von dem Prozessor 10' ausgeführten Programmcode 10' implementiert werden, ähnlich wie zuvor für die Steuereinheit 16' beschrieben.
  • Bei der zuvor beschriebenen Implementierung des Eingabe-Pufferspeichers 11', des Ausgabe-Pufferspeichers 12' und der Steuereinheit 16' durch einen Programmcode, welcher von dem Prozessor 10' ausgeführt wird, ist es grundsätzlich bevorzugt dem Programmcode, welcher die Ansteuerung des Datenspeichers 13' zur Implementierung des Eingabe-Pufferspeichers 11' und des Ausgabe-Pufferspeichers 12' vornimmt, und dem Programmcode, welcher die Funktionen der Steuereinheit 16' implementiert, eine hohe Priorität beizumessen. Hierdurch wird auch im Fall einer kurzfristig zu geringen bereitgestellten Rechenleistung die Ansteuerung des Eingabe-Pufferspeichers 11' und die Ansteuerung des Ausgabe-Pufferspeichers 12', sowie die Einstellung und Anpassung der Taktfrequenz f gewährleistet.
  • 3 zeigt ein Flussdiagramm, welches schematisch den Verfahrensablauf zur Einstellung der Taktfrequenz f erläutert. Das Verfahren beginnt mit Initialisierungsschritt 100, in welchem eine anfängliche Belegung des Eingabe-Pufferspeichers und des Ausgabe-Pufferspeichers, zum Beispiel durch eine Auffüllung mit Daten, welche zum Beispiel Nullwerten entsprechen, bewerkstelligt wird. Weiterhin werden Sollfüllstände für den Eingabe-Pufferspeicher und den Ausgabe-Pufferspeicher definiert und eine anfängliche Taktfrequenz vorgegeben. Die anfängliche Taktfrequenz kann beispielsweise einer maximalen Taktfrequenz, für welche der Prozessor geeignet ist, entsprechen.
  • In Ermittlungsschritt 110 wird der Prozessorauslastungswert ermittelt, was insbesondere anhand des zuvor erläuterten re lativen Zeitanteil TI bzw. TA erfolgt, in welchem sich der Prozessor in dem inaktiven bzw. in dem aktiven Zustand befindet. In Einstellungsschritt 120 wird dann der einzustellende Wert für die Taktfrequenz f abhängig von dem ermittelten Prozessorauslassungswert berechnet und die Taktfrequenz entsprechend eingestellt. Der Ermittlungsschritt 110 und der Einstellungsschritt 120 werden in regelmäßigen Zeitabständen, zum Beispiel 30 Millisekunden oder 60 Millisekunden wiederholt.
  • 4 veranschaulicht in Form eines Flussdiagramms die Ermittlung des Prozessorauslastungswerts in Ermittlungsschritt 110. In Zeitzähler-Initialisierungsschritt 112 erfolgt eine Initialisierung der Zeitzähler in dem Zeitzählermodul. Insbesondere werden der Zeitzähler und der Gesamtzeitzähler zurückgesetzt.
  • In Überprüfungsschritt 113 wird erfasst, ob ein Übergang des Prozessors von dem aktiven in den inaktiven Zustand oder umgekehrt erfolgt ist. Wenn dies der Fall ist, wird in Zeitzähler-Steuerungsschritt 114 der Zeitzähler gestartet bzw. angehalten.
  • In Wiederholungsschritt 115 wird veranlasst, dass der Überprüfungsschritt 113 und gegebenenfalls auch der Zeitzählersteuerungsschritt 114 wiederholt werden, bis der Gesamtzeitzähler einen vorgegebenen Wert, beispielsweise 30 Millisekunden oder 60 Millisekunden, erreicht hat. Wenn dies der Fall ist, wird in Berechnungsschritt 116 das Verhältnis der Werte des Zeitzählers und des Gesamtzeitzählers gebildet, um den Prozessorauslastungswert als den relativen Zeitanteil TI oder TA, in welchem sich der Prozessor in dem inaktiven bzw. in dem aktiven Zustand befindet, zu ermitteln.
  • 5 veranschaulicht in Form eines Flussdiagramms die Anpassung der Taktfrequenz abhängig von dem Füllstand des Eingabe-Pufferspeichers bzw. des Ausgabe-Pufferspeichers.
  • In Ermittlungsschritt 200 wird der Füllstand des Eingabe-Pufferspeichers bzw. des Ausgabe-Pufferspeichers ermittelt.
  • In Vergleichsschritt 210 erfolgt der Vergleich des ermittelten Füllstands mit dem vorgegebenen Sollfüllstand, wobei insbesondere die Differenz zwischen dem ermittelten Füllstand und dem vorgegebenen Sollfüllstand ermittelt wird. Gleichzeitig wird auch die Differenz des ermittelten Füllstands zu einem bei der vorangegangenen Anpassung der Taktfrequenz ermittelten Füllstand gebildet, um auf diese Weise die Veränderung des Füllstands zu erfassen.
  • In Anpassungsschritt 220 erfolgt die Anpassung der Taktfrequenz um einen Anpassungswert, welcher abhängig von den im Vergleichsschritt 210 ermittelten Differenzen gewählt ist, wie es zuvor im Zusammenhang mit 1 erläutert wurde.
  • Der in 5 veranschaulichte Ablauf zur Anpassung der Taktfrequenz kann in den Verfahrensablauf von 3 eingebunden sein. Es ist jedoch auch möglich, die Anpassung der Taktfrequenz unabhängig von dem Verfahrensablauf zur Einstellung der Taktfrequenz auszulösen, beispielsweise durch einen zeitgesteuerten Interrupt.
  • Das hierin beschriebene Verfahren und die erläuterten Vorrichtungen beziehen sich auf das Beispiel eines Signalprozessors, beispielsweise für eine Kommunikationsanwendung. Der erläuterte Ansatz zum Einstellen der Taktfrequenz eignet sich besonders für Kommunikationsanwendungen, welche auf GSM-Netzen oder WLAN-Netzen basieren, und so genannte VoIP-Applikationen, bei welchen die Signallaufzeiten technisch bedingt mit einer Verzögerung versehen sind, so dass eine zusätzliche Verzögerung durch die Verwendung des Eingabe-Pufferspeichers und des Ausgabe-Pufferspeichers ohne weiteres toleriert werden kann. Es ist jedoch auch eine Anwendung bei ISDN- oder POTS-Applikationen denkbar, wobei in diesem Fall die Größe des Eingabe-Pufferspeichers und des Ausgabe-Pufferspeichers an die maximal erwünschte Signallaufzeit anzupassen ist. Weiterhin ist der hierin beschriebene Ansatz auch bei Mikrokontrollern vorteilhaft einsetzbar.

Claims (24)

  1. Verfahren zum Einstellen der Taktfrequenz (f) eines Prozessors (10; 10'), umfassend die Schritte: – Ermitteln eines Prozessorauslastungswerts, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor (10) ausgeführten Instruktionen darstellt, und – Einstellen der Taktfrequenz (f) eines Taktsignals (CL) des Prozessors (10; 10') abhängig von dem ermittelten Prozessorauslastungswert, gekennzeichnet durch die Schritte: – Zwischenspeichern von durch den Prozessor (10; 10') zu verarbeitenden Daten (1) in einem Eingabe-Pufferspeicher (11; 11') und – Anpassen der Taktfrequenz (f) abhängig von dem Füllstand des Eingabe-Pufferspeichers (11; 11').
  2. Verfahren nach Anspruch 1, gekennzeichnet durch den Schritt: – Anpassen der Taktfrequenz (f) abhängig von der zeitlichen Änderung des Füllstands des Eingabe-Pufferspeichers (11; 11').
  3. Verfahren nach Anspruch 1 oder 2, gekennzeichnet durch den Schritt: – Zwischenspeichern von durch den Prozessor (10; 10') verarbeiteten Daten (1) in einem Ausgabe-Pufferspeicher (12; 12').
  4. Verfahren nach Anspruch 3, gekennzeichnet durch den Schritt: – Anpassen der Taktfrequenz (f) abhängig von dem Füllstand des Ausgabe-Pufferspeichers (12; 12').
  5. Verfahren nach Anspruch 3 oder 4, gekennzeichnet durch den Schritt: – Anpassen der Taktfrequenz (f) abhängig von der zeitlichen Änderung des Füllstands des Ausgabe-Pufferspeichers (12; 12').
  6. Verfahren zum Einstellen der Taktfrequenz (f) eines Prozessors (10; 10'), umfassend die Schritte: – Ermitteln eines Prozessorauslastungswerts, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor (10) ausgeführten Instruktionen darstellt, und – Einstellen der Taktfrequenz (f) eines Taktsignals (CL) des Prozessors (10; 10') abhängig von dem ermittelten Prozessorauslastungswert, gekennzeichnet durch die Schritte: – Zwischenspeichern von durch den Prozessor (10; 10') verarbeiteten Daten (1) in einem Ausgabe-Pufferspeicher (12; 12') und – Anpassen der Taktfrequenz (f) abhängig von dem Füllstand des Ausgabe-Pufferspeichers (12; 12').
  7. Verfahren nach Anspruch 6, gekennzeichnet durch den Schritt: – Anpassen der Taktfrequenz (f) abhängig von der zeitlichen Änderung des Füllstands des Ausgabe-Pufferspeichers (12; 12').
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Ermitteln des Prozessorauslastungswerts umfasst: – Erfassen eines inaktiven Zustands des Prozessors (10; 10'), in welchem der Prozessor (10; 10') keine Instruktionen ausführt, und – Erfassen eines relativen Zeitanteils (TI), in welchem sich der Prozessor (10; 10') in dem inaktiven Zustand befindet, oder Erfassen eines relativen Zeitanteils (TA), in welchem sich der Prozessor (10; 10') nicht in dem inaktiven Zustand befindet.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass der Wert, auf welchen die Taktfrequenz (f) eingestellt wird, abhängig von einem momentanen Wert (fM) der Taktfrequenz (f) und dem relativen Zeitanteil (TI, TA) berechnet wird.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass der abhängig von dem momentanen Wert (fM) der Taktfrequenz (f) und dem relativen Zeitanteil (TI, TA) berechnete Wert um einen Sicherheitsaufschlag (A, B) erhöht wird.
  11. Verfahren nach einem der Ansprüche 8–10, gekennzeichnet durch den Schritt: – Anhalten des Taktsignals (CL) während des inaktiven Zustands des Prozessors (10; 10').
  12. Vorrichtung zum Einstellen der Taktfrequenz (f) eines Prozessors (10; 10'), umfassend: eine Taktsignalquelle (14), welche dazu ausgestaltet ist, ein Taktsignal (CL) zu erzeugen, dessen Taktfrequenz abhängig von einem Steuersignal (SCL) einstellbar ist, und Steuermittel (16; 16') zum Einstellen der Taktfrequenz (f), wobei die Steuermittel (16; 16') dazu ausgestaltet sind, einen Prozessorauslastungswert zu ermitteln, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor (10; 10') ausgeführten Instruktionen darstellt, und abhängig von dem ermittelten Prozessorauslastungswert das Taktfrequenz-Steuersignal (SCL) für die Taktsignalquelle (14) zu erzeugen, gekennzeichnet durch einen Eingabe-Pufferspeicher (11; 11'), welcher einem Dateneingang des Prozessors (10; 10') zugeordnet ist, wobei die Steuermittel (16; 16') dazu ausgestaltet sind, das Taktfrequenz-Steuersignal (SCL) abhängig von dem Füllstand des Eingabe-Pufferspeichers (11; 11') anzupassen.
  13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass der Eingabe-Pufferspeicher (11') als Teil eines Datenspeichers (13') implementiert ist, wobei der Prozessor (10') dazu konfiguriert ist, den Datenspeicher (13') derart anzusteuern, dass durch den Prozessor (10') zu verarbeitende Daten (1) vor ihrer Verarbeitung in einem Bereich des Datenspeichers (13') zwischengespeichert werden.
  14. Vorrichtung nach Anspruch 12 oder 13, gekennzeichnet durch einen Ausgabe-Pufferspeicher (12; 12'), welcher einem Datenausgang des Prozessors (10; 10') zugeordnet ist.
  15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, dass der Ausgabe-Pufferspeicher (12') als Teil eines Datenspeichers (13') implementiert ist, wobei der Prozessor (10') dazu konfiguriert ist den Datenspeicher (13') derart anzusteuern, dass durch den Prozessor (10') verarbeitete Daten (1) in einem Bereich des Datenspeichers (13') zwischengespeichert werden, bevor sie über den Datenausgang ausgegeben werden.
  16. Vorrichtung zum Einstellen der Taktfrequenz (f) eines Prozessors (10; 10'), umfassend: eine Taktsignalquelle (14), welche dazu ausgestaltet ist, ein Taktsignal (CL) zu erzeugen, dessen Taktfrequenz abhängig von einem Steuersignal (SCL) einstellbar ist, und Steuermittel (16; 16') zum Einstellen der Taktfrequenz (f), wobei die Steuermittel (16; 16') dazu ausgestaltet sind, einen Prozessorauslastungswert zu ermitteln, welcher ein Maß für die in einer Zeiteinheit durch den Prozessor (10; 10') ausgeführten Instruktionen darstellt, und abhängig von dem ermittelten Prozessorauslastungswert das Taktfrequenz-Steuersignal (SCL) für die Taktsignalquelle (14) zu erzeugen, gekennzeichnet durch einen Ausgabe-Pufferspeicher (12; 12'), welcher einem Datenausgang des Prozessors (10; 10') zugeordnet ist, wobei die Steuermittel (16; 16') dazu ausgestaltet sind, das Taktfrequenz-Steuersignal (SCL) abhängig von dem Füllstand des Ausgabe-Pufferspeichers (12; 12') anzupassen.
  17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, dass der Ausgabe-Pufferspeicher (12') als Teil eines Datenspeichers (13') implementiert ist, wobei der Prozessor (10') dazu konfiguriert ist den Datenspeicher (13') derart anzusteuern, dass durch den Prozessor (10') verarbeitete Daten (1) in einem Bereich des Datenspeichers (13') zwischengespeichert werden, bevor sie über den Datenausgang ausgegeben werden.
  18. Vorrichtung nach einem der Ansprüche 12–17, dadurch gekennzeichnet, dass die Steuermittel (16') durch den Prozessor (10') implementiert sind, wobei der Prozessor (10') dazu ausgestaltet ist, zusätzlich die Funktionen der Steuermittel (16') auszuüben.
  19. Vorrichtung nach einem der Ansprüche 12–18, gekennzeichnet durch ein Zeitzählermodul (18), welches dazu ausgestaltet ist, Zeitspannen zu erfassen, in welchen sich der Prozessor (10, 10') in einem inaktiven Zustand befindet.
  20. Vorrichtung nach einem der Ansprüche 12–19, gekennzeichnet durch ein Zeitzählermodul (18), welches dazu ausgestaltet ist, Zeitspannen zu erfassen, in welchen sich der Prozessor (10; 10') nicht in einem inaktiven Zustand befindet.
  21. Vorrichtung nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass das Zeitzählermodul (18) durch den Prozessor (10') implementiert ist, wobei der Prozessor (10') dazu ausgestaltet ist, zusätzlich die Funktionen des Zeitzählermoduls (18) auszuüben.
  22. Vorrichtung nach einem der Ansprüche 12–21, dadurch gekennzeichnet, dass der Prozessor (10; 10') als digitaler Signalprozessor oder Mikrokontroller ausgestaltet ist.
  23. Vorrichtung nach einem der Ansprüche 12–22, dadurch gekennzeichnet, dass die Steuermittel (16; 16') zur Durchführung des Verfahrens nach einem der Ansprüche 1–11 ausgestaltet sind.
  24. Halbleiterchip mit einer Vorrichtung nach einem der Ansprüche 12–23.
DE102004059996A 2004-12-13 2004-12-13 Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors Active DE102004059996B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102004059996A DE102004059996B4 (de) 2004-12-13 2004-12-13 Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors
US11/303,055 US7669067B2 (en) 2004-12-13 2005-12-13 Method and device for setting the clock frequency of a processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102004059996A DE102004059996B4 (de) 2004-12-13 2004-12-13 Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors

Publications (2)

Publication Number Publication Date
DE102004059996A1 DE102004059996A1 (de) 2006-06-14
DE102004059996B4 true DE102004059996B4 (de) 2006-10-05

Family

ID=36500262

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004059996A Active DE102004059996B4 (de) 2004-12-13 2004-12-13 Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors

Country Status (2)

Country Link
US (1) US7669067B2 (de)
DE (1) DE102004059996B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2653952A2 (de) 2012-04-18 2013-10-23 Robert Bosch Gmbh Mikrocontroller

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783905B2 (en) * 2006-06-13 2010-08-24 Via Technologies Inc. Method for reducing power consumption of a computer system in the working state
US7673166B2 (en) * 2006-10-24 2010-03-02 Hewlett-Packard Development Company, L.P. Computation of processor clock frequency ratios
JP2009026047A (ja) * 2007-07-19 2009-02-05 Nec Electronics Corp 動作周波数動的自動制御機能を有するオーディオプロセッサ
GB2455354A (en) * 2007-12-07 2009-06-10 Symbian Software Ltd Controlling the speed of a processing element based on the fullness level of a buffer
US9195296B2 (en) * 2009-09-24 2015-11-24 Qualcomm Incorporated Apparatus and methods for optimizing power consumption in a wireless device
US8861669B2 (en) * 2009-09-30 2014-10-14 Synaptics Incorporated Stream clock recovery in high definition multimedia digital system
US20110145559A1 (en) * 2009-12-16 2011-06-16 Thomson Steven S System and method for controlling central processing unit power with guaranteed steady state deadlines
US9104411B2 (en) 2009-12-16 2015-08-11 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US9128705B2 (en) * 2009-12-16 2015-09-08 Qualcomm Incorporated System and method for controlling central processing unit power with reduced frequency oscillations
US8650426B2 (en) * 2009-12-16 2014-02-11 Qualcomm Incorporated System and method for controlling central processing unit power in a virtualized system
US9176572B2 (en) 2009-12-16 2015-11-03 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8775830B2 (en) 2009-12-16 2014-07-08 Qualcomm Incorporated System and method for dynamically controlling a plurality of cores in a multicore central processing unit based on temperature
US8909962B2 (en) * 2009-12-16 2014-12-09 Qualcomm Incorporated System and method for controlling central processing unit power with guaranteed transient deadlines
US8689037B2 (en) * 2009-12-16 2014-04-01 Qualcomm Incorporated System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US9105249B2 (en) * 2011-12-29 2015-08-11 Intel Corporation Energy conservation in a controller using dynamic frequency selection
CN103544062B (zh) * 2012-07-12 2017-11-28 华为技术有限公司 处理器的处理方法和装置
US9164931B2 (en) 2012-09-29 2015-10-20 Intel Corporation Clamping of dynamic capacitance for graphics
US9619284B2 (en) * 2012-10-04 2017-04-11 Intel Corporation Dynamically switching a workload between heterogeneous cores of a processor
US9377993B2 (en) * 2013-08-16 2016-06-28 Dresser, Inc. Method of sampling and storing data and implementation thereof
US9250910B2 (en) 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
US20160077565A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Frequency configuration of asynchronous timing domains under power constraints
US9864667B2 (en) * 2015-09-25 2018-01-09 Intel Corporation Techniques for flexible and dynamic frequency-related telemetry
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69907512T2 (de) * 1998-12-21 2004-04-08 Siemens Information and Communication Networks, Inc., Boca Raton Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719800A (en) * 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
TW509843B (en) * 1998-07-24 2002-11-11 Mitac Technology Corp Control method and system for dynamically adjusting processor
US6829713B2 (en) * 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7000138B1 (en) * 2001-06-07 2006-02-14 Cirrus Logic, Inc Circuits and methods for power management in a processor-based system and systems using the same
US7114086B2 (en) * 2002-01-04 2006-09-26 Ati Technologies, Inc. System for reduced power consumption by monitoring instruction buffer and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69907512T2 (de) * 1998-12-21 2004-04-08 Siemens Information and Communication Networks, Inc., Boca Raton Gerät und verfahren zur automatischen frequenzregelung einer zentralen verarbeitungseinheit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2653952A2 (de) 2012-04-18 2013-10-23 Robert Bosch Gmbh Mikrocontroller
DE102012206340A1 (de) 2012-04-18 2013-10-24 Robert Bosch Gmbh Mikrocontroller

Also Published As

Publication number Publication date
US20060161799A1 (en) 2006-07-20
DE102004059996A1 (de) 2006-06-14
US7669067B2 (en) 2010-02-23

Similar Documents

Publication Publication Date Title
DE102004059996B4 (de) Verfahren und Vorrichtung zum Einstellen der Taktfrequenz eines Prozessors
DE102017006876B4 (de) Server, Verfahren, Programm, Aufzeichnungsmedium und System zur Wahrung der zeitlichen Genauigkeit
DE102008048876B4 (de) Schaltungsanordnung und Verfahren zum Überwachen einer Versorgungsspannung
DE112008000194T5 (de) Servomotorsteuervorrichtung und Steuerverfahren
DE3319302C2 (de) Temperaturregelvorrichtung
DE10059815A1 (de) Elektronische Messvorrichtung zur Erfassung einer Prozessvariablen, insbesondere Radar- oder Ultraschall-Füllstandsmessvorrichtung und Verfahren zum Betreiben einer solchen Messvorrichtung
DE10235564A1 (de) Verfahren zum Überwachen eines Mikroprozessors und Schaltungsanordnung mit einem Mikroprozessor
DE2630694C3 (de) Gerät zur Überwachung der Gebärmutteraktivität während Geburtswehen
DE102006021821A1 (de) Einstellbarer Zeitakkumulator
DE3416548A1 (de) Verfahren und einrichtung zur optimalen zeitlichen einstellung von taktsignalen fuer digitalrechner
DE102018125090A1 (de) Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung
DE2936627A1 (de) Zustands-steuersystem
DE3243549C2 (de) Regelvorrichtung für die volldigitalisierte Drehzahlreglung einer Nähmaschine bzw. eines Nähautomaten
DE69826483T2 (de) Pulsstopfschaltung für eine programmierbare verzögerungsschaltung
DE102018110297B4 (de) Verfahren und Vorrichtung zur ruckbegrenzten Trajektorieplanung und Echtzeit-Steuerung einer Bewegung
DE602004011351T2 (de) Datenverarbeitungssystem und verfahren zur datenverarbeitung
EP3080944B1 (de) Verfahren und vorrichtung zum übertragen von daten an asynchronen übergängen zwischen domänen mit unterschiedlichen taktfrequenzen
DE102014018177A1 (de) Numerische Steuerung mit Servoausgangsverzögerungseinheit
DE102008010251B4 (de) Verfahren zur Lichtstromsteuerung von gedimmten Leuchtmitteln sowie Schaltungsanordnung dafür
EP1126645B1 (de) Kommunikationsnetzwerk mit zeitgesteuertem Kommunikationsprotokoll
DE102013200053B4 (de) Impulssignalgenerator
EP3244270A1 (de) Regeleinrichtung mit lernfähiger fehlerkompensation
DE102015221892A1 (de) Bestimmung einer maximalen Latenzzeit
EP2629421B1 (de) Verfahren zur Steuerung einer Pulsweitenmodulation mitttels eines Datenbusses
EP3908804B1 (de) Verfahren zum auslesen von daten von inertialsensoren

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition