Benutzer:Indrusiak~dewikiversity/MPSoCMap

Aus Wikiversity

Anwendungsmodellierung und -abbildung auf Multiprozessor-System-on-Chip-Plattformen

Dr.-Ing. Leandro Soares Indrusiak
Prof. Dr. Dr. h.c. mult. Manfred Glesner


Zusammenfassung[Bearbeiten]

Aufgrund der zunehmenden Größe, Komplexität und Heterogenität heutiger Hardware/Software-Systeme benötigen Entwickler neuartige Methoden und Werkzeuge zur Validierung der korrekten Funktion einer Anwendung auf verschiedenen alternativen Plattformen. Diese Validierung sollte idealerweise so früh im Entwurfsprozess wie möglich geschehen, damit die Entwickler den Entwurfsraum analysieren können, bevor sie sich auf eine bestimmte Prozessorarchitektur oder Hardwareimplementierung festlegen müssen.

Im MPSoCMap wird ein modellbasierter Ansatz zur Bewertung der Abbildung von Anwendungen auf Multiprozessor-System-on-Chip-Plattformen vorgestellt. Anwendungen sollen dabei als Menge nebenläufiger Aktoren modelliert und verschiedene Ausführungssemantiken (Models of Computation) unterstützt werden. UML-Diagramme sollen die Kommunikation und Synchronisation der Aktoren untereinander mittels zwei Konzepten regeln: Typisierung und Ordnung (im Sinne einer mathematischen Ordnungsrelation). Die Zielplattform soll ebenfalls mit Aktoren modelliert werden, Typen aber zur Kennzeichnung der von jedem einzelnen Element bereitgestellten Funktionalität verwenden.

Angesichts des kritischen Einflusses des Abbildungsvorgangs auf den Durchsatz und die Effizienz des gesamten Network-on-Chip-Systems wird die Wahl geeigneter Abbildungsheuristiken selbst bereits als eine Entwurfsentscheidung betrachtet. Ziel ist es deshalb, Entwickler dabei zu unterstützen, aus einer Reihe von statischen und dynamischen Abbildungsheuristiken die für eine bestimmte Anwendung geeignetste auszuwählen. Das Typsystem des Anwendungs- und des Plattformmodells soll genutzt werden, um die Zuordnung von Aktoren an Plattformelemente einzuschränken. Es sollen Abbildungsheuristiken betrachtet werden, die diese Einschränkungen in Betracht ziehen können. Damit wird der Heterogenität zukünftiger Multiprozessor-Systems-on-Chip Rechnung getragen. Darüber hinaus soll das Konzept des Polymorphismus innerhalb des Typsystems genutzt werden, um einerseits fortgeschrittenere Abbildungsheuristiken, andererseits selbstadaptives Verhalten der Plattformelemente zu ermöglichen.


Stand der Forschung[Bearbeiten]

Systemspezifikation und -entwurf[Bearbeiten]

Der Vorgang der Systemspezifikation schließt die Erstellung von Modellen mit ein, welche die Systemfunktionalität beschreiben und eine Analyse möglicher Trade-Offs unterstützen. Dies hilft Entwicklern, eine im Hinblick auf anwendungsspezifischer Anforderungen bessere Architektur zu finden. Der Spezifikationsvorgang ist einem Entwurfsprozess vorangestellt, welcher die schrittweise Umwandlung eines Modells in ein weniger abstraktes erlaubt, bis eine tatsächliche Implementation erreicht wird. Aufgrund der Komplexität aktueller Hardware-Software-Systeme werden in einem solchen Entwurfsprozess eine Reihe von Abstraktionsebenen durchlaufen, damit Entwickler das System zunächst auf einer höheren Ebene betrachten und die Implementierungsdetails wegabstrahieren können. Im Rahmen dieses Antrags ist das Konzept der Systemspezifikation beschränkt auf die abstrakteste Ebene des Entwurfsprozesses, auf welcher die Funktionalität unabhängig von einer bestimmten Implementierung modelliert wird, wie in [1] und [2] gezeigt.

In den folgenden Absätzen werden Forschungsinitiativen präsentiert, welche die bisher erwähnten Spezifikations- und Entwurfskonzepte anwenden, die fundamentalen Probleme der Modellierung, Modellanalyse und Modelltransformation aber auf verschiedene Weise angehen. SystemC besteht aus einer Reihe von konzeptuellen Erweiterungen der Programmiersprache C++, ist als Klassenbibliothek aufgebaut [3] und ist momentan die am weitesten akzeptierte Systembeschreibungssprache [4]. Die Sprachkonstrukte erlauben die Beschreibung von Hardwaresubsystemen auf der Register-Transfer- und der Verhaltensebene, welche zusammen mit Testbench-Code und in Standard-C(++) verfassten Modellen von Softwaresubsystemen ausgeführt werden können. Eine Reihe von SystemC-Synthesewerkzeugen ist bereits kommerziell verfügbar; sie unterstützen aber lediglich Register-Transfer-Beschreibungen und eine beschränkte Auswahl an Konstrukten zur Verhaltensbeschreibung. SystemC hat jedoch deutliche Schwächen bei der Modellierung von Anwendungen. Um dies zu beheben, wurden einige Erweiterungen (z.B. Unterstützung der Unterbrechung, Wiederaufnahme, Beendigung oder Zurücksetzung von Prozessen) für SystemC Version 3.0 angekündigt [5] und von unabhängigen Entwicklern umgesetzt [6, 7]. Diese wurden jedoch bisher nicht zum Teil des Sprachstandards, und es gibt auch keine Werkzeugunterstützung dafür.

Ein Weg zur Unterstützung der effizienten Erzeugung und automatischen Synthese von SystemC-Spezifikationsmodellen auf höheren Abstraktionsebenen ist die Anpassung des Beschreibungsstils an standardisierte Models of Computation (MoC), so dass die nebenläufige Ausführung verschiedener SystemC-Module und der Kommunikation zwischen ihnen eindeutig definiert ist. Verlässt man sich auf formalisierte MoCs, kann die automatische Umwandlung von Beschreibungsmodellen in implementationsabhängige Scheduling-, Synchronisations- und Kommunikationsstrukturen vereinfacht werden. Heutige Systeme sind jedoch zu komplex und heterogen, um effizient mittels nur eines MoCs modelliert werden zu können [2] [8]. In einer früheren Phase des Entwurfs mag es beispielsweise wünschenswert sein, ein zeitunabhängiges MoC zu verwenden, welches vollkommen asynchrone Kommunikation zwischen Subsystemen mit Hilfe unbegrenzt großer FIFO-Puffer ermöglicht, während es später, nach vielen implementationsabhängigen Trade-Off-Entscheidungen notwendig werden könnte, ein taktgenaues MoC zu verwenden, in welchem manche Kommunikation immer noch asynchron, aber durch Puffer fester, endlicher Größe abläuft, während andere Kommunikationskanäle synchron modelliert werden, weil sie bereits zur Anordnung innerhalb derselben Taktdomäne vorgesehen sind. Neben dem Vorteil, verschiedene MoCs während verschiedener Phasen des Entwurfsprozesses einsetzen zu können, kann es Fälle geben, in denen eine Anwendung von Natur aus besser zur Modellierung mittels eines bestimmten MoCs geeignet ist. Ein typisches Beispiel ist der Entwurf von Signalverarbeitungs- Subsystemen mit Synchronous-Dataflow-Semantik, was statisches Scheduling erlaubt und garantiert, dass eine bestimmte Puffergröße an den Eingängen jedes Moduls ausreichend ist. Die mögliche Erzeugung von SystemC-Beschreibungen unter Verwendung mehrerer verschiedener MoCs ist Gegenstand aktueller Forschung [4, 9]. Patel und Shukla (Virginia Tech, USA) schlagen zusätzliche Simulationskernels für die SystemC-Laufzeitbibliothek vor, um SystemC-Modelle gemäß der Semantiken Synchronous Dataflow (SDF), Finite State Machines (FSM) und Communicating Sequential Processes (CSP) ausführen zu können [9]. Auch werden Erweiterungen vorgestellt, welche die Interoperabilität zwischen den vorgeschlagenen Erweiterungen und der Discrete-Event-Semantik des ursprünglichen Simulationskernels gewähren. Der von Herrera und Villar (Universidad Cantabria, Spanien) präsentierte Ansatz dagegen versucht, verschiedene MoCs zu unterstützen, ohne den ursprünglichen Simulationskernel zu verändern [4]. Sie konzentrieren sich darauf, eine zusätzliche Bibliothek bereitzustellen, welche die Kommunikationsstile verschiedener MoCs unterstützt, beispielsweise Rendezvous-Kommunikation für CSP-Modelle oder auf unbegrenzt großen FIFOSpeichern basierende Kommunikationskanäle für Prozessnetze (PN).

Neben SystemC folgen auch andere neue ausführbare Beschreibungssprachen dem Trend zu weitergehender Abstraktion zwecks Erreichung höherer Produktivität, kürzerer Entwicklungszyklen und schnellerer Simulation. Blockbasierte visuelle Modellierungswerkzeuge, vormals nur als Entwurfs-Visualisierungs-Schnittstellen angesehen, gewinnen zunehmend an Akzeptanz in Industrie und Wissenschaft. Sie werden beispielsweise auf dem Gebiet der digitalen Signalverarbeitung (DSP) zur Entwicklung von datenflussdominierten Systems-on-Chip (SoCs) eingesetzt. Beispiele für solche Werkzeuge sind SystemGenerator von Xilinx, SPW von CoWare, Advanced Design System von Agilent und Synplify DSP von Synplicity, ebenso wie die Allzweck-Simulationsplattform Simulink von MathWorks. Solche Werkzeuge folgen einem einfachen Systemmodellierungsschema: Ein System besteht aus hierarchischen Funktionsblocks, die mit anderen Blocks durch Ports verbunden werden können. Umfangreiche Funktionsblockbibliotheken sind Teil des Lieferumfangs, so dass Entwickler komplexe Systeme aus Bibliotheksfunktionen und Verbindungen derselben untereinander zusammensetzen können. Die zugrunde liegende Semantik solcher Simulationsumgebungen ist oft transparent für den Anwender, der sich so hauptsächlich darauf konzentrieren kann, das System zu strukturieren und zu parametrisieren. Wie bereits erwähnt [7, 8], kann eine bestimmte Simulationssemantik jedoch die effiziente und genaue Modellierung eines Systems vereinfachen, aber auch behindern, besonders bei der Modellierung von Nebenläufigkeit. Um die volle Ausnutzung verschiedener Simulationssemantiken zu ermöglichen, erweiterte Lee (UC Berkeley, USA) [10] das Konzept der Aktororientierung – der Begriff war zuvor von Hewitt geprägt und von Agha (MIT, USA) verfeinert worden [11] – und schlug vor, die Simulationssemantik ebenfalls zu einem Teil des Modells zu machen. Das ermöglicht komplexe Modelle, deren Subsysteme verschiedene Semantiken verwenden können. Die Komponenten eines aktororientierten Modells sind Objekte, die von Natur aus nebenläufig sind und mittels Message Passing miteinander kommunizieren (die dabei ausgetauschten Botschaften werden als unveränderbare Objekte modelliert und als Tokens bezeichnet). Eine besondere Eigenschaft aktororientierter Modelle ist die Formalisierung des nebenläufigen Verhaltens der verschiedenen Komponenten mittels wohldefinierter MoCs, welche selbst in als Directors bezeichneten Komponenten implementiert sind. Während viele aktororientierte Werkzeuge wie Simulink oder Labview auf nur einem einzigen MoC basieren, bietet das Projekt Ptolemy II [12] eine Plattform für Experimente mit heterogenen Modellen unter Kombination verschiedener MoCs. Ptolemy II erlaubt die uneingeschränkte Nutzung aktorbasierter Modelle in anderen Bereichen als den zuvor erwähnten datenflussorientierten Anwendungen – beispielsweise in kontrollflussorientierten und ereignisgesteuerten Systemen.

Darüber hinaus ermöglicht die Unterstützung mehrerer verschiedener MoCs im gleichen System auch die Koexistenz verschiedener Abstraktionsebenen, beispielsweise eines durch Differentialgleichungen in kontinuierlicher Zeit modellierten physikalischen Subsystems und digitaler Hardware, welche das physikalische System kontrolliert und taktgenau in diskreter Zeit modelliert wird. Dieser Abstraktionsgrad wird ermöglicht durch opake zusammengesetzte Aktoren (opaque composite actors), also Aktoren, welche selbst einen Director enthalten und deshalb unabhängig von den MoCs höherer Hierarchiestufen sind [12].

Eine Reihe akademischer und kommerzieller Initiativen beschäftigt sich mit der Nutzung von Aktororientierung im Entwurfsprozess von hybriden Hardware-Software-Systemen. Ein entsprechender Entwurfsprozess [13] basiert auf der Verwendung verschiedener MoCs, um eine schrittweise partielle Verfeinerung der Systembeschreibung zu unterstützen. Es wird die Möglichkeit betont, Subsysteme zu isolieren und von einer hohen Abstraktionsebene ausgehend verfeinern zu können, so dass sie detaillierter und weniger abstrakt modelliert werden, aber gleichzeitig immer noch zusammen mit dem Rest des Systems in Multi-MoC-Simulation validiert werden können. Mehrere Fallstudien wurden durchgeführt, in welchen dieser Entwurfsprozess verwendet wurde [14]. Gegenstand weiterer Forschung war der Entwurf von Spezialhardware für Neuronale Netze [15] und Kommunikationssysteme [16]. Die Anbieter von kommerziellen Modellierungswerkzeugen bieten auch umfangreiche aktororientierte Modellierungsumgebungen an, wie VisualSim [17], oder Erweiterungen der Entwurfsmöglichkeiten existierender Umgebungen, wie der Xilinx System Generator für den Simulator Mathworks Simulink. Anders als die zuvor genannten Ansätze ist die Unified Modeling Language (UML) nicht unmittelbar eine ausführbare oder simulierbare Beschreibungssprache. Sie besteht aus einer Reihe visueller Notationen [19], abgeleitet aus existierenden Modellierungssprachen aus dem Bereich der Softwareentwicklung [20]. Aufgrund der Vereinigung verschiedener Modellierungsansätze – darunter mehrerer Struktur- und Verhaltensansichten – erreicht die Sprache eine Ausdrucksmächtigkeit, die ihren Einsatz in anderen Bereichen als der Softwareentwicklung ermöglicht. Darüber hinaus ist UML als durch (in anwendungsbereichsspezifische Profile gruppierte) Stereotypen und Eigenschaftswerte erweiterbar konzipiert, was die Anpassung an unvorhergesehene Modellierungsmöglichkeiten erlaubt. Die meisten aktuellen Ansätze zur Verwendung von UML als Hardware-Software- Beschreibungssprache auf Systemebene setzen entweder auf statische Analyse oder auf Methoden zur automatischen Code-Generierung. Oliveira et al. [21] verwenden statische Analyse zur Bestimmung der Laufzeit, des Speicherbedarfs und des Energieverbrauchs alternativer Szenarien für Software eingebetteter Systeme, wobei die Software mittels UML-Sequenzdiagrammen modelliert wird. In [22] werden UML-Klassendiagramme als Vorlagen für Entwurfsraumabgrenzung und -analyse verwendet. Verschiedene Code-Generierungs-Techniken auf der Basis von UML-Diagrammen finden sich bei einer Reihe von Forschungsinitiativen. Viele davon befürworten den gemeinsamen Gebrauch von UML und SystemC. Eine gemeinsame Forschungsgruppe der Univ. de Catania und ST Microelectronics stellte die These auf, dass UML als High-Level-Modellierungssprache und SystemC als Low-Level-Systembeschreibungssprache anzusehen sei [23]. Um die Interoperabilität der beiden Sprachen zu sichern, wurde eine Menge von Stereotypen vorgestellt, welche die Modellierung von SystemC-Konzepten mittels UML-Diagrammen ermöglichen. Diese Stereotypen wurden im sogenannten UML-2.0-Profil für SystemC zusammengefasst. Ähnliche Ansätze – mit anderen Strategien zur Definition von Stereotypen – wurden von Wissenschaftlern der Politecnico di Milano in Zusammenarbeit mit Siemens ICM [24] und von Fujitsu [25] vorgestellt. In allen drei Fällen wurden Stereotypen definiert mit dem Ziel, automatische Code-Generatoren zu unterstützen, die SystemCCode aus UML-Modellen generieren.

Code-Generierung wurde auch von Damaševičius, Majauskas und Štuikys [26] und von Schattkowsky, Müller und Rettberg [27] untersucht. Ersterer Ansatz zielt auf die automatische Erzeugung von Wrapper-Komponenten auf der Basis von UML-Modellen, während letzterer Ansatz (entwickelt im C-Lab der Universität Paderborn) Modellierung und Code-Generierung für eine Untermenge der Programmiersprache C zum Ziel hat, die als Konfiguration einer FPGA-basierten Plattform synthetisierbar sein soll. Im Gegensatz dazu erzeugten Brisolara et al. [58] aus einem UMLModell (bestehend aus Verteilungs- und Sequenzdiagrammen) zunächst ein Modell in einer anderen High-Level-Modellierungssprache (Simulink), aus welchem dann mit Hilfe kommerziell verfügbarer Werkzeuge Programmcode generiert werden kann. Mellor und Balcer von Mentor Graphics [28] entwickelten ausführbare UML (executable UML, xUML) mit dem Ziel, UML besser der gegenwärtigen Praxis im Systementwurf anzupassen, welche darin besteht, Beschreibungsmodelle zu simulieren und im Laufe der Zeit auszuwerten. xUML übernimmt nur drei Konstrukte der UML-2-Spezifikation: Klassendiagramme, Zustandsdiagramme und Aktionen, wobei letztere durch eine nicht standardisierte Aktionsbeschreibungssprache definiert werden. Mit Hilfe dieser Konstrukte sollen Entwickler in die Lage versetzt werden, Modelle zu entwickeln, die automatisch in an eine bestimmte Plattform angepassten ausführbaren Code kompiliert werden können. Jedoch sind bislang nur wenige Modell-Compiler verfügbar, welche diesen Ansatz unterstützen. Dies schränkt die Akzeptanz von xUML in vielen Anwendungsbereichen ein. Darüber hinaus ist das Problem der Kosimulation von xUML mit existierendem Code oder anderen Systemmodellen noch immer ungelöst, was die verstärkte Anwendung im Rahmen eines System- Entwicklungsprozesses verhindert, da Entwickler sehr oft darauf angewiesen sind, zuvor von anderen entwickeltes geistiges Eigentum weiterverwenden zu können.

Eine andere von UML abgeleitete Sprache, die zur Modellierung auf Systemebene verwendet werden könnte, ist SysML [18]. SysML führt zwei zusätzliche Diagramme ein, um Anforderungs- und Performanzanalyse besser zu unterstützen. Ansonsten verwendet SysML die meisten Diagrammtypen und Notationen aus UML 2 weiter. Im Rahmen des hier beschriebenen Projekts soll nur die Schnittmenge aus UML 2 und SysML betrachtet werden, jedoch weder die nicht in SysML enthaltenen UML-Diagramme noch die in SysML eingeführten neuen Diagrammtypen. Auf diese Weise können die Ergebnisse in beiden Sprachen weiterverwendet werden.


Multiprozessor-SoCs (MPSoCs)[Bearbeiten]

Die ständig zunehmende Funktionsdichte in System-on-Chip-Plattformen (SoC) ermöglicht es Entwicklern, Multiprozessorsysteme auf einem einzigen Chip zu realisieren. Diese Systeme verlangen nach einer optimierten Kommunikationsarchitektur, um die Einhaltung verschiedener Dienstgüte- Niveaus gemäß den Bedürfnissen der Anwendung garantieren zu können [35]. Daneben spielen Randbedingungen wie Latenz und Energieverbrauch eine Rolle und Anforderungen wie Zuverlässigkeit, Fehlertoleranz, Korrektheit (Datenreihenfolge) und Vollständigkeit (kein Datenverlust) der Übertragung müssen erfüllt werden. Mehrere Forschungsgruppen berichten von der erfolgreichen Anwendung von Networks-on-Chip (NoC) als Ansatz zur Verbindung zwischen einer Menge von heterogenen Elementen in Multiprozessorsystemen [29]. Einfach ausgedrückt, ist ein NoC eine netzwerkähnliche Struktur, in der Datenpakete von Knoten zu Knoten weitergeleitet werden, so dass die an diese Knoten angeschlossenen Systemkomponenten asynchron durch Message Passing kommunizieren können. Eine solche Architektur ist für den Entwurf eines Multiprozessorsystems gut geeignet aufgrund der Möglichkeit, das gewünschte Dienstgüte-Niveau durch die Entwicklung eines geeigneten Kommunikationsprotokolls zwischen den einzelnen Prozessoren zu erreichen. Darüber hinaus sind NoCs sehr gut wiederverwendbar und skalierbar – beides sind besonders wichtige Funktionen beim Entwurf ganzer Produktfamilien unter Verwendung von integrierten Prozessorkernen, Speicher, rekonfigurierbarer Logik, digitalen Signalprozessoren und anwendungsspezifischer Logik. NoCs erzwingen außerdem eine örtlich begrenzte Kommunikation zwischen benachbarten Knoten; Kommunikation über größere Entfernungen hinweg geschieht über mehrere Sprünge (hops) hinweg. Auf diese Weise entsteht ein global asynchrones, lokal synchrones Kommunikationsschema. Verbindungsleitungen fallen kürzer aus und die Bedeutung des Taktversatzes zwischen benachbarten Einheiten nimmt ab – beides hilft dabei, Probleme zu vermeiden, wie sie in gegenwärtigen Systemen bei der Verwendung aktueller Submikron-Produktionsprozesse häufig auftreten [30]. Solche Probleme sind z.B. Clock Tree Distribution, unroutbare Netze und erhöhter Energieverbrauch in langen Leitungen.

Die Verwendung von NoC-basierten Plattformen hat jedoch ihren Preis: Der Entwurfsraum ist sehr groß. Entwickler können aus einer Vielzahl möglicher Wegfindungs-Algorithmen, Topologien, Puffer- und Flusskontroll-Strategien wählen [31], und jedes Detail entscheidet mit darüber, wie effizient ein bestimmtes NoC die Kommunikation einer gegebenen Multiprozessor-Anwendung abwickeln kann. Die interaktive Erforschung dieses Entwurfsraums beinhaltet die Spezifikation einer Plattform als Ausgangsbasis, die Bewertung verschiedener Entwurfsalternativen mittels formaler Methoden oder Simulationen und die Verfeinerung der Spezifikation hin zu einem als Hardware synthetisierbaren Referenzentwurf. Um diesen Prozess innerhalb der vom Markt geforderten kurzen Entwicklungszeit durchführen zu können, müssen die Definition der zur Wahl stehenden Alternativen und die Bewertung der Ergebnisse frühzeitig erfolgen – mit abstrakten, rasch verifizierbaren Modellen der Anwendung und der Plattform.

Ein anderes offenes Problem bei der Verwendung von NoC-basierten Multiprozessorsystemen ist das Programmiermodell. Einige der offenen Fragen, deren Beantwortung Gegenstand aktueller Forschung ist, sind folgende: Wie partitioniert man die Anwendung und bildet sie auf mehrere Funktionseinheiten ab? Auf welche Weise können die verschiedenen Funktionseinheiten auf gemeinsame Daten zugreifen [32]? Welche MoCs eignen sich dazu, die Latenzzeit adäquat zu modellieren, welche durch paketvermittelte Kommunikation entsteht [33]? Obwohl ähnliche Probleme bereits im Bereich der verteilten und parallelen Rechnerarchitekturen gelöst wurden, erscheinen sie hier aufgrund der strengen Effizienzkriterien und der Möglichkeit anwendungsspezifischer Trade-Offs in einem anderen Licht. Lösungen für parallele Architekturen wie das Message Passing Interface (MPI) abstrahieren die Hardware-Software-Schnittstelle durch eine Standard-Programmierschnittstelle (Application Programming Interface, API), so dass Softwarekomponenten für diese Schnittstelle entwickelt werden können. Diese Komponenten sind dann auf eine Reihe von Hardware-Plattformen portierbar, welche die gleiche Schnittstelle implementieren. Jerraya et al. (TIMA Grenoble, Frankreich) betonten [34], dass in solchen Fällen die Leistungsfähigkeit des Gesamtsystems erst nach der Integration von Hardware und Software bewertet werden kann; sie hängt von der speziellen Implementierung der Schnittstelle auf der jeweils gewählten Hardwareplattform ab. Andererseits stellen sie fest, dass anwendungsspezifische Systeme auf der Basis von On-Chip-Multiprozessoren einer besseren Anpassung zwischen Anwendung und Plattform bedürfen; d.h. es sind individuelle Hardware-Software-Schnittstellen erforderlich, die Zugriff auf spezielle Hardwarefunktionen bieten, welche die Erfüllung bestimmter Leistungsanforderungen für eine bestimmte Anwendung garantieren.


Heuristiken für die Abbildung einer Anwendung auf eine Plattform[Bearbeiten]

Das Problem der Abbildung verschiedener Teile einer Anwendung auf eine Multiprozessorplattform wurde schon verschiedentlich behandelt. Die Ansätze unterscheiden sich in der betrachteten Kostenfunktion, dem erforderlichen Rechenaufwand und darin, ob die Abbildung statisch oder dynamisch ist.

Eine Klasse von Abbildungsheuristiken zieht nur die Belegung der Funktionseinheiten (welche als 2D- oder 3D-Matrix modelliert sind) in Betracht und vernachlässigt den Kommunikationsaufwand. Diese Heuristiken lassen sich auf das bekannte Rucksackproblem zurückführen und wurden auf verschiedene Arten von Systems-on-Chips angewendet [35, 36, 37]. Da das Hauptziel des hier vorgeschlagenen Projekts die Bewertung der On-Chip-Kommunikationsinfrastruktur sein soll, sind diese Heuristiken hier von nachrangiger Bedeutung. Andererseits wurde ein Framework zur Anwendung solcher Heuristiken auf die Entwurfsraumanalyse für MPSoCs kürzlich von Ristau, Limberg und Fettweis vorgestellt [59]. Dieses Framework vernachlässigt ebenfalls den Kommunikationsaufwand. Der darin verwendete Ansatz zur Anwendungsmodellierung ist jedoch zu dem hier vorgeschlagenen Ansatz kompatibel und könnte die Ergebnisse des hier vorgeschlagenen Projekts ergänzen, beispielsweise indem eine mit Hilfe jenes Frameworks gewonnene erste Abbildung mit einem aktor-orientierten Plattformmodell kosimuliert und sukzessive verbessert wird. Eine andere Klasse von (oft als statisch bezeichneten) Heuristiken wird vor der Ausführung des Systems angewendet und erzeugt eine für die gesamte Ausführungszeit gültige Abbildungsvorschrift. Der Kommunikationsaufwand wird dabei ebenso in Betracht gezogen wie mögliche sonstige Bedingungen, z.B. bezüglich der Leistungsaufnahme oder der Ausführungszeit eines bestimmten Teilprozesses der Anwendung. Lei und Kumar [38] verwendeten einen genetischen Algorithmus, um eine als parametrisierten Task-Graph modellierte Anwendung auf ein zweidimensionales Mesh-NoC abzubilden. Ziel ihres Algorithmus´ ist die Minimierung der gesamten Ausführungsdauer der Anwendung. Rhee et al. [39] dagegen zielten auf die Minimierung der von einem Datenpaket zurückzulegenden Entfernung im NoC und der Auslastung der Kommunikationskanäle ab. Die Anwendung wird dabei ebenfalls als Task-Graph modelliert und zusätzlich mit Angaben über die von jedem einzelnen Task gesendeten und empfangenen Datenmengen und der dafür benötigten Bandbreite versehen. Hu und Marculescu [40] betrachteten nicht nur die Rechenleistung, sondern zusätzlich noch den Energiebedarf und präsentierten einen Abbildungsalgorithmus, der im Vergleich mit Ad-Hoc-Ansätzen bis zu 60% Energieersparnis möglich macht. Einen Vergleich über verschiedene Static-Mapping-Heuristiken geben Marcon et al. [41]. Obwohl Static-Mapping-Heuristiken theoretisch auch während der Ausführung der Anwendung auf der Zielplattform selbst angewendet werden können, ist das in der Praxis wegen des hohen Rechenaufwands für die damit verbundenen komplexen, iterativen Berechnungen oft nicht möglich. Dynamische Abbildungsheuristiken hingegen sind darauf zugeschnitten, während der Ausführung der Anwendung ausgeführt zu werden und zeitliche Veränderungen bei der Abbildung zu berücksichtigen. Solche Heuristiken sehen im Regelfall Prozessmigration vor und werden deshalb task migration heuristics genannt. Prozessmigration bringt einige zusätzliche Probleme mit sich – der Kontext des zu migrierenden Prozesses muss gespeichert und an den neuen Ausführungsort übertragen und Kommunikationsverbindungen mit anderen Prozessen müssen neu aufgesetzt werden. Nollet [42] definierte Zeitpunkte während der Ausführung einer Anwendung, zu denen ein bestimmter Prozess migriert werden kann. Dabei wurde auch die Möglichkeit berücksichtigt, einen Prozess von Hardware in Software oder umgekehrt zu migrieren. Bertozzi et al. [43] präsentierten einen ähnlichen Ansatz, bei dem der Anwendungsentwickler sogenannte Checkpoints definiert. Ein Prozess kann genau zu dem Zeitpunkt migrieren, zu dem seine Programmausführung einen Checkpoint erreicht. Götz et al. [44] stellten eine praktische Vorgehensweise zur Festlegung solcher Punkte und zur Erzeugung gleichwertiger Implementierungen desselben Prozesses als Softwareprogramm und FPGA-Konfiguration vor. Streichert et al. [45] stellten einen fehlertoleranten Ansatz vor, bei dem Prozesse, welche auf einer defekten Funktionseinheit ausgeführt werden, zu anderen Funktionseinheiten migrieren. Sobald die Migration abgeschlossen ist, werden die Kommunikationsverbindungen zu anderen Prozessen unterbrechungsfrei aktualisiert. Eine (mit höherem Rechenaufwand verbundene) optimierende Neuorganisation folgt, um den Kommunikationsaufwand zu minimieren. Die Auswirkungen dieses Mechanismus´ auf die Leistungsfähigkeit und das Zeitverhalten des Systems wurden untersucht und es wurde gezeigt, dass solche Mechanismen dazu beitragen können, dass eine gegebene Anwendung ihre weichen Echtzeitbedingungen einhalten kann [46]. Carvalho et al. schließlich führten eine Reihe weiterer, einfacher Heuristiken ein [47], deren Ziel meist die Minimierung des Kommunikationsaufwands der NoC-Plattform ist.

Diese Auflistung ist natürlich nicht erschöpfend, und in der Literatur finden sich viele andere Ansätze zur Lösung ähnlicher Probleme. Obwohl jeder Ansatz seine Vor- und Nachteile hat und vermutlich jeder Ansatz in irgendeinem Szenario der beste ist, ist es unwahrscheinlich, dass ein Systementwickler all diese Heuristiken kennt, geschweige denn ihren Einfluss auf das von ihm zu entwickelnde System vergleichen kann. Eines der Ziele des hier vorgeschlagenen Projekts soll es deshalb sein, die Auswahl der Abbildungsheuristik zu vereinfachen, indem diese als Teil des Systemmodells betrachtet wird. Das ermöglicht es Entwicklern, eine Abbildungsfunktion auf die gleiche Weise in das Projekt einzubinden wie eine andere Komponente (z.B. einen FIFO-Puffer) und den Einfluss der Abbildungsfunktion auf die Abbildungsgüte für diesen einen konkreten Fall zu überprüfen.



Eigene Vorarbeiten[Bearbeiten]

Entwurf auf Systemebene auf der Basis von UML und Aktororientierung[Bearbeiten]

System Modelierung mit UML und Aktoren.
System Modelierung mit UML und Aktoren.

Die bereits von der Arbeitsgruppe „System Level Design“ des Instituts für Mikroelektronische Systeme geleistete Arbeit war Basis für die Identifikation der Anforderungen, Techniken und Anforderungen, auf welche das beantragte Projekt eingehen soll. Die Gruppe wurde ursprünglich aufgebaut, um Entwurfstechniken für SoCs zu untersuchen; es wurde mit der Zeit klar, dass Entwurfsprozesse nach dem gegenwärtigen Stand der Forschung Schwachpunkte aufweisen bei wichtigen Themen wie der Heterogenität von Modulen auf dem selben Chip und dem Bedarf an der Validierung eines Systems unter realistischen Anwendungsszenarien. Der nächstliegende Ansatz zur Überwindung solcher Schwachpunkte ist die Unterstützung einer höheren Abstraktionsebene für die Systembeschreibung, da es besonders wichtig ist, das Anwendungsszenario geeignet zu beschreiben, in welchem das System später eingesetzt werden soll. Ein zweiter untersuchter Ansatz zielte darauf ab, Heterogenität in der Systembeschreibung und im Systementwurf zu unterstützen: Komplexe SoCs müssen verschiedene Subsysteme integrieren, die sich in jeweils verschiedenen Sprachen und mit verschiedenen Werkzeugen besser beschreiben lassen. Noch bedeutsamer ist, dass diese Sprachen und Werkzeuge nicht unbedingt ein gemeinsames Konzept für Modularisierung, Komposition, Zeit, Nebenläufigkeit usw. haben. Deshalb musste ein neuartiger Entwurfsprozess eingeführt werden, um heterogene Entwurfsbeschreibungen auf höheren Abstraktionsebenen zu unterstützen, wobei gleichzeitig die Integrierbarkeit in aktuelle Hardware-Synthese-Prozesse und Softwareentwicklungsprozesse für eingebettete Systeme gewährleistet bleiben musste. Eine Reihe von Fallstudien wurden durchgeführt, um solche Prozesse zu überprüfen und zu verfeinern. Die ersten beiden Fallstudien richteten ihre Aufmerksamkeit auf SoCs im Bereich Kommunikation; die erste basierte auf einer aktororientierten Beschreibung mit Hilfe von Ptolemy II und Kosimulation mit einem Hardware-Simulator mit dem Ziel des Entwurfs und der Analyse eines WCDMA-Empfängers [IPG2005]. Da die Systembeschreibung auf einer hohen Abstraktionsebene angesiedelt war, konnte eine detaillierte Analyse in Bezug auf die Verwendungsmodi des Equalizers unter verschiedenen Kanalbedingungen (Doppler-Effekt, Multi-User-Interferenzen, etc.) durchgeführt werden. Indem Ptolemy II um Unterstützung für HDL-Kosimulation erweitert wurde, konnte die eigentliche taktgenaue Implementierung des Empfängers auf Register-Transfer-Ebene zusammen mit dem Systemmodell validiert und die gleiche Analyse durchgeführt werden [RP2006]. Die zweite Fallstudie konzentrierte sich auf die Verwendung kommerzieller Werkzeuge mit dem Ziel, einen rekonfigurierbaren Rauschgenerator mit Hilfe von Mathworks Simulink und den Xilinx System Generator Tools zu entwerfen [ESJ2005]. In diesem Fall waren die Hilfemittel zur Modelltransformation bereits verfügbar, so dass der Entwurfsprozess deutlich vereinfacht wurde. Andererseits bietet Simulink nur ein einziges Konzept zur Modellierung von Zeit und Nebenläufigkeit an, so dass dieser Ansatz nur für homogene Systeme geeignet ist. Als Gegenstück zu den ersten beiden Fallstudien wurde Ptolemy II erneut erweitert, um Hardware-in-the-Loop-Simulation von Subsystem-Prototypen auf FPGA-Plattformen zu ermöglichen [JO2005]. Die Erfahrungen aus diesen Fallstudien wurden gesammelt und in einem wohldefinierten – aber immer noch experimentellen – Entwurfsprozess zusammengeführt [LSI2006], welcher die sukzessive Verfeinerung eines aktororientierten Modells des Gesamtsystems in eine Implementierung in einer Hardware- Beschreibungssprache auf Register-Transfer-Ebene ermöglicht. Diese Implementierung kann wiederum zusammen mit (ebenfalls als Aktoren modellierten) Testbenches mittels Kosimulation validiert oder in einer FPGA-Plattform emuliert werden. Auf der Basis des so entstandenen Entwurfsprozesses wurden eine Reihe weiterer Experimente durchgeführt und der Prozess verbessert. Der Entwurfsprozess wurde verwendet, um die Analyse von Programmiertechniken zu unterstützen, welche der Verringerung des Energiebedarfs von NoC-Architekturen dienen sollen [JCP2006], und um Out-of-Order-Ausführung in Mikroprozessoren mit mindestens einer rekonfigurierbaren Funktionseinheit zu untersuchen [HZ2006]. Um den Übergang von aktorbasierten Modellen in taktgenaue HDL-Modelle zu vereinfachen (was in einigen der vorherigen Fallstudien per Hand durchgeführt werden musste), wurde ein erster Schritt zur Implementation von Code-Generierungs-Techniken unternommen [FM2006]. Gleichzeitig zur Entwicklung des beschriebenen aktorbasierten Entwicklungsprozesses untersuchte die Forschungsgruppe auch die Möglichkeit, UML zur weitergehenden Abstraktion eines Systems zu verwenden. UML wurde von vielen in Industrie und Wissenschaft als vielversprechende SoC-Beschreibungssprache angesehen, und die Gruppe verfügt bereits über Erfahrung mit der Verwendung von UML für interne Softwareentwicklung und SoC-Entwurfsraumanalyse [IGK2004]. Die ersten Fallstudien ergaben durchwachsene Resultate: Während die Ausdrucksstärke von UML die Modellierung verschiedener Aspekte komplexer SoC-Systeme gut unterstützte, machten es das Fehlen von Ausführbarkeit und Simulierbarkeit schwierig, diese Modelle in einen simulationsbasierten Entwicklungsprozess einzubringen (die in Unterabschnitt 2.1.1 erwähnte laufende Forschung greift auf Code-Generierung aus UML-Modellen zurück, um funktionale Validierung zu unterstützen). Daneben war die Akzeptanz von UML seitens der SoC-Entwickler ein bereits durch zuvor durchgeführte Fallstudien aufgezeigtes mögliches Problem, da diese an die Validierung der Systemfunktionalität durch Simulation gewöhnt sind. Während es UML an Ausführbarkeit fehlt, ist einer der wichtigsten Vorteile von Aktororientierung die Koexistenz mehrerer verschiedener Ausführungssemantiken. Es liegt daher nahe, die Vereinigung dieser beiden Techniken zu betrachten, so dass die Schwachpunkte eines Ansatzes durch die Stärke des anderen kompensiert werden können. Ein anderer Grund für die Kombination der beiden Ansätze ist die Tatsache, dass es in vielen Unternehmen einen Bedarf gibt für die Integration mehrerer Abteilungen zu dem Zweck, die Komplexität aktueller Systeme beherrschen zu können. Heutzutage ist es beim Entwurf komplexer Systeme üblich, dass ein Großteil eines neuen Entwurfs aus der Wiederverwendung bereits in früheren Projekten angewandter Lösungen besteht, und solche Lösungen könnten in manchen Abteilungen in UML implementiert sein, während andere aktororientierte Beschreibungen verwenden. Aus diesen Gründen wurde damit begonnen, die Möglichkeiten der gemeinsamen Nutzung von UML und aktororientierter Beschreibung zu erforschen. Die Kapselung von UMLSequenzdiagrammen als Aktoren – eine der grundlegenden Ideen für das im Rahmen des Antrags zu entwickelnde Projekt – wurde untersucht [ITG2007]. Darin wird ein Chandra-Toueg-Distributed- Consensus-Algorithmus [53] innerhalb einer aktororientiert modellierten verteilten Sensoranwendung als UML-Sequenzdiagramm modelliert. Ideen, Ergebnisse und das Potential der Nutzung von UML, Aktororientierung und der Kombination von beidem wurden bereits auf wichtigen Veranstaltungen wie NORCHIP2005 [LSI2005], SoC2006 [LSI2006a] und BEC2006 [LSI2006b] präsentiert, was ein wichtiges Indiz für das Potential und die Bedeutung solcher Techniken und den Bedarf an Lösungen in den relevanten Kreisen in Industrie und Wissenschaft darstellt.

NoC-basierte Multiprozessor-SoCs[Bearbeiten]

NoC-basierte Multiprozessor-SoCs.
NoC-basierte Multiprozessor-SoCs.

Der Entwurfsraum von Multiprozessor-SoC-Architekturen auf der Basis von NoCs ist sehr groß, was es Entwicklern erlaubt, eine große Zahl von Aspekten anzupassen und zu optimieren, darunter Pufferung, Routing, Größe und Format von Datenpaketen, Kodierung, Übertragungsmodi und Dienstgüte-Strategien. Ein großer Teil der Forschungsarbeit am Institut für Mikroelektronische Systeme beschäftigt sich mit Wegen, diesen großen Entwurfsraum zu analysieren und mögliche Lösungen unter verschiedenen Randbedingungen zu validieren, beispielsweise für Routing- und Zugriffskontrollverfahren [IGK2004] und für Datenpufferung [ZZHG2005]. Eine Reihe von wichtigen Erfolgen konnte auf dem Gebiet des Entwurfs und der Validierung irregulärer NoC-Plattformen erzielt werden. Solche Plattformen werden erforderlich, wenn die von einer Anwendung benötigten Prozessorkerne nicht in einer regelmäßigen Netzanordnung platziert werden können. [HLM2003] umreißt die Eigenschaften einer solche Plattform und stellt eine Strategie zur Unterstützung des Tests der Prozessorkerne unter Verwendung der NoC-Infrastruktur vor. In [SHZG2005] werden neuartige Routing- und Platzierungsalgorithmen erforscht, die eine Deadlockfreie Kommunikation zwischen Prozessorkernen in einer solchen irregulären Plattform erlauben. Samman et al. schlagen eine Router-Architektur mit Multicast-Unterstützung vor [SHG2008]. Neben der solchen Entwürfen inhärenten Komplexität ist der große zusätzliche Energiebedarf einer der Hauptgesichtspunkte, welche die breite Verwendung von NoC-basierten Architekturen hemmen. Auf der Basis von Forschungsergebnissen, welche eine Korrelation zwischen der Signalschaltaktivität und dem Energieverbrauch der Kommunikationsverbindung aufzeigten [GO2003], wurden eine Reihe von Fallstudien durchgeführt, um verschiedene Kodierungen zu bewerten, deren Zweck die Minimierung der Schaltaktivität und damit die Verringerung der Leistungsaufnahme ist [PIM2006a]. Die Ergebnisse für sehr einfache Kodierungen waren vielversprechend, da für diese die zusätzliche Leistungsaufnahme für Kodierer und Dekodierer gering war im Vergleich zu den Einsparungen durch die Verminderung der Schaltaktivität [PIM2006b]. Die Effizienz solcher Kodierungen nimmt mit größer werdenden Netzwerken tendenziell ebenso zu wie mit kleiner werdenden Strukturgrößen in integrierten Schaltungen. In größeren Netzwerken muss ein Paket im Schnitt mehr Sprünge zurücklegen, um sein Ziel zu erreichen, und so wird mehr Energie eingespart, weil die Kodierung nur am ersten und die Dekodierung nur am letzten Netzwerkknoten vorgenommen wird. Bei kleineren Strukturgrößen stellen die benachbarten Leitungen größere Kapazitäten dar, und der Energieverbrauch (und damit das Einsparpotential) steigt. Weitere Aktivitäten schließen die enge Zusammenarbeit mit zwei internationalen Forschungsgruppen auf diesem Gebiet – LIRMM an der Universität Montpellier II (Frankreich) und GAPH an der Päpstlich-Katholischen Universität Rio Grande do Sul (Brasilien) – ein. Die Kooperation mit LIRMM wird teilweise von der DFG im Rahmen einer internationalen Graduiertenschule und vom DAAD im Rahmen eines deutsch-französischen Kooperationsprojekts finanziert, während die Kooperation mit GAPH durch DAAD- / CNPq-Stipendien finanziert wird. Diese trilaterale Zusammenarbeit beschäftigt sich mit regulären Mesh-ähnlichen Netzwerktopologien; die meiste Entwicklung baut auf der ursprünglich von der GAPH-Gruppe entwickelten HERMES-Plattform auf, die derzeit von allen Partnern erweitert wird. Die Ansätze zur Energieeinsparung aus [PIM2006a,b] wurden beispielsweise bereits auf dieser Plattform umgesetzt. Aktuelle und zukünftige für diesen Antrag relevante Arbeit beinhaltet unter anderem die Entwicklung von Hardwareinfrastruktur zur Unterstützung der Migration von Software- und Hardwaretasks von einem Prozessorelement auf ein anderes innerhalb eines NoCs. Zu diesem Zweck wird eine kombinierte Lösung für ein verteiltes On- Chip-Betriebssystem und Rekonfiguration einzelner Netzwerkknoten unter Softwarekontrolle angestrebt. Erste Ergebnisse wurden bereits vorgestellt [IOM2008], u.a. in Präsentationen für den ReCoSoC-Workshop [GS2005, GS2006, GS2007].


Literaturverzeichnis[Bearbeiten]

[1] S. Edwards, L. Lavagno, E. A. Lee, A. Sangiovanni-Vincentelli: Design of embedded systems: Formal models, validation, and synthesis. In: Proceedings of the IEEE, vol. 85, no. 3, S. 366-390, 1997.

[2] A. Jantsch, I. Sander: Models of computation and languages for embedded system design. In: IEE Proceedings on Computers and Digital Techniques, vol. 152, no. 2, S. 114-129, 2005.

[3] T. Grötker, S. Liao, G. Martin, S. Swan: System Design with SystemC. Kluwer Academic Publishers, 2002.

[4] F. Herrera, E. Villar: A framework for embedded system specification under different models of computation in SystemC. In: Proceedings of the 43rd Design Automation Conference (DAC), S. 911 – 914, 2006.

[5] T. Grotker: Modeling Software with SystemC 3.0. Präsentation, European SystemC Users Group Meeting (ESCUG), Lago Maggiore 2002.

[6] F. Hessel, V. Rosa, C. Reif, C. Marcon, T. G. S. Santos: Scheduling Refinement in Abstract RTOS Models. In: ACM Transactions on Embedded Computing Systems, vol. 5, no. 2, S. 342 – 354, 2006.

[7] B. Bhattacharya, J.Rose, S. Swan: Language Extensions to SystemC: Process Control Constructs. In: IEEE/ACM Design Automation Conference, S. 35-38, 2007.

[8] J. Eker, J. W. Janneck, E. A. Lee, J. Liu, X. Liu, J. Ludvig, S. Neuendorffer, S. Sachs, Y. Xiong: Taming heterogeneity - the Ptolemy approach. In: Proceedings of the IEEE, vol. 91, no. 1, S. 127-144, 2003.

[9] H. D. Patel, S. K. Shukla: SystemC Kernel Extensions for Heterogeneous System Modeling. Kluwer Academic Publishers, 2004.

[10] E. A . Lee, S. Neuendorffer, M. J. Wirthlin: Actor-Oriented Design of Embedded Hardware and Software Systems. In: Journal of Circuits, Systems, and Computers, vol. 12, no. 3, S. 231-260, 2003.

[11] G. A. Agha: ACTORS: A Model of Concurrent Computation in Distributed Systems. The MIT Press Series in Articial Intelligence, MIT Press, 1986.

[12] E. A. Lee et al.: Heterogeneous Concurrent Modeling and Design in Java. UCB/ERL M05/21- 23, UC Berkeley, 2005.

[13] L. S. Indrusiak, M. Glesner: An Actor-Oriented Model-Based Design Flow for Systems-on- Chip. In: Tagungsband des Dagstuhl-Workshops Modellbasierte Entwicklung eingebetteter Systeme II (MBEES), S. 65-73, Schloss Dagstuhl 2006.

[14] L. S. Indrusiak, M. Glesner: Experiences on Actor-oriented Design of Reconfigurable Systems. In: Proceedings of the International Workshop on Reconfigurable Communication-centric Systems-on- Chip (ReCoSoC), S. 79 – 84, 2005.

[15] C.A. DeJuan-Esteban, A. Rosado-Muñoz, E. Soria-Olivas, M. Bataller-Mompeán und J. Guerrero-Martínez: An approach to Co-design of Complex Adaptive Systems. In: Proceedings of the International Workshop on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC), S. 139 – 145, 2006.

[16] L. S. Indrusiak, R. B. Prudêncio und M. Glesner: Modeling and Prototyping of Communication Systems Using Java: A Case Study. In: Proceedings of the IEEE International Workshop on Rapid System Prototyping (RSP), S. 225-231, Montreal 2005.

[17] Mirabilis Design Inc.: VisualSim. http://www.mirabilisdesign.com.

[18] Object Management Group. OMG Systems Modeling Language Specification. Final Adopted Specification ptc/06-05-04. 2006. http://www.omg.org

[19] M. Fowler: UML Distilled, 3. ed. Addison-Wesley, 2003.

[20] J. Rumbaugh, I. Jacobson, G. Booch: The Unified Modeling Language Reference Manual. Addison-Wesley, 1998.

[21] M.F. S. Oliveira, L. Brisolara, F.R. Wagner, L. Carro. Embedded SW Design Exploration Using UML-based Estimation Tools. Präsentation, DAC Workshop on UML for SoC Design (UML-SOC), Anaheim 2005.

[22] L. S. Indrusiak, M. Glesner, M. E. Kreutz, A. A. Susin, R. A. L. Reis: UML-Driven Design Space Delimitation and Exploration: A Case Study on Networks-on-Chip. In: Proceedings of the IEEE Workshop on Design and Diagnostics of Electronic Circuits and Systems, S. 5-12, 2004.

[23] E. Riccobene, P. Scandurra, A. Rosti, S. Bocchio: A SoC Design Methodology Involving a UML 2.0 Profile for SystemC. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 704-709, 2005.

[24] F. Bruschi, D. Sciuto: A SystemC based design flow starting from UML models. Präsentation, European SystemC Users Group Meeting (ESCUG), Lago Maggiore 2002.

[25] Q. Zhu, R. Oishi, T. Hasegawa, T. Nakata: System on Chip Validation using UML and CWL. In: Proceedings of the IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, S. 92 – 97, 2004.

[26] R. Damaševičius, G. Majauskas, V. Štuikys: Application of design patterns for hardware design. In: Proceedings of the 40th IEEE/ACM Design Automation Conference, S. 48-53, 2003.

[27] T. Schattkowsky, W. Müller, A. Rettberg: A Generic Model Execution Platform for the Design of Hardware and Software. In: UML for SOC Design, hg. v. G. Martin und W. Müller, S. 63-88, Springer, 2005.

[28] S. J. Mellor, M. J. Balcer: Executable UML – A Foundation for Model-Driven Architecture. Addison-Wesley, 2002.

[29] L. Benini, G. De Micheli. Networks on Chips: A New SoC Paradigm. In: IEEE Computer, vol. 35, no. 1, 2002, S. 70–78.

[30] D. Sylvester, K. Keutzer: Rethinking deep-submicron circuit design. In: IEEE Computer, vol. 32, no. 11, S. 25-33, 1999.

[31] T. Bjerregaard, S. Mahadevan: A Survey of Research and Practices of Network-on-Chip. In: ACM Computing Surveys 38(1), 2006.

[32] Z. Lu, R. Haulilahti: NoC Application Programming Interfaces. In: Networks on Chip, hg. v. A. Jantsch und H. Tenhunen, Kluwer Academic Publishers, 2003.

[33] A. Jantsch: Models of Computation for Networks on Chip. In: Proceedings of the International Conference on Applications of Concurrency to System Design, S. 165- 178, 2006.

[34] A. Jerraya, A. Bouchhima, F. Petrot: Programming models and HW-SW Interfaces Abstraction for Multi-Processor SoC. In: Proceedings of the Design Automation Conference, S. 280-285, 2006.

[35] K. Bazargan, R. Kastner, M. Sarrafzadeh: Fast Template Placement for Reconfigurable Computing Systems. In: IEEE Design & Test of Computers, vol. 17, n. 1, 2000, S. 68-83.

[36] J. Tabero, J. Septién, H. Mecha, D. Mozos: Task placement heuristic based on 3D-adjacency and look-ahead in reconfigurable systems. In: Proceedings of the Asia and South Pacific Design Automation Conference (ASPDAC), S. 396-401, 2006.

[37] A. Ahmadinia, C. Bobda, D. Koch, M. Majer, J. Teich: Task scheduling for heterogeneous reconfigurable computers. In: Proc. Int. Symposium on Integrated Circuits and Systems Design (SBCCI), S. 22-27, 2004.

[38] T. Lei, S. Kumar: A Two-step Genetic Algorithm for Mapping Task Graphs to a Network on Chip Architecture. In: Proc. Euromicro Symposium on Digital Systems Design (DSD), S. 180-189, 2003.

[39] C. Rhee, H. Jeong, S. Ha: Many-to-Many Core-Switch Mapping in 2-D Mesh NoC Architectures. In: Proc. IEEE International Conference on Computer Design (ICCD), S. 438-443, 2004.

[40] J. Hu, R. Marculescu: Energy- and performance-aware mapping for regular NoC architectures. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, v. 24, n.4, 2005.

[41] C. Marcon, E. Moreno, N. Calazans, F. Moraes: Evaluation of Algorithms for Low Energy Mapping onto NoCs. In: IEEE International Symposium on Circuits and Systems (ISCAS), S. 389-392, 2007.

[42] V. Nollet, P. Avasare, J. Mignolet, D. Verkest: Low Cost Task Migration Initiation in a Heterogeneous MP-SoC. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 252-253, 2005.

[43] S. Bertozzi, A. Acquaviva, D. Bertozzi, A. Poggiali: Supporting task migration in multiprocessor systems-on-chip: a feasibility study. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 15-20, 2006.

[44] M. Götz, T. Xie, F. Dittmann: Dynamic Relocation of Hybrid Tasks: A Complete Design Flow. In: Proceedings of the International Workshop on Reconfigurable Communication-centric Systems-on- Chip (ReCoSoC), S. 31-38, 2007.

[45] T. Streichert, C. Strengert, C. Haubelt, J. Teich: Dynamic task binding for hardware/software reconfigurable networks. In: Proc. Int. Symposium on Integrated Circuits and Systems Design (SBCCI), S. 38-43, 2006.

[46] E. Briao, D. Barcelos, F. Wronski, F. Wagner: Impact of Task Migration in NoC-based MPSoCs for Soft Real-time Applications. In: Proc. IFIP Int. Conf. on Very Large Scale Integration of Systems-on-Chip (VLSI-SoC), S. 296-299, 2007.

[47] E. Carvalho, N. Calazans, F. Moraes: Heuristics for Dynamic Task Mapping in NoC-based Heterogeneous MPSoCs. In: Proc. 18th IEEE/IFIP International Workshop on Rapid System Prototyping (RSP), S. 34-40, 2007.

[48] E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns – Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

[49] B. P. Douglass: Real-Time Design Patterns – Robust Scalable Architecture for Real-Time Systems. Addison Wesley, 2003.

[50] A. Corsaro, D. C. Schmidt, R. Klefstad, C. O'Ryan: Virtual Component: a Design Pattern for Memory-Constrained Embedded Applications. In: Proc 9th Annual Conference on the Pattern Languages of Programs, 2002.

[51] B. Genest, A. Muscholl, D. Peled: Message Sequence Charts. Lecture Notes on Comp. Science, 3098, S. 537-558.

[52] B. Selic, G. Gullekson, P. T. Ward: Real-Time Object-Oriented Modeling. John Wiley & Sons, 2004.

[53] T. D. Chandra, S. Toueg : Unreliable Failure Detectors for Reliable Distributed Systems. In: Journal of the ACM , vol. 43, no. 2, S. 225-267, 1996.

[54] A. Mello, F. Moraes, N. Calazans: Atlas - An Environment for NoC Generation and Evaluation. 2007. http://www.inf.pucrs.br/~gaph/AtlasHtml/AtlasIndex_us.html

[55] C. Marcon, A. Borin, A. Susin, L. Carro, F. Wagner: Time and energy efficient mapping of embedded applications onto NoCs. In: Proceedings of the Asia and South Pacific Design Automation Conference (ASPDAC), S. 33-38, 2005.

[56] E. Friedman-Hill: Jess - the Rule Engine for the Java Platform. Sandia National Laboratories, http://www.jessrules.com.

[57] D. L. Rosenband, Arvind: Hardware Synthesis from Guarded Atomic Actions with Performance Specifications. In: Proceedings of the International IEEE/ACM Conference on Computer Aided Design (ICCAD), S. 784 – 791, 2005.

[58] L. B. Brisolara, M.F. S. Oliveira, R. Redin, L. C. Lamb, L. Carro, F.R. Wagner: Using UML as Front-end for Heterogeneous Software Code Generation Strategies. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 504-509, 2008.

[59] B. Ristau, T. Limberg, G. Fettweis: A Mapping Framework for Guided Design Space Exploration of Heterogeneous MP-SoCs. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 780-783, 2008.

Eigene Veröffentlichungen im Zusammenhang mit dem Vorhaben[Bearbeiten]

[AIG07] K. Ackermann, L. S. Indrusiak, and M. Glesner. System Level Design of a Dynamically Self-Reconfigurable Image Processing System, in: Intl. Workshop on Reconfigurable Communicationcentric System-on-Chips (ReCoSoC), S 47-54, Montpellier, 2007.

[AMIG06] K. Ackermann, F. Mayer, L. S. Indrusiak, and M. Glesner. Adaptable Image Processing System based on FPGA Modular Multi Kernel Instantiations. In Proc. Intl. Workshop on Reconfigurable Communication-centric System-on-Chips (ReCoSoC), S 183–188, Montpellier, 2006.

[AT2006] A. Thuy, L. S. Indrusiak, M. Glesner: Applying Communication Patterns to Actor- Oriented Models with UML Sequence Diagrams. In: ECSI Forum on Design Languages (FDL), 2006.

[EO2006] E. Ochirsuren: Programmability support in a LEON2-based wireless sensor network node. Master Thesis, International Master Program in Information and Communication Engineering, TU Darmstadt, 2006.

[ESJ2005] E. C. D. Silva Junior, L. S. Indrusiak, M. Glesner: Non-Linear Addressing Scheme for a Lookup-Based Transformation Function in a Reconfigurable Noise Generator. In: Proceedings of the Symposium on Integrated Circuits and Systems Design, S. 242-247, 2005.

[FM2006] F. Markert: Unterstützung paralleler Befehlausführung in rekonfigurierbarer Hardware durch die Verwendung codegenerierender Actor-Bibliotheken. Diplomarbeit, Elektrotechnik und Informationstechnik, TU Darmstadt, 2006.

[GHIZ2004] M. Glesner, T. Hollstein, L. S. Indrusiak, P. Zipf, T. Pionteck, M. Petrov, H. Zimmer, T. Murgan: Reconfigurable Platforms for Ubiquitous Computing. In: Proceedings of the ACM Conference on Computing Frontiers, S. 377-389, 2004.

[GO2003] A. Garcia Ortiz, L. D. Kabulepa, T. Murgan, M. Glesner: Moment-Based Power Estimation in Very Deep Submicron Technologies. In: International Conference on Computer Aided Design (ICCAD), S. 107-112, 2003.

[GS2005] G. Sassatelli, M. Glesner, L. Torres, L. S. Indrusiak, T. Hollstein (Eds.). Proc. 1st Int. Workshop on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC), 2005.

[GS2006] G. Sassatelli, L. S. Indrusiak, M. Glesner, L. Torres (Eds.). Proc. 2nd Int. Workshop on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC), 2006.

[GS2007] G. Sassatelli, M. Glesner, C. Bobda, P. Benoit (Eds.). Proc. 3rd Int. Workshop on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC), 2007.

[HH2005] H. Hinkelmann, T. Pionteck, O. Kleine, M. Glesner: Prozessorintegration und Speicheranbindung dynamisch rekonfigurierbarer Funktionseinheiten. In: Proceedings of the 18th International Conference on Architecture of Computing Systems (ARCS 2005), Workshop on Dynamically Reconfigurable Systems, S. 45 – 51, 2005.

[HH2006a] H. Hinkelmann, P. Zipf, M. Glesner: Design Concepts for a Dynamically Reconfigurable Wireless Sensor Node. In: Proceedings of the NASA/ESA Conference on Adaptive Hardware and Systems (AHS 2006), S. 436 – 441, 2006.

[HH2006b] H. Hinkelmann, A. Gunberg, P. Zipf, L. S. Indrusiak, M. Glesner: Multitasking Support for Dynamically Reconfigurable Systems. In: Proceedings of the16th International Conference on Field Programmable Logic and Applications (FPL 2006), S. 219 – 224, 2006.

[HLM2003] T. Hollstein, R. Ludewig, C. Mager, P. Zipf, M. Glesner: A hierarchical generic approach for on-chip communication, testing and debugging of SoCs. In: Proc. IFIP Int. Conf. on VLSISoC, S. 44–49, 2003.

[HZ2006] H. Zhong, L. S. Indrusiak, H. Hinkelmann, M. Glesner: Exploring Functional Unit Parallelism in Reconfigurable Computing Platforms. In: Proceedings of the International Workshop on Reconfigurable Communication-centric Systems-on-Chip (ReCoSoC), S. 160 – 167, 2006.

[IGK2004] L. S. Indrusiak, M. Glesner, M. E. Kreutz, A. A. Susin, R. A. L. Reis: UML-Driven Design Space Delimitation and Exploration – A Case Study on Networks-on-Chip. In: Proceedings of the IEEE Workshop on Design and Diagnostics of Electronic Circuits and Systems, S. 5 – 12, 2004.

[IOM2008] L. S. Indrusiak, L. Ost, L. Möller, F. Moraes, M. Glesner: Applying UML Interactions and Actor-oriented Simulation to the Design Space Exploration of Network-on-Chip Interconnects. In: Proc. IEEE Computer Society Annual Symposium on VLSI (ISVLSI), S. 491-494, 2008.

[IPG2005] L. S. Indrusiak, R. B. Prudencio, M. Glesner: Modeling and Prototyping of Communication Systems using Java – A Case Study. In: Proceedings of the IEEE International Workshop on Rapid System Prototyping, S. 225 – 231, 2005.

[ITG2007] L. S. Indrusiak, A. Thuy, M. Glesner: Executable system-level specification models containing UML-based behavioral patterns. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 301-306, 2007.

[IG2007] L. S. Indrusiak, M. Glesner: Specification of Alternative Execution Semantics of UML Sequence Diagrams within Actor-Oriented Models. In: Proceedings of Symposium on Integrated Circuits and Systems Design (SBCCI), S. 330-335, 2007.

[JB2001] J. Becker, M. Glesner: A Parallel Dynamically Reconfigurable Architecture for Flexible Application-Tailored Hardware/Software Systems in Future Mobile Communication. In: Journal of Supercomputing, Kluwer Academic Publishers, 2001.

[JCP2006] J. C. S. Palma, L. S. Indrusiak, F. G. Moraes, A. Garcia Ortiz, M. Glesner, R. A. L. Reis: Adaptive Coding in Networks-on-Chip – Transition Activity Reduction Versus Power Overhead of the Codec Circuitry. In: Lecture Notes in Computer Science, vol. 4148, S. 603 – 613, 2006.

[JO2005] D. F. Jimenez Orostegui, L. S. Indrusiak, M. Glesner: Proxy-based Integration of Reconfigurable Hardware within Simulation Environments. In: Proceedings of the IEEE International Conference on Microelectronic Systems Education, S. 59 – 60, 2005.

[LSI2005] L. S. Indrusiak: A Pragmatic Perspective on UML for System-on-Chip Design. In: Proceedings of the 23rd IEEE Norchip Conference, S. 169 – 171, 2005.

[LSI2006] L. S. Indrusiak, M. Glesner: An Actor-Oriented Model-Based Design Flow for Systemson- Chip. In: Tagungsband des Dagstuhl-Workshops Modellbasierte Entwicklung eingebetteter Systeme II (MBEES), S. 65 – 73, Schloss Dagstuhl 2006.

[LSI2006a] L. S. Indrusiak: Exploring Application-level Concurrency in SoC Design. In: Proceedings of the International Symposium on System-on-Chip, S. 69 – 72, 2006.

[LSI2006b] L. S. Indrusiak, M. Glesner: SoC Specification using UML and Actor-Oriented Modeling. In: International Baltic Electronics Conference, S. 31 – 36, 2006.

[MH2005] M. N. Huda: Real-time Operating System Support for LEON based Reconfigurable Hardware. Master Thesis, International Master Program in Information and Communication Engineering, TU Darmstadt, 2005.

[MPM2004a] T. Murgan, M. Petrov, M. Majer, P. Zipf, M. Glesner, U. Heinkel: Flexible Overhead Processing Architectures for G.709 Optical Transport Networks. In: GI/ITG/GMM Workshop über Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen, S. 156 – 164, 2004.

[MPM2004a] T. Murgan, M. Petrov, M. Majer, P. Zipf, M. Glesner, U. Heinkel, J. Pleickhardt, B. Bleisteiner: Adaptive Architectures for an OTN Processor – Reducing Design Costs Through Reconfigurability and Multiprocessing. In: Proceedings of the ACM Conference on Computing Frontiers, S. 404 – 418, 2004.

[PIM2006a] J. C. S. Palma, L. S. Indrusiak, F. G. Moraes, A. Garcia Ortiz, M. Glesner, R. A. L. Reis: Evaluating the Impact of Data Encoding Techniques on the Power Consumption in Networks-on- Chip. In: IEEE Comp. Soc. Annual Symposium on VLSI (ISVLSI), S. 426-427, 2006.

[PIM2006b] J. C. S. Palma, L. S. Indrusiak, F. G. Moraes, A. Garcia Ortiz, M. Glesner, R. A. L. Reis: Adaptive Coding in Networks-on-Chip: Transition Activity Reduction Versus Power Overhead of the Codec Circuitry. In: Int. Workshop on Power And Timing Modeling Optimization and Simulation (PATMOS), S. 603-613, 2006. Lecture Notes on Computer Science 4148.

[RP2006] R. B. Prudencio, L. S. Indrusiak, M. Glesner: An efficient hardware implementation of a self-adaptable equalizer for WCDMA downlink UMTS standard. In: Proceedings of the IEEE CS Annual Symposium on VLSI, S. 77 – 81, 2006.

[SHZG2005] M. K. F. Schafer, T. Hollstein, H. Zimmer, M. Glesner: Deadlock-free routing and component placement for irregular mesh-based networks-on-chip. In: IEEE/ACM Int. Conf. Comp. Aided Design (ICCAD), S. 238-245, 2005.

[SHG2008] F. Samman, T. Hollstein, M. Glesner: Multicast Parallel Pipeline Router Architecture for Network-on-Chip. In: Proceedings of the IEEE/ACM Conference on Design Automation and Test in Europe (DATE), S. 1396-1401, 2008.

[SIG2006] C. Spies, L. S. Indrusiak, M. Glesner: Comparative Analysis of Multitask Scheduling Algorithms for Reconfigurable Computing regarding Context Switches and Configuration Cache Usage. In: Proceedings of the 3rd Southern Conference on Programmable Logic (SPL), 2007.

[ZZHG2005] H. Zimmer, S. Zink, T. Hollstein, M. Glesner: Buffer-Architecture Exploration for Routers in a Hierarchical Network-on-Chip. In: Proc IEEE Int. Parallel and Distributed Processing Symposium (IPDPS) - Reconfigurable Architecture Workshop, 2005.