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