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”
“Software-like”
Performance
Handling von hoher Komplexität
Energieeffizienz
Senken von Designkosten
Rolle des FPGA ●
Ermöglicht HW/SW Co-Design
●
Microprozessor und Custom Processor
PRO
CONTRA
Kurze Implementierungszeiten
Geringere Taktraten
Geprüftes Silizium
Höherer Flächenbedarf
Senkt das Designrisiko
Höherer Leistungsbedarf
Rekonfigurierbarkeit
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
Software
Träge
Flexibel
Nach der Produktion schwer anpassbar
Ständige Anpassung möglich
Kostenkurve steigt stark
Kostenkurve flach
Viele Testcases
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
Software Tracing
- Jonas Trümper, Stefan Voigt, Fürgen DöllnerMaintenance of Embedded Systems: Supporting Program Comprehension Using Dynamic Analysis
Hardware vs. Software Vorteile Hardware
Software
Geschwindigkeit
Höhere Abstraktionsebene
Fehlertoleranz
Schnellere Entwicklung
Energieverbrauch
Vielzahl an Entwicklungstools
Günstige Produktion bei hoher Stückzahl
Wartbarkeit
Modulare Wiederverwendbarkeit
Leichtere Implementierung komplexer Lösungen
Hardware vs. Software Nachteile Hardware
Software
Aufwändige Verifikation
Schwierige Verifikation
Hoher Entwicklungsaufwand
Unterschiedlichste Standards
Teure Tools
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