Integrierte Hard- und Softwaresysteme 2

Aus II-Wiki
Zur Navigation springen Zur Suche springen
Integrierte Hard- und Softwaresysteme 2 (IHS2)
Vertiefungsrichtung II
Vorlesung
Vorlesender

Dr.-Ing. Heinz- Dietrich Wuttke

Abschluß
Art k.A.


Das Ziel der Lehrveranstaltung ist die Vermittlung von Systemwissen und Vorgehensstrategien, das den Studierenden erlaubt zentrale Entscheidungen bei der Entwicklung von gemischten Hard- und Softwaresystemen zu treffen. Die Vorlesung zielt so auf die Befähigung von Studierenden zu einer Systemsicht, d.h. der Abstraktion von unzähligen Details des Entwurfsprozesses um so das System als Ganzes optimal gestalten und entwickeln zu können. Studierende sollten nach Abschluss der Lehrveranstaltung in der Lage sein, aus einer Auswahl an Beschreibungstechniken die für ihr Problem geeignetste auszuwählen und anzuwenden und damit gezielt die nötigen Optimierungsentscheidungen im Entwicklungsprozess komplexer HW/SW-Systeme treffen zu können.

Prüfung

mündliche Prüfung
Termin
Datum: 00.00.2011
Zeit: 00:00 - 00:00
Ort: Blechhaus


Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.

Fragen zur Vorlesung

Anforderungen und Anforderungsanalyse

1. Beschreiben Sie den Zweck der Analysephase.

  • Die Ziele der Analysephasen sind laut Folie:
    • Identifizierung von Zweck und Verdienst der Porduktentwicklung, und
    • Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen
  • Meine Interpretation (Martin):
    • Was genau soll das Teil leisten/können?
    • Für welches Anwendungsgebiet bau ich das und was hab ich davon?

2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an.

  • Überprüfung der Realisierbarkeit
  • technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden?
  • nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen

3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden?

  • der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll
  • in der Entwurfphase wird geklärt, wie das System funktionieren soll.
    • Verkettung der Module (Strukturansicht)
    • Programmablaufplan

4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers.

  • Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)
  • Zuverlässigkeit (der Sensoren)
  • Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)

5. Beschreiben Sie die typischen Anforderungen an ein ABS-System.

  • Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)
  • Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)
  • Sicherheit

Verhaltensbeschreibungen

1. Spezifizieren Sie die Bearbeitung eines Finite Impulse Response (FIR)-Filters gegeben durch die Funktion out(n) = c1 * in(n) + c2 * in(n-1) + c3 * in(n-2) durch einen Datenflussgraphen (DFG). Skizzieren Sie eine mögliche direkte Realisierung in Hardware (Register-Transfer-Ebene) mit maximaler Parallelität. Bestimmen Sie die nötigen Taktzyklen für die Berechnung eines Ausgangswertes unter der Annahme, dass eine Multiplikation fünf Zeiteinheiten und eine Addition eine Zeiteinheit benötigt.

2. Beschreiben Sie dasselbe Problem durch ein Programm (Pseudo-Code). Bestimmen Sie die nötigen Taktzyklen unter den selben Annahmen wie oben, d.h. den gegebenen Taktzyklen für Multiplikation und Addition.

loop
  wait on input

  array[2] = array[1]
  array[1] = array[0]
  array[0] = input

  out = c1 * array[0] + c2 * array[1] + c3 * array[2]
end loop

3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese.

Senders Receivers Buffer Size Blocking Reads Blocking Write Single Reads
Unsynchronized many many one no no no
Read-Modify-Write many many one yes yes no
Unbounded FIFO one/many one unbounded yes no yes
Bounded FIFO one/many one bounded yes may be yes
Rendevous one one one yes yes yes

4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung?

FSM nicht deterministisch -> Anforderungen unvollständig

Nützlich für:

  • Einfachere Darstellung von FSM's
  • Optimierung (Bedingungen Uninteressant)
  • Verifizierung (Ausschluss unmöglicher Fälle)

5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)).

6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL.

  • StateCharts
  1. Zustandsbasiert
  2. Immer Taktgesteuert
  • SDL
  1. zeitlich unterschiedliche Änderungen
  2. kann auch einzelne Befehle/Codezeilen veranschaulichen

7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten.

  • Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL
  • Werden daher in der Analysephase verwendet.
  • System kann als Blackbox betrachtet werden und man kann dadurch die Problemanalyse (Was soll das System können?) unterstützen und Test-Cases zeitig definieren.

8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen.

  • Reaktiv: Zustandsorientiert
    • Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's
  • Transformatorisch: Aktions-/Ereignisorientiert
    • Beschrieben durch: DFG, CFG

9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.).

10. SystemC

  • a. Beschreiben Sie kurz den Design-Flow mit SystemC.
  • b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese.
  • c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen

und einem der möglichen Prozesse in SystemC-Syntax. ====

11. VHDL

  • a. Benennen Sie die Grundelemente einer VHDL-Beschreibung?
  1. Entity
  2. Architecture
  3. Process (?)
  • b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung.
  • c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben

Sie die damit verbundenen neuen Sprachelemente. ====

Funktionale Validierung

1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests?

Validierung durch Simulationen
  • Modell des kompletten Systems mit Tests füttern und auswerten
Validierung durch Tests
  • Reales System mit Testwerten prüfen

2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit.

Vollständigkeit
  • Alle eintretenden Zustände und Zustandswechsel definiert
  • Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor
Widerspruchsfreiheit
  • Für gleiche Zustände keine verschiedenen Wechsel

3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit.

Model Checking
  • vollautomatisch
  • Systembeschreibung in formaler Sprache (Programm, endlicher Automat)
  • Prinzip:
    • Eingabe von Systembeschreibung
    • Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat
    • Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel
      • meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist
Vollständigkeit
  • weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen

4. Spezifizieren Sie Zustandsautomaten mit SMV (z.B. aus den Praktikas bekannte Automaten für Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). Formulieren Sie mittels CTL verschiedene Bedingungen an das System.

Validierung temporaler Eigenschaften

1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten.

Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln

Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]

Solange rekursiv berechnen bis Ri,n+1 = Ri,n

2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung.

3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten.

  1. deterministischen
  2. exponentiell
    • Markov Chain

4. Spezifizieren Sie die Markov-Kette für ein Bediensystem mit 2 Bedieneinheiten und einer gemeinsamen Warteschlange mit 3 Warteplätzen. Die Ankunftsrate λ und die Bedienzeiten μ der beiden Server sind jeweils exponentiell verteilt. Skizzieren Sie die Lösung der Markov-Kette für den stationären (eingeschwungenen) Fall.

5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung?

6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen.

7. Prüfen Sie die Einhaltung der Deadlines für folgende Menge von auf einem Prozessor betriebenen voneinander unabhängigen, periodischen Prozessen (Deadlines entsprechen den Perioden) unter den zwei angegebenen Prioritätsschemata

Prozess Periose T Rechenzeit C a) Priorität b) Priorität
0 7 3 3 1
1 12 3 2 2
2 20 3 1 3

Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).

Optimierungsverfahren

1. Ermitteln Sie den Taskgraphen (DFG) für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)) (siehe oben). Bestimmen Sie die Ablaufpläne (Mapping und Schedule) für den obigen Taskgraphen nach den in der Vorlesung besprochenen Listenschedulingverfahren (HLFET, SCFET). Gehen Sie davon aus, dass 2 „Prozessoren“ zur Verfügung stehen, die beliebige Operationen durchführen können. Die Addition dauert eine Zeiteinheit, die Multiplikation 4 Zeiteinheiten.

2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search.

3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert.

4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind.

5. Konstruieren Sie Beispiele für die Ablaufplanung bei denen Listenschedulingverfahren zu keiner gültigen Lösung führen. Hinweis: Betrachten Sie HW-Architekturen, bei denen die Prozessoren nicht vollständig verbunden sind.

6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung:

  • a. Hill Climbing
  • b. Genetische Algorithmen
  • c. Simulated Annealing
  • d. Tabu Search
  • e. Clusteringverfahren
  • f. Branch-and-Bound

Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten.

7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas?

High-level Synthese

1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese.

High-Level (System-Synthese/Algorithmische Synthese)
  • Jede Komponente kann durch RT-Beschreibung beschrieben werden
  • Taktunabhängig
  • Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten
  • RTL kann durch Compiler/Generatoren erzeugt werden

Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)

  • abstrakte Sicht (nur die Funktion ist von Intresse)
RTL
  • Start mit Satz von Zuständen und Registern
    • Registerbezogen
  • Strukturgenerierung is zwei Abschnitten:
    • Datenpfad (data path)
      • DFG
    • Sequenzpfad (control unit)
      • CFG
  • Taktbezogen (Pro Zustand meist ein "Clock-cycle"

2. Ermitteln Sie den DFG für eine gegebene Funktion (s.o.). Bestimmen Sie die Ablaufpläne (Mapping und Schedule) nach den verschiedenen in der Vorlesung besprochenen Strategien (ASAP, ALAP, Varianten für List Scheduling) unter verschiedenen Annahmen für die Allokation (d.h. die Anzahl der verfügbaren Resourcen (Multiplizierer, Addierer) und deren Taktzyklen).

http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps

Mapping
  • Zuordnung von Daten auf Speichereinheiten (Register)
  • Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)
  • Zurodnung von Kommunikation auf Busse oder Verbindungen
Scheduling
  • ASAP(as soon as possible) ohne Ressourcen-Einschränkung
    • Jedem Zeitslot werden Knoten zugewiesen
    • Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt
    • In polynomialer Zeit lösbares Problem

to : MUL_1, MUL_2, MUL_3


t1 : ADD_1, ADD_2


t2 : MUL_4


t3 : ADD_3


  • ALAP (as late as possible) ohne Ressourcen-Einschränkung
    • Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)

t3 : ADD_3


t2 : ADD_2, MUL_4


t1 : MUL_1, MUL_2, ADD_1


to : MUL_3


  • Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)
  • List Scheduling

Nach Priorität geordnete Liste von Prozessen

    • Beispiel Abhängig von Einschränkung und Prioritäten

Fragen zum Seminar

Seminar 01

1. Was ist ein FPGA? Nennen Sie dessen Grundelemente (3 Punkte). Wie funktioniert die Umsetzung von logischen Funktionen im FPGA? Welche weiteren Elemente gibt es in einem FPGA?(4 weitere Punkte)

  • Field Programmable Gate Array
  • Elektronischer Schaltkreis
  • Viele logische frei programmierbare Einheiten
  • Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.
  • Funktion nicht wie bei Prozessoren / ASIC vorher definiert
  • Funktion wird über Programmierung festgelegt
  • Funktion bei SRAM Typen beliebig oft änderbar
    • teilweise sogar partiell zur Laufzeit
  • Funktion wird zusammengesetzt aus:
    • Look-Up Table (logische Funktion)
    • FlipFlop (Speicherelement / Verzögerung)
    • Routing (Verbindung untereinander)
  • Grundelemente
    • LUT - Look-up-table (logic elements)
    • FF - Flip-Flop (register elements)
    • Routing - to connect elements
    • BRAM - Block RAM (memory elements)
    • Multiplier - embedded 18x18 multipliers
    • DCM - digital clock manager
    • IOB - input-output block (I/O elements)

2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte))

  • Komplexe Tools bilden z.B. VHDL auf FPGA ab
  1. Synthese
  2. Implementation
    • Translate
    • Map
    • Place & Route
  3. Bit File Generation

3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture?

Entity

  • Rahmen der zu entwickelnden Hardware
  • Generics
    • Definition von Modulverhalten
    • Bilden unterschiedlicher Modulinstanzen
  • Ports
    • Input/Output Verbindungen

architecture

  • Beschreibung von Funktionalität
    • Prozesse
    • Logik
  • Beschreibung von Modulen
    • Interaktion

Seminar 02

4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt?

  1. Analyse
    • Problemanalyse
      • Was soll das Produkt grob können?
    • Machbarkeitsstudie
      • Ist es technisch/wirtschaftlich umsetzbar?
    • Anforderungsanalyse
      • Was soll das Produkt genau können?
  2. Design/Entwurf
    • Architectural design
    • Detailed design
    • Implementation design
  3. Implementation
  4. Integration
  5. Wartung

5. Wie funktioniert ein LUT?

  • Look-Up-Table
  • Tabellenbasiert
  • Realisierung jeder beliebigen Funktion mit maximal 4 Eingängen

6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese?

  • AND wenn x0 an D und !x1 an Reset
  • OR wenn x0 an D und x1 an Set

7. Beschreiben Sie ein 3er OR in VHDL. Wie sieht die zugehörige Realisierung als RTL Schematic und im LUT aus? Wie ist es möglich auch 5er ANDs oder 6er OR mit einem LUT zu realisieren?

  • 3er OR mit einer LUT
    • direkt in der LUT abgebildet
  • 5er OR mit einer LUT und einem FF als OR
    • 4 Eingänge verodert in der LUT
    • 5. Eingang + Ausgang der LUT mit einem FF verodert
  • 6er OR mit einer LUT, einem Multiplexer und einem FF als OR
    • 4 Eingänge verodert in der LUT
    • 5. Eingang + Ausgang LUT über Multiplexer verodert
      • 5. Eingang = Select
      • Ausgang LUT = Eingang 0 des Multiplexers
      • Vcc = Eingang 1 des Multiplexers
    • 6. Eingang + Ausgang des Multiplexers mit einem FF verodert
  • 5er AND mit einer LUT und einem Multiplexer
    • 5. Eingang = Select
    • GND = Eingang 0 des Multiplexers
    • Ausgang LUT = Eingang 1 des Multiplexers

Seminar 03

8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)?

9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind?

10. Nennen Sie zwei Möglichkeiten zur Automatenrealisierung. Worin unterscheiden diese sich im Allgemeinen? Welche Vor- und Nachteile ergeben sich bei deren Umsetzung im FPGA?

11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum?

12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen.

13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch.

Seminar 04

14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es?

15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform?

16. Geben Sie für eine vorgegebene Berechnung den zugehörigen DFG an, wenn sie beliebig viele Ressourcen zur Verfügung haben. Was kann man daraus ablesen? Wie ändert sich der DFG bei minimalen Ressourcen?

Seminar 05

17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an.

18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen?

  1. mit IF-Anweisungen
    • innerhalb von einem Process
    • Wird als Multiplexer erkannt
    • Nicht sehr übersichtlich
  2. mit Case-Anweisungen
    • innerhalb von einem Process
    • Wird als Multiplexer erkannt
    • übersichtlicher als mit IF
  3. mit WHEN-Anweisungen
    • ausserhalb von einem Process
    • Wird als Multiplexer erkannt
  4. direkte Selektion
    • Wird als Multiplexer erkannt
  5. Wertetabelle
    • Wird nicht als Multiplexer erkannt

Seminar 06

19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling.

20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren.

21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt?

22. Wozu dienen Genetische Algorithmen und wie funktionieren diese? Welche Parameter gibt es und wozu dienen diese? Welche Einflüsse können extreme Einstellungen für diese Parameter haben?