Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Eine Architektur zur dynamischen Rekonfiguration
   eingebetteter signalverarbeitender Systeme


                Dipl.-Inf...
Motivation
●    Eingebettete Systeme:
      ●    Anwendung im sicherheitsrelevanten
           Umfeld Automotive, Luft- un...
Übersicht
 ●   Softwareentwicklung für eingebettete Systeme
       ●   Anforderungen an Entwicklung und Betrieb
       ●  ...
Softwareentwicklung für
                                                eingebettete Systeme
●
     Anforderungen:
      ●...
Softwareentwicklung für
                                              eingebettete Systeme
 ●    Konzepte zur Erhöhung der...
Softwareentwicklung für
                                            eingebettete Systeme
 ●   Charakterisierung
      ●   ...
Softwareentwicklung für
                                         eingebettete Systeme
 ●    Java als Sprache der Wahl:
   ...
Softwareentwicklung für
                                          eingebettete Systeme
 ●    Warum Java ?
       ●   Vorur...
Softwareentwicklung für
                                          eingebettete Systeme
 ●    Android Plattform
       ●   ...
Softwareentwicklung für
                                          eingebettete Systeme
 ●    OSGI
       ●   Standard zur ...
Softwareentwicklung für
                                         eingebetteter Systeme
 ●    Warum Java i.V. mit FPGA ?
  ...
Softwareentwicklung für
                                         eingebettete Systeme
 ●    Warum Java i.V. mit FPGA
     ...
Werkzeuge der Signalverarbeitung

 ●    Werkzeugeigenschaften
       ●   Homogenität:
            –   Überschaubare Anzahl...
Werkzeuge der Signalverarbeitung

 ●    ImageJ
       ●   Java, Open-Source, lebendige
           User-Community
       ● ...
Modellierung von Algorithmen in der
                                    Signalverarbeitung
 ●   SPIRAL
      ●    Automati...
Modellierung von Algorithmen in der
                                    Signalverarbeitung
 ●   freeSP
      ●    Ganzheit...
Projektvorschlag
 ●   Konzept
      ●    Verteiltes Rechnen auf eingebetteten signalverarbeitenden Systemen
      ●    Wor...
Projektvorschlag

 ●   Plattform:
       ●   Modellierung:
           Standard-PC, IDE (Eclipse)
       ●   Ausführung:
  ...
Zusammenfassung

 ●    Signalverarbeitende Systeme
       ●   Neue Herausforderung an die Softwareentwicklung in Bezug auf...
Quellen
●    [IMMOS04] T. Klein, M. Conrad, I. Fey, M. Grochtmann: Modellbasierte
     Entwicklung eingebetteter Fahrzeugs...
Nächste SlideShare
Wird geladen in …5
×

Java für eingebettete Systeme

1.163 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Java für eingebettete Systeme

  1. 1. Eine Architektur zur dynamischen Rekonfiguration eingebetteter signalverarbeitender Systeme Dipl.-Inf. Reinhard Meyer 22.07.10
  2. 2. Motivation ● Eingebettete Systeme: ● Anwendung im sicherheitsrelevanten Umfeld Automotive, Luft- und Raumfahrt, Medizin, ... ● Fortschreitende Miniaturisierung ● Zunahme der Leistungsfähigkeit der Hardware ● Implementierung von Funktionalität mit steigender Komplexität in Software ● Verwendung von Hochsprachen zur Implementierung Historie softwarebasierter ● Anpassung des Funktionen im Automobil Softwareentwicklungsprozesses [IMMOS04] 22.07.10 2
  3. 3. Übersicht ● Softwareentwicklung für eingebettete Systeme ● Anforderungen an Entwicklung und Betrieb ● Maßnahmen zur Verbesserung der Softwarequalität ● Warum Java und FPGA ? ● Android-Plattform ● OSGI – Dynamische Rekonfiguration von Software ● Modellierung von verteilten Systemen für die Signalverarbeitung ● Eigenschaften von Werkzeugen der Signalverarbeitung ● Modellierung von Algorithmen ● Konzeptvorschlag ● Zusammenfassung 22.07.10 3
  4. 4. Softwareentwicklung für eingebettete Systeme ● Anforderungen: ● Entwicklung: – Verteiltheit und Nebenläufigkeit: Aufgaben werden auf verschiedenen Plattformen parallel ausgeführt: ● x86, PPC, DSP, ASIC, FPGA ● Neuer Trend: Multicore – Echtzeitfähigkeit und Vorhersagbarkeit: Einhaltung von Zeitschranken, deterministisches Verhalten – Weitere Eigenschaften: Performance, Datensicherheit, Fehlertoleranz – Variantenmanagement ● Betrieb (Wartung): – Änderung der Funktionalität – Fehlerbeseitigung 22.07.10 4
  5. 5. Softwareentwicklung für eingebettete Systeme ● Konzepte zur Erhöhung der Modelling Space Softwarequalität Platform-independent Platform-specific Model (PIM) Constraints ● Modellgetriebene Entwicklung – Modellbildung und Simulation Automated Transformation – Automatisierte Transformation – Plattform-Codegenerierung Platform 1 Platform N ● Verwendung einer interpretierten Platform-specific Platform-specific Sprache Model (PSM) Model (PSM) – Plattformunabhängig Code ... Code – Verlagerung der sicherheits- Generation Generation relevanten Konzepte vom Programmcode auf den Interpreter Platform-specific Platform-specific Code Code Modellgetriebene Entwicklung 22.07.10 5
  6. 6. Softwareentwicklung für eingebettete Systeme ● Charakterisierung ● Modellbasierte Entwicklung + Höhere Codequalität durch automatische Codegenerierung + Änderbarkeit der Funktionalität im Modell (virtuell) + Einheitliches Datenmodell, vereinfachtes Variantenmanagement – Erhöhter Verwaltungsaufwand bei heterogenen, komplexen Strukturen – Informelle Auf- und Nachbereitung der Daten ● Interpretierte Sprache + Zuverlässigkeit: Automatische Speicherverwaltung + Sicherheit: Mechanismen vor der Programmausführung – Deterministisches Verhalten und Zugriff auf Systemressourcen 22.07.10 6
  7. 7. Softwareentwicklung für eingebettete Systeme ● Java als Sprache der Wahl: ● Entstehung: Green Hill Projekt, Sun Microsystems, 1992: Touchscreen-basiertes Steuergerät (StarSeven) ● Konzentration auf den Desktop- und Servermarkt, aktuelle Version ist Java 6 ● Laufzeitumgebung: Virtuelle Maschine (VM) + Laufzeitbibliothek mit API, Programmcode wird im Allgemeinen interpretiert ● Plattformunabhängigkeit: Bytecode ist universell, für eine Architektur gibt es die jeweils passende VM, inzwischen Vielzahl an verschiedenen VM Sun Trademark Logo für Java verfügbar 22.07.10 7
  8. 8. Softwareentwicklung für eingebettete Systeme ● Warum Java ? ● Vorurteil: „Java ist langsam, speicherintensiv und nicht echtzeitfähig“ – Kompilation von Code statt Interpretation: Hotspot-Compiler, AOT-Compiler mit Early- Binding ermöglichen beschleunigtes Abarbeiten von Programmen – Garbage Collection: Speicherbereinigung als niedrig priorisierter Thread – Verwendung einer reduzierten Laufzeitbibliothek – 2000: Realtime Specification for Java SciMark 2.0 Java (RTSJ) Benchmark Suite 22.07.10 8
  9. 9. Softwareentwicklung für eingebettete Systeme ● Android Plattform ● Softwarestack der Open Handset Alliance für mobile Geräte ● Betriebssystem, Middleware und elementare Anwendungen zusammengefasst in einem Framework ● Dalvik VM mit eigenem Bytecode (dex) zur Ausführung von Anwendungen, java-basiert ● Linux-Kernel und native Codebibliotheken für zeitkritische Anwendungen Android Platform, Quelle: http://developer.android.com 22.07.10 9
  10. 10. Softwareentwicklung für eingebettete Systeme ● OSGI ● Standard zur dynamischen Rekonfiguration von Software ● Modularisierung von Anwendungen und Dienste (Bundles) in einem Komponentenmodell ● Austausch von Code zur Laufzeit ● Hardware- und Sprachunabhängig ● Implementiert für Java, .Net geplant ● Anwendungen im Automotive-Bereich (BMW), Desktop-Bereich (Eclipse), Heimautomatisierung OSGI Architecture Quelle: http://en.wikipedia.org/wiki/OSGi 22.07.10 10
  11. 11. Softwareentwicklung für eingebetteter Systeme ● Warum Java i.V. mit FPGA ? ● Vorteile von Java bei der Softwareentwicklung ● Einheitliches HW/SW-Designmodell ● FPGA: Erhöhung der Rechenleistung durch Ausnutzen der Parallelisierung – Bsp.: Damenproblem (diskrete Optimierung) ● NQueens@home: 25-Damen- Problem – 260 PC in 9 Monaten ● FPGA-Lösung: 26-Damen- Problem – 18 FPGA in 6 Monaten [Preußer09] 22.07.10 11
  12. 12. Softwareentwicklung für eingebettete Systeme ● Warum Java i.V. mit FPGA ● JBits SDK – Bitstream-API für Xilinx FPGA – Erzeugung und dynamische Rekonfiguration von Schaltkreisen über das XHWIF ● JHDL – Hardware-Beschreibungssprache – Ziel: Konsistenz von Objektdatenflüssen SW/HW Quelle: JBits 22.07.10 12
  13. 13. Werkzeuge der Signalverarbeitung ● Werkzeugeigenschaften ● Homogenität: – Überschaubare Anzahl an verschiedenen Werkzeugarten (Algorithmen) – Hoher Grad an mathematischer Strukturierung ● Optimierung: – Manuelles Tuning (plattformabhängig) – Auto-Tuning: Computer optimiert Algorithmen ● Verteiltheit: The Mathworks – Algorithmen für PC, DSP, ASIC und FPGA Matlab / Simulink 22.07.10 13
  14. 14. Werkzeuge der Signalverarbeitung ● ImageJ ● Java, Open-Source, lebendige User-Community ● Flexible, erweiterbare Architektur: – Erstellung benutzerdefinierter Macros und Plug-Ins – JavaScript-Prozessor – Multi-threading-fähig – Server-Remote-Modus ● Verarbeitung von Gleitkomma- Bildformaten (Astronomie, Medizin) ImageJ Toolsuite ● Umfangreiche Bildmanipulationsmöglichkeiten 22.07.10 14
  15. 15. Modellierung von Algorithmen in der Signalverarbeitung ● SPIRAL ● Automatische Codegenerierung für schnelle Algorithmen in der Signalverarbeitung ● Heuristische Suchverfahren für den optimalen Algorithmus hinsichtlich der Laufzeit auf einer PC-Architektur ● Beschreibung der Algorithmen (math. Matrix-Faktorisierung) mittels einer Signal Processing Language (SPL) ● Implementation der Algorithmen in C/FORTRAN Architektur von SPIRAL [Püsch05] 22.07.10 15
  16. 16. Modellierung von Algorithmen in der Signalverarbeitung ● freeSP ● Ganzheitlicher Ansatz zur Modellierung von verteilten Systemen ● Deskriptive, plattformunabhängige Beschreibung des Systems (XML) ● Zerlegung des Gesamtsystems und Zuordnung zu einzelnen Prozessen ● Implementierung der Algorithmen aus vorgehaltenen Bibliotheken ● Modellierung und Simulation von Nebenläufigkeit mittels Petri- Netzen FreeSP – Grobstruktur [Weiss07] 22.07.10 16
  17. 17. Projektvorschlag ● Konzept ● Verteiltes Rechnen auf eingebetteten signalverarbeitenden Systemen ● Workflow 1. Modellierung eines signalverarbeitenden Systems 2. Simulation des Modells 3. Partitionierung in Hard- und Software 4. Transformation auf die Zielplattform ● Modelltransformationen – Erzeugen von Java-Programmcode zur Ausführung auf dem PPC – Übersetzung von parallelisierbaren Teilen der Rechenaufgabe in programmierbare Logik auf einem FPGA 22.07.10 17
  18. 18. Projektvorschlag ● Plattform: ● Modellierung: Standard-PC, IDE (Eclipse) ● Ausführung: Virtex-II-FPGA mit Dual- Core-PPC – (Echtzeit-)Betriebssystem – Java VM – eingebettete Laufzeitumgebung – RTR Soft- und Hardware – Onboard-System zur Bildverarbeitung Architektur für FPGA (Ausführung, linke Seite) und PC (Modellierung, rechte Seite) 22.07.10 18
  19. 19. Zusammenfassung ● Signalverarbeitende Systeme ● Neue Herausforderung an die Softwareentwicklung in Bezug auf – Verteiltheit und Nebenläufigkeit – Verlässlichkeit (Verfügbarkeit, Sicherheit, Wartbarkeit) – Echtzeitfähigkeit und deterministisches Verhalten – Variantenmanagement ● Modellbasierte Entwicklung und interpretierte Sprachen als Designansatz ● Implementierung dieses Ansatzes anhand einer Bildverarbeitungslösung ● Quantifizierung des Gesamtsystems hinsichtlich Wartbarkeit und Performance 22.07.10 19
  20. 20. Quellen ● [IMMOS04] T. Klein, M. Conrad, I. Fey, M. Grochtmann: Modellbasierte Entwicklung eingebetteter Fahrzeugsoftware bei DaimlerChrysler, Proc. Modelling LNI, 2004. ● [JBits] S. Guccione et. Al.: Jbits – A Java Interface for Reconfigurable Computing, Xilinx Inc. ● [Püsch05] M. Püschel et. Al.: SPIRAL: „Code Generation for DSP Transforms“, Proc. IEEE special issue on „Program Generation, Optimization, and Adaptation'', 2005. ● [Preußer09] T. Preußer et. Al.: Putting Queens in Carry-Chains, In: 3rd HiPEAC Workshop on Reconfigurable Computing, Paphos, Cyprus, 2009. ● [Weiss05] A. Weiss: „Deklarative Beschreibung verteilter signalverarbeitender Systeme“, Linux Automation Konferenz, 2005. 22.07.10 20

×