@phdthesis{Schoelzel2014, author = {Sch{\"o}lzel, Mario}, title = {Self-testing and self-repairing embedded processors: techniques for statically scheduled superscalar architectures}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:co1-opus4-31265}, school = {BTU Cottbus - Senftenberg}, year = {2014}, abstract = {This thesis introduces a comprehensive approach for making a particular class of embedded processors self-testing and self-repairing, such that a limited amount of permanent hardware faults that occur during the lifetime of these processors in the field will not prohibit the functional behavior of the user application running on the processor. The presented concepts all use redundant hardware, but the techniques used for administrating the hardware-redundancy range from hardware-based methods over hybrid methods to pure software-based methods, whereby the focus is on the latter ones. The proposed methods will be demonstrated by using a processor that is well designed for diagnostic self-test and self-repair purposes. This will also highlight some architectural properties of such a processor, which are beneficial for performing a software-based self-test and self-repair process. Chapter 1 is an introduction to the field of dependable systems and fault tolerance. Fundamental terms and notations, which are used throughout this thesis for classification and evaluation, are provided. The used processor model - the VARP processor - is introduced in chapter 2 together with a hardware-based self-repair scheme for that processor. The results are used as reference values for evaluating the software-based methods. Chapter 3 introduces the fundamental concept of the software-based self-repair. In chapter 4 hybrid methods are derived by combining software-based and hardware-based methods, highlighting the synergy effects of the combination. Finally, in chapter 5, a diagnostic and adaptive software-based self-test scheme is introduced. This self-test scheme provides the diagnostic capability that is needed in the field for identifying defect components in the VARP processor and completes the comprehensive software-based self-test and self-repair approach.}, subject = {Fault Tolerance; Fehlertoleranz; Self-Test; Self-Repair; Diagnosis; VLIW; Selbsttest; Selbstreparatur; Diagnose; VLIW}, language = {en} } @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} }