Hardware vs. Software - ein erster Vergleich
Hardware Universelle Definition? Die Hardware umfasst alle Bestandteile einer Maschine, insbesondere einer Computeranlage... - http://definition-online.de/hardware/ Hardware refers to the physical pieces of a computer... - https://www.reference.com/ Hardware ist der Oberbegriff für alle mechanischen, elektrischen und elektronischen Komponenten, Baugruppen und Ausrüstungen eines Computers oder eines Systems. - DIN 44.300
Hardware Lösung: Beispiel ARINC664, Part 7 Full duplex switched Ethernet Standard für die Luftfahrt. Beschreibt die Realisierung eines gesamten Systems Ohne Software (zb. Switches) nicht funktionsfähig.
Software Definition Hardware/Software Interface ist entscheident Compiler, Interpreter, Verifizierbarkeit Beeinflusst direkt: Kosten Performance Sicherheit
Software Lösung: Beispiel C Programm Keine Software ohne Hardware Verschiedene Abstraktionsgrade Maschinennahe Software Implementierungen in einer Hochsprache
Hardware/Software Co-Design Hardware/Software Co-Design is the design of cooperating hardware components and software components in a single design effort. - Patrick Schaumont A Practical Introduction to Hardware/Software Codesign Großes Wissen über Hardware und Software notwendig im Designprozess Hauptproblem: Partitioning
Implementierung in SW/HW? Hardware-like Performance Energieeffizienz Software-like Handling von hoher Komplexität Senken von Designkosten
Rolle des FPGA Ermöglicht HW/SW Co-Design Microprozessor und Custom Processor PRO Kurze Implementierungszeiten Geprüftes Silizium Senkt das Designrisiko Rekonfigurierbarkeit CONTRA Geringere Taktraten Höherer Flächenbedarf Höherer Leistungsbedarf
Partitioning
Partitioning (contd) NP-hard Hauptsächlich manuell Die Möglichkeiten der Automatisierung des Partitioning werden seit über 26 Jahren untersucht
Automatisiertes Partitioning - Co-Design Ladder - Frank Vahid, Greg Stitt Hardware/Software Partitionig
HW/SW Entwurf - Vergleich - Marco Platzner, Lothar Thiele, ETH Zürich - Hardware/Software Codesign
HW/SW Entwurf Vergleich (contd) Hardware Träge Nach der Produktion schwer anpassbar Kostenkurve steigt stark Viele Testcases Software Flexibel Ständige Anpassung möglich Kostenkurve flach Noch mehr Testcases
HW/SW Entwurf - Gemeinsamkeiten Erfassen und Simulieren Grobe Blockstruktur = Spezifikation Verfeinerung: HW: Logik/Transistor Diagramme SW: Assembler Simulation, Emulation, Validierung
Tools Teure Hardwaretools (Xilinx, Altera, ) Günstige/Gratis Softwaretools
Kosten FPGA/ASIC
Anforderungen aus offenen Jobausschreibungen Dependable Systems, Verifikation, System Architekturen, Websprachen Microcontroller, Skriptsprachen (Python) Analoge Schaltungstechnik, Messtechnik, SPICE VHDL, VPGA, Echtzeitsysteme Maschinennahe Programmierung Matlab Simulink, Embedded Linux, Berufserfahrung Standards/Protkolle Oo Programmierung (C++, Java) C Englisch, Teamfähigkeit Abgeschlossene Ausbildung www.karriere.at Suchanfrage: Embedded Systems, Wien/Graz Grundmenge: 27 0 5 10 15 20 25 30
Maintenance Abhängigkeiten Umgebung Zugriffsmöglichkeiten Einsatzgebiet Alterung Laufzeitverhalten
Maintenance (contd.) Bsp.: Tracing Analysiert das Systemverhalten zur Laufzeit Aufwändige Analyse In Hardware oder Software realisierbar HW: Embedded Trace Macro Cell (Bsp. ) SW: Für alle Arten von Software verfügbar
- Jonas Trümper, Stefan Voigt, Fürgen Döllner- Maintenance of Embedded Systems: Supporting Program Comprehension Using Dynamic Analysis Software Tracing
Hardware vs. Software Vorteile Hardware Geschwindigkeit Fehlertoleranz Energieverbrauch Günstige Produktion bei hoher Stückzahl Modulare Wiederverwendbarkeit Software Höhere Abstraktionsebene Schnellere Entwicklung Vielzahl an Entwicklungstools Wartbarkeit Leichtere Implementierung komplexer Lösungen
Hardware vs. Software Nachteile Hardware Aufwändige Verifikation Hoher Entwicklungsaufwand Teure Tools Software Schwierige Verifikation Unterschiedlichste Standards Schwierige Koordination der Entwicklung
Bsp. CRC HW: Schieberegister + XOR Operationen Leichte Implementierung Hohe Geschwindigkeit SW: Bit Maskierungen, Shifts, XOR Operationen,... Schwierigere Implementierung Teurer Overhead
Bsp. IP Paket Fragmentierung HW: Sehr große Anzahl von States Hohe Komplexität Hoher Platzbedarf Aufwändige Verifikation SW: Viele Verzweigungen Bessere Übersicht Geringere Entwicklungszeit
Quellen Greg Stitt, Frank Vahid. Reconfigurable Computing. 2008. Rald Gessler. Entwicklung Eingebetteter Systeme. 2014. Jürgen Döllner, Jonas Trümper, Stefan Voigt. Maintenance of Embedded Systems: Supporting Program Comprehension using Dynamic Analysis. Hasso-Plattner-Institut, Universität Potsdam. 2012.
Quellen (contd.) Patrick Schaumont. A Practical Introduction to Hardware/Software Codesign. 2010. Jürgen Teich. Hardware/Software Codesign: The Past, the Present, and Predicting the Future. Proceedings of the IEEE, 100, 2012. Matthias Fuch Universität Ulm. Geschichte und Einführung in Aufbau und Arbeitsweise von FPGA. http://www.informatik.uni-ulm.de/ni/lehre/ss03 /ProSemFPGA/Einfuehrung_FPGAs.pdf