Entwurfsmethoden für eingebettete Systeme
|
||
Ziel unserer Forschung war die Erweiterung der Hardware-Software-Entwurfssprache SystemC, um die Kommunikations-Modellierung für System-on-Chip zu erleichtern und um die Austauschbarkeit der Modelle zwischen verschiedenen Tools zu vereinfachen:
|
||
GreenSocket/GreenBus - Interoperabilitäts-Standards für SystemC
|
||
Mit GreenBus erarbeiteten wir im Rahmen der GreenSocs-Initiative einen offenen Standard für die Kommunikationsmodellierung mit SystemC. Ziel des Projekts war eine industrieweit akzeptierte SystemC-Schnittstelle für IP-Cores, so dass IP-Cores verschiedener Hersteller unabhängig von den verwendeten Kommunikationsprotokollen zu einem System-on-Chip-Modell zusammengesetzt werden können. Die Entwicklung erfolgte in enger Abstimmung mit namhaften Partnern aus Industrie und Forschung. Erste Ergebnisse wurden der Open SystemC Initiative (OSCI) Ende 2005 vorgestellt. Im November 2007 wurde der TLM-2.0-Standard für SystemC verabschiedet, der auf den Basiskonzepten von GreenBus aufbaut. Im Rahmen unserer Zusammenarbeit mit der OCP-IP flossen sie darüber hinaus in die OCP-Implementierung für SystemC ein. Die GreenBus-Open-Source-Bibliothek bietet ein Simulations-Framework für verschiedene Busse und Networks-on-Chip und ermöglicht die Mixed-Mode-Simulation von heterogenen IP-Cores auf unterschiedlichen Abstraktionsebenen. Unter anderem wurde in Zusammenarbeit mit Intel ein Simulator für PCI-Express entwickelt. 2008 wurde die GreenBus-Open-Source-Bibliothek so modifiziert, dass sie vollständig den TLM-2.0 Standard unterstützt (GreenSocket und GreenRouter). Die Erkenntnisse und Erfahrungen, die dabei gewonnen wurden, flossen wiederum in die Weiterentwicklung des TLM-2.0 Standards ein, z.B. wirkte die Abteilung E.I.S. aktiv an der Überführung des OSCI-TLM-2.0-Standards in einen IEEE Standard mit. So wurde 2009 als Teil von TLM-2.0.1 das TLM-2.0-Language-Reference-Manual (LRM) als Vorstufe zur IEEE-Standardisierung veröffentlicht, an dessen Entwicklung die Abteilung E.I.S. aktiv mitwirkte.
Bild 1 zeigt den Aufbau einer Simulation mit zwei IP-Cores (Producer und Consumer). Das zugrunde liegende Konzept entstammt der Forschung an GreenBus. Die inkompatiblen Kommunikations-Schnittstellen PLB und PCI der beiden IP-Cores werden durch die Protokollschicht (GreenSocket-basierte User-APIs) in das standardisierte TLM-2.0-Protokoll umgesetzt, sodass GreenRouter vollständig TLM-2.0-kompatibel arbeitet. Auf diese Weise wird eine zuverlässige Kommunikationsverbindung etabliert, und in der Verbindungsschicht können verschiedene Busse und Network-on-Chip-Varianten simuliert und bzgl. ihrer Performance in dem untersuchten System-on-Chip-Modell verglichen werden. Auf der Verbindungsschicht werden TLM-2.0-Interfaces verwendet. |
||
Konfigurations-Interoperabilität von Hardware-Software-Modellen in SystemC
|
||
Zum Bewältigen der steigenden Komplexität bei der Plattformentwicklung wird im modernen ESL-Design eine hohe Abstraktion bei der Simulation der Systeme gewählt. Im Zuge dessen hat sich die Systembeschreibungssprache SystemC durchgesetzt. Die verschiedenen High-Level-Modelle eines Systems werden von unterschiedlichen IP-Herstellern zur Verfügung gestellt. Für die Architektur-Exploration muss der Designer in der Lage sein, die Modelle schnell und ohne viel Aufwand zusammen mit selbst erstellten Modellen in der jeweils gewünschten Entwicklungsumgebung integrieren zu können. Das bedeutet, dass die Modelle mit wenig Aufwand interoperabel sein müssen. Mit dem OSCI-TLM-2.0-Standard ist die Interoperatibilitäts-Ebene für die Kommunikation von SystemC-Modellen auf hoher Abstraktion standardisiert worden, taktgenaues Transaction-Level-Modeling wird an der Abteilung E.I.S. erforscht. Damit sind nun Modelle verschiedener Hersteller – unter bestimmten Voraussetzungen – funktionell interoperabel. Wir definieren dies als Real-Interoperabilität. Sie deckt diejenigen Elemente eines Modells ab, die für die (optionale) Realisierung in Hard- oder Software bestimmt sind. Eine weitere – vom OSCI-Standard nicht behandelte – Interoperabilitäts-Ebene ist die der Tools. Modell-Hersteller entwickeln ihre SystemC-Modelle mit unterschiedlichen Entwicklungsumgebungen. Diese verwenden jeweils unterschiedliche Mechanismen zum Konfigurieren und Kontrollieren der Modelle. Die Mechanismen adressieren jeweils verschiedene Schwerpunkte und sind für das jeweilige Einsatzgebiet bewährt, allerdings inkompatibel zueinander. Auch wenn die Modelle aufgrund des Kommunikations-Standards funktional kompatibel sind, muss der Plattform-Entwickler sich beispielsweise mit den unterschiedlichen Konfigurationsmechanismen beschäftigen. Diese über die Real-Interoperabilität hinausgehende, auf Tools abzielende Interoperabilität nennen wir Meta-Interoperabilität. Unsere Forschung beschäftigt sich mit dieser bisher fehlenden Meta-Interoperabilität mit Schwerpunkt auf der Modell-Konfiguration, worunter das Setzen und Auslesen von Eigenschaften eines Modells vor oder während der Simulation verstanden wird. Dabei wurden zwei Ansätze verfolgt: Einerseits wurde ein flexibler Konfigurationsmechanismus entwickelt, der in der Lage ist, verschiedene andere z.B. kommerzielle Mechanismen miteinander zu verbinden und eine einheitliche API zur Verfügung stellt. Andererseits haben wir in der OSCI-Arbeitsgruppe Configuration, Control & Inspection (CCI) an der Standardisierung mitgearbeitet. |
||
Modell-Middleware GreenControl, Konfiguration mit GreenConfig und Analyse mit GreenAV
|
||
GreenControl ist eine Middleware-Plattform für Modellierungswerkzeuge. Sie soll mit den beiden Plug-ins GreenConfig und GreenAV den Entwurf von SystemC-Modellen vereinfachen und das Simulieren der Modelle in Tools verschiedener Hersteller erleichtern und damit die Austauschbarkeit erhöhen. GreenControl und die Plug-ins sind zusammen mit GreenSocs und bekannten Firmen wie beispielsweise Intel und Texas Instruments im Zeitraum 2007 bis 2011 entstanden. Unterschiedliche Dienste können als Plug-ins geladen werden, und "User-APIs" ermöglichen den Zugriff auf die Plug-in-Funktionen mit unterschiedlichen Programmierschnittstellen (Bild 1).
Der Konfigurationsmechanismus GreenConfig stellt konfigurierbare Parameter bereit, die auf verschiedene Weise vor und während der Simulation konfiguriert werden können. Es gibt verschiedene APIs für Skriptsprachen und Adapter zu Konfigurationsmechanismen kommerzieller Entwicklungswerkzeuge. Die Modell-Middleware GreenControl stellt eine flexible Anbindung für Adapter zu den Mechanismen zur Verfügung. Bild 2 stellt ein Beispiel-Scenario dar. Es gibt zwei Integrationsrichtungen:
Experimente zeigen erfolgreiche Integrationen in beide Richtungen z.B. in den Tools CoWare Platform Architect und Synopsys Innovator. Der Dienst GreenAV erlaubt die Analyse und Visualisierung von Daten, die zu Debug-Zwecken vom Entwickler beobachtet werden sollen. Das Projekt GreenReg (2008-2009) ist ein Register-Framework, das ein Anwendungsfall für die Integration von GreenConfig-Parametern ist, sodass modellierte Register mit allen Möglichkeiten des GreenConfig-Frameworks konfiguriert werden können. Die Projekte sind bei GreenSocs als Open-Source unter freier Lizenz verfügbar und werden von Firmen wie Intel und TI verwendet. |
||
SystemC-Remote-Service-Interface (SCRSI)
|
||
Das SystemC-Remote-Service-Interface (SCRSI) ist ein grafisches Front-End für die Dienste von GreenControl, das in verschiedenen studentischen Arbeiten zwischen 2008 und 2011 entstanden ist. Es bietet eine interaktive Simulationssteuerung (Kontrolle des Simualtionsablaufs), das Konfigurieren, Lesen und Beobachten von GreenConfig-Parametern sowie das Erzeugen von aus Parametern zusammengesetzten Formeln und konditionale Breakpoints. Die während der Simulation laufend aktualisierten Berechnungsergebnisse können grafisch angezeigt werden (siehe Bild 3).
|
||
Mitwirkung am Konfigurations-Standard CCI
|
||
Die Ergebnisse aus der Forschung an der Konfiguration von Modellen sind in die OSCI-Arbeitsgruppe Configuration, Control & Inspection (CCI) eingeflossen. Die Abteilung E.I.S. war zwischen 2009 und 2011 als Mitglied der GreenSocs-Initiative maßgeblich an der Entwicklung des Standards und eines Prototypen beteiligt. |
||
TRAIN - Synthese von System-on-Chip-Kommunikationsarchitekturen
|
||
Bild 1: High-Level-Kommunikation durch Methodenaufruf Bild 2: TrainRPC-Kommunikation über GreenBus Das Beispiel zeigt zwei Proxy-Module, die den Methodenaufruf getPixel() auf das GreenBus-Protokoll abbilden. Verschiedene Kommunikationsarchitekturen können nun mit Hilfe der GreenBus-Bibliothek simuliert und miteinander verglichen werden, um eine optimale Systemkonfiguration zu finden. Bild 3: Synthetisiertes Hardware-Software-System mit PLB-Bus und Train-Kommunikationsadaptern Abschließend kann die Hardware verfeinert und mit einem Synthesewerkzeug in ein Gatternetz für den endgültigen Chip umgewandelt werden. Die Kommunikationsverbindung zwischen Hardware und Software über Busse oder ein Network-on-Chip soll dabei komplett automatisch erzeugt werden. Bild 4 zeigt dies an dem endgültigen Hardware-Software-System für das getPixel()-Beispiel. Das Hardware-Modul wurde mit einer Open-Core-Protokoll-Schnittstelle (OCP) ausgestattet. Durch Kommunikationsadapter kann das Hardware-Modul nun an verschiedene Busarchitekturen angebunden werden. Auf der Software-Seite wurde ein Hardware-Abstraction-Layer generiert und der Prozessor mit einem CPU-Adapter ausgestattet. Dieser Kommunikations-Coprozessor stellt die Verbindung mit dem Hardware-Moduls und schließt so die Brücke zwischen Hardware und Software. Ziel unserer Forschungsarbeiten ist die automatische Generierung aller benötigten Kommunikationsadapter, sowohl für Hardware als auch für Software (Bild 4). Aktuell werden zwei Prozessoren, der IBM PowerPC-405 und der Xilinx MicroBlaze unterstützt. Mit diesen Adaptern wurde das Verfahren erfolgreich an einem Video-Prozessor zur Echtzeit-Erkennung von Körpergesten erprobt. 2008 wurde ein Verfahren zur automatischen Integration von IP-Cores entwickelt. Hierzu wurde eine IP-Schnittstellen-Beschreibungssprache definiert und ein Tool geschaffen, das Kommunikationsadapter automatisch aus IP-Schnittstellenbeschreibungen generiert. Die Ergebnisse dieser Arbeit wurden im Dezember 2008 auf der IEEE International Conference on Embedded and Ubiquitous Computing in Shanghai präsentiert. Bild 4: TRAIN Kommunikationsarchitektur-Synthese |
||