Hardware vs. Software - ein erster Vergleich€¦ · “Hardware ist der Oberbegriff für alle...

Post on 16-Jun-2020

2 views 0 download

Transcript of Hardware vs. Software - ein erster Vergleich€¦ · “Hardware ist der Oberbegriff für alle...

Hardware vs. Software- ein erster Vergleich

Hardware

“Hardware refers to the physical pieces of a computer...”- https://www.reference.com/

“Die Hardware umfasst alle Bestandteile einer Maschine, insbesondere einer Computeranlage...”- http://definition-online.de/hardware/

Universelle Definition?

“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 CONTRAKurze 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 SoftwareTrä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

Abgeschlossene Ausbildung

Englisch, Teamfähigkeit

C

Oo Programmierung (C++, Java)

Standards/Protkolle

Matlab Simulink, Embedded Linux, Berufserfahrung

Maschinennahe Programmierung

VHDL, VPGA, Echtzeitsysteme

Analoge Schaltungstechnik, Messtechnik, SPICE

Microcontroller, Skriptsprachen (Python)

Dependable Systems, Verifikation, System Architekturen, Websprachen

0 5 10 15 20 25 30www.karriere.atSuchanfrage: Embedded Systems, Wien/GrazGrundmenge: 27

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öllner- Maintenance of Embedded Systems: Supporting

Program Comprehension Using Dynamic Analysis

Hardware vs. SoftwareVorteile

Hardware SoftwareGeschwindigkeit 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. SoftwareNachteile

Hardware SoftwareAufwä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