@phdthesis{Schoelzel2006, author = {Sch{\"o}lzel, Mario}, title = {Automatisierter Entwurf anwendungsspezifischer VLIW-Prozessoren}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:co1-opus-397}, school = {BTU Cottbus - Senftenberg}, year = {2006}, abstract = {In einigen Einsatzbereichen digitaler Systeme sind die Anforderungen an die Verarbeitungsgeschwindigkeit bei gleichzeitig niedrigem Platz- und Stromverbrauch so hoch, dass sie nur durch die Verwendung spezialisierter Hardware erf{\"u}llt werden k{\"o}nnen. Zugleich sind bereits vor Beginn des Entwurfs solcher Systeme die von ihnen besonders effizient abzuarbeitenden zeitkritischen Algorithmen fest vorgegeben. Eine Hardwarel{\"o}sung f{\"u}r jeden Algorithmus bietet daher im Allgemeinen die h{\"o}chste Ausf{\"u}hrungsgeschwindigkeit, ist aber unflexibel und sehr zeitintensiv in der Realisierung. Das steht im Widerspruch zu den geforderten kurzen Entwicklungszeiten. Zudem sind bei einer Hardwarel{\"o}sung kleinere Modifikationen an den Algorithmen in einer sp{\"a}teren Entwurfsphase des Systems kaum noch m{\"o}glich. Anwendungsspezifische Prozessoren (ASPs) bieten in dieser Hinsicht einen guten Kompromiss zwischen Flexibilit{\"a}t und Ausf{\"u}hrungsgeschwindigkeit, da sie durch eine Anpassung an die zeitkritischen Algorithmen diese sehr effizient abarbeiten k{\"o}nnen und gleichzeitig in der Lage sind, leicht modifizierte Varianten und andere zeitunkritische Teile der Anwendung abzuarbeiten. In dieser Arbeit wird ein methodisches Vorgehen (DESCOMP - Design By Compilation) und die daf{\"u}r ben{\"o}tigten Techniken vorgestellt, so dass f{\"u}r ein fest vorgegebenes Spektrum an Algorithmen und zugeh{\"o}rigen Zeitschranken die Anpassung der Parameter eines konfigurierbaren ASPs vollst{\"a}ndig automatisiert durchgef{\"u}hrt werden kann und der angepasste Prozessor die Algorithmen innerhalb der Zeitschranken abarbeiten kann. Dabei wird der Platz- und Stromverbrauch des Prozessors minimiert. Schwerpunkt bildet die Anpassung an datenflussdominierte Algorithmen. Daher wird w{\"a}hrend der Design-Space-Exploration (DSE) insbesondere die verf{\"u}gbare Parallelit{\"a}t auf Instruktionsebene optimiert. Als Basisarchitektur dient ein heterogener geclusterter VLIW-Prozessor. Dessen anzupassende Parameter umfassen die Clusteranzahl, die Art und Anzahl der funktionalen Einheiten (FUs) in jedem Cluster sowie die Kapazit{\"a}t des Verbindungsnetzwerkes zwischen den Clustern. Bereits bekannte Verfahren zur DSE weisen eine hohe Komplexit{\"a}t bei der Anpassung dieser Parameter auf, da die gegebene Anwendung mit einem Compiler f{\"u}r eine Architektur mit festen Parametern {\"u}bersetzt wird. Die Parameter der Architektur sowie der Compiler werden bei diesen Ans{\"a}tzen in einem iterativen Prozess modifiziert, weswegen eine große Anzahl von Konfigurationen zu untersuchen ist. Bei DESCOMP dagegen, werden die Algorithmen wie mit einem Compiler {\"u}bersetzt, jedoch ohne dass die genauen Parameter der Zielarchitektur bekannt sind. Aus dem so erzeugten Zielcode, der hinsichtlich des Platz- und Stromverbrauchs der f{\"u}r seine Abarbeitung erforderlichen Hardware optimiert wurde, werden dann die Parameter des ASPs abgeleitet. Grundlage von DESCOMP bildet die Einteilung der DSE in eine lokale und globale Optimierungsphase. F{\"u}r die lokale Optimierungsphase wurden zeitbeschr{\"a}nkte heuristische Planungstechniken aus der High-Level-Synthese modifiziert, um optimierte geclusterte Ablaufpl{\"a}ne unterschiedlicher L{\"a}nge f{\"u}r dieselben Basisbl{\"o}cke zu erzeugen. Dabei wird die Kombination verschiedener Operatoren in derselben FU bereits ber{\"u}cksichtigt. Das tr{\"a}gt neben der Clusterung zur Reduzierung der erforderlichen Parallelit{\"a}t in den Clustern bei. Ein neu entwickelter Clusterungsalgorithmus, der mit der Planung gekoppelt ist, erlaubt es, in einem iterativen Vorgehen die gegenseitigen Wechselwirkungen von Clusterung und Ablaufplanung zu ber{\"u}cksichtigen sowie vollst{\"a}ndig automatisch eine geeignete Clusteranzahl zu bestimmen. Aus den verschiedenen geclusterten Ablaufpl{\"a}nen, die zu einem Basisblock erzeugt wurden, wird in der globalen Optimierungsphase jeweils ein Ablaufplan f{\"u}r jeden Basisblock ausgew{\"a}hlt, so dass die ausgew{\"a}hlten Ablaufpl{\"a}ne {\"a}hnliche Anforderungen an den Prozessor stellen und dieser in der Lage ist, die zuvor festgelegten Zeitschranken bei der Abarbeitung einzuhalten. F{\"u}r die Auswahl werden Informationen aus der lokalen Optimierungsphase genutzt. Es wird ber{\"u}cksichtigt, dass mit steigender Parallelit{\"a}t in den Clustern die maximal m{\"o}gliche Taktfrequenz des Prozessors sinkt. Mit den vorgestellten Verfahren zur lokalen Optimierung wurden Architekturen f{\"u}r verschiedene Benchmarkprogramme erzeugt und mit den Ergebnissen aus der Dissertation von Victor Lapinskii hinsichtlich der erforderlichen Parallelit{\"a}t verglichen. Es zeigte sich, dass bei gleicher Abarbeitungsgeschwindigkeit mit dem DESCOMP-Ansatz im Durchschnitt ca. 20 Prozent weniger Parallelit{\"a}t in den Architekturen erforderlich ist, was zu einer deutlichen Verringerung des Platz- bzw. Stromverbrauchs f{\"u}hrt und gleichzeitig eine h{\"o}here Taktfrequenz zul{\"a}sst. Die Anwendbarkeit der globalen Optimierungsstrategie wurde anhand der Kombination kleinerer Signalverarbeitungsalgorithmen demonstriert.}, subject = {Entwurfsautomation; Hardwareentwurf; VLIW-Architektur; Design-Space-Exploration; VLIW; Prozessorentwurf; Design-space-exploration; VLIW; Processor design}, language = {de} }