@phdthesis{Mueller2014, author = {M{\"u}ller, Sebastian}, title = {Software-basierte Rekonfiguration in statisch geplanten Mehrkernsystemen zur Behandlung permanenter Fehler}, url = {http://nbn-resolving.de/urn:nbn:de:kobv:co1-opus4-34916}, school = {BTU Cottbus - Senftenberg}, year = {2014}, abstract = {In zuk{\"u}nftigen eingebetteten Systemen ist bei zunehmender Integrationsdichte mit einer abnehmenden Zuverl{\"a}ssigkeit zu rechnen. Insbesondere lang laufende Systeme werden mit fortschreitender Zeit Alterungserscheinungen aufweisen, die sich durch den permanenten Ausfall einzelner Komponenten bemerkbar machen. Um die Funktionst{\"u}chtigkeit solcher Systeme auch f{\"u}r einen langen Zeitraum zu gew{\"a}hrleisten, sind Funktionen erforderlich, die die Erkennung, Lokalisierung und Behandlung solcher permanenter Fehler erlauben. Diese Funktionen sind dabei in das System zu integrieren. Es existieren daf{\"u}r bereits verschiedene Ans{\"a}tze auf unterschiedlichen Systemebenen. Das Spektrum solcher Ans{\"a}tze reicht von einer Reparatur auf Transistorebene {\"u}ber die Reparatur einzelner Komponenten, die aus einigen dutzend bis einigen tausend Transistoren bestehen, bis hin zu Reparaturans{\"a}tzen, die komplette Prozessorkerne in einem System ersetzen. Jeder Ansatz hat dabei seine spezifischen Vor- und Nachteile. Das betrifft insbesondere den Aufwand zur Administration der Reparatur sowie die Anwendbarkeit auf beliebige Hardwarestrukturen. Bisher wurden die Reparaturmethoden isoliert entwickelt. In Systemen mit zunehmender Komplexit{\"a}t wird jedoch ein hierarchischer Ansatz ben{\"o}tigt, der die existierenden Techniken ebenen{\"u}bergreifend verbindet. Dadurch kann eine Zerlegung des Systems in verschiedene Gruppen vorgenommen werden, wobei f{\"u}r jede Gruppe eine spezifische Reparaturmethodik besonders geeignet ist. Es entsteht dadurch ein teils hierarchisch organisierter Reparaturansatz, der unterschiedliche Reparaturtechniken miteinander kombiniert. Es werden f{\"u}r das hierarchische Verfahren insbesondere software-basierte Reparaturans{\"a}tze betrachtet, da diese nur einen geringen Administrationsaufwand in Hardware erfordern. Die Nutzung fehlerhafter Komponenten im Prozessor wird dabei durch die Anpassung des ausgef{\"u}hrten Programms an die aktuelle Fehlersituation vermieden. Diese Anpassung kann beispielsweise auf Systemebene, durch Verlagerung eines Programms von einem Prozessorkern auf einen anderen Kern oder auf der Ebene von Prozessorkernen, wobei die Benutzung einzelner Komponenten eines Kerns vermieden wird, erfolgen. Diese Anpassungen lassen sich durch Techniken, wie sie im Backend eines Compilers eingesetzt werden, bewerkstelligen. Die Reparatur auf den verschiedenen Ebenen erfordert dabei unterschiedlich m{\"a}chtige Backends. Das reicht von einem Backend, das nur eine Ablaufplanung {\"a}ndert, {\"u}ber ein Backend, das dar{\"u}ber hinaus noch die Registervergabe anpasst, bis hin zu einem Backend, das den Programmcode zweier Prozessorkerne vertauscht und an den jeweiligen Kern anpasst. Die Ausf{\"u}hrung der software-basierten Reparatur soll dabei m{\"o}glichst durch den fehlerhaften Kern selbst ausgef{\"u}hrt werden. In schwerwiegenden F{\"a}llen erfolgt eine administrierte Reparatur auf der Systemebene durch einen zur Reparaturzeit bestimmten Prozessorkern des Systems. Der Aufwand f{\"u}r entsprechende Backends sowie deren M{\"o}glichkeit zur Fehlerbehandlung werden in dieser Arbeit untersucht.}, subject = {Zuverl{\"a}ssigkeit; Fehlertoleranz; Mehrkernsystem; Software-basierte Rekonfiguration; Fault-Tolerance; Multicore System; Software-based Self-Repair; Dependability; Eingebettetes System; Fehlertoleranz; Rekonfiguration}, language = {de} }