-
Gebiet der
Erfindung
-
Die Erfindung betrifft ein Verfahren
zum Ausführen
von Befehlen in einem Mikroprozessor und insbesondere, aber nicht
ausschließlich,
ein solches Verfahren zur Verwendung in einer tragbaren Kommunikationsvorrichtung,
wie zum Beispiel einem Mobiltelefon.
-
Hintergrund
der Erfindung
-
In einem Mobiltelefon erfordern Daten,
die über
eine Funkschnittstelle übertragen
oder empfangen werden sollen, eine komplexe Verarbeitung nach speziellen
Algorithmen.
-
Um eine solche komplexe Verarbeitung
zu erleichtern, hat ein Mobiltelefon neben einem Mikrocontroller
zur Bereitstellung der Steuerung der Merkmale und Funktionen des
Mobiltelefons normalerweise einen digitalen Signalprozessor (DSP),
der dazu dient, die übertragenen
und empfangenen Daten handzuhaben.
-
Für
den Mikrocontroller ist ein Programm geschrieben, das die gewünschten
Merkmale und Funktionen enthält.
Dieses Programm kann unter Verwendung eines Software-Tools in einer
virtuellen (zwischen-)Sprache ("intermediate
language") geschrieben
sein. Der Mikrocontroller hat einen Übersetzer (chipintegriert oder
nicht), der die virtuelle Sprache während der Ausführung des
Programms in maschineneigene Sprache übersetzt.
-
Anders als oben ist für den DSP
ein kurzer Code geschrieben, der die erforderlichen Algorithmen
enthält.
Dieser Code muss in maschineneigener Sprache geschrieben sein, weil
Software-Compiler derzeit einen DSP-artigen Code nicht verarbeiten können und
weil die Algorithmen schnell verarbeitet werden müssen, was
mit einer virtuellen Sprache, die mit Übersetzern arbeitet, nicht
kompatibel ist.
-
Wenn ein neuer DSP zur Verwendung
in einem Mobiltelefon ausgelegt ist, ist ein Mikrocontroller ebenfalls
für die
Einheit ausgelegt bzw. ausgewählt. Normalerweise
ist eine Anzahl von Software-Teams daran beteiligt, die gesamte
obengenannte Software bereitzustellen. Ein Team muss das Programm
in der virtuellen Sprache schreiben, ein anderes Team muss den Code
für den
DSP schreiben. Noch ein anderes Team muss einen Übersetzer für den Mikrocontroller und den
DSP schreiben.
-
Ein Problem bei dieser Anordnung
besteht darin, dass bei neuen Generationen von Mobiltelefonen, die
mit hoher Geschwindigkeit produziert werden und neue Mikrocontroller
und digitale Signalprozessoren haben, der zusätzliche Auf wand an Softwareentwicklungszeit
die Fertigstellung eines neuen Mobiltelefondesigns beträchtlich
verzögern
kann.
-
Bei dieser Erfindung geht es darum,
ein Verfahren und ein System zum Ausführen von Befehlen in einem
Mikroprozessor bereitzustellen, die die obengenannten Nachteile
beheben.
-
Aus der Veröffentlichung von MICHAEL P. PLETZBERT
ET AL: 'DOES "JUST IN TIME" = "BETTER LATE THAN
NEVER"?', CONFERENCE RECORD
OF POPL '97: THE
24TH ACM SIGPLAN-SICACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES,
PARIS, FRANKREICH, 15.–17.
JANUAR 1997, ISBN 0-89791-858-3, SEITEN 120–131, XP002054081, sind drei
verschiedene Verfahren bekannt, einschließlich 'Just-in-Time'-Kompilierung, zum Durchführen der
Ausführung eines
Bytecodes in virtueller Sprache und eines maschineneigenen Binärcodes in
einem Codestrom. In dieser Veröffentlichung
geht es hauptsächlich
um das Thread-Problem, das die 'Just-in-Time'-Kompilierung aufwirft,
und um den Einfluss einzelner oder doppelter Threads, um die Leistung
der Ausführung
zu verbessern.
-
Aus der Veröffentlichung von GABRIEL SILBERMANN
ET AL: "AN ARCHITECTURAL
FRAMEWORK FOR SUPPORTING HETEROGENEOUS INSTRUCTION-SET ARCHITECTURES", ist eine Lösung zum
Umstellen eines Codes von einem Basissystem auf ein maschineneigenes
System bekannt, d. h. eine Morphismuslösung, die weder vorkompilierte
Code-Abschnitte noch einen Codestrom berücksichtigt, der das Ergebnis
einer Kombination des virtuellen Maschinencodes und eines optimierten maschineneigenen
binären
Zielcodes ist. In dieser Veröffentlichung
geht es um eine ausführliche
Untersuchung und Betrachtung der möglichen Techniken zum Umwandeln
einer Binärcodebasis
in eine andere Codebasis.
-
Zusammenfassung
der Erfindung
-
Gemäß einer ersten Ausgestaltung
der vorliegenden Erfindung wird ein Verfahren zum Ausführen von
Befehlen auf einem anwendungsspezifischen Mikroprozessor bereitgestellt,
der eine Maschinensprache mit einer Prozessorbeschreibung hat, wobei
das Verfahren die folgenden Schritte umfasst: Bereitstellen von
mikrocontrollerartigen Befehlen in einem nicht direkt ausführbaren,
Format zur Ausführung
auf dem Prozessor; Kompilieren von höheren DSP-artigen Funktionen
unter Verwendung der Prozessorbeschreibung zu DSP-artigen Befehlen in
einem direkt ausführbaren
Format zur Ausführung auf
dem Prozessor; Kombinieren der mikrocontrollerartigen Befehle mit
den DSP-artigen Befehlen, um ein Programm zu erzeugen, wobei das
Programm einen nicht direkt ausführbaren
Abschnitt und einen direkt ausführbaren
Abschnitt hat; Ausführen
des Programms durch Vorverarbeiten des nicht direkt ausführbaren
Abschnitts des Programms unter Verwendung der Prozessorbeschreibung
zu direkt ausführbaren
Befehlen und durch direktes Ausführen
des direkt ausführbaren
Abschnitts des Programms, so dass der anwendungsspezifische Mikroprozessor
sowohl die DSP-artigen Befehle als auch die mikrocontrollerartigen
Befehle ausführt.
-
Vorzugsweise ist das nicht direkt
ausführbare
Format eine virtuelle Sprache, und die Vorverarbeitung ist eine Übersetzung
von virtueller Sprache in Maschinensprache, die dazu ausgelegt ist,
den nicht direkt ausführbaren
Abschnitt des Programms in die Maschinensprache zu übersetzen.
-
Das Verfahren umfasst vorzugsweise
des Weiteren den Schritt des Komprimierens der in virtueller Sprache
ge schriebenen mikrocontrollerartigen Befehle vor dem Schritt des
Kombinierens; und der Vorverarbeitungsschritt umfasst vorzugsweise
außerdem
einen Dekomprimierungsschritt, der dazu ausgelegt ist, den nicht
direkt ausführbaren
Abschnitt des Programms vor dem Übersetzungsschritt
zu dekomprimieren.
-
Gemäß einer zweiten Ausgestaltung
der vorliegenden Erfindung wird ein Mikroprozessorsystem zum Ausführen von
Befehlen bereitgestellt, das folgendes umfasst: einen anwendungsspezifischen
Mikroprozessor, der eine Maschinensprache mit einer Prozessorbeschreibung
hat; einen Speicher, der dazu ausgelegt ist, ein Programm zur Ausführung auf dem
Prozessor zu speichern, wobei das Programm einen nicht direkt ausführbaren
Abschnitt hat, der mikrocontrollerartige Befehle in einem nicht
direkt ausführbaren
Format enthält,
und einen direkt ausführbaren
Abschnitt, der aus höheren
DSP-artigen Funktionen unter Verwendung der Prozessorbeschreibung
kompilierte DSP-artige Befehle in der Maschinensprache enthält; und
eine Vorverarbeitungseinheit, die dazu ausgelegt ist, den nicht
direkt ausführbaren
Abschnitt unter Verwendung der Prozessorbeschreibung in Befehle
in Maschinensprache umzuwandeln; wobei dann, wenn das Programm auf
dem Prozessor ausgeführt
wird, der nicht direkt ausführbare
Abschnitt des Programms durch die Vorverarbeitungseinheit zu Befehlen
in Maschinensprache vorverarbeitet wird und der direkt ausführbare Abschnitt
des Programms direkt ausgeführt
wird, so dass der Prozessor sowohl die DSP-artigen Befehle als auch die mikrocontrollerartigen
Befehle ausführt.
-
Vorzugsweise ist das nicht direkt
ausführbare
Format eine virtuelle Sprache, und die Vorverarbeitungseinheit ist ein Übersetzer
zum Übersetzen von
virtueller Sprache in Maschinensprache, der dazu ausgelegt ist,
den nicht direkt ausführbaren
Abschnitt des Programms in die Maschinensprache zu übersetzen.
-
Das nicht direkt ausführbare Format
ist vorzugsweise eine komprimierte virtuelle Sprache, und die Vorverarbeitungseinheit
umfasst einen Dekomprimierer und einen Übersetzer zum Übersetzen
von virtueller Sprache in Maschinensprache, so dass dann, wenn das
Programm auf dem Prozessor ausgeführt wird, der nicht direkt
ausführbare
Abschnitt des Programms dekomprimiert wird und dann in Befehle in
Maschinensprache übersetzt
wird.
-
Vorzugsweise ist das nicht direkt
ausführbare
Format ein komprimiertes Maschinensprachenformat, und die Vorverarbeitungseinheit
ist eine Dekomprimierungseinheit. Der anwendungsspezifische Mikroprozessor
ist vorzugsweise in ein Mobiltelefon eingebaut.
-
Auf diese Weise können sowohl DSP-artige Befehle
als auch mikrocontrollerartige Befehle in einem einzigen Prozessor
ausgeführt
werden.
-
Kurze Beschreibung
der Zeichnungen
-
Eine beispielhafte Ausführungsform
der Erfindung wird nun anhand der Zeichnungen beschrieben; darin
zeigen:
-
1 ein
Flussdiagramm eines Verfahrens zum Ausführen von Befehlen gemäß einer
ersten Ausgestaltung der Erfindung;
-
2 ein
Flussdiagramm eines Verfahrens zum Ausführen von Befehlen gemäß einer
zweiten Ausgestaltung der Erfindung;
-
3 ein
Mikroprozessorsystem, das dazu ausgelegt ist, das Verfahren von 1 durchzuführen.
-
Beschreibung
einer bevorzugten Ausführungsform
-
1 zeigt
ein Flussdiagramm der Verfahrensschritte, die zum Ausführen von
Befehlen auf einem anwendungsspezifischen Befehls-Mikroprozessor
(ASIP = "Application-Specific
Instruction microprocessor"),
wie zum Beispiel einem in einem Mobiltelefon verwendeten Prozessor,
erforderlich sind.
-
Anhand von 3 ist außerdem ein Mikroprozessorsystem 200 dargestellt,
das einen ASIP 210 und einen Speicher 220 umfasst.
-
Der Mikroprozessor hat eine maschineneigene
Sprache, und der Prozessorhersteller stellt bei Lieferung des Prozessors
eine Prozessorbeschreibung bereit, die Einzelheiten über die
Maschinensprache und Angaben zum Übersetzen enthält. Die Prozessorbeschreibung
(Block 10) wird von einem Softwareprogrammierer verwendet,
um sicherzustellen, dass von dem Programmierer geschriebene Befehle
wie beabsichtigt auf dem Mikroprozessor ausgeführt werden.
-
In einem Mobiltelefon sind für zwei Hauptfunktionen
Mikroprozessoren erforderlich. Systemfunktionen sorgen für den Betrieb
des Telefons. Die Funktionen umfassen die Handhabung von Benutzereingabevorrichtungen,
wie zum Beispiel einer Tastatur, die Steuerung des Sendens und Empfangens
von Daten und verschiedene Menü-Optionen,
wie zum Beispiel gespeicherte Telefonnummern. Systemfunktionen sind
normalerweise in einem Controllercode (Block 20) definiert,
bei dem es sich um eine Reihe von in einer höheren Sprache geschriebenen
Befehlen handelt.
-
Die zweite Hauptfunktion eines Mobiltelefons,
die einen Mikroprozessor erfordert, ist die Handhabung von Daten,
die von dem Mobiltelefon gesendet und empfangen werden. Die Daten
sind normalerweise digitale Daten und unterliegen normalerweise
komplexen Kompressions-/Dekompressions- und Filteralgorithmen. Im
Stand der Technik ist in dem Mobiltelefon ein spezieller digitaler
Signalprozessor (DSP) vorgesehen, um diese Algorithmen zu verarbeiten.
Die Algorithmen sind normalerweise im DSP-Code (Block 30)
definiert.
-
Es stehen Software-Tools zur Verfügung (Block 40),
die unter Verwendung der Prozessorbeschreibung ein Programm in prozessorspezifischer Maschinensprache
generieren. Mit solchen Tools können
aus dem DSP-Code (Block 30) auf dem DSP ausführbare Befehle
(Block 50) geschaffen werden.
-
Außerdem stehen Software-Tools
zur Verfügung
(Block 60), die aus einem Satz von höheren Befehlen ein Programm
in einer virtuellen (prozessorunabhängigen) Sprache generieren
(Block 70). Mit solchen Tools kann aus dem Controllercode
(Block 20) ein Programm in virtueller Sprache (Block 70)
geschaffen werden.
-
Das in virtueller Sprache geschriebene
Programm (70) wird zum Zeitpunkt der Ausführung durch einen Übersetzer übersetzt.
Ein Übersetzer
(230) von 3 ist
auf einem Chip (240) vorgesehen, der außerdem den ASIP (210)
enthält.
Der Übersetzer (230)
kann Hardware oder Software sein und verwendet die Prozessorbeschreibung
des Mikrocontrollers, um virtuelle Sprache in die ASIP(210)-spezifische
Maschinensprache zu übersetzen.
-
Im Stand der Technik arbeiten zwei
Prozessoren parallel und teilen sich einen Dual-Port-Speicher. Der
Mikro controller verwaltet die Aktivitäten des DSP und des Dual-Port-Speichers.
-
Bei der vorliegenden Erfindung wird
der einzelne ASIP 210 verwendet. Eine einzelne Prozessorbeschreibung
(Block 10) wird von dem Software-Tool (40) verwendet,
um aus dem DSP-Code (30) auf dem DSP ausführbare Befehle
(50) in der ASIP-spezifischen Maschinensprache zu schaffen.
Dieselbe Prozessorbeschreibung (10) wird verwendet, um
die Übersetzersoftware
(Block 90) zu schreiben, wenn von dem Lieferanten des ASIP
nicht schon eine solche bereitgestellt wurde. Die Übersetzersoftware kann
chipintegriert sein oder nicht (innerhalb oder außerhalb
des ASIP).
-
Das virtuelle Software-Tool (60)
generiert das virtuelle Programm (70) aus dem Controllercode (20).
Die auf dem DSP ausführbaren
Befehle (50), die bereits in der ASIP-spezifischen Maschinensprache geschrieben
sind, werden markiert (Block 75), um anzuzeigen, dass sie
direkt ausführbar
sind. Die Markierung kann in Form eines Start- und Endeflags analog
zu Sprachmarkierungen oder als kurzes Stück Kopfcode vorliegen, der
die Länge
der auf dem DSP ausführbaren
Befehle (50) angibt. Das virtuelle Programm (70)
und die markierten, auf dem DSP ausführbaren Befehle (75)
werden dann in einem einzigen Programm (80) kombiniert,
das dadurch virtuelle und nichtvirtuelle Abschnitte hat.
-
Das Programm 80 kann in
dem Nur-Lese-Speicher (ROM) des Mobiltelefons gespeichert werden,
wie zum Beispiel in dem Speicher 220 von 3. Der Speicher 220 enthält ein solches
Programm 250. Wenn das Programm 250 ausgeführt wird
(Block 100), übersetzt
der Übersetzer 230 in
virtueller Sprache geschriebene Abschnitte 260 des Programms 250 in Befehle
in Maschinensprache, worauf sie von dem ASIP 210 ausgeführt werden (Pfeile 265 und 266).
-
Wenn der Übersetzer 230 auf
markierte Befehle 270 trifft, erkennt er sie als in Maschinensprache
geschrieben, und sie werden direkt von dem ASIP 210 ausgeführt (Pfeil 275).
-
Auf diese Weise führt der ASIP sowohl die DSP-artigen
Befehle als auch die mikrocontrollerartigen Befehle aus.
-
Anhand von 2 ist nun außerdem ein ähnliches Verfahren wie das
von 1 oben dargestellt,
außer
dass der Controllercode nicht in virtueller Sprache, sondern als
komprimierter Maschinencode bereitgestellt ist, und dass statt des Übersetzers 90 eine
Dekomprimierungseinheit bzw. ein Dekomprimierungsalgorithmus (Block 190)
verwendet wird.
-
Wieder wird von dem Software-Tool
(40) eine einzige Prozessorbeschreibung (Block 110)
verwendet, um aus dem DSP-Code (130) auf dem DSP ausführbare Befehle
(Block 150) in der ASIP-spezifischen Maschinensprache zu
schaffen. Dieselbe Prozessorbeschreibung (110) wird nun
verwendet, um den Controllercode (Block 120) in ASIP-spezifischen Maschinencode
(Block 160) zu übersetzen.
-
Ein Komprimierungssoftware-Tool generiert einen
komprimierten Code (Block 170). Die auf dem DSP ausführbaren
Befehle (150), die in der ASIP-spezifischen Maschinensprache
geschrieben sind, werden markiert (Block 175), um anzuzeigen, dass
sie direkt ausführbar
sind. Der komprimierte Code (170) und die markierten, auf
dem DSP ausführbaren
Befehle (175) werden dann in einem einzigen Programm 180 kombiniert,
das dadurch komprimierte und nicht komprimierte Abschnitte hat.
-
Wieder kann das Programm 180 im
ROM des Mobiltelefons gespeichert werden. Wenn das Programm 250 ausgeführt wird
(Block 200), dekomprimiert die Dekomprimierungseinheit 190 die
komprimierten Abschnitte des Programms (Block 180) zu Befehlen
in Maschinensprache, worauf sie von dem ASIP 210 ausgeführt werden.
-
Wenn die Dekomprimierungseinheit 190 auf markierte
Befehle trifft, erkennt sie diese als in nichtkomprimierter Maschinensprache
geschrieben, und sie werden direkt von dem ASIP210 ausgeführt.
-
Es versteht sich, dass alternative
Ausführungsformen
zu der oben beschriebenen möglich sind.
Zum Beispiel könnte
der Übersetzer 230 als nicht
chipintegriert vorgesehen sein (nicht auf derselben integrierten
Schaltung 240 befindlich wie der ASIP 210).
-
Außerdem könnte der in virtueller Sprache geschriebene
Code mit einem Komprimierungsalgorithmus komprimiert werden, bevor
er mit den DSP-Befehlen kombiniert wird, so dass bei seiner Ausführung Dekomprimierung
und virtuelle Übersetzung
auf dem Controllercode durchgeführt
werden. Dies würde
einen Übersetzer
in Kombination mit einem Dekomprimierer erfordern.
-
Ferner könnte das Markieren der auf
dem DSP ausführbaren
Befehle auch anders als oben beschrieben durchgeführt werden.