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...
Upcoming SlideShare
Loading in...5
×

Java für eingebettete Systeme

890

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
890
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×