Constraintbasierte Codegenerierung für eingebettete Prozessoren
Creators: name: Bashford, Steven
Publisher: name: Universität Dortmund
Year: 2001
Subjects: subject: Code-Generierung
subject: Compiler
subject: Phasenkupplung
subject: Code-Selektion
subject: Register-Allokation
subject: Schedulins
subject: Constraint-Logikprogrammierung
subject: CLP
subject: Eingebettete Systeme
subject: Entwurfsprozess
subject: Digitale Signalprozessoren
subject: Codegenerierung
subject: 004

description: Eingebettete Systeme gewinnen zunehmenden Einfluss in vielen Bereichen unseres all-täglichen Lebens, wie z.B. in der Telekommunikation, Fahrzeugelektronik, Medizin-technik und in der Unterhaltungselektronik. Diese Systeme unterliegen strengen Rand-bedingungen, wie z.B. Realzeitanforderungen und Energieverbrauch. Beim Entwurf eingebetteter Systeme spielt die Realisierung möglichst vieler Systemkomponenten durch sogenannte eingebettete Prozessoren eine große Rolle. Diese können für eine Vielzahl von Systemen wiederverwendet werden, wodurch ein teurer und äußerst zeitaufwändiger Entwurfs-, Test- und Fertigungsprozess von dedizierter Hardware entfallen kann. Die Entwicklung von Software ermöglicht wesentlich schnellere De-signprozesse, und man gewinnt weiterhin ein hohes Maß an Flexibilität, da Designfehler noch in einer späten Entwurfsphase behoben werden können.Bei der Entwicklung von Software besteht natürlich der Wunsch, moderne Hochsprachen einzusetzen. Das Problem, das hier auftritt, ist ein Mangel an guten Compilern, besonders im Bereich der digitalen Signalprozessoren. Traditionelle Compilertechniken sind nicht geeignet, die spezifischen Eigenschaften dieser Prozessoren effektiv auszunutzen. Die erforderliche Qualität des generierten Codes genügt bei weitem nicht den gestellten Randbedingungen der Systeme. Um trotzdem den Einsatz von Prozessoren zu ermöglichen, wird in der Entwicklung von Software häufig auf die Assemblerprogrammierung zurückgegriffen, was zu großen Nachteilen führt: Entwicklungszeiten und Phasen zum Testen und zur Fehlerkorrektur verlängern sich i.d.R. wesentlich, und die Wiederverwendung von Software ist bei einem Prozessorwechsel kaum noch möglich.Ziel dieser Arbeit ist die Entwicklung neuer Compilertechniken für eingebettet Prozessoren, wobei der Schwerpunkt auf digitalen Signalprozessoren liegt, die hochgradig irreguläre Datenpfade mit eingeschränkter Parallelausführung auf Instruktionsebene besitzen. Ziel ist die Generierung einer sehr hohen Codequalität bzgl. der Ausführungsgeschwindigkeit und der Codegröße. Bei der Entwicklung neuer Techniken wird verstärkt auf die Integration von Teilphasen der Codegenerierung, im Sinne einer Phasenkopplung, hingezielt. Weiterhin spielt die Einbeziehung graphbasierter Techniken zur Instruktionsauswahl eine bedeutende Rolle. Um diesen Anforderungen gerecht zu werden, ist zur handhabbaren Umsetzung entsprechender Compiler-techniken der Einsatz neuer Programmierungs- und Optimierungsmethoden unbedingt notwendig. In dieser Arbeit werden Techniken auf der Basis der Constraint-Logikprogrammierung (CLP) entworfen und realisiert. Es wird gezeigt, in welchem Maße der Einsatz von CLP in diesem Problembereich geeignet ist. Ein weiteres Ziel ist der Entwurf von Konzepten, die eine schnelle Adaption von Compilern an neue Prozessoren erlauben.