-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Diese
Erfindung bezieht sich allgemein auf digitale Signalverarbeitungseinheiten
und insbesondere auf Techniken zur Bestimmung des Leistungsverbrauchs
digitaler Signalprozessoreinheiten.
-
2. Hintergrund
der Erfindung
-
Der
digitale Signalprozessor und verwandte Vorrichtungen finden zunehmend
Anwendung in tragbaren Vorrichtungen wie etwa Zellentelephonen, drahtlosen
Internetvorrichtungen usw. Der Leistungsverbrauch ist in tragbaren
Vorrichtungen ein entscheidender Parameter. Der Leistungsverbrauch
bestimmt die Größe der Batterie
und die Zeit zwischen dem Nachladen der Batterie, die Schlüsselparameter in
der Tragbarkeit der Vorrichtungen sind.
-
Allerdings
hat der Leistungsverbrauchsparameter für den digitalen Signalprozessor
mehrere Variablen. Die Hardware, die die Vorrichtung realisiert, kann
z. B. so entworfen sein, dass sie mit minimalem Leistungsaufwand
läuft.
Selbst nachdem jede Bemühung
genutzt worden ist, die Leistungsanforderungen der Hardware zu verringern,
sind die Software-Programme möglicherweise
nicht leistungseffizient. Einzelne Programme können optimiert werden, um minimalen
Leistungsverbrauch sicherzustellen. Außerdem kann nicht nur die Zentraleinheit
Leistung entnehmen, sondern auch die Busaktivität zum Verbrauch von Leistung
führen.
Bevor diese Parameter optimiert werden können, muss allerdings eine
Technik für
die Messung des Leistungsverbrauchs bereitgestellt werden.
-
Beim
Entwurf und bei Tests einer Zentraleinheit wird ein Simulationsmodell
für den
vorgeschlagenen Entwurf bereitgestellt. Unter Verwendung des Simulationsmodells
kann für
die Zentraleinheit eine Simulation der Verarbeitungsaktivität, d. h.
für eine Menge
von Eingangssignalen und für
die Menge von Ausgangssignalen, ausgeführt werden. Aus dem Simulationsmodell
kann sogar der innere Betrieb der Datenverarbeitungseinheit bestimmt
werden. Das Simulationsmodell ermöglicht, ohne den langwierigen Prozess
der Herstellung der Vorrichtung Entwurfsänderungen und -verbesserungen
an der Zentraleinheit zu untersuchen.
-
Anhand
von 1 sind ein Verfahren für den Entwurf und für die Herstellung
einer Zentraleinheit zusammengefasst. In Schritt 10 wird
anhand einer Reihe von Anforderungen an eine Zentraleinheit und anhand
von Eigenschaften der bei der Realisierung einer Zentraleinheit
verwendeten Technologie ein Simulationsmodell vorbereitet. Das Simulationsmodell simuliert
die physischen elektrischen Parameter einer physisch realisierten
Zentraleinheit. In Schritt 11 wird der Betrieb des Simulationsmodells
unter Verwendung des Simulationsmodells getestet und das Modell
verfeinert. Irgendwelche in dieser Phase identifizierten Probleme
werden üblicherweise
in einem aktualisierten Simulationsmodell gelöst. Wegen der Zeit, die es
dauert, eine Zentraleinheit tatsächlich herzustellen,
haben irgendwelche Probleme, die in dieser Phase identifiziert und
gelöst
werden können, einen
großen
Einfluss auf den Plan zur Bereitstellung einer funktionierenden
Zentraleinheit. Wenn eine fertige Version des Simulationsmodells
erreicht worden ist, wird unter Verwendung des Simulationsmodells als
Vorlage in Schritt 12 eine physische Zentraleinheit hergestellt.
In Schritt 13 wird die realisierte Zentraleinheit getestet.
In Schritt 14 werden die Tests der Zentraleinheit untersucht,
um zu bestimmen, ob an dem Zentraleinheitsentwurf und folglich an
dem Simulationsmodell Änderungen
notwendig sind. Wenn keine Änderungen
notwendig sind, wird das Verfahren in Schritt 16 abgeschlossen.
Wenn Änderungen an
der Zentraleinheit erforderlich sind, geht das Verfahren zu Schritt 15 über, in
dem das Simulationsmodell modifiziert wird. Nachdem die Änderungen
abgeschlossen sind, kehrt das Verfahren zu Schritt 11 zurück, in dem
das Simulationsmodell getestet und verfeinert wird.
-
Allerdings
unterliegen die Simulationsmodelle Beschränkungen, die sichtbar werden,
wenn die Zentraleinheit hergestellt wird. Um den Betrieb der realisierten
Zentraleinheit zu testen und zu überprüfen, können aus
der Zentraleinheit und aus anderen in die Zentraleinheit eingegebenen
Signalen ausgewählte
Signale wiedergewonnen werden. Das JTAG-Protokoll (Protokoll der
gemeinsamen Testaktionsgruppe) identifiziert als spezifisches Beispiel
spezifische Signale für
die Eingabe in die Zentraleinheit und für die Wiedergewinnung von der
Zentraleinheit. Der Zweck dieses Protokolls ist die Normung der
Signale zur Zweckmäßigkeit
in Test- und Austestverfahren. Die Signale des JTAG-Protokolls sowie
die Ablaufverfolgungssignale können
in den Test- und Austestverfahren verwendet werden. Die Zentraleinheit
besitzt üblicherweise
einen Ablaufverfolgungs-Port der dem Austausch der Ablaufverfolgungssignale
zwischen ausgewählten
Komponenten in der Zentraleinheit und in einer Ablaufverfolgungseinheit
gewidmet ist. Die Ablaufverfolgungseinheit wird so programmiert,
dass sie die von der Zentraleinheit empfangenen Ablaufverfolgungssignale
interpretiert. Obgleich das JTAG-Protokoll eine Verbesserung der
Hilfsmittel ist, die dem Konstrukteur und Entwickler sowohl der
Zentraleinheit als auch der Programme, die den Betrieb der Zentraleinheit
steuern, zur Verfügung
stehen, ist die Anzahl der Ablaufverfolgungssignale unlängst stark
erweitert worden, d. h. in Bezug auf die Anzahl der JTAG-Protokoll-Signale stark
erweitert worden. Die zusätzlichen
Signale sind besonders nützlich
beim Erhalten von Informationen über
den inneren Zustand der Zentraleinheit.
-
Als
weiterer Stand der Technik wird die Aufmerksamkeit auf die europäische Patentanmeldung 875.833
gerichtet, die ein Verfahren zum Bestimmen des Leistungsverbrauchs
einer integrierten Schaltung betrifft, der aus der Ausführung eines
Codeblocks resultiert. Das Verfahren kann auf eine integrierte Schaltung
mit mehreren Modulen angewendet werden, von denen eines ein Prozessor
ist, der den Block ausführt.
-
Eine
der wichtigsten Anwendungen der Datenverarbeitungstechnologie ist
die auf batteriebetriebene tragbare Vorrichtungen, z. B. auf Handgeräte. In diesen
Anwendungen ist die Anforderung, dass der Leistungsverbrauch so
niedrig wie möglich
ist. Die Vorrichtungen werden für
minimalen Leistungsverbrauch entworfen. Ein weiterer Parameter bei
der Verringerung des Leistungsverbrauchs ist das Programm, das den
Betrieb der Datenverarbeitungseinheit steuert. Wenn das Programm
anfangs entwickelt wird, wird es typisch nicht für den Leistungsverbrauch optimiert.
Allerdings können
mehrere Abwandlungen in einem Programm möglich sein, wenn ein Versuch unternommen
wird, den Leistungsverbrauch in einem Programm zu verringern.
-
Somit
besteht offenbar ein Bedarf an einer Vorrichtung und an einem zugeordneten
Verfahren, die das Merkmal aufweisen, dass der Leistungsverbrauch
einer Zentraleinheit eines digitalen Signalverarbeitungssystems
im Ergebnis der Ausführung
eines Programms gemessen werden kann. Die Vorrichtung und das zugeordnete
Verfahren würden
ferner das Merkmal aufweisen, dass der Leis tungsverbrauch des Programms
mit den einzelnen Schritten in dem Programm in Beziehung gesetzt
werden könnte.
Nochmals weiter würden
die Vorrichtung und das zugeordnete Verfahren das Merkmal aufweisen, dass
die durch die Zentraleinheit verbrauchte Leistung für die einzelnen
Taktzyklen während
der Ausführung
des Programms bestimmt werden kann.
-
Zusammenfassung
der Erfindung
-
Die
vorliegende Erfindung schafft ein Verfahren und eine Vorrichtung,
wie sie in den Ansprüchen dargelegt
sind.
-
Kurzbeschreibung
der Zeichnung
-
1 ist
ein Ablaufplan, der die Verwendung eines Simulationsmodells zum
Entwurf und Test einer Zentraleinheit gemäß dem verwandten Gebiet veranschaulicht.
-
2 ist
ein Blockschaltplan eines Datenverarbeitungssystems, das die vorliegende
Erfindung verwenden kann, gemäß der vorliegenden
Erfindung.
-
3 ist
ein Ablaufplan, der die Verwendung der Ablaufverfolgungssignale
und Ablaufverfolgungskomponenten und eines Simulationsmodells zur
Bestimmung des Leistungsverbrauchs durch eine Zentraleinheit gemäß der vorliegenden
Erfindung beschreibt.
-
Beschreibung der bevorzugten
Ausführungsform
-
1. Ausführliche
Beschreibung der Figuren
-
1 ist
ein Bezug auf den verwandten Stand der Technik beschrieben worden.
-
Anhand
von 2 ist ein Blockschaltplan eines Datenverarbeitungssystems
gezeigt, das die vorliegende Erfindung vorteilhaft verwenden kann.
Die digitale Signalverarbeitungseinheit 20 enthält eine Zentraleinheit 21,
mehrere Peripherieeinheiten 22A bis 22N, eine
Speichereinheit 23 und eine Puffereinheit 24.
Die Peripheriegeräte 22A bis 22N können Schnittstelleneinheiten
haben, die mit gegenüber dem
Chip 20 externen Vorrichtungen gekoppelt sind. Ein interner
Bus 25 koppelt die Peripheriegeräte 22A bis 22N,
die Speichereinheit 23 und die Puffer einheit 24 mit
der Zentraleinheit 21. Die Puffereinheit 24 dient
als eine Schnittstelleneinheit zwischen dem internen Bus 24 und
einem externen Bus 25. Darüber hinaus enthält die Zentraleinheit 21 einen
Ablaufverfolgungs-Port 27. Der Ablaufverfolgungs-Port 27 schafft
eine Kopplung zwischen ausgewählten
Leitungen in der Zentraleinheit 21 und in der Ablaufverfolgungseinheit 28.
Die Ablaufverfolgungseinheit 28 kann eine Analyse der von
der Zentraleinheit 21 empfangenen Ablaufverfolgungssignale
bereitstellen und kann die gelesenen Daten, zyklusweise Blockierungen
und die in die Zentraleinheit 21 einzugebende Befehlsfolge
bestimmen. Die Ablaufverfolgungseinheit 28 zeichnet verfolgte
Daten in der Speichereinheit 29 auf. Die Ablaufverfolgungsspeichereinheit 29 zeichnet
die Aktivität
in Bezug auf die Zentraleinheit auf. Eine Verarbeitungseinheit 27 hat
Zugang zu der Speichereinheit 29, die die Ergebnisse der
Ablaufverfolgungserfassung speichert, und zu der Speichereinheit 26,
die das Simulationsmodell speichert. Außerdem kann die Speicherung
des Simulationsmodells die Speicherung von Parametern enthalten,
die für
jeden Zentraleinheits-Zustandsübergang
die abgegebene Verlustleistung identifizieren. Wie klar ist, können die
Speichereinheit 29 und die Speichereinheit 26 verschiedene
Abschnitte derselben Speichereinheit sein. Der Prozessor 27 gibt
die Ablaufverfolgungserfassungsergebnisse wie im Folgenden beschrieben
in das Simulationsmodell ein.
-
Anhand
von 3 ist das Verfahren zum Minimieren des Leistungsverbrauchs
während
der Ausführung
eines Software-Programms gezeigt. In Schritt 30 wird das
Simulationsmodell für
die Zentraleinheit, die das Programm ausführt, entwickelt. Üblicherweise
wird das Simulationsmodell während
des Entwurfs der Zentraleinheit erstellt. In Schritt 31 wird unter
Verwendung des Simulationsmodells für jeden Zustand der Zentraleinheit
die abgegebene Verlustleistung bestimmt. In Schritt 32 wird
der Anfangszustand der Zentraleinheit gesichert. In Schritt 33 wird das
Programm, das in Bezug auf den Leistungsverbrauch getestet wird,
in der Zentraleinheit ausgeführt.
In Schritt 34 werden unter Verwendung der Ablaufverfolgungskomponenten
die Eingangs- und
Ausgangssignale für
jeden Taktzyklus bestimmt. In Schritt 35 wird der Zustand
des Simulationsmodells auf den Anfangszustand der Zentraleinheit
initialisiert. In Schritt 36 werden die Eingangs- und Ausgangssignale
und die Blockierungsereignisse wie hier beschrieben in das Simulationsmodell eingegeben.
Die tatsächliche
Zentraleinheit, die die Ablaufverfolgungsdaten erzeugt, und das
Simulationsmodell (derselben Zentraleinheit) werden als völlig gleiche
Maschinen endlicher Zustände
betrachtet. Die Eingangssignale in die reale Zentraleinheit (gelesene Daten
und Maschinenblockierungen) werden in das Simulationsmodell eingegeben,
das eine zweite Maschine endlicher Zustände ist. Wenn die zwei Zustandsmaschinen
von dem gleichen Zustand gestartet werden, schreiten sie über die
gleiche Folge von Zuständen
fort. Die Ablaufverfolgungsdaten enthalten außerdem Programmzählerinformationen.
Die Programmzählerdaten
werden verwendet, um das Auftreten einer Unterbrechung in der Befehlsverarbeitung
zu erfassen. Im Ergebnis eines Unterbrechungsprozesses können sich
der Zustandsfortschritt des Simulationsmodells und der entsprechenden
Zentraleinheit unterscheiden. Die Programmzähler-Ablaufverfolgungsdaten
werden verwendet, um den Programmzähler des Simulationsmodells
zu überschreiben
und dadurch die zwei Maschinen endlicher Zustände synchronisiert zu halten.
Unter Verwendung des Simulationsmodells kann der Zustand der Zentraleinheit
für die
gesamte Programmausführung
bestimmt werden. In Schritt 37 wird der wie in Schritt 36 bestimmte
Zustand der Zentraleinheit mit der wie in Schritt 31 bestimmten
abgegebenen Verlustleistung für
den verwandten Zustand korreliert. Im Ergebnis der Korrelation in
Schritt 37 kann in Schritt 38 der Leistungsverbrauch
in Abhängigkeit
von dem Programmabschnitt bestimmt werden, der ausgeführt wird.
In Schritt 39 können
das Programm und die Verlustleistung für die verwandten Abschnitte
des Programms überprüft werden,
um zu bestimmen, ob das Programm so eingestellt werden kann, dass
die Leistung verringert wird.
-
2. Betrieb der bevorzugten
Ausführungsform
-
Die
vorliegende Erfindung stützt
sich auf die Tatsache, dass mit der entstehenden Test- und Emulationstechnologie
ausführliche
Informationen über den
Betrieb eines Datenverarbeitungssystems erhalten werden können. Außerdem stützt sich
die Erfindung auf die Prozedur, dass die Entwicklung des Datenverarbeitungssystems
ein genaues Simulationsmodell erfordert. Aus dem Simulationsmodell
kann für
jeden Zustand der Zentraleinheit eine Schätzung der abgegebenen Verlustleistung
bestimmt werden. Wenn durch die Zentraleinheit das untersuchte Programm
ausgeführt
wird, können
die Ablaufverfolgungskomponenten verwendet werden, um alle in die
Zentraleinheit eingegebenen Eingangssignale (gelesenen Daten) und
die durch die Zentraleinheit erzeugten Ausgangssignale zu bestimmen.
Die eingegebenen Signale und die erzeugten Signale, die den genauen
Punkt in dem Programm angeben, an dem eine Unterbrechung genommen
wurde, die sich aus der Ausführung
des Programms ergab, werden in das Simulationsmodell eingegeben.
Das Simulationsmodell identifiziert einen durch die eingegebenen und
durch die erzeugten Signale definierten Zustand. Wie oben angegeben
wurde, kann das Simulationsmodell zur Schätzung der für jeden Zustand verbrauchten
Leistung verwendet werden.
-
Somit
sind die für
jeden Zustand verbrauchte Leistung sowie der Fortschritt der Zustände während der
Ausführung
des Programms bekannt. Die für
den Fortschritt der Zustände
verbrauchte Leistung kann mit dem ausgeführten Programm korreliert werden. Somit
kann die abgegebene Verlustleistung in Abhängigkeit von dem Programm bestimmt
werden. Es können
Bereiche eines außerordentlich
hohen Leistungsverbrauchs der Ausführung des Programms bestimmt
werden und es kann eine Analyse des Codes ausgeführt werden, um zu bestimmen,
ob eine alternative Codestrategie genutzt werden kann, um die Verlustleistung
zu verringern.
-
Obgleich
die Erfindung in Bezug auf die oben dargelegten Ausführungsformen
beschrieben worden ist, ist die Erfindung nicht notwendig auf diese Ausführungsformen
beschränkt.
Dementsprechend sind weitere Ausführungsformen, Änderungen
und Verbesserungen, die hier nicht beschrieben worden sind, nicht
notwendig vom Umfang der Erfindung ausgeschlossen, wobei der Umfang
der Erfindung durch die folgenden Ansprüche definiert ist.