Integrierte Hard- und Softwaresysteme 2: Unterschied zwischen den Versionen
McU5 (Diskussion | Beiträge) |
McU5 (Diskussion | Beiträge) |
||
Zeile 149: | Zeile 149: | ||
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-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). ==== | ==== 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). ==== |
Version vom 3. März 2011, 15:11 Uhr
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 Entwurfsphase 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.
- Deadline einheiten (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.
3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese.
4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung?
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.
7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten.
8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen.
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?
- 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?
2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit.
3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit.
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.
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.
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
- Datenpfad (data path)
- 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).
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) ====
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====
Seminar 02
4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt?
5. Wie funktioniert ein LUT?
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====
==== 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? ====
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? ====
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? ====