Refine
Document Type
- Conference proceeding (3)
- Doctoral thesis (1)
Has Fulltext
- yes (4)
Is part of the Bibliography
- no (4)
Keywords
- Rekonfiguration (4) (remove)
Institute
The tiny logic elements in modern integrated circuits increase the rate of transient failures significantly. Therefore, redundancy on various levels is necessary to retain reliability. However, for mixed-criticality scenarios, the typical processor designs offer either too little fault-tolerance or too much redundancy for one part of the applications. Amongst others, we specifically address redundant processor internal functional units (FU) to cope with transient errors and support wear leveling. A real-time operating system (RTOS) was extended to control our prototypical hardware platform and, since it can be configured deterministically within few clock cycles, we are able to reconfigure the FUs dynamically, at process switching time, according to the specified critically of the running processes. Our mechanisms were integrated into the Plasma processor and the Plasma-RTOS. With few changes to the original software code, it was, for example, possible to quickly change from fault-detecting to fault-correcting modes of the processor on demand.
System reconfiguration of hardware resources has been done in multiple system domains. Such systems are usually found in the context of FPGAs, where reconfiguration is done usually over its primitives (e.g., LUTs, Flip-Flops). Or even in the context of MPSoC designs, where core management (e.g., lock-step operation in multi-core designs) is the most used approach. However, recent works have shown that configuration at Functional Units (FUs) granularity might come with benefits. For example, it can increase the configuration space due to its finer granularity, and, as a consequence, the options to deal with problems (e.g., due to aging) in the units itself. Within this context, this paper presents a system capable to configure its FUs (e.g., ALUs, multipliers, dividers) into different operation modes. The system uses an Operating System to control HW reconfiguration during process switching time and takes into account the health state of its units in a mixed-criticality applications scenario. Results show that, within this scenario, the system is able to reconfigure itself accomplishing health state modifications of its HW elements.
The strive for performance, low power consumption, and less chip area have been diminishing the reliability and the time to fault occurrences due to wear out of electronic devices. Recent research has shown that functional units within processors usually execute a different amount of operations when running programs. Therefore, these units present different individual wear out during their lifetime. Most existent schemes for re-configuration of processors due to fault detection and other processor parameters are done at the level of cores which is a costly way to achieve redundancy. This paper presents a low latency (approximately 1 clock cycle) software controlled mechanism to reconfigure units within processor cores according to predefined parameters. Such reconfiguration capability delivers features like wear out balance of processor functional units, configuration of units according to the criticality of tasks running on an operating system and configurations to gain in performance (e.g. parallel execution) when possible. The focus of this paper is to show the implemented low latency reconfiguration mechanism and highlight its possible main features.
In zukünftigen eingebetteten Systemen ist bei zunehmender Integrationsdichte mit einer abnehmenden Zuverlä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üchtigkeit solcher Systeme auch für einen langen Zeitraum zu gewä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ür bereits verschiedene Ansätze auf unterschiedlichen Systemebenen. Das Spektrum solcher Ansätze reicht von einer Reparatur auf Transistorebene über die Reparatur einzelner Komponenten, die aus einigen dutzend bis einigen tausend Transistoren bestehen, bis hin zu Reparaturansä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ät wird jedoch ein hierarchischer Ansatz benötigt, der die existierenden Techniken ebenenübergreifend verbindet. Dadurch kann eine Zerlegung des Systems in verschiedene Gruppen vorgenommen werden, wobei fü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ür das hierarchische Verfahren insbesondere software-basierte Reparaturansätze betrachtet, da diese nur einen geringen Administrationsaufwand in Hardware erfordern. Die Nutzung fehlerhafter Komponenten im Prozessor wird dabei durch die Anpassung des ausgefü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ächtige Backends. Das reicht von einem Backend, das nur eine Ablaufplanung ändert, über ein Backend, das darü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ührung der software-basierten Reparatur soll dabei möglichst durch den fehlerhaften Kern selbst ausgeführt werden. In schwerwiegenden Fällen erfolgt eine administrierte Reparatur auf der Systemebene durch einen zur Reparaturzeit bestimmten Prozessorkern des Systems. Der Aufwand für entsprechende Backends sowie deren Möglichkeit zur Fehlerbehandlung werden in dieser Arbeit untersucht.