Wissenschaftliche Arbeitsziele

Die Ziele im Projekt lehnen sich an die Prinzipien der Selbstorganisation, dem Selbstschutz und der Selbstheilung an. In AIS konzentrieren sich die Forschungsaufgaben auf innovative Lösungen, die zu einer messbaren Verbesserung der Systemzuverlässigkeit beitragen, gleichzeitig aber Funktionsinvarianz sicherstellen. Die Komponenten müssen selbständig ihren Zustand erkennen und diesen an eine Betriebssystemebene weitergeben. Die Ausbreitung von Fehlern und deren negative Auswirkungen auf die Zuverlässigkeit des MPSoCs werden dadurch erkannt und nach Möglichkeit selbständig im Betrieb korrigiert. Hierzu bedarf es entsprechender Vorkehrungen in dem SoC-Entwurf: kompatible Erweiterungen in der Entwurfsmethodik, EDA-Werkzeuge zur Autonomie- und Zuverlässigkeitsbewertung sowie die Unterstützung von Hardware naher Software, wie zum Beispiel eines Betriebssystems.

Zur Modellierung der zukünftig notwendigen Systemeigenschaften werden drei Verhaltensebenen genutzt: die funktionale, die autonome und die Betriebssystemebene, wie in Abbildung 2 zu sehen ist. Die autonome Verhaltensebene bildet dabei einen engen Verbund mit dem dazugehörigen Betriebssystem. Aus dem Systemmodell werden für die einzelnen Komponenten die relevanten Parameter ermittelt und ein zugehöriges Komponentenmodell evaluiert und optimiert. Diese Modellierungen einzelner Komponenten werden bei einem Systementwurf in den einzelnen Entwurfsschritten von der Spezifikation bis zur Implementierung berücksichtigt. Ziel ist es mit Hilfe der Komponentenmodelle bereits beim Systementwurf die notwendigen Systemressourcen zu analysieren, zu explorieren und zu optimieren, um die Zuverlässigkeit durch das autonome Verhalten des SoCs im Betrieb zu garantieren. Die folgenden Abschnitte beschreiben die Themen der beiden Forschungsschwerpunkte "Systementwurf" und "Komponentenentwurf" des Projekts, die zur Umsetzung des Gesamtziels notwendig sind.


Abbildung 1: Neben den drei Modellebenen, wird für jede Komponente ein Modell dimensioniert und für eine Systemexploration zur Verfügung gestellt

System-Level-Entwurfsmethodik für autonome SoCs

Es wird eine System-Level-Entwurfsmethodik für autonome integrierte Systeme erforscht, die in frühen Entwurfsphasen einen Einsatz von Verfahren zur Selbstorganisation und deren Auswirkungen auf die Zuverlässigkeit des Gesamtsystems bewertet. Dieser Ansatz ermöglicht es erstmals, Prinzipien der Selbstorganisation auf Systemebene zu modellieren und im Spannungsfeld die Entwurfsparameter Zuverlässigkeit, Verlustleistung und Performanz in einem ganzheitlichen Ansatz zu analysieren. Eine frühzeitige Analyse bietet die Voraussetzung unter Verwendung eines gemeinsamen Systemmodells geeignete autonome Elemente auszuwählen und zu platzieren, so dass gegebene Zuverlässigkeitsanforderungen per Konstruktion erfüllt werden. Ferner werden sich durch eine statische Analyse der Applikation, der Zielarchitektur sowie der applikationsspezifischen Randbedingungen Grenzfälle für die Lernverfahren abgeleitet, damit das System auch im Fehlerfall in einem kontrollierten Zustand verbleibt. Hierzu müssen transiente Fehlfunktionen und Alterungseffekte im System rechtzeitig erkannt und propagiert werden, so dass innerhalb der analysierten Grenzfälle geeignete Gegenmaßnahmen getroffen werden können. Hierzu sind Schnittstellen zu den Komponentenmodellen auf funktionaler und autonomer Ebene sowie mit der Software-Ebene notwendig, um einen nahtlosen Informationsfluss sicherzustellen.

Hardware- und Software-Maßnahmen zur Fehlerbehebung

Es werden Hardware- und Software-Maßnahmen zur Fehlerbehebung erforscht, um Änderungen der Kommunikationswege, der Lastverteilung, der Protokolle oder der Taktrate zu ermöglichen. Diese verringern im Allgemeinen die Leistungsfähigkeit eines autonomen Systems. Die entstehenden Effekte haben einen entscheidenden Einfluss auf die Qualität eines Produkts und sind in ihren Auswirkungen schwer nachzuvollziehen. Es werden daher Verfahren erforscht, die es erlauben, die Sensitivität eines autonomen Systems gegenüber Änderungen seiner Auslastung zu analysieren und zu optimieren. Ein weiteres Forschungsziel wird Verbesserung der Fehlertoleranz autonomer integrierter Systeme sein, die mit den Fehlermechanismen von Hard- und Software gekoppelt werden.

Zuverlässige Datenverarbeitung in Modulen

Neben der Systemebene und Architekturplattform werden Strategien, Konzepte und spezifische Architekturerweiterungen zum Zwecke der Zuverlässigkeitsoptimierung auf Modulebene anhand von MPSoC-Komponenten erforscht. Das Ziel ist die Erkennung, Bewertung und Korrektur von sporadisch und/oder permanent auftretenden Fehlern in der Datenverarbeitung von eingebetteten RISC-Prozessoren. In Anlehnung an die Darstellung in Abbildung 2 werden prozessorspezifische Autonome Elemente (AE) erforscht, welche das funktionale Fehlverhalten eines RISC CPU-Kerns nach Möglichkeit lokal innerhalb des fehlerhaften CPU-Kerns oder durch Migration von Anwendungs-Tasks auf alternative CPUs global beheben.

Zuverlässige Kontrollpfade

Komplementär und ergänzend zur autonomen Fehlerbehandlung in Datenpfaden ist es notwendig, die Zuverlässigkeit von Kontrollpfaden in MPSoC-Komponenten mit geeigneten Hardware- und Software-Maßnahmen zu gewährleisten bzw. zu erhöhen. Speziell wird dies durch autonome Überwachungseinheiten erreicht, die Fehler in der Programmausführung von Prozessoren sowie der Kontrolllogik von Hardware-Modulen erkennen, bewerten und korrigieren. Ein besonderes Augenmerk wird auf auftretende Speicherfehler wie Soft Errors, aber auch auf gezielte lokale Attacken auf Kontrolllogikeinheiten gelegt. Dies beinhaltet sowohl die Kontrolle der korrekten Zustandsüberführung als auch der korrekten Zustandsspeicherung. Es werden Methoden erforscht, die den Kontrollfluss überwachen sowie reversible und nichtreversible Maßnahmen im Fehlerfall einleiten wie zum Beispiel die Terminierung durch erzwungene Überführung in sichere Zustände oder aber automatische Ablaufkorrekturen. Die Umsetzung der erarbeiteten Methoden in geeignete, dem Ausgangssystem hinzuzufügende Überwachungskomponenten schafft auf der autonomen Ebene eine Schnittstelle zwischen der Funktionalen Ebene und der Software-Ebene und liefert zusammen mit den Arbeiten zur zuverlässigen Datenverarbeitung und Kommunikation den Ausgangspunkt für eine Entwurfsmethodik für fehlertolerante Hardware-Software-Co-Designs von MPSoC-Systemen.

Zuverlässige Kommunikationsstrukturen

Um zuverlässige MPSoC zu entwerfen, ist die zuverlässige Kommunikation zwischen den Modulen in autonomen integrierten Systemen ebenso wichtig wie die Erhöhung der Zuverlässigkeit der einzelnen Module. Ein weiteres Ziel ist deshalb, die Untersuchung und Erforschung von selbstkalibrierenden Techniken und Codierungsverfahren, die die Zuverlässigkeit der Kommunikation steigern. Diese Techniken sollen die Anforderungen an die Zuverlässigkeit dynamisch zur Laufzeit an den aktuellen Systemkontext anpassen und erlauben es somit für vorgegebene QoS-Anforderungen (Quality of Service, z.B. Fehlerrate, Durchsatz, Latenz) hinsichtlich der Kommunikation einen optimalen Trade-off zwischen Zuverlässigkeit, Energie und Performanz zu identifizieren. Diese Arbeiten erfolgen in enger Abstimmung mit den Partnern, die an der erhöhten Zuverlässigkeit in den Modulen forschen, um die Gesamtzuverlässigkeit des Systems zu maximieren. Die aus den Trade-offs abgeleiteten Kostenmodelle fließen in die System-Level Entwurfsmethodik ein. Des Weiteren werden die erforschten Techniken als Basistechnologie für die Taskmigration im sich selbstorganisierenden Betriebssystem eingesetzt.

Selbstorganisierende Betriebssysteme

Das Ziel in diesem Kontext ist die Erforschung eines autonomen Betriebssystems für MPSoC. Das System soll die autonome und funktionale Ebene unterstützen, aber auch gleichzeitig ein API (Application Program Interface) für die Anwendungen bereitstellen. Die Verarbeitungselemente, aus denen ein SoC besteht, haben zu beschränkte Ressourcen, um ein vollständiges Betriebssystem mit komplexer Funktionalität auszuführen. Aus dieser Motivation leitet sich das Grundkonzept des Betriebssystems ab: die von den Anwendungen angeforderten Diensten laufen verteilt unter verschiedenen Verarbeitungselementen. Des Weiteren wird die Verteilung genutzt, um die Fehlertoleranz zu erhöhen. Folglich können die autonomen Fähigkeiten des Betriebssystems nur mit Hilfe von Redundanz gewährleisten werden. Selbstoptimierung ist ein Schlüsselwort des Betriebssystems. Da die Ressourcen beschränkt sind, ist ihre effiziente Nutzung notwendig. Aus diesem Grund wird lastabhängig und dynamisch entschieden, wie die Dienste auf dem Prozessornetz verteilt werden. Einige Dienste, die so genannte fundamentale Dienste, müssen lokal in jedem Knoten ausgeführt werden. Zum Beispiel sind die Kommunikationsdienste und Migrationdienste in allen Knoten zu finden. Bei der Verteilung der Dienste wird kontinuierlich eine Zielfunktion optimiert, die sich aus Parametern wie Prozessorauslastung, Speicherbelegung, Kommunikationskosten, Verlustleistung berechnet.