https://wikiii.de/w_iki/api.php?action=feedcontributions&user=TheMrH&feedformat=atomII-Wiki - Benutzerbeiträge [de]2024-03-28T16:51:52ZBenutzerbeiträgeMediaWiki 1.35.0https://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10477Komplexe eingebettete Systeme2013-07-10T07:58:20Z<p>TheMrH: /* Inhalt Vorlesung */</p>
<hr />
<div>= Links/Folien =<br />
<br />
SSE-Teil [http://www.tu-ilmenau.de/sse/lehre/sommer-2013/kes/]<br />
<br />
RA-Teil [http://www.tu-ilmenau.de/ra/i/r-stu/r-lv/r-kes/uebersicht/]<br />
<br />
= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
siehe auch [[Rechnernetze_der_Prozessdatenverarbeitung]]<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10476Komplexe eingebettete Systeme2013-07-10T07:55:19Z<p>TheMrH: /* Links */</p>
<hr />
<div>= Links/Folien =<br />
<br />
SSE-Teil [http://www.tu-ilmenau.de/sse/lehre/sommer-2013/kes/]<br />
<br />
RA-Teil [http://www.tu-ilmenau.de/ra/i/r-stu/r-lv/r-kes/uebersicht/]<br />
<br />
= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10475Komplexe eingebettete Systeme2013-07-10T07:54:08Z<p>TheMrH: /* Links */</p>
<hr />
<div>= Links =<br />
<br />
SSE-Teil [http://www.tu-ilmenau.de/sse/lehre/sommer-2013/kes/]<br />
<br />
RA-Teil [http://www.tu-ilmenau.de/ra/i/r-stu/r-lv/r-kes/uebersicht/]<br />
<br />
= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10474Komplexe eingebettete Systeme2013-07-10T07:53:47Z<p>TheMrH: /* Links */</p>
<hr />
<div>= Links =<br />
<br />
SSE: [http://www.tu-ilmenau.de/sse/lehre/sommer-2013/kes/]<br />
<br />
RA: [http://www.tu-ilmenau.de/ra/i/r-stu/r-lv/r-kes/uebersicht/]<br />
<br />
= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10473Komplexe eingebettete Systeme2013-07-10T07:53:28Z<p>TheMrH: </p>
<hr />
<div>= Links =<br />
<br />
SSE: [http://www.tu-ilmenau.de/sse/lehre/sommer-2013/kes/]<br />
RA: [http://www.tu-ilmenau.de/ra/i/r-stu/r-lv/r-kes/uebersicht/]<br />
<br />
= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10472Komplexe eingebettete Systeme2013-07-10T07:50:04Z<p>TheMrH: /* Inhalt Übung/Projekt */</p>
<hr />
<div>= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10471Komplexe eingebettete Systeme2013-07-10T07:48:20Z<p>TheMrH: /* Inhalt Vorlesung */</p>
<hr />
<div>= Inhalt Vorlesung =<br />
<br />
* Aspekte des Systementwurfs (Kap. 2)<br />
<br />
* Modellbasierter Entwurf (Kap. 3)<br />
<br />
* Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
* Zuverlässigkeit (Kap. 6)<br />
<br />
* Softwaretechnische Aspekte (Kap. 7)<br />
<br />
* HW/SW-Codesign (Kap. 8)<br />
<br />
* Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
* Kommunikationsaspekte (Kap. 10)<br />
<br />
* Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
* Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Komplexe_eingebettete_Systeme&diff=10470Komplexe eingebettete Systeme2013-07-10T07:47:11Z<p>TheMrH: Die Seite wurde neu angelegt: „= Inhalt Vorlesung = Aspekte des Systementwurfs (Kap. 2) Modellbasierter Entwurf (Kap. 3) Echtzeitaspekte (Kap. 4 + 5) Zuverlässigkeit (Kap. 6) Softwaretech...“</p>
<hr />
<div>= Inhalt Vorlesung =<br />
<br />
Aspekte des Systementwurfs (Kap. 2)<br />
<br />
Modellbasierter Entwurf (Kap. 3)<br />
<br />
Echtzeitaspekte (Kap. 4 + 5)<br />
<br />
Zuverlässigkeit (Kap. 6)<br />
<br />
Softwaretechnische Aspekte (Kap. 7)<br />
<br />
HW/SW-Codesign (Kap. 8)<br />
<br />
Rechnerarchitekturaspekte (Kap. 9)<br />
<br />
Kommunikationsaspekte (Kap. 10)<br />
<br />
Leistungsverbrauchsaspekte (Kap. 11)<br />
<br />
Anwendungsdomäne Automotive (Kap. 12)<br />
<br />
= Inhalt Übung/Projekt =<br />
<br />
Kugelfallversuch mit SunSpot (SS 2013, später Arduino)</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Echtzeitsysteme&diff=10393Echtzeitsysteme2012-07-13T07:16:03Z<p>TheMrH: </p>
<hr />
<div>{{Vorlesung<br />
|richtung = alle<br />
|name = Echtzeitsysteme<br />
|kurz = EZS<br />
|mann = Ja<br />
|vorlesend = Kowalski<br />
|ort = K2077<br />
|url = http://www.tu-ilmenau.de/sp/lehre/vorlesungen/echtzeitsysteme/<br />
|urlname = Klick!<br />
}}<br />
<br />
<big>'''Klausurergebnisse'''</big><br />
<br />
<br />
Schein: [http://omega.theweblords.de/wiki/Bild:EZS_Schein.JPG Klick]<br />
<br />
Prüfung: [http://omega.theweblords.de/wiki/Bild:EZS_Pruefung.JPG Klick]<br />
<br />
<br />
<big>'''Vorlesungsmaterial'''</big><br />
<br />
Vorlesungsmaterial unter [http://pi0.theoinf.tu-ilmenau.de/ezbs http://pi0.theoinf.tu-ilmenau.de/ezbs]<br />
<hiddenlogin linktext="Login zum Zugriff (klick me!)">Login: ezbsu / alle9</hiddenlogin><br />
<br />
'''Zugelassene Hilfsmittel:'''<br />
<br />
- eigenes VL-Script<br />
<br />
- ein A4-Blatt<br />
<br />
<br />
<big>'''Vorlesungsmitschrift (Angaben ohne Gewähr)'''</big><br />
<br />
= Prozesse – Informatik – Echtzeitsysteme (EZS) =<br />
<br />
== Ziele der Prozeßinformatik (PIF) ==<br />
<br />
*inter-, transdisziplinäres Gebiet<br />
*enger Zusammenhang von PIF und Automatisierung<br />
<br />
'''Ziel:''' zielgerichtete Beeinflussung technischer Prozesse ''(siehe: Bild 1.1)''<br />
<br />
=== Gründe für Automatisierung und PIF ===<br />
<br />
*physische Grenzen<br />
*psychische Grenzen<br />
*humane Grenzen (zu komplex für den Menschen)<br />
*technische / ökonomische Gründe<br />
**Neuartigkeit<br />
**Wirtschaftlichkeit<br />
**"time to market" (Entwicklung und Überführung/Anpassung)<br />
<br />
=== Merkmalsbetrachtung am Beispiel (eingebetteter) EZS (Bild 1.1a) ===<br />
<br />
[[Bild:EZS_1.1a.png]]<br />
<br />
=== Entwurfsrelevante Merkmale ===<br />
*Einbettung in die Umgebung<br />
*Verteilung<br />
*Zeitanforderungen<br />
*Parallelitäten<br />
*Datenhaltung<br />
<br />
=== Nutzerrelevante (Qualitäts-) Merkmale ===<br />
*Erfüllung der Funktion<br />
*Benutzbarkeit (für den Bediener)<br />
*Effizienz (Rechenleistung, Kosten à Zeit / Ressourcen)<br />
*Zuverlässigkeit, Verfügbarkeit<br />
*Änderbarkeit<br />
*Portabilität<br />
*Sicherheitsanforderungen<br />
*gesetzliche Anforderungen<br />
<br />
=== Einordnung von EZS – PDV – Systemen interdisziplinär (Bild 1.2) ===<br />
(PDV – Prozeß-Daten-Verarbeitung)<br />
<br />
[[Bild:EZS_1.2.png]]<br />
<br />
=== Phasen: Analyse / Synthese / Entwurf (Bild 1.3) ===<br />
<br />
[[Bild:Analyse synthese entwurf.png]]<br />
<br />
Verbindung: (Schnittstelle – SS)<br />
*Art der Modellrepräsentation<br />
*Funktionale Modellrepräsentation<br />
<br />
=== Aufgabe für Prozeßinformatik beim EZ-Systementwurf ===<br />
<br />
(1) Erstellung von geeigneten Verfahren und Entwurfswerkzeugen für Automatiker unter Beachtung der Modellrepräsentation<br />
*Aufbereitung, Nutzung standardisierter Werkzeuge<br />
*Erstellung spezialisierter Entwurfswerkzeuge<br />
<br />
(2) direkter Entwurf von Hard- und Software<br />
*Darstellung, Modellierung (allgemeingültig)<br />
*Formalisierung<br />
*Überführung in einen konkreten (einheitlichen) Entwurf<br />
<br />
=> 2 Komplexe für die Vorlesung:<br />
*Systeme, Modelle, ...<br />
*Anforderungen an Systeme bzgl. Echtzeitverhalten (EZ-Sprachen)<br />
<br />
=== Systemplanung: ===<br />
<br />
[[Bild:Systemplanung.png]]<br />
<br />
----<br />
<br />
'''Aussage:''' es existieren<br />
*Vielzahl von Realisierungsmöglichkeiten<br />
*Vielzahl von Kriterien <br />
<br />
'''1) Voruntersuchung'''<br />
*Klärung wirtschaftlicher Fragen<br />
*Kosten-Nutzen-Analyse<br />
*Automatisierungsgrad<br />
<br />
'''2) Grobanalyse'''<br />
*Ziele: <br />
**Grobmodell für Verfeinerung und Implementierung<br />
**Darstellung und Abbildung der möglichen Hierarchie und Struktur<br />
**Auflösung von Elementar- und Einzelprozessen<br />
<br />
'''3) Schema / Konfigurationsaspekte'''<br />
*Meßaufgaben<br />
**Ort-, Wert-, Zeitverhalten<br />
**Verarbeitung, Übertragung, Meßeinrichtung<br />
*Steuerungsaufgabe<br />
**Lokalisierung, Größen<br />
**Zeitverhalten<br />
**Steuereinrichtung (elektrisch, mechanisch, pneumatisch)<br />
*Stellaufgabe<br />
**Ort-, Wert-, Zeitverhalten<br />
**Übertragung<br />
*Bedienaufgabe<br />
**Darstellung, Protokollierung<br />
**Bedienung, Bedienort / Bedieneinrichtung<br />
*Sicherheitsaufgabe<br />
**Vermeidung von Gefährdung bzw. Ausfall<br />
*Sollkonzept<br />
**Lastenheft / Pflichtenheft<br />
<br />
=== Beschreibung von Elementarprozessen ===<br />
*funktional<br />
*Verbund (hierarchisch, konzentriert, ...)<br />
<br />
=== Prozeßstrukturen ===<br />
*statische Strukturen<br />
**Grobstruktur des Aufbaus<br />
**nicht immer Rückschluß auf Funktion möglich<br />
**Blockdiagramme (z.B. Wirkungs- / Transportwege)<br />
*stationäre Strukturen<br />
**analog zu statischen Strukturen<br />
**Darstellung paralleler Abläufe<br />
**Blockdiagramme, ...<br />
*dynamische Strukturen<br />
**Elemente passen strukturell statisch zusammen<br />
**passieren im richtigen Moment (zeitabhängige Übergänge)<br />
**Beschreibung z.B. mit Petri-Netzen (PN)<br />
<br />
== Repräsentations- und Beschreibungsmöglichkeiten ==<br />
<br />
*graphische Beschreibungsmittel<br />
**Beschreibung für Struktur und Funktion möglich<br />
<br />
*in PIF Netzdarstellung<br />
**Instanzennetze<br />
**SADT (erweitertes Instanzennetz)<br />
**Petri-Netze<br />
<br />
*Struktur: Verbindung --- Elemente --- Funktion (statisch / dynamisch)<br />
<br />
*Beschreibungsmittel<br />
**Knoten: Zustände, Speicherung<br />
**Kanten: Übergänge, Wirkrichtung<br />
<br />
[[Bild:Knoten.png]]<br />
<br />
*Beispiel:<br />
**Instanzennetze ''(Bild 1.5)''<br />
***Instanzen, Kanäle, Verbindungen<br />
**SADT - Structured Analyse and Design Technique ''(Bild 1.6)''<br />
***Trennung von Daten- und Funktionsmodell<br />
***Redundanter Entwurf --- Sicherheit<br />
**Petri-Netze ''(Bild 1.7)''<br />
***Besonderheiten: Prozeßübergänge und –dynamik beschreibbar<br />
***geeignet für statische, stationäre und dynamische Strukturen<br />
***mathematisches Fundament<br />
***überführbar in andere Beschreibungsmittel<br />
***Tools vorhanden !<br />
***Plätze, Transitionen, Kanten, Marken<br />
***Schaltregel muß erfüllt sein (Vor- / Nachbedingungen)<br />
<br />
= Begriffe der PIF mit EZS =<br />
== System – Modell – Prozeß ==<br />
<br />
allgemeines Wirkschema<br />
<br />
[[Bild:Wirkschema_allgemein.png]]<br />
<br />
Wirkschema Normalbetrieb<br />
<br />
[[Bild:Wirkschema.png]]<br />
<br />
Prozess ist '''ursächlich'''! --> Quelle/Senke von Daten/Befehlen für Steuerung/Regelung<br />
<br />
'''zur Beobachtung/Führung:'''<br />
<br />
--> PDV-EZS mit folgender Spezifikation<br />
<br />
* Einhaltung zeitlicher Abfolgen und vorgegebener Bearbeitungszeiten (von Prozeß vorgegebene EZ-Bedingungen)<br />
* Echtzeitverarbeitung<br />
<br />
<br />
* ständige Aufnahmebereitschaft der PDV-Systeme für äußere(von Prozeß) / innere (Ausnahmezustände, Fehlermeldungen) Informationen / Ereignisse<br />
*deren schritthaltende Verarbeitung (nach vorgegebenen Algorithmen) zum Zweck der: <br />
** Verarbeitung <br />
** Speicherung <br />
** Transport / Übertragung<br />
<br />
* Daten/Ereignisse aus Gegenwart und Zukunft auch aus Vergangenheit erfolderlich<br />
* Gesamtsystem (oder Teilsystem) müssen geforderte Funktionen erfüllen<br />
* Gesamtsysteme (Teilsysteme) müssen sicher sein<br />
<br />
=== EZ-Forderungen ===<br />
* Rechtzeitigkeit<br />
* Vollständigkeit<br />
* Gleichzeitigkeit<br />
* Korrektheit/Sicherheit<br />
<br />
=== Begriffe ===<br />
* System (aus Sicht der PIF)<br />
** Einheit aus informationstechnischen Maßnahmen zur zielgerichteten Beeinflussung stofflicher, energetischer, informationelle Sachverhalte und Informationsverarbeitungstecnik selbst<br />
** je nach Betrachtung angepasste Modelle für Analyse/Synthese erforderlich<br />
** ''siehe Bild 2.4 / 2.5''<br />
<br />
* Modell<br />
** Abbildung eines Systems mittels einer kognitiven Struktur<br />
*Warum Modellnutzung?<br />
**Ausgangspunkt für Systementwicklung<br />
**Ausgangspunnkt für Systemuntersuchung<br />
**gdw. --> am Original: nicht möglich ist; zu teuer; zu langwierig<br />
<br />
=== Modellausprägungen ===<br />
<br />
* physikalische (materielle Modelle)<br />
** nur bei sehr teuren Zielsystemen<br />
** biologischer Bereich<br />
<br />
* mathematische Modelle<br />
** formale Modelle<br />
** grafisch, numerisch<br />
<br />
[[Bild:Flußdia.png]]<br />
<br />
=== Modellunterscheidung nach Charakter der Modellvariablen ===<br />
<br />
*Modellvariablen<br />
**Zeitbezug (--> dynamische /statische Modelle)<br />
**Wertetyp (--> diskrete / stetige Modelle)<br />
**Determiniertheit (--> deterministische / stochastische Modelle)<br />
*''siehe Bild 2.6''<br />
<br />
<br />
----<br />
<br />
<br />
[[Bild:Modell.png]]<br />
<br />
=== Modellprüfung ===<br />
<br />
* Validierung: Übereinstimmung von Modell und Realität (Bewertung, Kenntnisse der Domäne)<br />
* Verifikation: Übereinstimmung Computermodell und Realität (iterativ Herbeiführen)<br />
<br />
== Technische Prozesse ==<br />
<br />
* Vorgang zur Umformung, Transport, Speicherung von Materie, Energie, Information<br />
* dessen Zustandsgrößen mit technischen Mitteln erfasst werden können und beeinflusst werden können <br />
<br />
(vgl. DIN 66201)<br />
<br />
Unterscheidung wichtig da für verschiedene Grundformen<br />
* angepaßte Regelung-/Führungsstrategien<br />
* Einfluß auf EZ- Systemverhalten <br />
<br />
''siehe Bild 2.7''<br />
<br />
== Informationen in technischen Prozessen ==<br />
<br />
* Kopplung eines: technischen Prozesses und Steuerungssystems ist Ziel!<br />
* erfolgt durch: Informationsgewinn aus dem Prozess und Informationsverteilung in dem Prozess<br />
<br />
<br />
Repräsentation des Systems durch ein Modell ist:<br />
* Darstellung der Systemzustände<br />
* Darstellung der inneren Struktur<br />
<br />
--> erfolgt alles durch Informationen<br />
<br />
<br />
Abbildung der Systemzustände ist Voraussetzung für Prozeßbeobachtung<br />
<br />
[[Bild:Prozeßbeeinflussung.png]]<br />
<br />
*Sensorik: (Messglieder) Informationserfassung für Zustand<br />
*Aktorik: (Stellglieder) Informationsausgabe für Zustandsänderung<br />
<br />
''siehe Bild 2.8''<br />
<br />
=== Signale ===<br />
<br />
*zeitlicher Verlauf einer physikalischen Größe x, die Informationen in sich trägt<br />
<br />
Problem: Darstellung kontinuierlicher, veränderlicher Systemzustände durch Informationen<br />
<br />
[[Bild:EZS-Signale.jpg]]<br />
<br />
*unendlicher Wertevorrat --> wertkontinuierlich, zeitkontinuierlich<br />
*unendlicher Wertevorrat nicht abbildbar in diskreten Systemen<br />
<br />
=== Lösungsansatz ===<br />
<br />
*Quantisierung<br />
**Zustandsbereich auf Intervall beschränken in dem sich Zustandsgröße befindet<br />
**Aufteilung des Intervalls in Inkremente<br />
<br />
*Digitalisierung der Informationen<br />
**Entscheidungsgehalt = Maß für Aufwand zur Klassifizierung der Zustandsgröße<br />
**<math>H_0 = ld(n)</math><br />
**<math>M_Z = \{Z_1, ... , Z_n\}</math> - Zustandsraum<br />
<br />
*Auflösung: kleinste einstellbare, erkennbare Inkrement bezogen auf beschränkten Zustandsbereich<br />
**<math>A = \frac {\hat x - \check x}{\Delta x}</math> Länge des Inkrements<br />
<br />
*Genauigkeit: größte Abweichung des realen Zustandes Xr von seinem durch Information beschriebenem Zustand Xi<br />
**<math>G = \left| X_r - X_i \right|_{max}</math><br />
**<math>g = \frac {\left| X_r - X_i \right|_{max}}{X}</math> relative Genauigkeit<br />
<br />
*Abtastung<br />
**Informationserfassung nur alle <math>\Delta t</math> (<math>\Delta t</math> > 0)<br />
**--> Zeitdiskretisierung<br />
<br />
[[Bild:EZS-Abtastung.jpg]]<br />
<br />
=== Diskussion ===<br />
<br />
*Abtastfrequenz >> Signalfrequenz<br />
*bei Anwendung können A und G (gleich und) verschieden sein<br />
**hohe A bei kleiner G für Langzeitmessung<br />
**G > A – falsche Abbildung der physikalischen Zustände<br />
*Normalfall: A >,>> G<br />
*Fakt: ADU, DAU --> A > G , G – schlechterer Wert<br />
<br />
= Prozeßlenkung, Prozeßkopplung, Prozeßrechner =<br />
<br />
[[Bild: EZS-Prozess.jpg]]<br />
<br />
Sensor:<br />
*erfassen x(t)<br />
*wandeln x(t) in x(<math>\Delta</math>t)<br />
<br />
Verarbeitung: diskret<br />
<br />
Aktor:<br />
*stellen<br />
*wandeln y(<math>\Delta</math>t) in y(t)<br />
<br />
zeitdiskretes Signal<br />
*fungiert über diskrete Zahlenfolgen <math>x_i</math><br />
*führt auf <math>y_i</math><br />
<br />
== Untersuchung von Systemen ==<br />
<br />
(1) statische Systeme<br />
*y(t) hängt ausschließlich von x(t) ab<br />
<br />
[[Bild: EZS-Linear.jpg]]<br />
<br />
(2) dynamische Systeme<br />
*y(t) hängt zumindest in einem Zeitpunkt <math>T_1</math> von der Zeit und nicht nur von x(<math>t_x</math>) ab<br />
<br />
[[Bild: EZS-Knick.jpg]]<br />
<br />
=== Unterscheidung durch Linearität ===<br />
<br />
(1) lineare statische Systeme<br />
*g.d.w. Überlagerungssatz gilt<br />
*<math>f(x_1 + x_2) = f(x_1) + f(x_2)</math><br />
<br />
(2) lineare dynamische Systeme<br />
*für E-/A-Signale aus Vergangenheit und Gegenwart gilt Überlagerungssatz<br />
*<math>f(x_1(t) + x_2(t)) = f(x_1(t)) + f(x_2(t))</math><br />
*ist das nicht so: nichtlineare Systeme!<br />
<br />
=== Verhalten in linearen dynamischen Systemen ===<br />
<br />
<br />
[[Bild:EZS - Verhalten in linearen dynamischen Systemen.jpg]]<br />
<br />
=== mögliche Systemklassen ===<br />
<br />
[[Bild:Systemklassen.svg]]<br />
<br />
*lineare (insbesondere statische) Systeme lassen sich sehr gut beschreiben durch<br />
**Datenflußgraphen (DFG)<br />
**Signalflußgraphen (SFG)<br />
*''siehe Bild 3.3. (DFG / SFG)''<br />
**gerichteter Graph<br />
**Richtung entspricht Datenfluß<br />
<br />
Funktionsbeispiel: <math>y = a \cdot (b + c)</math> <br />
*Knoten / Plätze: Datenspeicher / Variable (a, b, c, y)<br />
*Operatoren: Operationen (ADD, MULT)<br />
<br />
[[Bild:EZ addmul.svg]]<br />
<br />
Defizit: Reihenfolge der Abarbeitung (Steuerfluß) fehlt<br />
<br />
=== Grundstrukturen ===<br />
<br />
*Reihenschaltung<br />
<br />
[[Bild:EZ reihe.svg]]<br />
<br />
*Parallelschaltung<br />
<br />
[[Bild:EZ parallel.svg]]<br />
<br />
*Rückkopplung<br />
**Gegenkopplung (Regler)<br />
**Mitkopplung (Oszillator)<br />
<br />
[[Bild: EZS - Rückkopplung.jpg]]<br />
<br />
== Struktur hierarchischer Prozeßlenkungen ==<br />
<br />
Ziel:<br />
[[Bild:EZ Bild3.2.1.svg]]<br />
<br />
Vorraussetzung: Erfassung des Streckenzustandes<br />
<br />
=== Strecke ===<br />
<br />
*Teil des Systems<br />
*technische bzw. physikalische Größen gemäß Zeitfunktion<br />
*meist zeitkontinuierlich<br />
*Streckenmodell durch Messen / Berechnen ermitteln<br />
<br />
=== Art der Einflußnahme ===<br />
<br />
*Steuerung<br />
**ist rückwirkungsfrei<br />
**SFG zyklenfrei<br />
**n-Eingangsgrößen möglich<br />
**Stellgrößen sind Ausgang<br />
**Führungswertsteuerung über externe Führungswerte<br />
**''siehe Bild 3.6''<br />
*Regelung<br />
**geschlossene Wirkungskette<br />
**Regelabweichung = Istwert – Führungswert<br />
**„Regeltechnisches Paradoxon“<br />
**Führungsbetrieb<br />
**Störbetrieb (externe Störungen)<br />
<br />
=== Automatisierungsziel ===<br />
<br />
*einfach --> einfaches PDV-EZS (autonomes) Automatisierungssystem <br />
*komplex<br />
**Dekomposition, Funktion, Hierarchie<br />
**Taxonomie --> PDV-EZS als Rechnerverbund<br />
*''siehe Bild 3.6''<br />
*Rechnerverbund --> Ebenen --> Zeitebene, Intelligenz, Komplexität<br />
<br />
=== Besonderheiten der Ebenen ===<br />
<br />
(1) Prozeßebene<br />
*direkte Prozeßüberwachung, -beeinflussung (Steuerung / Regelung)<br />
*Elementar-, Einzel-, Verbundprozesse<br />
*Kopplung Sensor --> Steuerung --> Aktor direkt oder über Busse (z.B. ASI-Bus)<br />
*Bedienung: prozeßnah<br />
**Handbetrieb<br />
**Normalbetrieb<br />
<br />
(2) Operativebene<br />
*Überwachung und Bedienung von Gruppen- und Einzelreglern (gegebenenfalls Backup)<br />
*Einzel-, Verbundprozesse<br />
*Bindeglied zwischen (1) und (3) – Koordinationsebene<br />
<br />
[[Bild:EZ Bild3.2.2.svg]]<br />
<br />
*Kopplung: EZ-Busse (z.B. CAN, Profi-Bus, Interbus)<br />
*Bedienung:<br />
**problemspezifische Programmierumgebung<br />
**Funktionstastaturen<br />
**Ausgabe: Störmeldungen, Protokolle, Trendanalyse<br />
<br />
(3) Koordinationsebene<br />
*Gruppen der Operativebene zusammengefaßt <br />
*Funktionskoordinierung:<br />
**Voraussetzung für Prozeßlenkung über Leitrechner<br />
*Funktionsoptimierung:<br />
**max. Effizienz der Teilprozesse nach gemeinsamen Zielfunktionen<br />
*Verbundprozesse<br />
*Kopplung:<br />
**(3) --> (2): EZ-Busse<br />
**(4) <-- (3): nicht EZ-Busse, (EZ-Busse möglich)<br />
*Redundanz für (2) (abhängig von Kopplung: EZ / nicht EZ)<br />
*Bedienung:<br />
**Abfrage aller unteren Ebenen (z.B. Bedienung von (2))<br />
**Programmierumgebung<br />
**Steuerstrategien<br />
<br />
(4) Leitebene / Managementebene<br />
*zentrale Leitung des Ausgabesystems (Automatisierungssystems)<br />
*Betriebsprozesse<br />
*Planung / Statistik / wirtschaftliche Strategie<br />
*Trennung zwischen System und Umgebung<br />
*Kopplung (4) --> (3): nicht EZ-Busse (möglich mit EZ-Busse)<br />
*Bedienung:<br />
**leistungsfähige (graphische) Programmierumgebung<br />
**Protokollierung / Archivierung<br />
<br />
=== Zeithorizonte der Ebenen ===<br />
<br />
[[Bild:EZ Bild3.2.3.svg]]<br />
<br />
bei ms-s (auch bei min): größte EZ-Forderung<br />
<br />
konkrete Aufgabenstellung in der Hierarchie bestimmt:<br />
*Zeitforderungen / Abläufe der Kopplung<br />
*Enge der Kopplung einer Rechners an den Prozeß<br />
*Eingriffsmöglichkeiten von Mensch und / oder Rechner auf den technischen Prozeß<br />
*--> Unterscheidung von Kopplungsprinzipien (nötig!)<br />
**Stärke der Kopplung<br />
**Mitwirkung Mensch, Rechner<br />
<br />
Varianten:<br />
*Mensch --> technischer Prozeß<br />
*Rechner --> technischer Prozeß<br />
*Mensch --> Rechner<br />
<br />
[[Bild:EZ Bild3.2.4.svg]]<br />
<br />
=== Kopplungsprinzipien ===<br />
<br />
*'''handbediente Prozesse'''<br />
[[Bild:EZS - Handbediente Prozesse.jpg]]<br />
**Mensch beobachtet & steuert --> alle Aufgaben der Prozesssteuerung bei Menschen --> geringere Komplexität<br />
**ggf. Kleinkraftwerke, Heizanlagen <br />
<br><br />
*'''indirekte Prozesskopplung'''<br />
**'''off-line'''<br />
**[[Bild:EZ offline petri.svg]]<br />
***Rechner muss nicht EZ-Fähig sein<br />
***Mensch ist Bindeglied zwischen ZP und Prozessrechner<br />
***keine zeitliche Bindung<br />
***offline Datenübergabe, -abholung<br />
<br><br />
**'''in-line'''<br />
**[[Bild:EZ Inline petri.svg]]<br />
***zeitliche Bindung<br />
***parallele Berechnung komplexer Algorithmen mit Rechner<br />
***als Vorgabe für Menschen, Mensch steuert nach wie vor (z.B. Prozessrechner errechnet komplexe Steuerdaten, aber Mensch führt Steuerung aus)<br />
<br><br />
*'''direkte Prozesskopplung'''<br />
**enge zeitliche Kopplung<br />
**Bediener möglichst ausserhalb der Kette<br />
**z.B. Fahrerloser Betrieb<br />
**Prozessrechner wird möglichst in Prozess integriert<br />
**siehe [http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap3/Bild%20_DirProz-koppl_3__.pdf Bild 3._]<br />
<br />
Rechner zur Kopplung technischer Prozeß à Prozeßrechner (PR)<br />
<br />
== Prozeßrechner ==<br />
<br />
*'''2 Arten:'''<br />
**erweiterte technische Lösung einer allgemeinen Universalrechnerstruktur (Operativ-, Kooperativebene) mit spez. PR-Elementen, -eigenschaften <br>(operativ- oder Kooperationsebene)<br />
**spezielle Realisierung mittels Mikroprozessoren als integrierte Systeme (Operativ- und / oder Prozeßebene)<br />
<br><br />
'''zu Bild 3.7.:'''<br />
<br />
*leistungsfähiger Rechenkern<br />
**modularer Aufbau<br />
**Konfigurierung von Meß- und Stellperipherie<br />
**(z.B. bis 100 Regelkreise)<br />
<br><br />
*Prozeßperipherie<br />
**peripheres Gerät = f(Aufgabenstellung) (bereits im Sys vorhanden oder ggf neu entwickeln)<br />
***Bsp.: Gerät = Druckmesser, Aufgabe = Druckmessung, ...<br />
**oft höhere Kosten als zentrale Verarbeitungseinheit<br />
**bestimmen maßgeblich Signalverhalten, Zeitverhalten, Sicherheit<br />
<br><br />
*Kommunikationsperipherie<br />
**Peripherie für Bedienung / Beobachtung<br />
**Kommunikation mit Bediener<br />
**Programmierung (Entwickler) / Parametrierung (Bediener)<br />
** --> für Systemkommunikationund<br />
***Rechnerverbund (funktionale Vernetzung von Rechnern)<br />
***fernwirk EA-Bindung<br />
***für Systemstart und Führung<br />
<br><br />
zu Bild 3.8.: spezieller PR-Chip als kleinste PR-Architektur<br />
<br />
*Ansatz<br />
**Aufgaben klein (bis mittel)<br />
**Verteilung von Aufgaben auf „kleine“ Systeme<br />
*Vorteile<br />
**dezentrale (parallele) Verarbeitung<br />
**hohe (Verarbeitungs-)Geschwindigkeit<br />
**kurze Wege für Prozesse & E/A<br />
**hohe Zuverlässigkeit (Redundanz)<br />
**überschaubarer Hard- / Softwareentwurf<br />
**geringe Kosten<br />
**=> möglich als Funktionsrechnerkonzept<br />
**=>erhöhter Kommunikationsaufwand<br />
**=>Anforderungen an Kommunikationsperipherie steigen<br />
<br />
*Komplexität der Prozesse<br />
**Komplexe Struktur, Topologie<br />
**Komplexe Funktion<br />
** ggf beides<br />
<br />
*=> PR-Architekturen<br />
**Mehrrechnerarch.<br />
**Einrechnerarch.<br />
**Mehrprozessorarch.<br />
**Einprozessorarch.<br />
<br />
Komplexe Systeme<br />
*Verteilung<br />
*Realisierung als Mehrprozessorsystem bzw. Mehrrechnersystem<br />
<br />
=== Prozeßrechner als Mehrprozessorsystem (Bild 3.9) ===<br />
<br />
[[Bild:PR_als_Mehrprozessorsystem.PNG]]<br />
<br />
*Verbindungssystem für Informationsaustausch (allgemeiner Bus, Speicherkopplung)<br />
**fest über Speicher<br />
**interne Busse<br />
*es entstehen verschiedene Zeitebenen in den Knoten und beim Informationsaustausch<br />
*Konzept: hohe Rechenleistung und gewisse Universalität<br />
*Coprozessoren:<br />
**Arithmetik<br />
**E/A-Verkehr<br />
**Speicher-Verkehr<br />
**Busverkehr<br />
**Besonderheit: Kommunikationssystem erforderlich<br />
***innerhalb Busse, Speicher<br />
***außerhalb<br />
****Speicher (global; Punkt zu Punkt)<br />
*Eigenschaften:<br />
**Universalität / hohe (angepasste) Rechenleistung<br />
**Ergänzung von fehlenden Eigenschaften der Co-Prozessoren<br />
**einzelne Prozessoren => lose Kopplung, interne Busse<br />
**zusätzliche Kommunikationskanäle (in Umgebung)<br />
<br />
a) einzelne Prozessoren – feste Kopplung über gemeinsamen Speicher (intern), Bussysteme<br />
<br />
b) zusammenhängende Kommunikationskanäle<br />
*E/A-Kommunikation<br />
**Punkt zu Punkt<br />
**Busse (Linie, Ring, Stern)<br />
<br />
=== Prozeßrechner als Mehrrechnersystem (Bild 3.11) ===<br />
<br />
[[Bild:PR_als_Mehrrechnersystem.PNG]]<br />
<br />
(einzelne Rechner kommunizieren über Speicher/Busse)<br />
<br />
Multicomputersysteme<br />
*System aus (gleichartigen) selbstständigen einzelnen Rechnern (Prozessor, Peripherie, Speicher)<br />
*Verbindungssystem zwischen Rechnern für Informationsaustausch erforderlich<br />
**feste Kopplung (gemeinsame, globale Speicher)<br />
**lose Kopplung (Gerätekopplung, E/A-Kopplung)<br />
<br />
=== Spezielle Mehrprozessorsysteme (Bild 3.12) ===<br />
<br />
Ansatz:<br />
*Leistungsfähige Verarbeitung<br />
*zusätzliche leistungsfähige Kommunikation<br />
<br />
[[Bild:EZ Transputer.svg]]<br />
z.B. für Vektor- & Matrizenrechnung<br />
<br />
Transputersysteme:<br />
*CPU + zusätzliche IO-Prozessoren (mit mehreren Kanälen) bilden einen Knoten (Rechner)<br />
<br />
Abschätzung:<br />
*Aufwand reine Rechenzeit<br />
*Aufwand Übertragung über Links<br />
<br />
== Echtzeitkommunikation / Busse / EZ-Busse ==<br />
<br />
[[Bild:3.4.PNG]]<br />
<br />
=== Anforderungen an EZ-Busse ===<br />
<br />
*definierte Antwortzeiten (Busübertragungszeit)<br />
*Übertragungssicherheit<br />
*Fehlererkennung und –behebung<br />
*Verfügbarkeit, Preis<br />
*effiziente Protokolle (Geschwindigkeit)<br />
*Standardisierung (breite Anwendung)<br />
<br />
=== Beispiel ===<br />
*ASI: Aktor-Sensor-Bus (Interface)<br />
**Master Slave Bus<br />
**begrenzte Adressierbarkeit<br />
**begrenzter Datenaustausch (Sensorabfrage)<br />
**verbinden "intelligenter" E/A<br />
**Prozeßebene (Sensor-Aktor-Ebene) <-> technischer Prozeß<br />
<br />
*CAN-Bus: (Profibus, Interbus) à siehe Folie<br />
**Regelungs-Steuerungs-Ebene<br />
<br />
= Prozeßperipherie =<br />
<br />
Aufgabe: Prozeßdaten vom und zum Prozeß zu übertragen!<br />
<br />
Unterscheidung: Prozeßgrößen (Sicht Automatisches System)/ Prozeßdaten (Sicht Prozessrechner) aus der Sichtweise<br />
<br />
Übertragungsart von parallel => seriell<br />
<br />
[[Bild: EZS - Prozessperipherie.jpg]]<br />
<br />
--> siehe Bild 4.0 – Prozeßgrößen<br />
<br />
*Prozeßperipherie:<br />
**erfaßt bzw. überträgt zum Prozeß<br />
**Prozeßdaten: analog, digital, binär (gemischt-hybrid)<br />
<br />
== Prozeßzustandserfassung ==<br />
<br />
klassifizierbar nach:<br />
*Auslösen der Zustandserfassung (Steuerungssystem, technischer Prozeß)<br />
*Dauer der Prozeßzustände (statisch, dynamisch)<br />
<br />
--> n-Tupel Tabelle<br />
<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! Initiator der Prozeßzustandserfassung <br />
| colspan="2" | '''Dauer der Prozeßzustände'''<br />
|-<br />
| <br />
|| langfristig <br />
|| kurzfristig<br />
|-<br />
| Steuerung <br />
|| statische Zustandssignale <br />
|| dynamische Zustandsignale<br />
|-<br />
| technischer Prozeß <br />
|| statische Alarmsignale <br />
||dynamische Alarmsignale<br />
|}<br />
<br />
=== Statische Zustandssignale (siehe Folie 4.1) ===<br />
<br />
*Prozeßsteuerung fordert zu definierten Zeiten regelmäßig Informationen aus Prozeß an, um bestimmte Reaktionen auszuführen<br />
*nur sinnvoll, wenn <math>\frac{1}{T_S} > \frac{1}{T_P}</math> (Anforderungsrate Prozeßsteuerung > Änderungsrate des Prozesses)<br />
*Erfassung relevanter Zustände mit Abtasttheorem ( <math>f_{abtast} \ge 2 \cdot f_{Prozess}</math> )<br />
<br />
=== Dynamische Zustandssignale ===<br />
<br />
*kurzfristige Zustandsänderungen die erfaßt werden müssen, wenn <math>T_P < T_S</math> (Dauer eines Prozeßzustandes < Periodendauer für Erfassung/Reaktion)<br />
*Zustandsänderung dynamischer Signale müssen gepuffert werden (Aufheben)<br />
--> Betriebsart: Taste-Halte-Glied (analog)<br />
*D-Flip-Flop (binär)<br />
*bis zum Überschreiben bleibt Pufferwert gültig<br />
*sinnvoll auf kurzfristige Ereignisse<br />
** wenn nicht schritthaltend reagiert werden muß<br />
*(Vorteil: Vermeidung von Busy-Waiting)<br />
*wenig Aufwand f. extrem seltene Signale<br />
<br />
=== Statische Alarmsignale ===<br />
<br />
*zeigen längerdauernde (insbesondere binäre) Zustände an<br />
*erweiterte Möglichkeit zur Abfrage und Auswertung von Prozeßsignalen durch:<br />
**Wegfall der zyklischen Abfrage bei seltenen Zuständen (vermeidet "busy-wait")<br />
**oder um bei Eintreten solcher Zustände unmittelbare Reaktionen zu veranlassen <math>T_P >> T_S > T_R</math> (Reaktionszeit)<br />
**oder wenn während bestimmter Zustände im Prozeß keine Zustandserfassung möglich ist (Grenzwertüberschreitungen)<br />
**Wunsch statischer Meldungen ständig verfügbar z.B. für Wiederaufruf (aus Reset, kritischer Zustand)<br />
*speichern möglich<br />
<br />
=== Dynamische Alarmsignale ===<br />
<br />
*Informationsparameter ist zeitlicher Ereignispunkt eines bestimmten Zustandswechsels<br />
*erfordert sofortige Reaktion im aktuellen Zyklus mit hoher Priorität<br />
*auffangen/speichern/reagieren<br />
*erfordert geeignete Maßnahmen zur Prozesszustandsabhängigen Steuerung<br />
*Reaktionszeit entspricht Prozeßzeit <br/> --> echtzeitfähige Reaktion<br />
**geht über Erfassung von Zustandssignalen hinaus<br />
<br />
''//Bild''<br />
<br />
*Reaktion echtzeitfähig aus jedem beliebigen Zustand der PR-Steuerung heraus<br />
<br />
== Funktionen und Funktionsgruppen der Prozeßperipherie ==<br />
<br />
Hauptfunktionen:<br />
*Abtastung<br />
*Quantisierung (Grenzwerte, Messbereich, Stückelung)<br />
*Digitalisierung<br />
<br />
Nebenfuntionen:<br />
*Signalanpassung (Pegelanpassung, Schaltungsanpassung)<br />
*Signalübertragung<br />
*Eliminierung von Störungen<br />
<br />
Realisierung:<br />
*Hardware (ADU, DAU, RC-Filter, ...)<br />
*Software (Kodiealgorithmen, Filteralgorithmen, ...)<br />
<br />
*Messgrößen klassifizierbar --> ''Bild 4.2.''<br />
<br />
*vollständige Meßkette / Stellkette<br />
**n-stufig<br />
**Realisierung durch Hardware und Software<br />
*Signale:<br />
**elektrisch, nicht elektrisch<br />
**analog, digital, ...<br />
*Eigenschaften der Signale erfordert spezielle Prozeßperipherie<br />
<br />
=== Klassifikation der Prozeßsignale ===<br />
<br />
a) nach Aufbereitung der Signale im Meßprozeß<br />
*primäre Meßwerte<br />
**direkt am Prozeß aufgenommen<br />
**"unverfälscht" (außer eventuelle Sensorfehler)<br />
**dem Prozeßzustand zugeordnet<br />
**z.B. Füllmenge einer Flasche<br />
*sekundäre Meßwerte<br />
**entstehen nach mindestens einer Umwandlung aus primären Meßwerten<br />
**können zusätzliche Fehler aufweisen<br />
**z.B. Füllhöhe auch von Form abhängig nicht nur von Füllhöhe<br />
<br />
b) nach technischer Natur<br />
*elektrische Meßwerte<br />
*nichtelektrische Meßwerte (Mehrzahl in der Natur)<br />
<br />
c) nach zeitlichen Verhalten<br />
*statische Signale<br />
**Werte sind zeitlich konstant<br />
*stationäre Signale<br />
**über längere Zeit wie statische Signale<br />
**bei Bedarf änderbar<br />
*quasistationäre Signale<br />
**verhalten sich wie stationäre Signale<br />
**langsame Änderung möglich<br />
**z.B. Temperatur<br />
*dynamische Signale<br />
**schnelle Änderung der Signalparameter möglich<br />
**nicht nur Momentanwert, auch Änderungsrate / Gradient ggf. interessant<br />
*Ereignisse (Alarme)<br />
**sprunghafte Änderung entscheidet<br />
**nicht unbedingt Wert interessant sondern Tatsache, dass Änderung eintritt (qualitativ)<br />
**Richtung und/oder Zeitpunkt interessant<br />
**z.B. Inkrementalgeber<br />
<br />
d) Klassifikation nach Signalformen<br />
*Gestaltung der Peripherie<br />
*beschreibt wie<br />
**Signal vom Meßglied bereitgestellt wird<br />
**vom Stellglied erwartet wird<br />
<br />
--> ''Bild 4.3.''<br />
<br />
*analoge Signale: konstante Änderung, jeder beliebige Wert möglich<br />
*diskontinuierliche Signale: zu bestimmten Zeitpunkten jede beliebige Amplitude möglich<br />
*diskrete Signale:<br />
**wertdiskret (endlich viele Werte möglich)<br />
**zeitdiskret (endlich viele Zeitpunkte möglich)<br />
**wert- und zeitdiskret<br />
*binäre Signale: 2 Zustände<br />
*Impulsfolgen: Impulsabstand / Impulsanzahl<br />
*Abtastimpulse<br />
<br />
=== Zusammenfassung ===<br />
<br />
*Prozeßperipherie muß an speziellen Charakter der Meß-/Stellwerte angepaßt werden<br />
*leider häufig neu entwickelt werden<br />
*im Regelfall (PDV) sind es quasistationäre bzw. dynamische, nichtelektrische, analoge Meßwerte (als Primärsignale)<br />
*aus Signalart folgt:<br />
**Art der Meßgeräte zur Prozesssignalerfassung (''Bild 4.4.'')<br />
**Kette der Prozeßgrößenaufnahme (''Bild 4.5.'')<br />
<br />
==Prozessgrößenaufnahme==<br />
<br />
Ziel: Umwandlung v. Prozessgrößem in Prozessdaten (Zustandsgrößen, Alarme)<br />
Ausgangspunkt --> angepasste Umsetzung => aus Klassifikation der Signale<br />
=> angepasste Umsetzung/Mess- bzw. Stellkette<br />
<br />
===a) nach Aufbereitung der Signale im Messprozess:===<br />
*primäre Messwerte:<br />
**direkt am Prozess gewonnen<br />
**unverfälscht (evtl. Fehler des Sensors)<br />
**Prozesszustandand zugeordnet<br />
**z.B. Füllhöhe in Behälter<br />
*sekundäre Messwerte:<br />
**enstehen nach mindestens einer Umformung<br />
**können zusätzliche Fehler haben<br />
**z.B. Füllhöhe indirekt über Gewicht bzw. Winkelauslenkung ermitteln<br />
<br />
===b) nach technischer Natur===<br />
*elektrische Signale (Messwerte)<br />
*nichtelektrische Signale (-"-) (Mehrzahl in der technische Anwendung)<br />
<br />
===c) nach zeitlichem Verhalten===<br />
*statische Signale: zeitlich konstant (gegebenenfalls in bezug auf Arbeitsprozess)<br />
*stationäre Signale:<br />
**konstante Sollwertparameter für bestimmte Zeit<br />
**Parameter/Sollwert mit wenig Änderung<br />
*quasistationäre Signale:<br />
**ähnlich zu stationären Signalen<br />
**sehr langsame Zustandsänderung<br />
**(Bsp.P Temperaturänderung bei großen Massen)<br />
*dynamische Signale:<br />
**schnelle Änderung der Sollparameter<br />
**nicht nur Momentanwert sondern auch Gradient interessant<br />
**zum Beispiel gedämpfte Schwingung: interessante Parameter sind: Dämpfung, Frequenz, Startamplitude, Gradient...<br />
*Ereignisse (Alarme):<br />
**sprunghafte Änderung der Signale<br />
**nicht nur Wert der Veränderung bedeutsam<br />
**sondern gegebenenfalls auch Zeitpunkt bzw. Richtung<br />
<br />
===d) nach Signalform===<br />
*[http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap4/ArBl_K_4d.pdf siehe hier]<br />
*relevant für Gestaltung der Prozessperipherie<br />
*beschreibt wie Signal vom Messglied bereitgestellt/aufgenommen wird bzw. vom Stellglied benötigt wird<br />
*Formen:<br />
**analoge Signale:<br />
***kontinuierliche Änferung<br />
***innerhalb der bestimmten Grenzen ist jeder Wert möglich --> unendlicher Wertevorrat<br />
**diskontinuierliche Signale:<br />
***Veränderung sprunghaft<br />
***Signalwerte innerhalb der Grenzen<br />
**diskrete Signale<br />
***wertediskret<br />
***Zeitdiskret<br />
***kombination aus beiden --> Abtastsignal<br />
**quantisierte Signale: quantisierte Änderung möglich<br />
**binäre Signale: nur 1 und 0 als Zustand möglich<br />
**Impulsfolgen:<br />
***Information in <math>\Delta t</math><br />
***Information in der Anzahl der Impulse<br />
**Abtastimpulse <br />
***quantisiert aber nur über bestimmtes Zeitraster<br />
**PBM(PWM): <br />
***Pulsbreitenmoduliertes Signal<br />
***Information stecken im Verhältnis von 0 zu 1 bereichen<br />
*'''Zusammenfassung:'''<br />
**Prozessperipherie muss Charakter der Messwerte angepasst werden!<br />
**--> muss daher häufig neu entwickelt werden<br />
**im regelfall:<br />
***quasistatisch bzw. dynamische<br />
***nichtelektrische analoge Größen<br />
***als primäre Messwerte<br />
*aus Signalart:<br />
**--> Arten von Messgeräten --> vgl. Bild 4.4<br />
**Konkrete Kette der Prozessgrößenaufnahme --> vgl Bild 4.5<br />
<br />
== Quantisierung / Digitalisierung ==<br />
<br />
*Prinzip A/D-Umsetzung<br />
<br />
[[Bild:ad-umsetzer.png]]<br />
<br />
[[Bild:uf-umsetzer.png]]<br />
*U ≙ kontinuierliches Signal<br />
*F ≙ Zählsignal (digital)<br />
*UF-Umsetzung langsamer als A/D Umwandlung<br />
<br />
<br />
*Prinzip D/A-Umsetzer<br />
<br />
[[Bild:da-umsetzer.png]]<br />
<br />
[[Bild:fu-umsetzer.png]]<br />
*F ≙ Zählsignal (digital)<br />
*U ≙ kontinuierliches Signal<br />
<br />
== Prozeßgrößenübertragung ==<br />
<br />
Grundfunktionen<br />
*Anpassung des Signals an physikalische Anschlussbedingungen<br />
**Schaltungsanpassung (Widerstände, Potentialtrennung, Rückwirkungsfreiheit)<br />
**Pegelanpassung (Verstärkung Meßsignal, Wandlung I → U)<br />
*Übertragung<br />
**räumliche Trennung Meßgröße, Prozessrechner, Stellorgan<br />
**Fernwirksysteme<br />
*aus Übertragung folgt:<br />
**Signalverhalten<br />
**Übertragungseigenschaften<br />
**Störempfindlichkeit<br />
**Kosten<br />
<br />
--> ''siehe Bild 4.8.-10.''<br />
<br />
=== Multiplexen / Demultiplexen ===<br />
(Technik zur Umsetzung vieler Signale)<br />
<br />
--> ''Bilder auf den Folien 4.11. / 4.12''<br />
<br />
== Steuergröße, Stellglieder, Stelleinrichtung ==<br />
[[Bild:Bild 4.5.1.svg]] <br />
<br />
'''Steuergröße:'''<br />
* wirkt auf Stellglied<br />
* direkte Wirkung auf Stellgröße (Strom → Heizung)<br />
<br />
''' Stellgröße '''<br />
* wirkt am Stellort (Durchfluss bei Ventilen)<br />
* praktisch geringere Vielfalt als P-Messgrößen<br />
* Klassifizierung nach verschiedenen Gesichtspunkten<br />
--> Bild 4.14<br />
<br />
''' Statisches Verhalten'''<br />
* durch Kennlinie<br />
** Eingang ist Funktion vom Ausgang E=f(A)<br />
** z.B. Drehzahl (Fördermenge)<br />
* stetige Kennlinie<br />
** monoton<br />
** kontinuierlich<br />
** → stetiger Algorithmus<br />
* schaltende Geräte (diskrete Werte)<br />
** 2-Punkt Regelung (an/aus)<br />
** 3-Punkt Regelung (+,aus,-) z.B. Motor (rechts, aus, links)<br />
<br />
'''dynamisches Verhalten'''<br />
* Stellglieder sind in der Regel langsamer als Messglieder (Mechanische/Thermische Geräte)<br />
* Zeitverhalten muss im Prozess berücksichtigt werden (als Sprungantwort/ Impulsantwort)<br />
* ermitteln durch Testsignale (Sprung, Impuls ...)<br />
* oft zusätzliches nichtlineares Verhalten → Einfluss auf das Gesamtkonzept<br />
* Siehe Bild "Unterscheidung nach Sprungantwort"<br />
[[Bild:Bild 4.5.2.svg]]<br />
<br />
*dezentrale Systeme<br />
** z.B. Messglieder, Stellglieder, Busse<br />
** z.B. verschiedene Tastzeiten (TS)<br />
*** Tsalgo, TsADU → Verschiebung durch nicht Synchrone Ts möglich (siehe später)<br />
<br />
= Grundlagen der Regelung mit Digitalreglern =<br />
→ Regelkreis<br />
<br />
[[Bild:Bild 5.1.svg]]<br />
<br />
x: Regelgröße / Zustandsgröße<br />
<br />
w: Führungswert<br />
<br />
u: Regelabweichung<br />
<br />
== Beschreibung linearer dynamischer Systeme ==<br />
f[x1(t)+x2(t)] = f[x1(t)] + f[x2(t)] <br><br />
→ Überlagerungssatz gilt !<br><br />
[[Bild:Bild_5.2.svg]]<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! bgcolor="#BBBBBB" | Elementar Signal<br />
! bgcolor="#BBBBBB" |Transformation<br />
! bgcolor="#BBBBBB" | häufige Anwendung<br />
|-----<br />
| [[Bild:Bild 5.3.svg]]<br />
Stoß, Spalt<br />
|Faltungsintegral<br />
|allgemein<br />
|-----<br />
| [[Bild:Bild 5.4.svg]]<br />
Sprung<br />
|Laplace Transformation<br />
|Automatisierungstechnik<br />
|-----<br />
| [[Bild:Bild 5.5.svg]]<br />
Cosinus<br />
|Fouriertransformation<br />
|Nachrichtentechnik<br />
|-----<br />
| [[Bild:Bild 5.6.svg]]<br />
periodische Stoßfolge<br />
| Z-Transformation<br />
|zeitdiskrete Systeme<br />
|-----<br />
| [[Bild:Bild 5.7.svg]]<br />
Rechteckfolge<br />
| Walsh-Transformation<br />
|digitale Kommunikatioin<br />
|-----<br />
|}<br />
''Bild/Tab 5.1''<br />
<br />
== Analytische Beschreibung von Prozessen ==<br />
* Funktionsbeziehung(Zeitfunktion/Zeitbereich)<br />
** Beschreibt analytisch das physikalische Verhalten von Systemkomponenten<br />
** ordnet Eingangsgrößen einer Ausgangsgröße y zu: y(t)= f(x(t))<br />
** Bsp.: Sprung (zu einer Bestimmung der Funktionalenbeziehung als Testsignal) [[Bild:Bild 5.4.svg]]<br />
** Verallgemeinerte Ableitung des Sprungs wird als Gewichtsfunktion bezeichnet, deren Laplace-Transformation Übertragungsfunktion heißt<br />
* Übertragungsfunktion<br />
** Bild Funktionen,Frequenzbereich<br />
** durch Laplace Transformation aus Zeitfunktion von E und A Signalen mit einfachen Rechenregelwerk<br />
*Def: Laplace-Transformation L{f(t)} ordnet der Zeitfunktion f(t) in eindeutiger weise eine komplexe Funktion F(s) zu<br />
::<math>F(s)=\int _{0}^{\infty }f(t)e^{-st} dt</math><br />
*s ist komplexe Variable: s= p+jw<br />
* Bild 5.3.1 (Korrespondenzen der Laplace-Transformation)<br />
* Bild 5.3.2 (Rechenregeln)<br />
* Bild 5.4 (Zusammenstellung einfacher Kennlinienglieder)<br />
* Bild 5.5 (Beschreibung der funktionalen Abhängigkeiten eines Gleichstrommotors)<br />
* Bsp. Roboterarm<br />
<br />
:'''1 Elektrischer Teil'''<br><br />
::<math>U_{a}-e_{m}=R_{a}\cdot i_{a}+L_{a}\cdot \dot{i}_{a}</math> <br><br />
::Wobei gilt: <math>e_{m}=\tau _{m}\cdot \omega _{m}</math><br><br />
::<math>\tau _{m}=c\cdot \Phi \ \ \Phi ...\mathit{Hauptfluss}</math><br><br />
::Zeitbereich !!<br />
<br />
:'''2 Mechanischer Teil'''<br><br />
::<math>\dot{J}_{m}\omega _{m}=M_{a}-M_{L}\ \ M_{L}...\mathit{Lastmoment} \ M_{a}...\mathit{Arbeitsmoment}</math><br />
::Zeitbereich !!<br />
<br />
:→ Laplacetransformation<br />
<br />
::<math>R_{a}\cdot I_{a}</math> → Linearkombination<br />
<br />
::<math>L_{a}\cdot \dot{i}_{a}</math> → Differenziation<br />
<br />
::<math>U_{a}-E_{m}=R_{a}\cdot I_{a}+L_{a}\cdot s\cdot I_{a}</math> <br />
<br />
::<math>I_{a}=\frac{\frac{1}{R_{a}}}{\frac{1+L_{a}}{R_{a}+s}}(U_{a}-E_{m})</math> → Verzögerungsglied<br />
<br />
<br />
::<math>M_{a}-M_{l}=J_{m}(s\cdot \Omega _{m}(s)-\omega _{m}(t_{0}))</math><br />
<br />
::<math>\Omega _{m}=\frac{M_{a}-M_{L}}{J_{m}\cdot s}+\frac{\omega_{m}{(-0)}}{s}</math> → I-Glied<br />
<br />
<br />
:1.Verstärker und Stromrichter haben proportionales Verhalten<br />
::→ Kv, Ksr<br />
:2. Summierpunkt<br />
::<math>U_{a}-e_{m}</math> (Eingang)<br />
:3. <math>I_{A}</math> (Ausgang) = <math>K=\frac{1}{R_{a}},T=\frac{L_{a}}{R_{a}}</math> <br />
::Übertragungsfunktion: <math>\frac{K}{1+T_{s}}</math><br />
:4. proportional Wirkende Motorkonstante<br />
::<math>k=\tau _{m}</math> (Übergang zum mechanischen Teil)<br />
:5. Summierpunkte: <math>M_{a}-M_{L}</math> (Eingang)<br><br />
:6. Ω (Ausgang) Übertragnungsfunktion <br />
:::<math>\frac{K}{s}=\frac{1}{J_{m}\cdot s}</math> <br />
:7. Rückwirkung:<br />
:::<math>e_{m}-\tau _{m}\omega ,k=\tau _{m}</math><br />
<br />
<br />
== Digitale Regelung ==<br />
* für Modellierung (technischer Prozess, Regler)<br />
* Simulation (technischer Prozess, Regler)<br />
* Regelung (Regler)<br />
* Forderung: Gesamtfehler muss unter max. zulässigem Fehler liegen!<br />
** bezüglich Zeit --> Nyquist Theorem (Shannon)<br />
** bezüglich Wert --> Auflösung, Genauigkeit,Abweichung<br />
* t. Prozess: beschrieben durch Differenzialgleichung bzw. Integralgleichung<br />
* getastete System: beschrieben durch Differenzengleichung bzw. Summengleichung<br />
=== Differenzengleichungen, Regler, Filteralgorithmen ===<br />
→ Bild 5.7<br />
<br />
→ Bild 5.6 (Elementare Systeme und Modelle)<br />
<br />
* Berechnung Gesamtübertragungsfunktion bei zusammengesetzten Systemen<br />
** Reihenschaltung<br />
** Parallelschaltung<br />
** Rückführung / Gegenkopplung<br />
<br />
→ Bild 5.8 (PID-Regler)<br />
<br />
→ Bild 5.9 (Filteralgorithmus für Hoch-Tiefpass)<br />
<br />
= Informationsverarbeitung in Prozeßrechnern =<br />
<br />
== Echtzeitbetrieb ==<br />
<br />
*Kopplung an technischen Prozeß nur sinnvoll, wenn auf alle Forderungen des technischen Prozesses zeitgerecht reagiert wird<br />
*Echtzeitbetrieb ist Betriebsart eines Rechners, bei der der Rechner sich an die dynamisch ändernden Anforderungen aus dem Prozess anpasst<br />
**Zustände, Zeitbedingungen, Wichtigkeiten<br />
<br />
technischer Prozeß:<br />
*dynamische Änderung<br />
*Zeitbedingungen<br />
<br />
* technischer Prozess --> Prozessrechner Anpassug--><br />
*Anpassung<br />
*spezielle E/A<br />
*spezielle Kommunikation und zusätzlich Erfassung zeitlicher Bedingungen<br />
:→ angepasste Reaktion<br />
<br />
→ entsteht Problem der Realisierung (Abbildung) von Zeiten<br />
<br />
=== EZ-Forderungen ===<br />
*Rechtzeitigkeit<br />
**Zeitforderungen für Antwortzeit<br />
**Start bzw. Ende Reaktionsprogramm<br />
*Gleichzeitigkeit<br />
**in technischen Prozeß sind Teilprozesse zeitlich / wirkungsmäßig parallel<br />
**Reaktionsprogramme müssen parallel / quasiparallel ablaufen<br />
**gegebenenfalls nur Sequentiell bedienbar --> quasiparallele Abarbeitung <--> Erfüllung der Zeitanforderung<br />
*Vollständigkeit<br />
**alle Teilprozesse sind auszuführen<br />
*Korrektheit<br />
<br />
=== Echtzeit ===<br />
*harte Echtzeit<br />
**bei Nichteinhaltung Schäden am Prozeß bzw. Gefährdung<br />
*weiche Echtzeit<br />
**Nichteinhaltung gegebenenfalls tollerierbar, keine kritisches Systemzustände<br />
<br />
verallgemeinertes Zeitspiel:<br />
<br />
[[Bild:EZS_Zeitspiel.PNG]]<br />
<br />
--> ''siehe Bild 6.1. (Zeitparameter von Reaktionsprozessen)''<br />
<br />
*für EZ-Betrieb maßgeblich:<br />
**Einhaltung aller Erfassungs- und Antwortzeiten aller Teilprozesse<br />
<br />
<math>T_{ai} \le T_{pai}</math><br />
<br />
<math>T_{ej} \le T_{pej}</math><br />
<br />
i, j = 1,2, ...<br />
<br />
=== Abbildung von Zeiten in Prozeßrechner ===<br />
*absolute Zeiten --> Echtzeituhr (EZU)<br />
**aus HW-Signal (Interupt)<br />
**aus SW-Uhrenmodell<br />
<br />
*relative Zeiten (Zeiträume) <br />
:--> aus HW-Signal (Interupt)<br />
:--> aus Taktbasis (Schleifen / Zyklen)<br />
::*Auszählung von Takten bei Befehlsabarbeitung<br />
::*Problem: Cache-Sprünge, Unterbrechung durch Interupt, Busrequest<br />
:-->Zwischenform: Zählerregister<br />
::*laufen mit Takt<br />
::*Abfrage per Befehl möglich<br />
::*Sprung / Aktivität bei 0<br />
<br />
=== Zeitabbildung ===<br />
*Zeiträume --> Zyklen<br />
*Zeitpunkte --> Bedingungen, Ereignisse<br />
<br />
== Koordination der Informationsverarbeitung ==<br />
<br />
Zyklen: 3-Phasen-Zyklus<br />
<br />
*''Erfassen'' aller Meßsignale (Eingabe Prozeßabbild)<br />
*''Verarbeitung'' (Algorithmus entsteht Ausgabeprozeßabbild)<br />
*''Ausgabe'' (Ausgabeabbild über Stellsystem an Prozeß)<br />
<br />
<br />
--> 3 Teilprozesse (Tasks) für n Aufgaben<br />
*Anzahl der möglichen Prozesse: n * 3<br />
--> Koordination und Planung erforderlich!<br />
<br />
=== statische Koordinierung ===<br />
<br />
[[Bild:statische_Koordinierung.png]]<br />
<br />
*polling<br />
*feste Reihenfolge (synchrone Programmierung)<br />
*keine sofortige Reaktion ist eher Regel<br />
*nicht variabel<br />
*sehr einfach<br />
<br />
=== dynamische Koordinierung ===<br />
*Reaktion abhängig von Prozeßzustand<br />
*bei überschaubaren (nicht kritischen) Prozessen<br />
*führt auf verteilte Steuerstrukturen<br />
<br />
Formen:<br />
*Polling<br />
**Erfassung aller Prozeßeingangsignale<br />
**Abhängig von Signal wird Reihenfolge festgelegt<br />
*selbstinitiierte Koordination<br />
**kürzere Bearbeitungszeiten<br />
**weniger Einflußnahme auf Ausnahmesituationen<br />
<br />
=== prozeßgesteuerte Koordinierung ===<br />
*Reaktion auf kritische Zustände<br />
*ereignisgetrieben<br />
*feste Bindung an Prozeß über Signale, Ereignisse (z.B. Ts-Interrupt, Alarmsignal)<br />
*asynchrone Programme<br />
**keine Zyklen<br />
**Konflikte durch Prioritäten gelöst<br />
**stochastische Anforderungen mit Bedienmodell modellieren<br />
**Planung ggf. mit Bedienmodellen<br />
**Realisierung über Interuptsignale<br />
<br />
== Reaktionsprogramme mit Prioritätsprinzip ==<br />
<br />
*prozeßgesteuerte Koordinierung<br />
<br />
einfach Realisierung:<br />
*alarmbedingter Programmsprung (kein Rücksprung, RESTART)<br />
*alarmbedingter direkter Programmsprung (HW-Verteiler, Interupt --> Sprung --> Rücksprung)<br />
*alarmbedingter indirekter Programmsprung (SW-Verteiler: entscheidet, wohin gesprungen wird, Sprung --> Rücksprung)<br />
<br />
komplexe Realisierung:<br />
*Echtzeitbetriebssystem (EZBS)<br />
**Prozesse sind Tasks<br />
**Prozesse mit Taskzustandsmodell (TZM) beschrieben<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_1.png]]<br />
<br />
<br />
<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_2.png]]<br />
<br />
== Zeitgerechte Einteilung (Bild 6.4) ==<br />
<br />
Planung: deterministische Systeme (konzentriert)<br />
*Zeiten sind bekannt<br />
**Festlegung<br />
**Messung<br />
**worst-case-Berechnung<br />
*Prioritäten<br />
*Zeiten (Antwortzeiten, Spielraum (<math>s = t_a - t_l</math>))<br />
*Planung / Prüfung (Gannt-Diagramm, ''Bild 6.5 (Prozessorvergabe Antwortzeit & Spielraum)'', ''Bild (Zweiprozessorsysteme)'')<br />
--> ''Bild 6.6''<br />
<br />
Auswahl = f(Ein- oder Mehrprozesse bzw. gleich oder ungleiche Startzeiten der Prozesse)<br />
<br />
=== verteilte determinierte (zyklische) Systeme ===<br />
<br />
*mit unterschiedlichen Zykluszeiten (unabhängig)<br />
<br />
[[Bild:Verteiltedeterministischesysteme.png]]<br />
<br />
<br />
*Gesamtzykluszeit<br />
*Dynamik<br />
*Einzelzykluszeiten<br />
:bestimmen als Verbundelemente (2 bzw. 3)<br />
<br />
--> ''Bild 6.7 (Zeitliches Verhalten eines 2-Elemente-Verbundes)''<br />
<br />
--> ''Bild 6.8 (Antwortzeiten in verteilten deterministischen Systemen)''<br />
<br />
<br />
*Verbundsystem mit Kommunkation<br />
<br />
Gesamtprozeß:<br />
*Gesamtzykluszeit (min, max, average)<br />
*Gesamtlaufzeiten (min, max, average)<br />
<br />
<math>T_{l,min} = T_{l,ADU} + T_{l,Algo} + T_{l,DAU}</math><br />
<br />
=== Zykluszeit des Verbundes ===<br />
<br />
<math>T = max(T_1 , T_2)</math><br />
<br />
=== Extremwert der Verzögerung ===<br />
<br />
<math>\Delta t_{max} = min(T_1 , T_2)</math><br />
<br />
<math>\Delta t_{min} = 0</math><br />
<br />
<math>\overline{\Delta t_{min}} = \frac{min(T_1 , T_2)}{2}</math><br />
<br />
=== Antwortzeit ===<br />
<br />
<math>t_{A,Verbund} = t_{b1} + t_{b2} + \Delta t_{Verbund}(T_1 , T_2)</math><br />
<br />
<math>t_{bi}</math> – Bearbeitungszeiten (Laufzeiten)<br />
<br />
- für n Elemente weitere Zusammenfassung möglich<br />
<br />
=== stochastische Prozesse ===<br />
<br />
*Bedienmodelle / Systeme (Kapitel 7)<br />
*Einplanung nach:<br />
**Ankunft --> Variation von Prioritäten, Warteschlangen<br />
**Laufzeit --> Variation von Prioritäten, Warteschlangen oder shortest remaining processing time<br />
<br />
[[Bild:Stochastischesysteme.png]]<br />
<br />
= Bedientheorie / Bediensysteme =<br />
<br />
*Versuch der Bedienung (echtzeitfähig) von stochastischen Anforderungen<br />
*Versuch stochastische Systeme zu modellieren ?!<br />
:→ basiert auf Wahrscheinlichkeiten<br />
<br />
''siehe Folie 7.1. (Bedienungsanforderungen, Bedienprozesse)'' <br> ''siehe Folie 7.2. (Merkmale von Bedienprozessen und Ankunftsprozessen)''<br />
<br />
== Modell eines Bediensystems ==<br />
''siehe Folie 7.3. (Modellstruktur eines Bedienungssystems)'' <br> ''siehe Folie 7.4. (Einflussgrößen und Bewertungsgrößen von Bedienungssystemen)<br />
<br />
=== Klassifikation von Bedienprozessen ===<br />
*nach sogenannten Kendall-Parametern<br />
''siehe Folie 7.5. (Klassifizierung von Bedienprozessen)''<br />
*bei PR-Anwendung sind poissonverteilte Anforderung und exponentialverteilte Bedienung der "härteste" Anwendungsfall<br />
<br />
=== Statistische Kennwerte ===<br />
''siehe Folie 7.6. (stat. Kennwerte: Anforerungsprozesse (1))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Anforerungsprozesse (2))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Verweilprozesse)'' <br><br />
* analytische Berechnung<br />
* Simulation<br />
* Schätzverfahren<br />
<br />
== Offene Bediensysteme (Folie 7.9.) ==<br />
*keine Rückführung (von Senke auf Quelle)<br />
*Anforderungen nicht Ergebnis einer Bedienung<br />
*Anzahl der Anforderungen → unendlich<br />
<br />
== Geschlossene Bediensysteme (Folie 7.10.) ==<br />
*Rückführung (von Senke auf Quelle)<br />
*Anforderung ist Funktion der Bedienung<br />
*Anzahl der Anforderungen (Quellen, Qi) endlich<br />
<br />
''siehe Folie 7.11. (Bewertungsgrößen für Bedienungssysteme)'' <br><br />
''siehe Folie 7.12. (Berechnungsbeispiele für Antwortzeiten)''<br />
<br />
== Bedienstrategien ==<br />
Funktion von<br />
*System<br />
:*deterministisch<br />
::*verteilt<br />
::*konzentriert<br />
:*stochastisch<br />
*zyklisch / nicht zyklisch<br />
*endlich / unendlich<br />
→ Verusch programmtechnischer Lösung<br />
:*synchron<br />
:*asynchron<br />
:*Mischung<br />
:*EZBS<br />
<br />
= Echtzeitsysteme / Echtzeitprogrammierung =<br />
<br />
Ziel: Programmsysteme, die echtzeitfähig die Anforderungen erfüllen!<br />
<br />
*Zeitbedingungen (zeitgerechte Einplanung)<br />
*Prioritäten<br />
*Synchronisation (Steuerablauf) / Kommunikation von Prozessen (Datenaustausch) <br />
:→ gegenseitige Abhängigkeiten<br />
*Ereignis- / Ausnahmebehandlung<br />
<br />
<br />
Realisierungen:<br />
*synchrone Programme<br />
*Betriebssysteme mit Taskkonzept (asynchron)<br />
**universelle BS (Windows)<br />
**erweiterte universelle BS (EZ-Linux)<br />
**EZ-BS (QNX)<br />
*Echtzeitprogrammiersprachen<br />
<br />
[[Bild:EZS-EZBS.PNG]]<br />
<br />
== Echtzeitbetriebssysteme (EZBS) ==<br />
<br />
*Eigenschaften und Größe = f(Anforderungen)<br />
<br />
Eigenschaften, die über universelle BS hinausgehen:<br />
<br />
:1) direkter Zugang zu E/A-Geräten<br />
::*direkte Programmierung von E/A Schnittstellen<br />
::*gerätespezifische Realisierung (Effizienz)<br />
::*definierte Zugriffszeiten<br />
<br />
:2) Interrupts auf Anwenderebene<br />
::*schnelle Reaktion auf Interrupt auf Algorithmenebene<br />
::*Operationen nötig: Maskierung, Priorisierung, Spezialisierung<br />
<br />
:3) Zeitverwaltung<br />
::*für alle Anforderungen der möglichen Taskplanung<br />
::*Fähigkeit einer EZ-Uhr<br />
<br />
:4) effektives Scheduling<br />
::*effektive Prozessorvergabe<br />
::*Einhaltung aller EZ-Forderungen<br />
<br />
:5) flexible Konfiguration (Skalierung)<br />
::*Anpassung an Umfang der Aufgabe<br />
::*maximale Leistung. minimale Größe<br />
::*Werkzeuge für Skalierung<br />
<br />
Anforderungen der Prozesse verschieden<br />
:--> verschiedene angepasste EZBS-Strukturen!<br />
<br />
--> ''Folie 8.1. (Strukturen von Prozessrechner-Betriebssystemen)''<br />
<br />
=== Abruf-BS ===<br />
*Kontrolle der Programme durch sequentielle Abläufe<br />
--> Takt- / Befehlsabarbeitung<br />
*eingeschränkte EZ-Fähigkeit<br />
*kleine / kompakte Systeme (Signalprozessoranwendungen)<br />
*nicht flexibel<br />
*Problem: Bedienung, Kommunikation, Anzeige<br />
<br />
=== Interrupt-BS ===<br />
*Zeitbasis ist Interrupt!<br />
*Interrupt (HW / SW) führt auf Realisierungsprogramm<br />
*zeitliche Kopplung an HW-Signal<br />
*flexibler: erweiterbar, Abhängigkeiten, Maskieren, ...<br />
<br />
=== Monitor-BS ===<br />
*basiert auf Interrupt (Sammelanforderung)<br />
*sehr flexibel (Monitor(SW) als Scheduler)<br />
*Task sind durch Programmierung beliebig änderbar (Prozesse aufnehmen, entfernen, umpriorisieren)<br />
<br />
=== Taskkonzept ===<br />
<br />
*Prozeß-EZ-System<br />
**Sollwerermittlung<br />
**Erfassungstask<br />
**Verarbeitungstask<br />
**Ausgabe / Shell Task<br />
<br />
*Task-Konzept --> TZM (Task-Zustands-Modell) --> Task hat definiert viele Zustände<br />
*Multi-Task-Betrieb!<br />
<br />
erfüllt werden muß:<br />
<br />
*EZ-Forderungen<br />
**Rechtzeitigkeit<br />
**Gleichzeitigkeit<br />
**Vollständigkeit<br />
: --> erfüllbar mit Verwaltungsstrategien & Umschaltstrategien (Dispatcher)<br />
*Korrektheit<br />
<br />
--> ''Bild 8.2. (Zustandsübergänge von Tasks)''<br />
<br />
Wertung: Taskkonzept<br />
*stellt alle Start-/Umschaltbedingungen bereit die von Prozesssteuerung gefordert werden<br />
*Konflikbehandlung über zusätzliche Prioritäten (o. ä.) möglich<br />
<br />
nötig-weiterhin:<br />
<br />
*Taskkommunikation (Datenaustausch)<br />
*Tasksynchronisation<br />
<br />
zur Synchronisation / Kommunikation Mechanismen<br />
<br />
*Semaphore (Informationsträger)<br />
*Monitore (spezielle Datenstruktur, Daten + Mechanismen)<br />
*Rendezvous<br />
*Bolt-Variable (ähnlich Semaphore)<br />
--> ''Bild 8.3. (Synchronisation von Tasks)''<br />
<br />
=== TZM ===<br />
<br />
Grundlage für:<br />
*Verwaltung / Planung der Takte<br />
*für Umschaltung<br />
<br />
Betrieb von Mehrprozessorsystem<br />
*n-gleiche<br />
:PR1 <----Kommunikation --> Prn<br />
*gemeinsamer BS<br />
<br />
[[Bild:EZS Mehrprozessorsystem.svg]]<br />
<br />
== Prozessprogrammiersprachen (EZ Sprachen) ==<br />
<br />
*zusätzliche Eigenschaften von EZ-Sprachen gegenüber herkömmlichen Prozeßprogrammiersprachen<br />
**Operationen für spezielle E/A<br />
**Operationen für Zeitabarbeitung<br />
**Operationen für Unterbrechungsverarbeitung (Ind, Alarme, dyn. Prozessorkopplung, Bedienkommandos, EA-Signale)<br />
**Operationen für Taskverarbeitung<br />
***z.B. Create<br />
***Terminate (T-Zyklen, T-Prioritäten)<br />
***Awaite<br />
**Operationen für Synchronisierung<br />
**Operationen für Kommunikation (Semaphor, Bolt ...)<br />
<br />
*Sprachen für EZ-Programmierung<br />
**System, Assemblersprachen (CORAL, C, RTL, PLIM, PLIZ)<br />
**erweiterte höhere Sprachen (RT-Fortran, RT-Basic, PL/1)<br />
**Prozessprogrammiersprache (PEARL, Concurrent Pascal, OCCAM)<br />
**Spezialsprachen/Fachsprachen (STEP1, STEP M, MATLAB & Simulink)<br />
*Wege der Realisierung<br />
**vorhandene Speicher<br />
***EZ-C<br />
***EZ-PASCAL<br />
**neu Erstellen<br />
***Ada. Für Multiprozessorsysteme<br />
***Pearl für PDV Systeme<br />
***--> Create REG Ti for n-Times TERMINATOR<br />
[[Kategorie:Studium]]<br />
<br />
Synchronisationsmechanismen in Sprachen: <br><br />
:a) Semaphor --> PEARL <br><br />
:b) Monitor --> PEARL, Modula 2, Concurrent Pascal <br><br />
:c) Rendesvouskonzept --> ADA <br><br />
:d) Bolt-Synchronisation (Riegel) --> PEARL <br><br />
<br />
--> ''Bild 8.6. (Darstellung binärer Signalverarbeitung)''</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Echtzeitsysteme&diff=10392Echtzeitsysteme2012-07-13T07:12:58Z<p>TheMrH: </p>
<hr />
<div>{{Vorlesung<br />
|richtung = alle<br />
|name = Echtzeitsysteme<br />
|kurz = EZS<br />
|mann = Ja<br />
|vorlesend = Kowalski<br />
|ort = K2077<br />
|url = http://www.tu-ilmenau.de/sp/lehre/vorlesungen/echtzeitsysteme/<br />
|urlname = Klick!<br />
}}<br />
<br />
<big>'''Klausurergebnisse'''</big><br />
<br />
<br />
Schein: [http://omega.theweblords.de/wiki/Bild:EZS_Schein.JPG Klick]<br />
<br />
Prüfung: [http://omega.theweblords.de/wiki/Bild:EZS_Pruefung.JPG Klick]<br />
<br />
<br />
<big>'''Vorlesungsmaterial'''</big><br />
<br />
Vorlesungsmaterial unter [http://pi0.theoinf.tu-ilmenau.de/ezbs http://pi0.theoinf.tu-ilmenau.de/ezbs]<br />
<hiddenlogin linktext="Login zum Zugriff (klick me!)">Login: ezbsu / alle9</hiddenlogin><br />
<br />
Zugelassene Hilfsmittel:<br />
<br />
- eigenes VL-Script<br />
<br />
- ein A4-Blatt<br />
<br />
<br />
<big>'''Vorlesungsmitschrift (Angaben ohne Gewähr)'''</big><br />
<br />
= Prozesse – Informatik – Echtzeitsysteme (EZS) =<br />
<br />
== Ziele der Prozeßinformatik (PIF) ==<br />
<br />
*inter-, transdisziplinäres Gebiet<br />
*enger Zusammenhang von PIF und Automatisierung<br />
<br />
'''Ziel:''' zielgerichtete Beeinflussung technischer Prozesse ''(siehe: Bild 1.1)''<br />
<br />
=== Gründe für Automatisierung und PIF ===<br />
<br />
*physische Grenzen<br />
*psychische Grenzen<br />
*humane Grenzen (zu komplex für den Menschen)<br />
*technische / ökonomische Gründe<br />
**Neuartigkeit<br />
**Wirtschaftlichkeit<br />
**"time to market" (Entwicklung und Überführung/Anpassung)<br />
<br />
=== Merkmalsbetrachtung am Beispiel (eingebetteter) EZS (Bild 1.1a) ===<br />
<br />
[[Bild:EZS_1.1a.png]]<br />
<br />
=== Entwurfsrelevante Merkmale ===<br />
*Einbettung in die Umgebung<br />
*Verteilung<br />
*Zeitanforderungen<br />
*Parallelitäten<br />
*Datenhaltung<br />
<br />
=== Nutzerrelevante (Qualitäts-) Merkmale ===<br />
*Erfüllung der Funktion<br />
*Benutzbarkeit (für den Bediener)<br />
*Effizienz (Rechenleistung, Kosten à Zeit / Ressourcen)<br />
*Zuverlässigkeit, Verfügbarkeit<br />
*Änderbarkeit<br />
*Portabilität<br />
*Sicherheitsanforderungen<br />
*gesetzliche Anforderungen<br />
<br />
=== Einordnung von EZS – PDV – Systemen interdisziplinär (Bild 1.2) ===<br />
(PDV – Prozeß-Daten-Verarbeitung)<br />
<br />
[[Bild:EZS_1.2.png]]<br />
<br />
=== Phasen: Analyse / Synthese / Entwurf (Bild 1.3) ===<br />
<br />
[[Bild:Analyse synthese entwurf.png]]<br />
<br />
Verbindung: (Schnittstelle – SS)<br />
*Art der Modellrepräsentation<br />
*Funktionale Modellrepräsentation<br />
<br />
=== Aufgabe für Prozeßinformatik beim EZ-Systementwurf ===<br />
<br />
(1) Erstellung von geeigneten Verfahren und Entwurfswerkzeugen für Automatiker unter Beachtung der Modellrepräsentation<br />
*Aufbereitung, Nutzung standardisierter Werkzeuge<br />
*Erstellung spezialisierter Entwurfswerkzeuge<br />
<br />
(2) direkter Entwurf von Hard- und Software<br />
*Darstellung, Modellierung (allgemeingültig)<br />
*Formalisierung<br />
*Überführung in einen konkreten (einheitlichen) Entwurf<br />
<br />
=> 2 Komplexe für die Vorlesung:<br />
*Systeme, Modelle, ...<br />
*Anforderungen an Systeme bzgl. Echtzeitverhalten (EZ-Sprachen)<br />
<br />
=== Systemplanung: ===<br />
<br />
[[Bild:Systemplanung.png]]<br />
<br />
----<br />
<br />
'''Aussage:''' es existieren<br />
*Vielzahl von Realisierungsmöglichkeiten<br />
*Vielzahl von Kriterien <br />
<br />
'''1) Voruntersuchung'''<br />
*Klärung wirtschaftlicher Fragen<br />
*Kosten-Nutzen-Analyse<br />
*Automatisierungsgrad<br />
<br />
'''2) Grobanalyse'''<br />
*Ziele: <br />
**Grobmodell für Verfeinerung und Implementierung<br />
**Darstellung und Abbildung der möglichen Hierarchie und Struktur<br />
**Auflösung von Elementar- und Einzelprozessen<br />
<br />
'''3) Schema / Konfigurationsaspekte'''<br />
*Meßaufgaben<br />
**Ort-, Wert-, Zeitverhalten<br />
**Verarbeitung, Übertragung, Meßeinrichtung<br />
*Steuerungsaufgabe<br />
**Lokalisierung, Größen<br />
**Zeitverhalten<br />
**Steuereinrichtung (elektrisch, mechanisch, pneumatisch)<br />
*Stellaufgabe<br />
**Ort-, Wert-, Zeitverhalten<br />
**Übertragung<br />
*Bedienaufgabe<br />
**Darstellung, Protokollierung<br />
**Bedienung, Bedienort / Bedieneinrichtung<br />
*Sicherheitsaufgabe<br />
**Vermeidung von Gefährdung bzw. Ausfall<br />
*Sollkonzept<br />
**Lastenheft / Pflichtenheft<br />
<br />
=== Beschreibung von Elementarprozessen ===<br />
*funktional<br />
*Verbund (hierarchisch, konzentriert, ...)<br />
<br />
=== Prozeßstrukturen ===<br />
*statische Strukturen<br />
**Grobstruktur des Aufbaus<br />
**nicht immer Rückschluß auf Funktion möglich<br />
**Blockdiagramme (z.B. Wirkungs- / Transportwege)<br />
*stationäre Strukturen<br />
**analog zu statischen Strukturen<br />
**Darstellung paralleler Abläufe<br />
**Blockdiagramme, ...<br />
*dynamische Strukturen<br />
**Elemente passen strukturell statisch zusammen<br />
**passieren im richtigen Moment (zeitabhängige Übergänge)<br />
**Beschreibung z.B. mit Petri-Netzen (PN)<br />
<br />
== Repräsentations- und Beschreibungsmöglichkeiten ==<br />
<br />
*graphische Beschreibungsmittel<br />
**Beschreibung für Struktur und Funktion möglich<br />
<br />
*in PIF Netzdarstellung<br />
**Instanzennetze<br />
**SADT (erweitertes Instanzennetz)<br />
**Petri-Netze<br />
<br />
*Struktur: Verbindung --- Elemente --- Funktion (statisch / dynamisch)<br />
<br />
*Beschreibungsmittel<br />
**Knoten: Zustände, Speicherung<br />
**Kanten: Übergänge, Wirkrichtung<br />
<br />
[[Bild:Knoten.png]]<br />
<br />
*Beispiel:<br />
**Instanzennetze ''(Bild 1.5)''<br />
***Instanzen, Kanäle, Verbindungen<br />
**SADT - Structured Analyse and Design Technique ''(Bild 1.6)''<br />
***Trennung von Daten- und Funktionsmodell<br />
***Redundanter Entwurf --- Sicherheit<br />
**Petri-Netze ''(Bild 1.7)''<br />
***Besonderheiten: Prozeßübergänge und –dynamik beschreibbar<br />
***geeignet für statische, stationäre und dynamische Strukturen<br />
***mathematisches Fundament<br />
***überführbar in andere Beschreibungsmittel<br />
***Tools vorhanden !<br />
***Plätze, Transitionen, Kanten, Marken<br />
***Schaltregel muß erfüllt sein (Vor- / Nachbedingungen)<br />
<br />
= Begriffe der PIF mit EZS =<br />
== System – Modell – Prozeß ==<br />
<br />
allgemeines Wirkschema<br />
<br />
[[Bild:Wirkschema_allgemein.png]]<br />
<br />
Wirkschema Normalbetrieb<br />
<br />
[[Bild:Wirkschema.png]]<br />
<br />
Prozess ist '''ursächlich'''! --> Quelle/Senke von Daten/Befehlen für Steuerung/Regelung<br />
<br />
'''zur Beobachtung/Führung:'''<br />
<br />
--> PDV-EZS mit folgender Spezifikation<br />
<br />
* Einhaltung zeitlicher Abfolgen und vorgegebener Bearbeitungszeiten (von Prozeß vorgegebene EZ-Bedingungen)<br />
* Echtzeitverarbeitung<br />
<br />
<br />
* ständige Aufnahmebereitschaft der PDV-Systeme für äußere(von Prozeß) / innere (Ausnahmezustände, Fehlermeldungen) Informationen / Ereignisse<br />
*deren schritthaltende Verarbeitung (nach vorgegebenen Algorithmen) zum Zweck der: <br />
** Verarbeitung <br />
** Speicherung <br />
** Transport / Übertragung<br />
<br />
* Daten/Ereignisse aus Gegenwart und Zukunft auch aus Vergangenheit erfolderlich<br />
* Gesamtsystem (oder Teilsystem) müssen geforderte Funktionen erfüllen<br />
* Gesamtsysteme (Teilsysteme) müssen sicher sein<br />
<br />
=== EZ-Forderungen ===<br />
* Rechtzeitigkeit<br />
* Vollständigkeit<br />
* Gleichzeitigkeit<br />
* Korrektheit/Sicherheit<br />
<br />
=== Begriffe ===<br />
* System (aus Sicht der PIF)<br />
** Einheit aus informationstechnischen Maßnahmen zur zielgerichteten Beeinflussung stofflicher, energetischer, informationelle Sachverhalte und Informationsverarbeitungstecnik selbst<br />
** je nach Betrachtung angepasste Modelle für Analyse/Synthese erforderlich<br />
** ''siehe Bild 2.4 / 2.5''<br />
<br />
* Modell<br />
** Abbildung eines Systems mittels einer kognitiven Struktur<br />
*Warum Modellnutzung?<br />
**Ausgangspunkt für Systementwicklung<br />
**Ausgangspunnkt für Systemuntersuchung<br />
**gdw. --> am Original: nicht möglich ist; zu teuer; zu langwierig<br />
<br />
=== Modellausprägungen ===<br />
<br />
* physikalische (materielle Modelle)<br />
** nur bei sehr teuren Zielsystemen<br />
** biologischer Bereich<br />
<br />
* mathematische Modelle<br />
** formale Modelle<br />
** grafisch, numerisch<br />
<br />
[[Bild:Flußdia.png]]<br />
<br />
=== Modellunterscheidung nach Charakter der Modellvariablen ===<br />
<br />
*Modellvariablen<br />
**Zeitbezug (--> dynamische /statische Modelle)<br />
**Wertetyp (--> diskrete / stetige Modelle)<br />
**Determiniertheit (--> deterministische / stochastische Modelle)<br />
*''siehe Bild 2.6''<br />
<br />
<br />
----<br />
<br />
<br />
[[Bild:Modell.png]]<br />
<br />
=== Modellprüfung ===<br />
<br />
* Validierung: Übereinstimmung von Modell und Realität (Bewertung, Kenntnisse der Domäne)<br />
* Verifikation: Übereinstimmung Computermodell und Realität (iterativ Herbeiführen)<br />
<br />
== Technische Prozesse ==<br />
<br />
* Vorgang zur Umformung, Transport, Speicherung von Materie, Energie, Information<br />
* dessen Zustandsgrößen mit technischen Mitteln erfasst werden können und beeinflusst werden können <br />
<br />
(vgl. DIN 66201)<br />
<br />
Unterscheidung wichtig da für verschiedene Grundformen<br />
* angepaßte Regelung-/Führungsstrategien<br />
* Einfluß auf EZ- Systemverhalten <br />
<br />
''siehe Bild 2.7''<br />
<br />
== Informationen in technischen Prozessen ==<br />
<br />
* Kopplung eines: technischen Prozesses und Steuerungssystems ist Ziel!<br />
* erfolgt durch: Informationsgewinn aus dem Prozess und Informationsverteilung in dem Prozess<br />
<br />
<br />
Repräsentation des Systems durch ein Modell ist:<br />
* Darstellung der Systemzustände<br />
* Darstellung der inneren Struktur<br />
<br />
--> erfolgt alles durch Informationen<br />
<br />
<br />
Abbildung der Systemzustände ist Voraussetzung für Prozeßbeobachtung<br />
<br />
[[Bild:Prozeßbeeinflussung.png]]<br />
<br />
*Sensorik: (Messglieder) Informationserfassung für Zustand<br />
*Aktorik: (Stellglieder) Informationsausgabe für Zustandsänderung<br />
<br />
''siehe Bild 2.8''<br />
<br />
=== Signale ===<br />
<br />
*zeitlicher Verlauf einer physikalischen Größe x, die Informationen in sich trägt<br />
<br />
Problem: Darstellung kontinuierlicher, veränderlicher Systemzustände durch Informationen<br />
<br />
[[Bild:EZS-Signale.jpg]]<br />
<br />
*unendlicher Wertevorrat --> wertkontinuierlich, zeitkontinuierlich<br />
*unendlicher Wertevorrat nicht abbildbar in diskreten Systemen<br />
<br />
=== Lösungsansatz ===<br />
<br />
*Quantisierung<br />
**Zustandsbereich auf Intervall beschränken in dem sich Zustandsgröße befindet<br />
**Aufteilung des Intervalls in Inkremente<br />
<br />
*Digitalisierung der Informationen<br />
**Entscheidungsgehalt = Maß für Aufwand zur Klassifizierung der Zustandsgröße<br />
**<math>H_0 = ld(n)</math><br />
**<math>M_Z = \{Z_1, ... , Z_n\}</math> - Zustandsraum<br />
<br />
*Auflösung: kleinste einstellbare, erkennbare Inkrement bezogen auf beschränkten Zustandsbereich<br />
**<math>A = \frac {\hat x - \check x}{\Delta x}</math> Länge des Inkrements<br />
<br />
*Genauigkeit: größte Abweichung des realen Zustandes Xr von seinem durch Information beschriebenem Zustand Xi<br />
**<math>G = \left| X_r - X_i \right|_{max}</math><br />
**<math>g = \frac {\left| X_r - X_i \right|_{max}}{X}</math> relative Genauigkeit<br />
<br />
*Abtastung<br />
**Informationserfassung nur alle <math>\Delta t</math> (<math>\Delta t</math> > 0)<br />
**--> Zeitdiskretisierung<br />
<br />
[[Bild:EZS-Abtastung.jpg]]<br />
<br />
=== Diskussion ===<br />
<br />
*Abtastfrequenz >> Signalfrequenz<br />
*bei Anwendung können A und G (gleich und) verschieden sein<br />
**hohe A bei kleiner G für Langzeitmessung<br />
**G > A – falsche Abbildung der physikalischen Zustände<br />
*Normalfall: A >,>> G<br />
*Fakt: ADU, DAU --> A > G , G – schlechterer Wert<br />
<br />
= Prozeßlenkung, Prozeßkopplung, Prozeßrechner =<br />
<br />
[[Bild: EZS-Prozess.jpg]]<br />
<br />
Sensor:<br />
*erfassen x(t)<br />
*wandeln x(t) in x(<math>\Delta</math>t)<br />
<br />
Verarbeitung: diskret<br />
<br />
Aktor:<br />
*stellen<br />
*wandeln y(<math>\Delta</math>t) in y(t)<br />
<br />
zeitdiskretes Signal<br />
*fungiert über diskrete Zahlenfolgen <math>x_i</math><br />
*führt auf <math>y_i</math><br />
<br />
== Untersuchung von Systemen ==<br />
<br />
(1) statische Systeme<br />
*y(t) hängt ausschließlich von x(t) ab<br />
<br />
[[Bild: EZS-Linear.jpg]]<br />
<br />
(2) dynamische Systeme<br />
*y(t) hängt zumindest in einem Zeitpunkt <math>T_1</math> von der Zeit und nicht nur von x(<math>t_x</math>) ab<br />
<br />
[[Bild: EZS-Knick.jpg]]<br />
<br />
=== Unterscheidung durch Linearität ===<br />
<br />
(1) lineare statische Systeme<br />
*g.d.w. Überlagerungssatz gilt<br />
*<math>f(x_1 + x_2) = f(x_1) + f(x_2)</math><br />
<br />
(2) lineare dynamische Systeme<br />
*für E-/A-Signale aus Vergangenheit und Gegenwart gilt Überlagerungssatz<br />
*<math>f(x_1(t) + x_2(t)) = f(x_1(t)) + f(x_2(t))</math><br />
*ist das nicht so: nichtlineare Systeme!<br />
<br />
=== Verhalten in linearen dynamischen Systemen ===<br />
<br />
<br />
[[Bild:EZS - Verhalten in linearen dynamischen Systemen.jpg]]<br />
<br />
=== mögliche Systemklassen ===<br />
<br />
[[Bild:Systemklassen.svg]]<br />
<br />
*lineare (insbesondere statische) Systeme lassen sich sehr gut beschreiben durch<br />
**Datenflußgraphen (DFG)<br />
**Signalflußgraphen (SFG)<br />
*''siehe Bild 3.3. (DFG / SFG)''<br />
**gerichteter Graph<br />
**Richtung entspricht Datenfluß<br />
<br />
Funktionsbeispiel: <math>y = a \cdot (b + c)</math> <br />
*Knoten / Plätze: Datenspeicher / Variable (a, b, c, y)<br />
*Operatoren: Operationen (ADD, MULT)<br />
<br />
[[Bild:EZ addmul.svg]]<br />
<br />
Defizit: Reihenfolge der Abarbeitung (Steuerfluß) fehlt<br />
<br />
=== Grundstrukturen ===<br />
<br />
*Reihenschaltung<br />
<br />
[[Bild:EZ reihe.svg]]<br />
<br />
*Parallelschaltung<br />
<br />
[[Bild:EZ parallel.svg]]<br />
<br />
*Rückkopplung<br />
**Gegenkopplung (Regler)<br />
**Mitkopplung (Oszillator)<br />
<br />
[[Bild: EZS - Rückkopplung.jpg]]<br />
<br />
== Struktur hierarchischer Prozeßlenkungen ==<br />
<br />
Ziel:<br />
[[Bild:EZ Bild3.2.1.svg]]<br />
<br />
Vorraussetzung: Erfassung des Streckenzustandes<br />
<br />
=== Strecke ===<br />
<br />
*Teil des Systems<br />
*technische bzw. physikalische Größen gemäß Zeitfunktion<br />
*meist zeitkontinuierlich<br />
*Streckenmodell durch Messen / Berechnen ermitteln<br />
<br />
=== Art der Einflußnahme ===<br />
<br />
*Steuerung<br />
**ist rückwirkungsfrei<br />
**SFG zyklenfrei<br />
**n-Eingangsgrößen möglich<br />
**Stellgrößen sind Ausgang<br />
**Führungswertsteuerung über externe Führungswerte<br />
**''siehe Bild 3.6''<br />
*Regelung<br />
**geschlossene Wirkungskette<br />
**Regelabweichung = Istwert – Führungswert<br />
**„Regeltechnisches Paradoxon“<br />
**Führungsbetrieb<br />
**Störbetrieb (externe Störungen)<br />
<br />
=== Automatisierungsziel ===<br />
<br />
*einfach --> einfaches PDV-EZS (autonomes) Automatisierungssystem <br />
*komplex<br />
**Dekomposition, Funktion, Hierarchie<br />
**Taxonomie --> PDV-EZS als Rechnerverbund<br />
*''siehe Bild 3.6''<br />
*Rechnerverbund --> Ebenen --> Zeitebene, Intelligenz, Komplexität<br />
<br />
=== Besonderheiten der Ebenen ===<br />
<br />
(1) Prozeßebene<br />
*direkte Prozeßüberwachung, -beeinflussung (Steuerung / Regelung)<br />
*Elementar-, Einzel-, Verbundprozesse<br />
*Kopplung Sensor --> Steuerung --> Aktor direkt oder über Busse (z.B. ASI-Bus)<br />
*Bedienung: prozeßnah<br />
**Handbetrieb<br />
**Normalbetrieb<br />
<br />
(2) Operativebene<br />
*Überwachung und Bedienung von Gruppen- und Einzelreglern (gegebenenfalls Backup)<br />
*Einzel-, Verbundprozesse<br />
*Bindeglied zwischen (1) und (3) – Koordinationsebene<br />
<br />
[[Bild:EZ Bild3.2.2.svg]]<br />
<br />
*Kopplung: EZ-Busse (z.B. CAN, Profi-Bus, Interbus)<br />
*Bedienung:<br />
**problemspezifische Programmierumgebung<br />
**Funktionstastaturen<br />
**Ausgabe: Störmeldungen, Protokolle, Trendanalyse<br />
<br />
(3) Koordinationsebene<br />
*Gruppen der Operativebene zusammengefaßt <br />
*Funktionskoordinierung:<br />
**Voraussetzung für Prozeßlenkung über Leitrechner<br />
*Funktionsoptimierung:<br />
**max. Effizienz der Teilprozesse nach gemeinsamen Zielfunktionen<br />
*Verbundprozesse<br />
*Kopplung:<br />
**(3) --> (2): EZ-Busse<br />
**(4) <-- (3): nicht EZ-Busse, (EZ-Busse möglich)<br />
*Redundanz für (2) (abhängig von Kopplung: EZ / nicht EZ)<br />
*Bedienung:<br />
**Abfrage aller unteren Ebenen (z.B. Bedienung von (2))<br />
**Programmierumgebung<br />
**Steuerstrategien<br />
<br />
(4) Leitebene / Managementebene<br />
*zentrale Leitung des Ausgabesystems (Automatisierungssystems)<br />
*Betriebsprozesse<br />
*Planung / Statistik / wirtschaftliche Strategie<br />
*Trennung zwischen System und Umgebung<br />
*Kopplung (4) --> (3): nicht EZ-Busse (möglich mit EZ-Busse)<br />
*Bedienung:<br />
**leistungsfähige (graphische) Programmierumgebung<br />
**Protokollierung / Archivierung<br />
<br />
=== Zeithorizonte der Ebenen ===<br />
<br />
[[Bild:EZ Bild3.2.3.svg]]<br />
<br />
bei ms-s (auch bei min): größte EZ-Forderung<br />
<br />
konkrete Aufgabenstellung in der Hierarchie bestimmt:<br />
*Zeitforderungen / Abläufe der Kopplung<br />
*Enge der Kopplung einer Rechners an den Prozeß<br />
*Eingriffsmöglichkeiten von Mensch und / oder Rechner auf den technischen Prozeß<br />
*--> Unterscheidung von Kopplungsprinzipien (nötig!)<br />
**Stärke der Kopplung<br />
**Mitwirkung Mensch, Rechner<br />
<br />
Varianten:<br />
*Mensch --> technischer Prozeß<br />
*Rechner --> technischer Prozeß<br />
*Mensch --> Rechner<br />
<br />
[[Bild:EZ Bild3.2.4.svg]]<br />
<br />
=== Kopplungsprinzipien ===<br />
<br />
*'''handbediente Prozesse'''<br />
[[Bild:EZS - Handbediente Prozesse.jpg]]<br />
**Mensch beobachtet & steuert --> alle Aufgaben der Prozesssteuerung bei Menschen --> geringere Komplexität<br />
**ggf. Kleinkraftwerke, Heizanlagen <br />
<br><br />
*'''indirekte Prozesskopplung'''<br />
**'''off-line'''<br />
**[[Bild:EZ offline petri.svg]]<br />
***Rechner muss nicht EZ-Fähig sein<br />
***Mensch ist Bindeglied zwischen ZP und Prozessrechner<br />
***keine zeitliche Bindung<br />
***offline Datenübergabe, -abholung<br />
<br><br />
**'''in-line'''<br />
**[[Bild:EZ Inline petri.svg]]<br />
***zeitliche Bindung<br />
***parallele Berechnung komplexer Algorithmen mit Rechner<br />
***als Vorgabe für Menschen, Mensch steuert nach wie vor (z.B. Prozessrechner errechnet komplexe Steuerdaten, aber Mensch führt Steuerung aus)<br />
<br><br />
*'''direkte Prozesskopplung'''<br />
**enge zeitliche Kopplung<br />
**Bediener möglichst ausserhalb der Kette<br />
**z.B. Fahrerloser Betrieb<br />
**Prozessrechner wird möglichst in Prozess integriert<br />
**siehe [http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap3/Bild%20_DirProz-koppl_3__.pdf Bild 3._]<br />
<br />
Rechner zur Kopplung technischer Prozeß à Prozeßrechner (PR)<br />
<br />
== Prozeßrechner ==<br />
<br />
*'''2 Arten:'''<br />
**erweiterte technische Lösung einer allgemeinen Universalrechnerstruktur (Operativ-, Kooperativebene) mit spez. PR-Elementen, -eigenschaften <br>(operativ- oder Kooperationsebene)<br />
**spezielle Realisierung mittels Mikroprozessoren als integrierte Systeme (Operativ- und / oder Prozeßebene)<br />
<br><br />
'''zu Bild 3.7.:'''<br />
<br />
*leistungsfähiger Rechenkern<br />
**modularer Aufbau<br />
**Konfigurierung von Meß- und Stellperipherie<br />
**(z.B. bis 100 Regelkreise)<br />
<br><br />
*Prozeßperipherie<br />
**peripheres Gerät = f(Aufgabenstellung) (bereits im Sys vorhanden oder ggf neu entwickeln)<br />
***Bsp.: Gerät = Druckmesser, Aufgabe = Druckmessung, ...<br />
**oft höhere Kosten als zentrale Verarbeitungseinheit<br />
**bestimmen maßgeblich Signalverhalten, Zeitverhalten, Sicherheit<br />
<br><br />
*Kommunikationsperipherie<br />
**Peripherie für Bedienung / Beobachtung<br />
**Kommunikation mit Bediener<br />
**Programmierung (Entwickler) / Parametrierung (Bediener)<br />
** --> für Systemkommunikationund<br />
***Rechnerverbund (funktionale Vernetzung von Rechnern)<br />
***fernwirk EA-Bindung<br />
***für Systemstart und Führung<br />
<br><br />
zu Bild 3.8.: spezieller PR-Chip als kleinste PR-Architektur<br />
<br />
*Ansatz<br />
**Aufgaben klein (bis mittel)<br />
**Verteilung von Aufgaben auf „kleine“ Systeme<br />
*Vorteile<br />
**dezentrale (parallele) Verarbeitung<br />
**hohe (Verarbeitungs-)Geschwindigkeit<br />
**kurze Wege für Prozesse & E/A<br />
**hohe Zuverlässigkeit (Redundanz)<br />
**überschaubarer Hard- / Softwareentwurf<br />
**geringe Kosten<br />
**=> möglich als Funktionsrechnerkonzept<br />
**=>erhöhter Kommunikationsaufwand<br />
**=>Anforderungen an Kommunikationsperipherie steigen<br />
<br />
*Komplexität der Prozesse<br />
**Komplexe Struktur, Topologie<br />
**Komplexe Funktion<br />
** ggf beides<br />
<br />
*=> PR-Architekturen<br />
**Mehrrechnerarch.<br />
**Einrechnerarch.<br />
**Mehrprozessorarch.<br />
**Einprozessorarch.<br />
<br />
Komplexe Systeme<br />
*Verteilung<br />
*Realisierung als Mehrprozessorsystem bzw. Mehrrechnersystem<br />
<br />
=== Prozeßrechner als Mehrprozessorsystem (Bild 3.9) ===<br />
<br />
[[Bild:PR_als_Mehrprozessorsystem.PNG]]<br />
<br />
*Verbindungssystem für Informationsaustausch (allgemeiner Bus, Speicherkopplung)<br />
**fest über Speicher<br />
**interne Busse<br />
*es entstehen verschiedene Zeitebenen in den Knoten und beim Informationsaustausch<br />
*Konzept: hohe Rechenleistung und gewisse Universalität<br />
*Coprozessoren:<br />
**Arithmetik<br />
**E/A-Verkehr<br />
**Speicher-Verkehr<br />
**Busverkehr<br />
**Besonderheit: Kommunikationssystem erforderlich<br />
***innerhalb Busse, Speicher<br />
***außerhalb<br />
****Speicher (global; Punkt zu Punkt)<br />
*Eigenschaften:<br />
**Universalität / hohe (angepasste) Rechenleistung<br />
**Ergänzung von fehlenden Eigenschaften der Co-Prozessoren<br />
**einzelne Prozessoren => lose Kopplung, interne Busse<br />
**zusätzliche Kommunikationskanäle (in Umgebung)<br />
<br />
a) einzelne Prozessoren – feste Kopplung über gemeinsamen Speicher (intern), Bussysteme<br />
<br />
b) zusammenhängende Kommunikationskanäle<br />
*E/A-Kommunikation<br />
**Punkt zu Punkt<br />
**Busse (Linie, Ring, Stern)<br />
<br />
=== Prozeßrechner als Mehrrechnersystem (Bild 3.11) ===<br />
<br />
[[Bild:PR_als_Mehrrechnersystem.PNG]]<br />
<br />
(einzelne Rechner kommunizieren über Speicher/Busse)<br />
<br />
Multicomputersysteme<br />
*System aus (gleichartigen) selbstständigen einzelnen Rechnern (Prozessor, Peripherie, Speicher)<br />
*Verbindungssystem zwischen Rechnern für Informationsaustausch erforderlich<br />
**feste Kopplung (gemeinsame, globale Speicher)<br />
**lose Kopplung (Gerätekopplung, E/A-Kopplung)<br />
<br />
=== Spezielle Mehrprozessorsysteme (Bild 3.12) ===<br />
<br />
Ansatz:<br />
*Leistungsfähige Verarbeitung<br />
*zusätzliche leistungsfähige Kommunikation<br />
<br />
[[Bild:EZ Transputer.svg]]<br />
z.B. für Vektor- & Matrizenrechnung<br />
<br />
Transputersysteme:<br />
*CPU + zusätzliche IO-Prozessoren (mit mehreren Kanälen) bilden einen Knoten (Rechner)<br />
<br />
Abschätzung:<br />
*Aufwand reine Rechenzeit<br />
*Aufwand Übertragung über Links<br />
<br />
== Echtzeitkommunikation / Busse / EZ-Busse ==<br />
<br />
[[Bild:3.4.PNG]]<br />
<br />
=== Anforderungen an EZ-Busse ===<br />
<br />
*definierte Antwortzeiten (Busübertragungszeit)<br />
*Übertragungssicherheit<br />
*Fehlererkennung und –behebung<br />
*Verfügbarkeit, Preis<br />
*effiziente Protokolle (Geschwindigkeit)<br />
*Standardisierung (breite Anwendung)<br />
<br />
=== Beispiel ===<br />
*ASI: Aktor-Sensor-Bus (Interface)<br />
**Master Slave Bus<br />
**begrenzte Adressierbarkeit<br />
**begrenzter Datenaustausch (Sensorabfrage)<br />
**verbinden "intelligenter" E/A<br />
**Prozeßebene (Sensor-Aktor-Ebene) <-> technischer Prozeß<br />
<br />
*CAN-Bus: (Profibus, Interbus) à siehe Folie<br />
**Regelungs-Steuerungs-Ebene<br />
<br />
= Prozeßperipherie =<br />
<br />
Aufgabe: Prozeßdaten vom und zum Prozeß zu übertragen!<br />
<br />
Unterscheidung: Prozeßgrößen (Sicht Automatisches System)/ Prozeßdaten (Sicht Prozessrechner) aus der Sichtweise<br />
<br />
Übertragungsart von parallel => seriell<br />
<br />
[[Bild: EZS - Prozessperipherie.jpg]]<br />
<br />
--> siehe Bild 4.0 – Prozeßgrößen<br />
<br />
*Prozeßperipherie:<br />
**erfaßt bzw. überträgt zum Prozeß<br />
**Prozeßdaten: analog, digital, binär (gemischt-hybrid)<br />
<br />
== Prozeßzustandserfassung ==<br />
<br />
klassifizierbar nach:<br />
*Auslösen der Zustandserfassung (Steuerungssystem, technischer Prozeß)<br />
*Dauer der Prozeßzustände (statisch, dynamisch)<br />
<br />
--> n-Tupel Tabelle<br />
<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! Initiator der Prozeßzustandserfassung <br />
| colspan="2" | '''Dauer der Prozeßzustände'''<br />
|-<br />
| <br />
|| langfristig <br />
|| kurzfristig<br />
|-<br />
| Steuerung <br />
|| statische Zustandssignale <br />
|| dynamische Zustandsignale<br />
|-<br />
| technischer Prozeß <br />
|| statische Alarmsignale <br />
||dynamische Alarmsignale<br />
|}<br />
<br />
=== Statische Zustandssignale (siehe Folie 4.1) ===<br />
<br />
*Prozeßsteuerung fordert zu definierten Zeiten regelmäßig Informationen aus Prozeß an, um bestimmte Reaktionen auszuführen<br />
*nur sinnvoll, wenn <math>\frac{1}{T_S} > \frac{1}{T_P}</math> (Anforderungsrate Prozeßsteuerung > Änderungsrate des Prozesses)<br />
*Erfassung relevanter Zustände mit Abtasttheorem ( <math>f_{abtast} \ge 2 \cdot f_{Prozess}</math> )<br />
<br />
=== Dynamische Zustandssignale ===<br />
<br />
*kurzfristige Zustandsänderungen die erfaßt werden müssen, wenn <math>T_P < T_S</math> (Dauer eines Prozeßzustandes < Periodendauer für Erfassung/Reaktion)<br />
*Zustandsänderung dynamischer Signale müssen gepuffert werden (Aufheben)<br />
--> Betriebsart: Taste-Halte-Glied (analog)<br />
*D-Flip-Flop (binär)<br />
*bis zum Überschreiben bleibt Pufferwert gültig<br />
*sinnvoll auf kurzfristige Ereignisse<br />
** wenn nicht schritthaltend reagiert werden muß<br />
*(Vorteil: Vermeidung von Busy-Waiting)<br />
*wenig Aufwand f. extrem seltene Signale<br />
<br />
=== Statische Alarmsignale ===<br />
<br />
*zeigen längerdauernde (insbesondere binäre) Zustände an<br />
*erweiterte Möglichkeit zur Abfrage und Auswertung von Prozeßsignalen durch:<br />
**Wegfall der zyklischen Abfrage bei seltenen Zuständen (vermeidet "busy-wait")<br />
**oder um bei Eintreten solcher Zustände unmittelbare Reaktionen zu veranlassen <math>T_P >> T_S > T_R</math> (Reaktionszeit)<br />
**oder wenn während bestimmter Zustände im Prozeß keine Zustandserfassung möglich ist (Grenzwertüberschreitungen)<br />
**Wunsch statischer Meldungen ständig verfügbar z.B. für Wiederaufruf (aus Reset, kritischer Zustand)<br />
*speichern möglich<br />
<br />
=== Dynamische Alarmsignale ===<br />
<br />
*Informationsparameter ist zeitlicher Ereignispunkt eines bestimmten Zustandswechsels<br />
*erfordert sofortige Reaktion im aktuellen Zyklus mit hoher Priorität<br />
*auffangen/speichern/reagieren<br />
*erfordert geeignete Maßnahmen zur Prozesszustandsabhängigen Steuerung<br />
*Reaktionszeit entspricht Prozeßzeit <br/> --> echtzeitfähige Reaktion<br />
**geht über Erfassung von Zustandssignalen hinaus<br />
<br />
''//Bild''<br />
<br />
*Reaktion echtzeitfähig aus jedem beliebigen Zustand der PR-Steuerung heraus<br />
<br />
== Funktionen und Funktionsgruppen der Prozeßperipherie ==<br />
<br />
Hauptfunktionen:<br />
*Abtastung<br />
*Quantisierung (Grenzwerte, Messbereich, Stückelung)<br />
*Digitalisierung<br />
<br />
Nebenfuntionen:<br />
*Signalanpassung (Pegelanpassung, Schaltungsanpassung)<br />
*Signalübertragung<br />
*Eliminierung von Störungen<br />
<br />
Realisierung:<br />
*Hardware (ADU, DAU, RC-Filter, ...)<br />
*Software (Kodiealgorithmen, Filteralgorithmen, ...)<br />
<br />
*Messgrößen klassifizierbar --> ''Bild 4.2.''<br />
<br />
*vollständige Meßkette / Stellkette<br />
**n-stufig<br />
**Realisierung durch Hardware und Software<br />
*Signale:<br />
**elektrisch, nicht elektrisch<br />
**analog, digital, ...<br />
*Eigenschaften der Signale erfordert spezielle Prozeßperipherie<br />
<br />
=== Klassifikation der Prozeßsignale ===<br />
<br />
a) nach Aufbereitung der Signale im Meßprozeß<br />
*primäre Meßwerte<br />
**direkt am Prozeß aufgenommen<br />
**"unverfälscht" (außer eventuelle Sensorfehler)<br />
**dem Prozeßzustand zugeordnet<br />
**z.B. Füllmenge einer Flasche<br />
*sekundäre Meßwerte<br />
**entstehen nach mindestens einer Umwandlung aus primären Meßwerten<br />
**können zusätzliche Fehler aufweisen<br />
**z.B. Füllhöhe auch von Form abhängig nicht nur von Füllhöhe<br />
<br />
b) nach technischer Natur<br />
*elektrische Meßwerte<br />
*nichtelektrische Meßwerte (Mehrzahl in der Natur)<br />
<br />
c) nach zeitlichen Verhalten<br />
*statische Signale<br />
**Werte sind zeitlich konstant<br />
*stationäre Signale<br />
**über längere Zeit wie statische Signale<br />
**bei Bedarf änderbar<br />
*quasistationäre Signale<br />
**verhalten sich wie stationäre Signale<br />
**langsame Änderung möglich<br />
**z.B. Temperatur<br />
*dynamische Signale<br />
**schnelle Änderung der Signalparameter möglich<br />
**nicht nur Momentanwert, auch Änderungsrate / Gradient ggf. interessant<br />
*Ereignisse (Alarme)<br />
**sprunghafte Änderung entscheidet<br />
**nicht unbedingt Wert interessant sondern Tatsache, dass Änderung eintritt (qualitativ)<br />
**Richtung und/oder Zeitpunkt interessant<br />
**z.B. Inkrementalgeber<br />
<br />
d) Klassifikation nach Signalformen<br />
*Gestaltung der Peripherie<br />
*beschreibt wie<br />
**Signal vom Meßglied bereitgestellt wird<br />
**vom Stellglied erwartet wird<br />
<br />
--> ''Bild 4.3.''<br />
<br />
*analoge Signale: konstante Änderung, jeder beliebige Wert möglich<br />
*diskontinuierliche Signale: zu bestimmten Zeitpunkten jede beliebige Amplitude möglich<br />
*diskrete Signale:<br />
**wertdiskret (endlich viele Werte möglich)<br />
**zeitdiskret (endlich viele Zeitpunkte möglich)<br />
**wert- und zeitdiskret<br />
*binäre Signale: 2 Zustände<br />
*Impulsfolgen: Impulsabstand / Impulsanzahl<br />
*Abtastimpulse<br />
<br />
=== Zusammenfassung ===<br />
<br />
*Prozeßperipherie muß an speziellen Charakter der Meß-/Stellwerte angepaßt werden<br />
*leider häufig neu entwickelt werden<br />
*im Regelfall (PDV) sind es quasistationäre bzw. dynamische, nichtelektrische, analoge Meßwerte (als Primärsignale)<br />
*aus Signalart folgt:<br />
**Art der Meßgeräte zur Prozesssignalerfassung (''Bild 4.4.'')<br />
**Kette der Prozeßgrößenaufnahme (''Bild 4.5.'')<br />
<br />
==Prozessgrößenaufnahme==<br />
<br />
Ziel: Umwandlung v. Prozessgrößem in Prozessdaten (Zustandsgrößen, Alarme)<br />
Ausgangspunkt --> angepasste Umsetzung => aus Klassifikation der Signale<br />
=> angepasste Umsetzung/Mess- bzw. Stellkette<br />
<br />
===a) nach Aufbereitung der Signale im Messprozess:===<br />
*primäre Messwerte:<br />
**direkt am Prozess gewonnen<br />
**unverfälscht (evtl. Fehler des Sensors)<br />
**Prozesszustandand zugeordnet<br />
**z.B. Füllhöhe in Behälter<br />
*sekundäre Messwerte:<br />
**enstehen nach mindestens einer Umformung<br />
**können zusätzliche Fehler haben<br />
**z.B. Füllhöhe indirekt über Gewicht bzw. Winkelauslenkung ermitteln<br />
<br />
===b) nach technischer Natur===<br />
*elektrische Signale (Messwerte)<br />
*nichtelektrische Signale (-"-) (Mehrzahl in der technische Anwendung)<br />
<br />
===c) nach zeitlichem Verhalten===<br />
*statische Signale: zeitlich konstant (gegebenenfalls in bezug auf Arbeitsprozess)<br />
*stationäre Signale:<br />
**konstante Sollwertparameter für bestimmte Zeit<br />
**Parameter/Sollwert mit wenig Änderung<br />
*quasistationäre Signale:<br />
**ähnlich zu stationären Signalen<br />
**sehr langsame Zustandsänderung<br />
**(Bsp.P Temperaturänderung bei großen Massen)<br />
*dynamische Signale:<br />
**schnelle Änderung der Sollparameter<br />
**nicht nur Momentanwert sondern auch Gradient interessant<br />
**zum Beispiel gedämpfte Schwingung: interessante Parameter sind: Dämpfung, Frequenz, Startamplitude, Gradient...<br />
*Ereignisse (Alarme):<br />
**sprunghafte Änderung der Signale<br />
**nicht nur Wert der Veränderung bedeutsam<br />
**sondern gegebenenfalls auch Zeitpunkt bzw. Richtung<br />
<br />
===d) nach Signalform===<br />
*[http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap4/ArBl_K_4d.pdf siehe hier]<br />
*relevant für Gestaltung der Prozessperipherie<br />
*beschreibt wie Signal vom Messglied bereitgestellt/aufgenommen wird bzw. vom Stellglied benötigt wird<br />
*Formen:<br />
**analoge Signale:<br />
***kontinuierliche Änferung<br />
***innerhalb der bestimmten Grenzen ist jeder Wert möglich --> unendlicher Wertevorrat<br />
**diskontinuierliche Signale:<br />
***Veränderung sprunghaft<br />
***Signalwerte innerhalb der Grenzen<br />
**diskrete Signale<br />
***wertediskret<br />
***Zeitdiskret<br />
***kombination aus beiden --> Abtastsignal<br />
**quantisierte Signale: quantisierte Änderung möglich<br />
**binäre Signale: nur 1 und 0 als Zustand möglich<br />
**Impulsfolgen:<br />
***Information in <math>\Delta t</math><br />
***Information in der Anzahl der Impulse<br />
**Abtastimpulse <br />
***quantisiert aber nur über bestimmtes Zeitraster<br />
**PBM(PWM): <br />
***Pulsbreitenmoduliertes Signal<br />
***Information stecken im Verhältnis von 0 zu 1 bereichen<br />
*'''Zusammenfassung:'''<br />
**Prozessperipherie muss Charakter der Messwerte angepasst werden!<br />
**--> muss daher häufig neu entwickelt werden<br />
**im regelfall:<br />
***quasistatisch bzw. dynamische<br />
***nichtelektrische analoge Größen<br />
***als primäre Messwerte<br />
*aus Signalart:<br />
**--> Arten von Messgeräten --> vgl. Bild 4.4<br />
**Konkrete Kette der Prozessgrößenaufnahme --> vgl Bild 4.5<br />
<br />
== Quantisierung / Digitalisierung ==<br />
<br />
*Prinzip A/D-Umsetzung<br />
<br />
[[Bild:ad-umsetzer.png]]<br />
<br />
[[Bild:uf-umsetzer.png]]<br />
*U ≙ kontinuierliches Signal<br />
*F ≙ Zählsignal (digital)<br />
*UF-Umsetzung langsamer als A/D Umwandlung<br />
<br />
<br />
*Prinzip D/A-Umsetzer<br />
<br />
[[Bild:da-umsetzer.png]]<br />
<br />
[[Bild:fu-umsetzer.png]]<br />
*F ≙ Zählsignal (digital)<br />
*U ≙ kontinuierliches Signal<br />
<br />
== Prozeßgrößenübertragung ==<br />
<br />
Grundfunktionen<br />
*Anpassung des Signals an physikalische Anschlussbedingungen<br />
**Schaltungsanpassung (Widerstände, Potentialtrennung, Rückwirkungsfreiheit)<br />
**Pegelanpassung (Verstärkung Meßsignal, Wandlung I → U)<br />
*Übertragung<br />
**räumliche Trennung Meßgröße, Prozessrechner, Stellorgan<br />
**Fernwirksysteme<br />
*aus Übertragung folgt:<br />
**Signalverhalten<br />
**Übertragungseigenschaften<br />
**Störempfindlichkeit<br />
**Kosten<br />
<br />
--> ''siehe Bild 4.8.-10.''<br />
<br />
=== Multiplexen / Demultiplexen ===<br />
(Technik zur Umsetzung vieler Signale)<br />
<br />
--> ''Bilder auf den Folien 4.11. / 4.12''<br />
<br />
== Steuergröße, Stellglieder, Stelleinrichtung ==<br />
[[Bild:Bild 4.5.1.svg]] <br />
<br />
'''Steuergröße:'''<br />
* wirkt auf Stellglied<br />
* direkte Wirkung auf Stellgröße (Strom → Heizung)<br />
<br />
''' Stellgröße '''<br />
* wirkt am Stellort (Durchfluss bei Ventilen)<br />
* praktisch geringere Vielfalt als P-Messgrößen<br />
* Klassifizierung nach verschiedenen Gesichtspunkten<br />
--> Bild 4.14<br />
<br />
''' Statisches Verhalten'''<br />
* durch Kennlinie<br />
** Eingang ist Funktion vom Ausgang E=f(A)<br />
** z.B. Drehzahl (Fördermenge)<br />
* stetige Kennlinie<br />
** monoton<br />
** kontinuierlich<br />
** → stetiger Algorithmus<br />
* schaltende Geräte (diskrete Werte)<br />
** 2-Punkt Regelung (an/aus)<br />
** 3-Punkt Regelung (+,aus,-) z.B. Motor (rechts, aus, links)<br />
<br />
'''dynamisches Verhalten'''<br />
* Stellglieder sind in der Regel langsamer als Messglieder (Mechanische/Thermische Geräte)<br />
* Zeitverhalten muss im Prozess berücksichtigt werden (als Sprungantwort/ Impulsantwort)<br />
* ermitteln durch Testsignale (Sprung, Impuls ...)<br />
* oft zusätzliches nichtlineares Verhalten → Einfluss auf das Gesamtkonzept<br />
* Siehe Bild "Unterscheidung nach Sprungantwort"<br />
[[Bild:Bild 4.5.2.svg]]<br />
<br />
*dezentrale Systeme<br />
** z.B. Messglieder, Stellglieder, Busse<br />
** z.B. verschiedene Tastzeiten (TS)<br />
*** Tsalgo, TsADU → Verschiebung durch nicht Synchrone Ts möglich (siehe später)<br />
<br />
= Grundlagen der Regelung mit Digitalreglern =<br />
→ Regelkreis<br />
<br />
[[Bild:Bild 5.1.svg]]<br />
<br />
x: Regelgröße / Zustandsgröße<br />
<br />
w: Führungswert<br />
<br />
u: Regelabweichung<br />
<br />
== Beschreibung linearer dynamischer Systeme ==<br />
f[x1(t)+x2(t)] = f[x1(t)] + f[x2(t)] <br><br />
→ Überlagerungssatz gilt !<br><br />
[[Bild:Bild_5.2.svg]]<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! bgcolor="#BBBBBB" | Elementar Signal<br />
! bgcolor="#BBBBBB" |Transformation<br />
! bgcolor="#BBBBBB" | häufige Anwendung<br />
|-----<br />
| [[Bild:Bild 5.3.svg]]<br />
Stoß, Spalt<br />
|Faltungsintegral<br />
|allgemein<br />
|-----<br />
| [[Bild:Bild 5.4.svg]]<br />
Sprung<br />
|Laplace Transformation<br />
|Automatisierungstechnik<br />
|-----<br />
| [[Bild:Bild 5.5.svg]]<br />
Cosinus<br />
|Fouriertransformation<br />
|Nachrichtentechnik<br />
|-----<br />
| [[Bild:Bild 5.6.svg]]<br />
periodische Stoßfolge<br />
| Z-Transformation<br />
|zeitdiskrete Systeme<br />
|-----<br />
| [[Bild:Bild 5.7.svg]]<br />
Rechteckfolge<br />
| Walsh-Transformation<br />
|digitale Kommunikatioin<br />
|-----<br />
|}<br />
''Bild/Tab 5.1''<br />
<br />
== Analytische Beschreibung von Prozessen ==<br />
* Funktionsbeziehung(Zeitfunktion/Zeitbereich)<br />
** Beschreibt analytisch das physikalische Verhalten von Systemkomponenten<br />
** ordnet Eingangsgrößen einer Ausgangsgröße y zu: y(t)= f(x(t))<br />
** Bsp.: Sprung (zu einer Bestimmung der Funktionalenbeziehung als Testsignal) [[Bild:Bild 5.4.svg]]<br />
** Verallgemeinerte Ableitung des Sprungs wird als Gewichtsfunktion bezeichnet, deren Laplace-Transformation Übertragungsfunktion heißt<br />
* Übertragungsfunktion<br />
** Bild Funktionen,Frequenzbereich<br />
** durch Laplace Transformation aus Zeitfunktion von E und A Signalen mit einfachen Rechenregelwerk<br />
*Def: Laplace-Transformation L{f(t)} ordnet der Zeitfunktion f(t) in eindeutiger weise eine komplexe Funktion F(s) zu<br />
::<math>F(s)=\int _{0}^{\infty }f(t)e^{-st} dt</math><br />
*s ist komplexe Variable: s= p+jw<br />
* Bild 5.3.1 (Korrespondenzen der Laplace-Transformation)<br />
* Bild 5.3.2 (Rechenregeln)<br />
* Bild 5.4 (Zusammenstellung einfacher Kennlinienglieder)<br />
* Bild 5.5 (Beschreibung der funktionalen Abhängigkeiten eines Gleichstrommotors)<br />
* Bsp. Roboterarm<br />
<br />
:'''1 Elektrischer Teil'''<br><br />
::<math>U_{a}-e_{m}=R_{a}\cdot i_{a}+L_{a}\cdot \dot{i}_{a}</math> <br><br />
::Wobei gilt: <math>e_{m}=\tau _{m}\cdot \omega _{m}</math><br><br />
::<math>\tau _{m}=c\cdot \Phi \ \ \Phi ...\mathit{Hauptfluss}</math><br><br />
::Zeitbereich !!<br />
<br />
:'''2 Mechanischer Teil'''<br><br />
::<math>\dot{J}_{m}\omega _{m}=M_{a}-M_{L}\ \ M_{L}...\mathit{Lastmoment} \ M_{a}...\mathit{Arbeitsmoment}</math><br />
::Zeitbereich !!<br />
<br />
:→ Laplacetransformation<br />
<br />
::<math>R_{a}\cdot I_{a}</math> → Linearkombination<br />
<br />
::<math>L_{a}\cdot \dot{i}_{a}</math> → Differenziation<br />
<br />
::<math>U_{a}-E_{m}=R_{a}\cdot I_{a}+L_{a}\cdot s\cdot I_{a}</math> <br />
<br />
::<math>I_{a}=\frac{\frac{1}{R_{a}}}{\frac{1+L_{a}}{R_{a}+s}}(U_{a}-E_{m})</math> → Verzögerungsglied<br />
<br />
<br />
::<math>M_{a}-M_{l}=J_{m}(s\cdot \Omega _{m}(s)-\omega _{m}(t_{0}))</math><br />
<br />
::<math>\Omega _{m}=\frac{M_{a}-M_{L}}{J_{m}\cdot s}+\frac{\omega_{m}{(-0)}}{s}</math> → I-Glied<br />
<br />
<br />
:1.Verstärker und Stromrichter haben proportionales Verhalten<br />
::→ Kv, Ksr<br />
:2. Summierpunkt<br />
::<math>U_{a}-e_{m}</math> (Eingang)<br />
:3. <math>I_{A}</math> (Ausgang) = <math>K=\frac{1}{R_{a}},T=\frac{L_{a}}{R_{a}}</math> <br />
::Übertragungsfunktion: <math>\frac{K}{1+T_{s}}</math><br />
:4. proportional Wirkende Motorkonstante<br />
::<math>k=\tau _{m}</math> (Übergang zum mechanischen Teil)<br />
:5. Summierpunkte: <math>M_{a}-M_{L}</math> (Eingang)<br><br />
:6. Ω (Ausgang) Übertragnungsfunktion <br />
:::<math>\frac{K}{s}=\frac{1}{J_{m}\cdot s}</math> <br />
:7. Rückwirkung:<br />
:::<math>e_{m}-\tau _{m}\omega ,k=\tau _{m}</math><br />
<br />
<br />
== Digitale Regelung ==<br />
* für Modellierung (technischer Prozess, Regler)<br />
* Simulation (technischer Prozess, Regler)<br />
* Regelung (Regler)<br />
* Forderung: Gesamtfehler muss unter max. zulässigem Fehler liegen!<br />
** bezüglich Zeit --> Nyquist Theorem (Shannon)<br />
** bezüglich Wert --> Auflösung, Genauigkeit,Abweichung<br />
* t. Prozess: beschrieben durch Differenzialgleichung bzw. Integralgleichung<br />
* getastete System: beschrieben durch Differenzengleichung bzw. Summengleichung<br />
=== Differenzengleichungen, Regler, Filteralgorithmen ===<br />
→ Bild 5.7<br />
<br />
→ Bild 5.6 (Elementare Systeme und Modelle)<br />
<br />
* Berechnung Gesamtübertragungsfunktion bei zusammengesetzten Systemen<br />
** Reihenschaltung<br />
** Parallelschaltung<br />
** Rückführung / Gegenkopplung<br />
<br />
→ Bild 5.8 (PID-Regler)<br />
<br />
→ Bild 5.9 (Filteralgorithmus für Hoch-Tiefpass)<br />
<br />
= Informationsverarbeitung in Prozeßrechnern =<br />
<br />
== Echtzeitbetrieb ==<br />
<br />
*Kopplung an technischen Prozeß nur sinnvoll, wenn auf alle Forderungen des technischen Prozesses zeitgerecht reagiert wird<br />
*Echtzeitbetrieb ist Betriebsart eines Rechners, bei der der Rechner sich an die dynamisch ändernden Anforderungen aus dem Prozess anpasst<br />
**Zustände, Zeitbedingungen, Wichtigkeiten<br />
<br />
technischer Prozeß:<br />
*dynamische Änderung<br />
*Zeitbedingungen<br />
<br />
* technischer Prozess --> Prozessrechner Anpassug--><br />
*Anpassung<br />
*spezielle E/A<br />
*spezielle Kommunikation und zusätzlich Erfassung zeitlicher Bedingungen<br />
:→ angepasste Reaktion<br />
<br />
→ entsteht Problem der Realisierung (Abbildung) von Zeiten<br />
<br />
=== EZ-Forderungen ===<br />
*Rechtzeitigkeit<br />
**Zeitforderungen für Antwortzeit<br />
**Start bzw. Ende Reaktionsprogramm<br />
*Gleichzeitigkeit<br />
**in technischen Prozeß sind Teilprozesse zeitlich / wirkungsmäßig parallel<br />
**Reaktionsprogramme müssen parallel / quasiparallel ablaufen<br />
**gegebenenfalls nur Sequentiell bedienbar --> quasiparallele Abarbeitung <--> Erfüllung der Zeitanforderung<br />
*Vollständigkeit<br />
**alle Teilprozesse sind auszuführen<br />
*Korrektheit<br />
<br />
=== Echtzeit ===<br />
*harte Echtzeit<br />
**bei Nichteinhaltung Schäden am Prozeß bzw. Gefährdung<br />
*weiche Echtzeit<br />
**Nichteinhaltung gegebenenfalls tollerierbar, keine kritisches Systemzustände<br />
<br />
verallgemeinertes Zeitspiel:<br />
<br />
[[Bild:EZS_Zeitspiel.PNG]]<br />
<br />
--> ''siehe Bild 6.1. (Zeitparameter von Reaktionsprozessen)''<br />
<br />
*für EZ-Betrieb maßgeblich:<br />
**Einhaltung aller Erfassungs- und Antwortzeiten aller Teilprozesse<br />
<br />
<math>T_{ai} \le T_{pai}</math><br />
<br />
<math>T_{ej} \le T_{pej}</math><br />
<br />
i, j = 1,2, ...<br />
<br />
=== Abbildung von Zeiten in Prozeßrechner ===<br />
*absolute Zeiten --> Echtzeituhr (EZU)<br />
**aus HW-Signal (Interupt)<br />
**aus SW-Uhrenmodell<br />
<br />
*relative Zeiten (Zeiträume) <br />
:--> aus HW-Signal (Interupt)<br />
:--> aus Taktbasis (Schleifen / Zyklen)<br />
::*Auszählung von Takten bei Befehlsabarbeitung<br />
::*Problem: Cache-Sprünge, Unterbrechung durch Interupt, Busrequest<br />
:-->Zwischenform: Zählerregister<br />
::*laufen mit Takt<br />
::*Abfrage per Befehl möglich<br />
::*Sprung / Aktivität bei 0<br />
<br />
=== Zeitabbildung ===<br />
*Zeiträume --> Zyklen<br />
*Zeitpunkte --> Bedingungen, Ereignisse<br />
<br />
== Koordination der Informationsverarbeitung ==<br />
<br />
Zyklen: 3-Phasen-Zyklus<br />
<br />
*''Erfassen'' aller Meßsignale (Eingabe Prozeßabbild)<br />
*''Verarbeitung'' (Algorithmus entsteht Ausgabeprozeßabbild)<br />
*''Ausgabe'' (Ausgabeabbild über Stellsystem an Prozeß)<br />
<br />
<br />
--> 3 Teilprozesse (Tasks) für n Aufgaben<br />
*Anzahl der möglichen Prozesse: n * 3<br />
--> Koordination und Planung erforderlich!<br />
<br />
=== statische Koordinierung ===<br />
<br />
[[Bild:statische_Koordinierung.png]]<br />
<br />
*polling<br />
*feste Reihenfolge (synchrone Programmierung)<br />
*keine sofortige Reaktion ist eher Regel<br />
*nicht variabel<br />
*sehr einfach<br />
<br />
=== dynamische Koordinierung ===<br />
*Reaktion abhängig von Prozeßzustand<br />
*bei überschaubaren (nicht kritischen) Prozessen<br />
*führt auf verteilte Steuerstrukturen<br />
<br />
Formen:<br />
*Polling<br />
**Erfassung aller Prozeßeingangsignale<br />
**Abhängig von Signal wird Reihenfolge festgelegt<br />
*selbstinitiierte Koordination<br />
**kürzere Bearbeitungszeiten<br />
**weniger Einflußnahme auf Ausnahmesituationen<br />
<br />
=== prozeßgesteuerte Koordinierung ===<br />
*Reaktion auf kritische Zustände<br />
*ereignisgetrieben<br />
*feste Bindung an Prozeß über Signale, Ereignisse (z.B. Ts-Interrupt, Alarmsignal)<br />
*asynchrone Programme<br />
**keine Zyklen<br />
**Konflikte durch Prioritäten gelöst<br />
**stochastische Anforderungen mit Bedienmodell modellieren<br />
**Planung ggf. mit Bedienmodellen<br />
**Realisierung über Interuptsignale<br />
<br />
== Reaktionsprogramme mit Prioritätsprinzip ==<br />
<br />
*prozeßgesteuerte Koordinierung<br />
<br />
einfach Realisierung:<br />
*alarmbedingter Programmsprung (kein Rücksprung, RESTART)<br />
*alarmbedingter direkter Programmsprung (HW-Verteiler, Interupt --> Sprung --> Rücksprung)<br />
*alarmbedingter indirekter Programmsprung (SW-Verteiler: entscheidet, wohin gesprungen wird, Sprung --> Rücksprung)<br />
<br />
komplexe Realisierung:<br />
*Echtzeitbetriebssystem (EZBS)<br />
**Prozesse sind Tasks<br />
**Prozesse mit Taskzustandsmodell (TZM) beschrieben<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_1.png]]<br />
<br />
<br />
<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_2.png]]<br />
<br />
== Zeitgerechte Einteilung (Bild 6.4) ==<br />
<br />
Planung: deterministische Systeme (konzentriert)<br />
*Zeiten sind bekannt<br />
**Festlegung<br />
**Messung<br />
**worst-case-Berechnung<br />
*Prioritäten<br />
*Zeiten (Antwortzeiten, Spielraum (<math>s = t_a - t_l</math>))<br />
*Planung / Prüfung (Gannt-Diagramm, ''Bild 6.5 (Prozessorvergabe Antwortzeit & Spielraum)'', ''Bild (Zweiprozessorsysteme)'')<br />
--> ''Bild 6.6''<br />
<br />
Auswahl = f(Ein- oder Mehrprozesse bzw. gleich oder ungleiche Startzeiten der Prozesse)<br />
<br />
=== verteilte determinierte (zyklische) Systeme ===<br />
<br />
*mit unterschiedlichen Zykluszeiten (unabhängig)<br />
<br />
[[Bild:Verteiltedeterministischesysteme.png]]<br />
<br />
<br />
*Gesamtzykluszeit<br />
*Dynamik<br />
*Einzelzykluszeiten<br />
:bestimmen als Verbundelemente (2 bzw. 3)<br />
<br />
--> ''Bild 6.7 (Zeitliches Verhalten eines 2-Elemente-Verbundes)''<br />
<br />
--> ''Bild 6.8 (Antwortzeiten in verteilten deterministischen Systemen)''<br />
<br />
<br />
*Verbundsystem mit Kommunkation<br />
<br />
Gesamtprozeß:<br />
*Gesamtzykluszeit (min, max, average)<br />
*Gesamtlaufzeiten (min, max, average)<br />
<br />
<math>T_{l,min} = T_{l,ADU} + T_{l,Algo} + T_{l,DAU}</math><br />
<br />
=== Zykluszeit des Verbundes ===<br />
<br />
<math>T = max(T_1 , T_2)</math><br />
<br />
=== Extremwert der Verzögerung ===<br />
<br />
<math>\Delta t_{max} = min(T_1 , T_2)</math><br />
<br />
<math>\Delta t_{min} = 0</math><br />
<br />
<math>\overline{\Delta t_{min}} = \frac{min(T_1 , T_2)}{2}</math><br />
<br />
=== Antwortzeit ===<br />
<br />
<math>t_{A,Verbund} = t_{b1} + t_{b2} + \Delta t_{Verbund}(T_1 , T_2)</math><br />
<br />
<math>t_{bi}</math> – Bearbeitungszeiten (Laufzeiten)<br />
<br />
- für n Elemente weitere Zusammenfassung möglich<br />
<br />
=== stochastische Prozesse ===<br />
<br />
*Bedienmodelle / Systeme (Kapitel 7)<br />
*Einplanung nach:<br />
**Ankunft --> Variation von Prioritäten, Warteschlangen<br />
**Laufzeit --> Variation von Prioritäten, Warteschlangen oder shortest remaining processing time<br />
<br />
[[Bild:Stochastischesysteme.png]]<br />
<br />
= Bedientheorie / Bediensysteme =<br />
<br />
*Versuch der Bedienung (echtzeitfähig) von stochastischen Anforderungen<br />
*Versuch stochastische Systeme zu modellieren ?!<br />
:→ basiert auf Wahrscheinlichkeiten<br />
<br />
''siehe Folie 7.1. (Bedienungsanforderungen, Bedienprozesse)'' <br> ''siehe Folie 7.2. (Merkmale von Bedienprozessen und Ankunftsprozessen)''<br />
<br />
== Modell eines Bediensystems ==<br />
''siehe Folie 7.3. (Modellstruktur eines Bedienungssystems)'' <br> ''siehe Folie 7.4. (Einflussgrößen und Bewertungsgrößen von Bedienungssystemen)<br />
<br />
=== Klassifikation von Bedienprozessen ===<br />
*nach sogenannten Kendall-Parametern<br />
''siehe Folie 7.5. (Klassifizierung von Bedienprozessen)''<br />
*bei PR-Anwendung sind poissonverteilte Anforderung und exponentialverteilte Bedienung der "härteste" Anwendungsfall<br />
<br />
=== Statistische Kennwerte ===<br />
''siehe Folie 7.6. (stat. Kennwerte: Anforerungsprozesse (1))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Anforerungsprozesse (2))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Verweilprozesse)'' <br><br />
* analytische Berechnung<br />
* Simulation<br />
* Schätzverfahren<br />
<br />
== Offene Bediensysteme (Folie 7.9.) ==<br />
*keine Rückführung (von Senke auf Quelle)<br />
*Anforderungen nicht Ergebnis einer Bedienung<br />
*Anzahl der Anforderungen → unendlich<br />
<br />
== Geschlossene Bediensysteme (Folie 7.10.) ==<br />
*Rückführung (von Senke auf Quelle)<br />
*Anforderung ist Funktion der Bedienung<br />
*Anzahl der Anforderungen (Quellen, Qi) endlich<br />
<br />
''siehe Folie 7.11. (Bewertungsgrößen für Bedienungssysteme)'' <br><br />
''siehe Folie 7.12. (Berechnungsbeispiele für Antwortzeiten)''<br />
<br />
== Bedienstrategien ==<br />
Funktion von<br />
*System<br />
:*deterministisch<br />
::*verteilt<br />
::*konzentriert<br />
:*stochastisch<br />
*zyklisch / nicht zyklisch<br />
*endlich / unendlich<br />
→ Verusch programmtechnischer Lösung<br />
:*synchron<br />
:*asynchron<br />
:*Mischung<br />
:*EZBS<br />
<br />
= Echtzeitsysteme / Echtzeitprogrammierung =<br />
<br />
Ziel: Programmsysteme, die echtzeitfähig die Anforderungen erfüllen!<br />
<br />
*Zeitbedingungen (zeitgerechte Einplanung)<br />
*Prioritäten<br />
*Synchronisation (Steuerablauf) / Kommunikation von Prozessen (Datenaustausch) <br />
:→ gegenseitige Abhängigkeiten<br />
*Ereignis- / Ausnahmebehandlung<br />
<br />
<br />
Realisierungen:<br />
*synchrone Programme<br />
*Betriebssysteme mit Taskkonzept (asynchron)<br />
**universelle BS (Windows)<br />
**erweiterte universelle BS (EZ-Linux)<br />
**EZ-BS (QNX)<br />
*Echtzeitprogrammiersprachen<br />
<br />
[[Bild:EZS-EZBS.PNG]]<br />
<br />
== Echtzeitbetriebssysteme (EZBS) ==<br />
<br />
*Eigenschaften und Größe = f(Anforderungen)<br />
<br />
Eigenschaften, die über universelle BS hinausgehen:<br />
<br />
:1) direkter Zugang zu E/A-Geräten<br />
::*direkte Programmierung von E/A Schnittstellen<br />
::*gerätespezifische Realisierung (Effizienz)<br />
::*definierte Zugriffszeiten<br />
<br />
:2) Interrupts auf Anwenderebene<br />
::*schnelle Reaktion auf Interrupt auf Algorithmenebene<br />
::*Operationen nötig: Maskierung, Priorisierung, Spezialisierung<br />
<br />
:3) Zeitverwaltung<br />
::*für alle Anforderungen der möglichen Taskplanung<br />
::*Fähigkeit einer EZ-Uhr<br />
<br />
:4) effektives Scheduling<br />
::*effektive Prozessorvergabe<br />
::*Einhaltung aller EZ-Forderungen<br />
<br />
:5) flexible Konfiguration (Skalierung)<br />
::*Anpassung an Umfang der Aufgabe<br />
::*maximale Leistung. minimale Größe<br />
::*Werkzeuge für Skalierung<br />
<br />
Anforderungen der Prozesse verschieden<br />
:--> verschiedene angepasste EZBS-Strukturen!<br />
<br />
--> ''Folie 8.1. (Strukturen von Prozessrechner-Betriebssystemen)''<br />
<br />
=== Abruf-BS ===<br />
*Kontrolle der Programme durch sequentielle Abläufe<br />
--> Takt- / Befehlsabarbeitung<br />
*eingeschränkte EZ-Fähigkeit<br />
*kleine / kompakte Systeme (Signalprozessoranwendungen)<br />
*nicht flexibel<br />
*Problem: Bedienung, Kommunikation, Anzeige<br />
<br />
=== Interrupt-BS ===<br />
*Zeitbasis ist Interrupt!<br />
*Interrupt (HW / SW) führt auf Realisierungsprogramm<br />
*zeitliche Kopplung an HW-Signal<br />
*flexibler: erweiterbar, Abhängigkeiten, Maskieren, ...<br />
<br />
=== Monitor-BS ===<br />
*basiert auf Interrupt (Sammelanforderung)<br />
*sehr flexibel (Monitor(SW) als Scheduler)<br />
*Task sind durch Programmierung beliebig änderbar (Prozesse aufnehmen, entfernen, umpriorisieren)<br />
<br />
=== Taskkonzept ===<br />
<br />
*Prozeß-EZ-System<br />
**Sollwerermittlung<br />
**Erfassungstask<br />
**Verarbeitungstask<br />
**Ausgabe / Shell Task<br />
<br />
*Task-Konzept --> TZM (Task-Zustands-Modell) --> Task hat definiert viele Zustände<br />
*Multi-Task-Betrieb!<br />
<br />
erfüllt werden muß:<br />
<br />
*EZ-Forderungen<br />
**Rechtzeitigkeit<br />
**Gleichzeitigkeit<br />
**Vollständigkeit<br />
: --> erfüllbar mit Verwaltungsstrategien & Umschaltstrategien (Dispatcher)<br />
*Korrektheit<br />
<br />
--> ''Bild 8.2. (Zustandsübergänge von Tasks)''<br />
<br />
Wertung: Taskkonzept<br />
*stellt alle Start-/Umschaltbedingungen bereit die von Prozesssteuerung gefordert werden<br />
*Konflikbehandlung über zusätzliche Prioritäten (o. ä.) möglich<br />
<br />
nötig-weiterhin:<br />
<br />
*Taskkommunikation (Datenaustausch)<br />
*Tasksynchronisation<br />
<br />
zur Synchronisation / Kommunikation Mechanismen<br />
<br />
*Semaphore (Informationsträger)<br />
*Monitore (spezielle Datenstruktur, Daten + Mechanismen)<br />
*Rendezvous<br />
*Bolt-Variable (ähnlich Semaphore)<br />
--> ''Bild 8.3. (Synchronisation von Tasks)''<br />
<br />
=== TZM ===<br />
<br />
Grundlage für:<br />
*Verwaltung / Planung der Takte<br />
*für Umschaltung<br />
<br />
Betrieb von Mehrprozessorsystem<br />
*n-gleiche<br />
:PR1 <----Kommunikation --> Prn<br />
*gemeinsamer BS<br />
<br />
[[Bild:EZS Mehrprozessorsystem.svg]]<br />
<br />
== Prozessprogrammiersprachen (EZ Sprachen) ==<br />
<br />
*zusätzliche Eigenschaften von EZ-Sprachen gegenüber herkömmlichen Prozeßprogrammiersprachen<br />
**Operationen für spezielle E/A<br />
**Operationen für Zeitabarbeitung<br />
**Operationen für Unterbrechungsverarbeitung (Ind, Alarme, dyn. Prozessorkopplung, Bedienkommandos, EA-Signale)<br />
**Operationen für Taskverarbeitung<br />
***z.B. Create<br />
***Terminate (T-Zyklen, T-Prioritäten)<br />
***Awaite<br />
**Operationen für Synchronisierung<br />
**Operationen für Kommunikation (Semaphor, Bolt ...)<br />
<br />
*Sprachen für EZ-Programmierung<br />
**System, Assemblersprachen (CORAL, C, RTL, PLIM, PLIZ)<br />
**erweiterte höhere Sprachen (RT-Fortran, RT-Basic, PL/1)<br />
**Prozessprogrammiersprache (PEARL, Concurrent Pascal, OCCAM)<br />
**Spezialsprachen/Fachsprachen (STEP1, STEP M, MATLAB & Simulink)<br />
*Wege der Realisierung<br />
**vorhandene Speicher<br />
***EZ-C<br />
***EZ-PASCAL<br />
**neu Erstellen<br />
***Ada. Für Multiprozessorsysteme<br />
***Pearl für PDV Systeme<br />
***--> Create REG Ti for n-Times TERMINATOR<br />
[[Kategorie:Studium]]<br />
<br />
Synchronisationsmechanismen in Sprachen: <br><br />
:a) Semaphor --> PEARL <br><br />
:b) Monitor --> PEARL, Modula 2, Concurrent Pascal <br><br />
:c) Rendesvouskonzept --> ADA <br><br />
:d) Bolt-Synchronisation (Riegel) --> PEARL <br><br />
<br />
--> ''Bild 8.6. (Darstellung binärer Signalverarbeitung)''</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Echtzeitsysteme&diff=10391Echtzeitsysteme2012-07-13T07:12:37Z<p>TheMrH: </p>
<hr />
<div>{{Vorlesung<br />
|richtung = alle<br />
|name = Echtzeitsysteme<br />
|kurz = EZS<br />
|mann = Ja<br />
|vorlesend = Kowalski<br />
|ort = K2077<br />
|url = http://www.tu-ilmenau.de/sp/lehre/vorlesungen/echtzeitsysteme/<br />
|urlname = Klick!<br />
}}<br />
<br />
{{Klausur<br />
|datum = 26.7.12<br />
|ort = Hu211/12<br />
}}<br />
<br />
<big>'''Klausurergebnisse'''</big><br />
<br />
<br />
Schein: [http://omega.theweblords.de/wiki/Bild:EZS_Schein.JPG Klick]<br />
<br />
Prüfung: [http://omega.theweblords.de/wiki/Bild:EZS_Pruefung.JPG Klick]<br />
<br />
<br />
<big>'''Vorlesungsmaterial'''</big><br />
<br />
Vorlesungsmaterial unter [http://pi0.theoinf.tu-ilmenau.de/ezbs http://pi0.theoinf.tu-ilmenau.de/ezbs]<br />
<hiddenlogin linktext="Login zum Zugriff (klick me!)">Login: ezbsu / alle9</hiddenlogin><br />
<br />
Zugelassene Hilfsmittel:<br />
<br />
- eigenes VL-Script<br />
<br />
- ein A4-Blatt<br />
<br />
<br />
<big>'''Vorlesungsmitschrift (Angaben ohne Gewähr)'''</big><br />
<br />
= Prozesse – Informatik – Echtzeitsysteme (EZS) =<br />
<br />
== Ziele der Prozeßinformatik (PIF) ==<br />
<br />
*inter-, transdisziplinäres Gebiet<br />
*enger Zusammenhang von PIF und Automatisierung<br />
<br />
'''Ziel:''' zielgerichtete Beeinflussung technischer Prozesse ''(siehe: Bild 1.1)''<br />
<br />
=== Gründe für Automatisierung und PIF ===<br />
<br />
*physische Grenzen<br />
*psychische Grenzen<br />
*humane Grenzen (zu komplex für den Menschen)<br />
*technische / ökonomische Gründe<br />
**Neuartigkeit<br />
**Wirtschaftlichkeit<br />
**"time to market" (Entwicklung und Überführung/Anpassung)<br />
<br />
=== Merkmalsbetrachtung am Beispiel (eingebetteter) EZS (Bild 1.1a) ===<br />
<br />
[[Bild:EZS_1.1a.png]]<br />
<br />
=== Entwurfsrelevante Merkmale ===<br />
*Einbettung in die Umgebung<br />
*Verteilung<br />
*Zeitanforderungen<br />
*Parallelitäten<br />
*Datenhaltung<br />
<br />
=== Nutzerrelevante (Qualitäts-) Merkmale ===<br />
*Erfüllung der Funktion<br />
*Benutzbarkeit (für den Bediener)<br />
*Effizienz (Rechenleistung, Kosten à Zeit / Ressourcen)<br />
*Zuverlässigkeit, Verfügbarkeit<br />
*Änderbarkeit<br />
*Portabilität<br />
*Sicherheitsanforderungen<br />
*gesetzliche Anforderungen<br />
<br />
=== Einordnung von EZS – PDV – Systemen interdisziplinär (Bild 1.2) ===<br />
(PDV – Prozeß-Daten-Verarbeitung)<br />
<br />
[[Bild:EZS_1.2.png]]<br />
<br />
=== Phasen: Analyse / Synthese / Entwurf (Bild 1.3) ===<br />
<br />
[[Bild:Analyse synthese entwurf.png]]<br />
<br />
Verbindung: (Schnittstelle – SS)<br />
*Art der Modellrepräsentation<br />
*Funktionale Modellrepräsentation<br />
<br />
=== Aufgabe für Prozeßinformatik beim EZ-Systementwurf ===<br />
<br />
(1) Erstellung von geeigneten Verfahren und Entwurfswerkzeugen für Automatiker unter Beachtung der Modellrepräsentation<br />
*Aufbereitung, Nutzung standardisierter Werkzeuge<br />
*Erstellung spezialisierter Entwurfswerkzeuge<br />
<br />
(2) direkter Entwurf von Hard- und Software<br />
*Darstellung, Modellierung (allgemeingültig)<br />
*Formalisierung<br />
*Überführung in einen konkreten (einheitlichen) Entwurf<br />
<br />
=> 2 Komplexe für die Vorlesung:<br />
*Systeme, Modelle, ...<br />
*Anforderungen an Systeme bzgl. Echtzeitverhalten (EZ-Sprachen)<br />
<br />
=== Systemplanung: ===<br />
<br />
[[Bild:Systemplanung.png]]<br />
<br />
----<br />
<br />
'''Aussage:''' es existieren<br />
*Vielzahl von Realisierungsmöglichkeiten<br />
*Vielzahl von Kriterien <br />
<br />
'''1) Voruntersuchung'''<br />
*Klärung wirtschaftlicher Fragen<br />
*Kosten-Nutzen-Analyse<br />
*Automatisierungsgrad<br />
<br />
'''2) Grobanalyse'''<br />
*Ziele: <br />
**Grobmodell für Verfeinerung und Implementierung<br />
**Darstellung und Abbildung der möglichen Hierarchie und Struktur<br />
**Auflösung von Elementar- und Einzelprozessen<br />
<br />
'''3) Schema / Konfigurationsaspekte'''<br />
*Meßaufgaben<br />
**Ort-, Wert-, Zeitverhalten<br />
**Verarbeitung, Übertragung, Meßeinrichtung<br />
*Steuerungsaufgabe<br />
**Lokalisierung, Größen<br />
**Zeitverhalten<br />
**Steuereinrichtung (elektrisch, mechanisch, pneumatisch)<br />
*Stellaufgabe<br />
**Ort-, Wert-, Zeitverhalten<br />
**Übertragung<br />
*Bedienaufgabe<br />
**Darstellung, Protokollierung<br />
**Bedienung, Bedienort / Bedieneinrichtung<br />
*Sicherheitsaufgabe<br />
**Vermeidung von Gefährdung bzw. Ausfall<br />
*Sollkonzept<br />
**Lastenheft / Pflichtenheft<br />
<br />
=== Beschreibung von Elementarprozessen ===<br />
*funktional<br />
*Verbund (hierarchisch, konzentriert, ...)<br />
<br />
=== Prozeßstrukturen ===<br />
*statische Strukturen<br />
**Grobstruktur des Aufbaus<br />
**nicht immer Rückschluß auf Funktion möglich<br />
**Blockdiagramme (z.B. Wirkungs- / Transportwege)<br />
*stationäre Strukturen<br />
**analog zu statischen Strukturen<br />
**Darstellung paralleler Abläufe<br />
**Blockdiagramme, ...<br />
*dynamische Strukturen<br />
**Elemente passen strukturell statisch zusammen<br />
**passieren im richtigen Moment (zeitabhängige Übergänge)<br />
**Beschreibung z.B. mit Petri-Netzen (PN)<br />
<br />
== Repräsentations- und Beschreibungsmöglichkeiten ==<br />
<br />
*graphische Beschreibungsmittel<br />
**Beschreibung für Struktur und Funktion möglich<br />
<br />
*in PIF Netzdarstellung<br />
**Instanzennetze<br />
**SADT (erweitertes Instanzennetz)<br />
**Petri-Netze<br />
<br />
*Struktur: Verbindung --- Elemente --- Funktion (statisch / dynamisch)<br />
<br />
*Beschreibungsmittel<br />
**Knoten: Zustände, Speicherung<br />
**Kanten: Übergänge, Wirkrichtung<br />
<br />
[[Bild:Knoten.png]]<br />
<br />
*Beispiel:<br />
**Instanzennetze ''(Bild 1.5)''<br />
***Instanzen, Kanäle, Verbindungen<br />
**SADT - Structured Analyse and Design Technique ''(Bild 1.6)''<br />
***Trennung von Daten- und Funktionsmodell<br />
***Redundanter Entwurf --- Sicherheit<br />
**Petri-Netze ''(Bild 1.7)''<br />
***Besonderheiten: Prozeßübergänge und –dynamik beschreibbar<br />
***geeignet für statische, stationäre und dynamische Strukturen<br />
***mathematisches Fundament<br />
***überführbar in andere Beschreibungsmittel<br />
***Tools vorhanden !<br />
***Plätze, Transitionen, Kanten, Marken<br />
***Schaltregel muß erfüllt sein (Vor- / Nachbedingungen)<br />
<br />
= Begriffe der PIF mit EZS =<br />
== System – Modell – Prozeß ==<br />
<br />
allgemeines Wirkschema<br />
<br />
[[Bild:Wirkschema_allgemein.png]]<br />
<br />
Wirkschema Normalbetrieb<br />
<br />
[[Bild:Wirkschema.png]]<br />
<br />
Prozess ist '''ursächlich'''! --> Quelle/Senke von Daten/Befehlen für Steuerung/Regelung<br />
<br />
'''zur Beobachtung/Führung:'''<br />
<br />
--> PDV-EZS mit folgender Spezifikation<br />
<br />
* Einhaltung zeitlicher Abfolgen und vorgegebener Bearbeitungszeiten (von Prozeß vorgegebene EZ-Bedingungen)<br />
* Echtzeitverarbeitung<br />
<br />
<br />
* ständige Aufnahmebereitschaft der PDV-Systeme für äußere(von Prozeß) / innere (Ausnahmezustände, Fehlermeldungen) Informationen / Ereignisse<br />
*deren schritthaltende Verarbeitung (nach vorgegebenen Algorithmen) zum Zweck der: <br />
** Verarbeitung <br />
** Speicherung <br />
** Transport / Übertragung<br />
<br />
* Daten/Ereignisse aus Gegenwart und Zukunft auch aus Vergangenheit erfolderlich<br />
* Gesamtsystem (oder Teilsystem) müssen geforderte Funktionen erfüllen<br />
* Gesamtsysteme (Teilsysteme) müssen sicher sein<br />
<br />
=== EZ-Forderungen ===<br />
* Rechtzeitigkeit<br />
* Vollständigkeit<br />
* Gleichzeitigkeit<br />
* Korrektheit/Sicherheit<br />
<br />
=== Begriffe ===<br />
* System (aus Sicht der PIF)<br />
** Einheit aus informationstechnischen Maßnahmen zur zielgerichteten Beeinflussung stofflicher, energetischer, informationelle Sachverhalte und Informationsverarbeitungstecnik selbst<br />
** je nach Betrachtung angepasste Modelle für Analyse/Synthese erforderlich<br />
** ''siehe Bild 2.4 / 2.5''<br />
<br />
* Modell<br />
** Abbildung eines Systems mittels einer kognitiven Struktur<br />
*Warum Modellnutzung?<br />
**Ausgangspunkt für Systementwicklung<br />
**Ausgangspunnkt für Systemuntersuchung<br />
**gdw. --> am Original: nicht möglich ist; zu teuer; zu langwierig<br />
<br />
=== Modellausprägungen ===<br />
<br />
* physikalische (materielle Modelle)<br />
** nur bei sehr teuren Zielsystemen<br />
** biologischer Bereich<br />
<br />
* mathematische Modelle<br />
** formale Modelle<br />
** grafisch, numerisch<br />
<br />
[[Bild:Flußdia.png]]<br />
<br />
=== Modellunterscheidung nach Charakter der Modellvariablen ===<br />
<br />
*Modellvariablen<br />
**Zeitbezug (--> dynamische /statische Modelle)<br />
**Wertetyp (--> diskrete / stetige Modelle)<br />
**Determiniertheit (--> deterministische / stochastische Modelle)<br />
*''siehe Bild 2.6''<br />
<br />
<br />
----<br />
<br />
<br />
[[Bild:Modell.png]]<br />
<br />
=== Modellprüfung ===<br />
<br />
* Validierung: Übereinstimmung von Modell und Realität (Bewertung, Kenntnisse der Domäne)<br />
* Verifikation: Übereinstimmung Computermodell und Realität (iterativ Herbeiführen)<br />
<br />
== Technische Prozesse ==<br />
<br />
* Vorgang zur Umformung, Transport, Speicherung von Materie, Energie, Information<br />
* dessen Zustandsgrößen mit technischen Mitteln erfasst werden können und beeinflusst werden können <br />
<br />
(vgl. DIN 66201)<br />
<br />
Unterscheidung wichtig da für verschiedene Grundformen<br />
* angepaßte Regelung-/Führungsstrategien<br />
* Einfluß auf EZ- Systemverhalten <br />
<br />
''siehe Bild 2.7''<br />
<br />
== Informationen in technischen Prozessen ==<br />
<br />
* Kopplung eines: technischen Prozesses und Steuerungssystems ist Ziel!<br />
* erfolgt durch: Informationsgewinn aus dem Prozess und Informationsverteilung in dem Prozess<br />
<br />
<br />
Repräsentation des Systems durch ein Modell ist:<br />
* Darstellung der Systemzustände<br />
* Darstellung der inneren Struktur<br />
<br />
--> erfolgt alles durch Informationen<br />
<br />
<br />
Abbildung der Systemzustände ist Voraussetzung für Prozeßbeobachtung<br />
<br />
[[Bild:Prozeßbeeinflussung.png]]<br />
<br />
*Sensorik: (Messglieder) Informationserfassung für Zustand<br />
*Aktorik: (Stellglieder) Informationsausgabe für Zustandsänderung<br />
<br />
''siehe Bild 2.8''<br />
<br />
=== Signale ===<br />
<br />
*zeitlicher Verlauf einer physikalischen Größe x, die Informationen in sich trägt<br />
<br />
Problem: Darstellung kontinuierlicher, veränderlicher Systemzustände durch Informationen<br />
<br />
[[Bild:EZS-Signale.jpg]]<br />
<br />
*unendlicher Wertevorrat --> wertkontinuierlich, zeitkontinuierlich<br />
*unendlicher Wertevorrat nicht abbildbar in diskreten Systemen<br />
<br />
=== Lösungsansatz ===<br />
<br />
*Quantisierung<br />
**Zustandsbereich auf Intervall beschränken in dem sich Zustandsgröße befindet<br />
**Aufteilung des Intervalls in Inkremente<br />
<br />
*Digitalisierung der Informationen<br />
**Entscheidungsgehalt = Maß für Aufwand zur Klassifizierung der Zustandsgröße<br />
**<math>H_0 = ld(n)</math><br />
**<math>M_Z = \{Z_1, ... , Z_n\}</math> - Zustandsraum<br />
<br />
*Auflösung: kleinste einstellbare, erkennbare Inkrement bezogen auf beschränkten Zustandsbereich<br />
**<math>A = \frac {\hat x - \check x}{\Delta x}</math> Länge des Inkrements<br />
<br />
*Genauigkeit: größte Abweichung des realen Zustandes Xr von seinem durch Information beschriebenem Zustand Xi<br />
**<math>G = \left| X_r - X_i \right|_{max}</math><br />
**<math>g = \frac {\left| X_r - X_i \right|_{max}}{X}</math> relative Genauigkeit<br />
<br />
*Abtastung<br />
**Informationserfassung nur alle <math>\Delta t</math> (<math>\Delta t</math> > 0)<br />
**--> Zeitdiskretisierung<br />
<br />
[[Bild:EZS-Abtastung.jpg]]<br />
<br />
=== Diskussion ===<br />
<br />
*Abtastfrequenz >> Signalfrequenz<br />
*bei Anwendung können A und G (gleich und) verschieden sein<br />
**hohe A bei kleiner G für Langzeitmessung<br />
**G > A – falsche Abbildung der physikalischen Zustände<br />
*Normalfall: A >,>> G<br />
*Fakt: ADU, DAU --> A > G , G – schlechterer Wert<br />
<br />
= Prozeßlenkung, Prozeßkopplung, Prozeßrechner =<br />
<br />
[[Bild: EZS-Prozess.jpg]]<br />
<br />
Sensor:<br />
*erfassen x(t)<br />
*wandeln x(t) in x(<math>\Delta</math>t)<br />
<br />
Verarbeitung: diskret<br />
<br />
Aktor:<br />
*stellen<br />
*wandeln y(<math>\Delta</math>t) in y(t)<br />
<br />
zeitdiskretes Signal<br />
*fungiert über diskrete Zahlenfolgen <math>x_i</math><br />
*führt auf <math>y_i</math><br />
<br />
== Untersuchung von Systemen ==<br />
<br />
(1) statische Systeme<br />
*y(t) hängt ausschließlich von x(t) ab<br />
<br />
[[Bild: EZS-Linear.jpg]]<br />
<br />
(2) dynamische Systeme<br />
*y(t) hängt zumindest in einem Zeitpunkt <math>T_1</math> von der Zeit und nicht nur von x(<math>t_x</math>) ab<br />
<br />
[[Bild: EZS-Knick.jpg]]<br />
<br />
=== Unterscheidung durch Linearität ===<br />
<br />
(1) lineare statische Systeme<br />
*g.d.w. Überlagerungssatz gilt<br />
*<math>f(x_1 + x_2) = f(x_1) + f(x_2)</math><br />
<br />
(2) lineare dynamische Systeme<br />
*für E-/A-Signale aus Vergangenheit und Gegenwart gilt Überlagerungssatz<br />
*<math>f(x_1(t) + x_2(t)) = f(x_1(t)) + f(x_2(t))</math><br />
*ist das nicht so: nichtlineare Systeme!<br />
<br />
=== Verhalten in linearen dynamischen Systemen ===<br />
<br />
<br />
[[Bild:EZS - Verhalten in linearen dynamischen Systemen.jpg]]<br />
<br />
=== mögliche Systemklassen ===<br />
<br />
[[Bild:Systemklassen.svg]]<br />
<br />
*lineare (insbesondere statische) Systeme lassen sich sehr gut beschreiben durch<br />
**Datenflußgraphen (DFG)<br />
**Signalflußgraphen (SFG)<br />
*''siehe Bild 3.3. (DFG / SFG)''<br />
**gerichteter Graph<br />
**Richtung entspricht Datenfluß<br />
<br />
Funktionsbeispiel: <math>y = a \cdot (b + c)</math> <br />
*Knoten / Plätze: Datenspeicher / Variable (a, b, c, y)<br />
*Operatoren: Operationen (ADD, MULT)<br />
<br />
[[Bild:EZ addmul.svg]]<br />
<br />
Defizit: Reihenfolge der Abarbeitung (Steuerfluß) fehlt<br />
<br />
=== Grundstrukturen ===<br />
<br />
*Reihenschaltung<br />
<br />
[[Bild:EZ reihe.svg]]<br />
<br />
*Parallelschaltung<br />
<br />
[[Bild:EZ parallel.svg]]<br />
<br />
*Rückkopplung<br />
**Gegenkopplung (Regler)<br />
**Mitkopplung (Oszillator)<br />
<br />
[[Bild: EZS - Rückkopplung.jpg]]<br />
<br />
== Struktur hierarchischer Prozeßlenkungen ==<br />
<br />
Ziel:<br />
[[Bild:EZ Bild3.2.1.svg]]<br />
<br />
Vorraussetzung: Erfassung des Streckenzustandes<br />
<br />
=== Strecke ===<br />
<br />
*Teil des Systems<br />
*technische bzw. physikalische Größen gemäß Zeitfunktion<br />
*meist zeitkontinuierlich<br />
*Streckenmodell durch Messen / Berechnen ermitteln<br />
<br />
=== Art der Einflußnahme ===<br />
<br />
*Steuerung<br />
**ist rückwirkungsfrei<br />
**SFG zyklenfrei<br />
**n-Eingangsgrößen möglich<br />
**Stellgrößen sind Ausgang<br />
**Führungswertsteuerung über externe Führungswerte<br />
**''siehe Bild 3.6''<br />
*Regelung<br />
**geschlossene Wirkungskette<br />
**Regelabweichung = Istwert – Führungswert<br />
**„Regeltechnisches Paradoxon“<br />
**Führungsbetrieb<br />
**Störbetrieb (externe Störungen)<br />
<br />
=== Automatisierungsziel ===<br />
<br />
*einfach --> einfaches PDV-EZS (autonomes) Automatisierungssystem <br />
*komplex<br />
**Dekomposition, Funktion, Hierarchie<br />
**Taxonomie --> PDV-EZS als Rechnerverbund<br />
*''siehe Bild 3.6''<br />
*Rechnerverbund --> Ebenen --> Zeitebene, Intelligenz, Komplexität<br />
<br />
=== Besonderheiten der Ebenen ===<br />
<br />
(1) Prozeßebene<br />
*direkte Prozeßüberwachung, -beeinflussung (Steuerung / Regelung)<br />
*Elementar-, Einzel-, Verbundprozesse<br />
*Kopplung Sensor --> Steuerung --> Aktor direkt oder über Busse (z.B. ASI-Bus)<br />
*Bedienung: prozeßnah<br />
**Handbetrieb<br />
**Normalbetrieb<br />
<br />
(2) Operativebene<br />
*Überwachung und Bedienung von Gruppen- und Einzelreglern (gegebenenfalls Backup)<br />
*Einzel-, Verbundprozesse<br />
*Bindeglied zwischen (1) und (3) – Koordinationsebene<br />
<br />
[[Bild:EZ Bild3.2.2.svg]]<br />
<br />
*Kopplung: EZ-Busse (z.B. CAN, Profi-Bus, Interbus)<br />
*Bedienung:<br />
**problemspezifische Programmierumgebung<br />
**Funktionstastaturen<br />
**Ausgabe: Störmeldungen, Protokolle, Trendanalyse<br />
<br />
(3) Koordinationsebene<br />
*Gruppen der Operativebene zusammengefaßt <br />
*Funktionskoordinierung:<br />
**Voraussetzung für Prozeßlenkung über Leitrechner<br />
*Funktionsoptimierung:<br />
**max. Effizienz der Teilprozesse nach gemeinsamen Zielfunktionen<br />
*Verbundprozesse<br />
*Kopplung:<br />
**(3) --> (2): EZ-Busse<br />
**(4) <-- (3): nicht EZ-Busse, (EZ-Busse möglich)<br />
*Redundanz für (2) (abhängig von Kopplung: EZ / nicht EZ)<br />
*Bedienung:<br />
**Abfrage aller unteren Ebenen (z.B. Bedienung von (2))<br />
**Programmierumgebung<br />
**Steuerstrategien<br />
<br />
(4) Leitebene / Managementebene<br />
*zentrale Leitung des Ausgabesystems (Automatisierungssystems)<br />
*Betriebsprozesse<br />
*Planung / Statistik / wirtschaftliche Strategie<br />
*Trennung zwischen System und Umgebung<br />
*Kopplung (4) --> (3): nicht EZ-Busse (möglich mit EZ-Busse)<br />
*Bedienung:<br />
**leistungsfähige (graphische) Programmierumgebung<br />
**Protokollierung / Archivierung<br />
<br />
=== Zeithorizonte der Ebenen ===<br />
<br />
[[Bild:EZ Bild3.2.3.svg]]<br />
<br />
bei ms-s (auch bei min): größte EZ-Forderung<br />
<br />
konkrete Aufgabenstellung in der Hierarchie bestimmt:<br />
*Zeitforderungen / Abläufe der Kopplung<br />
*Enge der Kopplung einer Rechners an den Prozeß<br />
*Eingriffsmöglichkeiten von Mensch und / oder Rechner auf den technischen Prozeß<br />
*--> Unterscheidung von Kopplungsprinzipien (nötig!)<br />
**Stärke der Kopplung<br />
**Mitwirkung Mensch, Rechner<br />
<br />
Varianten:<br />
*Mensch --> technischer Prozeß<br />
*Rechner --> technischer Prozeß<br />
*Mensch --> Rechner<br />
<br />
[[Bild:EZ Bild3.2.4.svg]]<br />
<br />
=== Kopplungsprinzipien ===<br />
<br />
*'''handbediente Prozesse'''<br />
[[Bild:EZS - Handbediente Prozesse.jpg]]<br />
**Mensch beobachtet & steuert --> alle Aufgaben der Prozesssteuerung bei Menschen --> geringere Komplexität<br />
**ggf. Kleinkraftwerke, Heizanlagen <br />
<br><br />
*'''indirekte Prozesskopplung'''<br />
**'''off-line'''<br />
**[[Bild:EZ offline petri.svg]]<br />
***Rechner muss nicht EZ-Fähig sein<br />
***Mensch ist Bindeglied zwischen ZP und Prozessrechner<br />
***keine zeitliche Bindung<br />
***offline Datenübergabe, -abholung<br />
<br><br />
**'''in-line'''<br />
**[[Bild:EZ Inline petri.svg]]<br />
***zeitliche Bindung<br />
***parallele Berechnung komplexer Algorithmen mit Rechner<br />
***als Vorgabe für Menschen, Mensch steuert nach wie vor (z.B. Prozessrechner errechnet komplexe Steuerdaten, aber Mensch führt Steuerung aus)<br />
<br><br />
*'''direkte Prozesskopplung'''<br />
**enge zeitliche Kopplung<br />
**Bediener möglichst ausserhalb der Kette<br />
**z.B. Fahrerloser Betrieb<br />
**Prozessrechner wird möglichst in Prozess integriert<br />
**siehe [http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap3/Bild%20_DirProz-koppl_3__.pdf Bild 3._]<br />
<br />
Rechner zur Kopplung technischer Prozeß à Prozeßrechner (PR)<br />
<br />
== Prozeßrechner ==<br />
<br />
*'''2 Arten:'''<br />
**erweiterte technische Lösung einer allgemeinen Universalrechnerstruktur (Operativ-, Kooperativebene) mit spez. PR-Elementen, -eigenschaften <br>(operativ- oder Kooperationsebene)<br />
**spezielle Realisierung mittels Mikroprozessoren als integrierte Systeme (Operativ- und / oder Prozeßebene)<br />
<br><br />
'''zu Bild 3.7.:'''<br />
<br />
*leistungsfähiger Rechenkern<br />
**modularer Aufbau<br />
**Konfigurierung von Meß- und Stellperipherie<br />
**(z.B. bis 100 Regelkreise)<br />
<br><br />
*Prozeßperipherie<br />
**peripheres Gerät = f(Aufgabenstellung) (bereits im Sys vorhanden oder ggf neu entwickeln)<br />
***Bsp.: Gerät = Druckmesser, Aufgabe = Druckmessung, ...<br />
**oft höhere Kosten als zentrale Verarbeitungseinheit<br />
**bestimmen maßgeblich Signalverhalten, Zeitverhalten, Sicherheit<br />
<br><br />
*Kommunikationsperipherie<br />
**Peripherie für Bedienung / Beobachtung<br />
**Kommunikation mit Bediener<br />
**Programmierung (Entwickler) / Parametrierung (Bediener)<br />
** --> für Systemkommunikationund<br />
***Rechnerverbund (funktionale Vernetzung von Rechnern)<br />
***fernwirk EA-Bindung<br />
***für Systemstart und Führung<br />
<br><br />
zu Bild 3.8.: spezieller PR-Chip als kleinste PR-Architektur<br />
<br />
*Ansatz<br />
**Aufgaben klein (bis mittel)<br />
**Verteilung von Aufgaben auf „kleine“ Systeme<br />
*Vorteile<br />
**dezentrale (parallele) Verarbeitung<br />
**hohe (Verarbeitungs-)Geschwindigkeit<br />
**kurze Wege für Prozesse & E/A<br />
**hohe Zuverlässigkeit (Redundanz)<br />
**überschaubarer Hard- / Softwareentwurf<br />
**geringe Kosten<br />
**=> möglich als Funktionsrechnerkonzept<br />
**=>erhöhter Kommunikationsaufwand<br />
**=>Anforderungen an Kommunikationsperipherie steigen<br />
<br />
*Komplexität der Prozesse<br />
**Komplexe Struktur, Topologie<br />
**Komplexe Funktion<br />
** ggf beides<br />
<br />
*=> PR-Architekturen<br />
**Mehrrechnerarch.<br />
**Einrechnerarch.<br />
**Mehrprozessorarch.<br />
**Einprozessorarch.<br />
<br />
Komplexe Systeme<br />
*Verteilung<br />
*Realisierung als Mehrprozessorsystem bzw. Mehrrechnersystem<br />
<br />
=== Prozeßrechner als Mehrprozessorsystem (Bild 3.9) ===<br />
<br />
[[Bild:PR_als_Mehrprozessorsystem.PNG]]<br />
<br />
*Verbindungssystem für Informationsaustausch (allgemeiner Bus, Speicherkopplung)<br />
**fest über Speicher<br />
**interne Busse<br />
*es entstehen verschiedene Zeitebenen in den Knoten und beim Informationsaustausch<br />
*Konzept: hohe Rechenleistung und gewisse Universalität<br />
*Coprozessoren:<br />
**Arithmetik<br />
**E/A-Verkehr<br />
**Speicher-Verkehr<br />
**Busverkehr<br />
**Besonderheit: Kommunikationssystem erforderlich<br />
***innerhalb Busse, Speicher<br />
***außerhalb<br />
****Speicher (global; Punkt zu Punkt)<br />
*Eigenschaften:<br />
**Universalität / hohe (angepasste) Rechenleistung<br />
**Ergänzung von fehlenden Eigenschaften der Co-Prozessoren<br />
**einzelne Prozessoren => lose Kopplung, interne Busse<br />
**zusätzliche Kommunikationskanäle (in Umgebung)<br />
<br />
a) einzelne Prozessoren – feste Kopplung über gemeinsamen Speicher (intern), Bussysteme<br />
<br />
b) zusammenhängende Kommunikationskanäle<br />
*E/A-Kommunikation<br />
**Punkt zu Punkt<br />
**Busse (Linie, Ring, Stern)<br />
<br />
=== Prozeßrechner als Mehrrechnersystem (Bild 3.11) ===<br />
<br />
[[Bild:PR_als_Mehrrechnersystem.PNG]]<br />
<br />
(einzelne Rechner kommunizieren über Speicher/Busse)<br />
<br />
Multicomputersysteme<br />
*System aus (gleichartigen) selbstständigen einzelnen Rechnern (Prozessor, Peripherie, Speicher)<br />
*Verbindungssystem zwischen Rechnern für Informationsaustausch erforderlich<br />
**feste Kopplung (gemeinsame, globale Speicher)<br />
**lose Kopplung (Gerätekopplung, E/A-Kopplung)<br />
<br />
=== Spezielle Mehrprozessorsysteme (Bild 3.12) ===<br />
<br />
Ansatz:<br />
*Leistungsfähige Verarbeitung<br />
*zusätzliche leistungsfähige Kommunikation<br />
<br />
[[Bild:EZ Transputer.svg]]<br />
z.B. für Vektor- & Matrizenrechnung<br />
<br />
Transputersysteme:<br />
*CPU + zusätzliche IO-Prozessoren (mit mehreren Kanälen) bilden einen Knoten (Rechner)<br />
<br />
Abschätzung:<br />
*Aufwand reine Rechenzeit<br />
*Aufwand Übertragung über Links<br />
<br />
== Echtzeitkommunikation / Busse / EZ-Busse ==<br />
<br />
[[Bild:3.4.PNG]]<br />
<br />
=== Anforderungen an EZ-Busse ===<br />
<br />
*definierte Antwortzeiten (Busübertragungszeit)<br />
*Übertragungssicherheit<br />
*Fehlererkennung und –behebung<br />
*Verfügbarkeit, Preis<br />
*effiziente Protokolle (Geschwindigkeit)<br />
*Standardisierung (breite Anwendung)<br />
<br />
=== Beispiel ===<br />
*ASI: Aktor-Sensor-Bus (Interface)<br />
**Master Slave Bus<br />
**begrenzte Adressierbarkeit<br />
**begrenzter Datenaustausch (Sensorabfrage)<br />
**verbinden "intelligenter" E/A<br />
**Prozeßebene (Sensor-Aktor-Ebene) <-> technischer Prozeß<br />
<br />
*CAN-Bus: (Profibus, Interbus) à siehe Folie<br />
**Regelungs-Steuerungs-Ebene<br />
<br />
= Prozeßperipherie =<br />
<br />
Aufgabe: Prozeßdaten vom und zum Prozeß zu übertragen!<br />
<br />
Unterscheidung: Prozeßgrößen (Sicht Automatisches System)/ Prozeßdaten (Sicht Prozessrechner) aus der Sichtweise<br />
<br />
Übertragungsart von parallel => seriell<br />
<br />
[[Bild: EZS - Prozessperipherie.jpg]]<br />
<br />
--> siehe Bild 4.0 – Prozeßgrößen<br />
<br />
*Prozeßperipherie:<br />
**erfaßt bzw. überträgt zum Prozeß<br />
**Prozeßdaten: analog, digital, binär (gemischt-hybrid)<br />
<br />
== Prozeßzustandserfassung ==<br />
<br />
klassifizierbar nach:<br />
*Auslösen der Zustandserfassung (Steuerungssystem, technischer Prozeß)<br />
*Dauer der Prozeßzustände (statisch, dynamisch)<br />
<br />
--> n-Tupel Tabelle<br />
<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! Initiator der Prozeßzustandserfassung <br />
| colspan="2" | '''Dauer der Prozeßzustände'''<br />
|-<br />
| <br />
|| langfristig <br />
|| kurzfristig<br />
|-<br />
| Steuerung <br />
|| statische Zustandssignale <br />
|| dynamische Zustandsignale<br />
|-<br />
| technischer Prozeß <br />
|| statische Alarmsignale <br />
||dynamische Alarmsignale<br />
|}<br />
<br />
=== Statische Zustandssignale (siehe Folie 4.1) ===<br />
<br />
*Prozeßsteuerung fordert zu definierten Zeiten regelmäßig Informationen aus Prozeß an, um bestimmte Reaktionen auszuführen<br />
*nur sinnvoll, wenn <math>\frac{1}{T_S} > \frac{1}{T_P}</math> (Anforderungsrate Prozeßsteuerung > Änderungsrate des Prozesses)<br />
*Erfassung relevanter Zustände mit Abtasttheorem ( <math>f_{abtast} \ge 2 \cdot f_{Prozess}</math> )<br />
<br />
=== Dynamische Zustandssignale ===<br />
<br />
*kurzfristige Zustandsänderungen die erfaßt werden müssen, wenn <math>T_P < T_S</math> (Dauer eines Prozeßzustandes < Periodendauer für Erfassung/Reaktion)<br />
*Zustandsänderung dynamischer Signale müssen gepuffert werden (Aufheben)<br />
--> Betriebsart: Taste-Halte-Glied (analog)<br />
*D-Flip-Flop (binär)<br />
*bis zum Überschreiben bleibt Pufferwert gültig<br />
*sinnvoll auf kurzfristige Ereignisse<br />
** wenn nicht schritthaltend reagiert werden muß<br />
*(Vorteil: Vermeidung von Busy-Waiting)<br />
*wenig Aufwand f. extrem seltene Signale<br />
<br />
=== Statische Alarmsignale ===<br />
<br />
*zeigen längerdauernde (insbesondere binäre) Zustände an<br />
*erweiterte Möglichkeit zur Abfrage und Auswertung von Prozeßsignalen durch:<br />
**Wegfall der zyklischen Abfrage bei seltenen Zuständen (vermeidet "busy-wait")<br />
**oder um bei Eintreten solcher Zustände unmittelbare Reaktionen zu veranlassen <math>T_P >> T_S > T_R</math> (Reaktionszeit)<br />
**oder wenn während bestimmter Zustände im Prozeß keine Zustandserfassung möglich ist (Grenzwertüberschreitungen)<br />
**Wunsch statischer Meldungen ständig verfügbar z.B. für Wiederaufruf (aus Reset, kritischer Zustand)<br />
*speichern möglich<br />
<br />
=== Dynamische Alarmsignale ===<br />
<br />
*Informationsparameter ist zeitlicher Ereignispunkt eines bestimmten Zustandswechsels<br />
*erfordert sofortige Reaktion im aktuellen Zyklus mit hoher Priorität<br />
*auffangen/speichern/reagieren<br />
*erfordert geeignete Maßnahmen zur Prozesszustandsabhängigen Steuerung<br />
*Reaktionszeit entspricht Prozeßzeit <br/> --> echtzeitfähige Reaktion<br />
**geht über Erfassung von Zustandssignalen hinaus<br />
<br />
''//Bild''<br />
<br />
*Reaktion echtzeitfähig aus jedem beliebigen Zustand der PR-Steuerung heraus<br />
<br />
== Funktionen und Funktionsgruppen der Prozeßperipherie ==<br />
<br />
Hauptfunktionen:<br />
*Abtastung<br />
*Quantisierung (Grenzwerte, Messbereich, Stückelung)<br />
*Digitalisierung<br />
<br />
Nebenfuntionen:<br />
*Signalanpassung (Pegelanpassung, Schaltungsanpassung)<br />
*Signalübertragung<br />
*Eliminierung von Störungen<br />
<br />
Realisierung:<br />
*Hardware (ADU, DAU, RC-Filter, ...)<br />
*Software (Kodiealgorithmen, Filteralgorithmen, ...)<br />
<br />
*Messgrößen klassifizierbar --> ''Bild 4.2.''<br />
<br />
*vollständige Meßkette / Stellkette<br />
**n-stufig<br />
**Realisierung durch Hardware und Software<br />
*Signale:<br />
**elektrisch, nicht elektrisch<br />
**analog, digital, ...<br />
*Eigenschaften der Signale erfordert spezielle Prozeßperipherie<br />
<br />
=== Klassifikation der Prozeßsignale ===<br />
<br />
a) nach Aufbereitung der Signale im Meßprozeß<br />
*primäre Meßwerte<br />
**direkt am Prozeß aufgenommen<br />
**"unverfälscht" (außer eventuelle Sensorfehler)<br />
**dem Prozeßzustand zugeordnet<br />
**z.B. Füllmenge einer Flasche<br />
*sekundäre Meßwerte<br />
**entstehen nach mindestens einer Umwandlung aus primären Meßwerten<br />
**können zusätzliche Fehler aufweisen<br />
**z.B. Füllhöhe auch von Form abhängig nicht nur von Füllhöhe<br />
<br />
b) nach technischer Natur<br />
*elektrische Meßwerte<br />
*nichtelektrische Meßwerte (Mehrzahl in der Natur)<br />
<br />
c) nach zeitlichen Verhalten<br />
*statische Signale<br />
**Werte sind zeitlich konstant<br />
*stationäre Signale<br />
**über längere Zeit wie statische Signale<br />
**bei Bedarf änderbar<br />
*quasistationäre Signale<br />
**verhalten sich wie stationäre Signale<br />
**langsame Änderung möglich<br />
**z.B. Temperatur<br />
*dynamische Signale<br />
**schnelle Änderung der Signalparameter möglich<br />
**nicht nur Momentanwert, auch Änderungsrate / Gradient ggf. interessant<br />
*Ereignisse (Alarme)<br />
**sprunghafte Änderung entscheidet<br />
**nicht unbedingt Wert interessant sondern Tatsache, dass Änderung eintritt (qualitativ)<br />
**Richtung und/oder Zeitpunkt interessant<br />
**z.B. Inkrementalgeber<br />
<br />
d) Klassifikation nach Signalformen<br />
*Gestaltung der Peripherie<br />
*beschreibt wie<br />
**Signal vom Meßglied bereitgestellt wird<br />
**vom Stellglied erwartet wird<br />
<br />
--> ''Bild 4.3.''<br />
<br />
*analoge Signale: konstante Änderung, jeder beliebige Wert möglich<br />
*diskontinuierliche Signale: zu bestimmten Zeitpunkten jede beliebige Amplitude möglich<br />
*diskrete Signale:<br />
**wertdiskret (endlich viele Werte möglich)<br />
**zeitdiskret (endlich viele Zeitpunkte möglich)<br />
**wert- und zeitdiskret<br />
*binäre Signale: 2 Zustände<br />
*Impulsfolgen: Impulsabstand / Impulsanzahl<br />
*Abtastimpulse<br />
<br />
=== Zusammenfassung ===<br />
<br />
*Prozeßperipherie muß an speziellen Charakter der Meß-/Stellwerte angepaßt werden<br />
*leider häufig neu entwickelt werden<br />
*im Regelfall (PDV) sind es quasistationäre bzw. dynamische, nichtelektrische, analoge Meßwerte (als Primärsignale)<br />
*aus Signalart folgt:<br />
**Art der Meßgeräte zur Prozesssignalerfassung (''Bild 4.4.'')<br />
**Kette der Prozeßgrößenaufnahme (''Bild 4.5.'')<br />
<br />
==Prozessgrößenaufnahme==<br />
<br />
Ziel: Umwandlung v. Prozessgrößem in Prozessdaten (Zustandsgrößen, Alarme)<br />
Ausgangspunkt --> angepasste Umsetzung => aus Klassifikation der Signale<br />
=> angepasste Umsetzung/Mess- bzw. Stellkette<br />
<br />
===a) nach Aufbereitung der Signale im Messprozess:===<br />
*primäre Messwerte:<br />
**direkt am Prozess gewonnen<br />
**unverfälscht (evtl. Fehler des Sensors)<br />
**Prozesszustandand zugeordnet<br />
**z.B. Füllhöhe in Behälter<br />
*sekundäre Messwerte:<br />
**enstehen nach mindestens einer Umformung<br />
**können zusätzliche Fehler haben<br />
**z.B. Füllhöhe indirekt über Gewicht bzw. Winkelauslenkung ermitteln<br />
<br />
===b) nach technischer Natur===<br />
*elektrische Signale (Messwerte)<br />
*nichtelektrische Signale (-"-) (Mehrzahl in der technische Anwendung)<br />
<br />
===c) nach zeitlichem Verhalten===<br />
*statische Signale: zeitlich konstant (gegebenenfalls in bezug auf Arbeitsprozess)<br />
*stationäre Signale:<br />
**konstante Sollwertparameter für bestimmte Zeit<br />
**Parameter/Sollwert mit wenig Änderung<br />
*quasistationäre Signale:<br />
**ähnlich zu stationären Signalen<br />
**sehr langsame Zustandsänderung<br />
**(Bsp.P Temperaturänderung bei großen Massen)<br />
*dynamische Signale:<br />
**schnelle Änderung der Sollparameter<br />
**nicht nur Momentanwert sondern auch Gradient interessant<br />
**zum Beispiel gedämpfte Schwingung: interessante Parameter sind: Dämpfung, Frequenz, Startamplitude, Gradient...<br />
*Ereignisse (Alarme):<br />
**sprunghafte Änderung der Signale<br />
**nicht nur Wert der Veränderung bedeutsam<br />
**sondern gegebenenfalls auch Zeitpunkt bzw. Richtung<br />
<br />
===d) nach Signalform===<br />
*[http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap4/ArBl_K_4d.pdf siehe hier]<br />
*relevant für Gestaltung der Prozessperipherie<br />
*beschreibt wie Signal vom Messglied bereitgestellt/aufgenommen wird bzw. vom Stellglied benötigt wird<br />
*Formen:<br />
**analoge Signale:<br />
***kontinuierliche Änferung<br />
***innerhalb der bestimmten Grenzen ist jeder Wert möglich --> unendlicher Wertevorrat<br />
**diskontinuierliche Signale:<br />
***Veränderung sprunghaft<br />
***Signalwerte innerhalb der Grenzen<br />
**diskrete Signale<br />
***wertediskret<br />
***Zeitdiskret<br />
***kombination aus beiden --> Abtastsignal<br />
**quantisierte Signale: quantisierte Änderung möglich<br />
**binäre Signale: nur 1 und 0 als Zustand möglich<br />
**Impulsfolgen:<br />
***Information in <math>\Delta t</math><br />
***Information in der Anzahl der Impulse<br />
**Abtastimpulse <br />
***quantisiert aber nur über bestimmtes Zeitraster<br />
**PBM(PWM): <br />
***Pulsbreitenmoduliertes Signal<br />
***Information stecken im Verhältnis von 0 zu 1 bereichen<br />
*'''Zusammenfassung:'''<br />
**Prozessperipherie muss Charakter der Messwerte angepasst werden!<br />
**--> muss daher häufig neu entwickelt werden<br />
**im regelfall:<br />
***quasistatisch bzw. dynamische<br />
***nichtelektrische analoge Größen<br />
***als primäre Messwerte<br />
*aus Signalart:<br />
**--> Arten von Messgeräten --> vgl. Bild 4.4<br />
**Konkrete Kette der Prozessgrößenaufnahme --> vgl Bild 4.5<br />
<br />
== Quantisierung / Digitalisierung ==<br />
<br />
*Prinzip A/D-Umsetzung<br />
<br />
[[Bild:ad-umsetzer.png]]<br />
<br />
[[Bild:uf-umsetzer.png]]<br />
*U ≙ kontinuierliches Signal<br />
*F ≙ Zählsignal (digital)<br />
*UF-Umsetzung langsamer als A/D Umwandlung<br />
<br />
<br />
*Prinzip D/A-Umsetzer<br />
<br />
[[Bild:da-umsetzer.png]]<br />
<br />
[[Bild:fu-umsetzer.png]]<br />
*F ≙ Zählsignal (digital)<br />
*U ≙ kontinuierliches Signal<br />
<br />
== Prozeßgrößenübertragung ==<br />
<br />
Grundfunktionen<br />
*Anpassung des Signals an physikalische Anschlussbedingungen<br />
**Schaltungsanpassung (Widerstände, Potentialtrennung, Rückwirkungsfreiheit)<br />
**Pegelanpassung (Verstärkung Meßsignal, Wandlung I → U)<br />
*Übertragung<br />
**räumliche Trennung Meßgröße, Prozessrechner, Stellorgan<br />
**Fernwirksysteme<br />
*aus Übertragung folgt:<br />
**Signalverhalten<br />
**Übertragungseigenschaften<br />
**Störempfindlichkeit<br />
**Kosten<br />
<br />
--> ''siehe Bild 4.8.-10.''<br />
<br />
=== Multiplexen / Demultiplexen ===<br />
(Technik zur Umsetzung vieler Signale)<br />
<br />
--> ''Bilder auf den Folien 4.11. / 4.12''<br />
<br />
== Steuergröße, Stellglieder, Stelleinrichtung ==<br />
[[Bild:Bild 4.5.1.svg]] <br />
<br />
'''Steuergröße:'''<br />
* wirkt auf Stellglied<br />
* direkte Wirkung auf Stellgröße (Strom → Heizung)<br />
<br />
''' Stellgröße '''<br />
* wirkt am Stellort (Durchfluss bei Ventilen)<br />
* praktisch geringere Vielfalt als P-Messgrößen<br />
* Klassifizierung nach verschiedenen Gesichtspunkten<br />
--> Bild 4.14<br />
<br />
''' Statisches Verhalten'''<br />
* durch Kennlinie<br />
** Eingang ist Funktion vom Ausgang E=f(A)<br />
** z.B. Drehzahl (Fördermenge)<br />
* stetige Kennlinie<br />
** monoton<br />
** kontinuierlich<br />
** → stetiger Algorithmus<br />
* schaltende Geräte (diskrete Werte)<br />
** 2-Punkt Regelung (an/aus)<br />
** 3-Punkt Regelung (+,aus,-) z.B. Motor (rechts, aus, links)<br />
<br />
'''dynamisches Verhalten'''<br />
* Stellglieder sind in der Regel langsamer als Messglieder (Mechanische/Thermische Geräte)<br />
* Zeitverhalten muss im Prozess berücksichtigt werden (als Sprungantwort/ Impulsantwort)<br />
* ermitteln durch Testsignale (Sprung, Impuls ...)<br />
* oft zusätzliches nichtlineares Verhalten → Einfluss auf das Gesamtkonzept<br />
* Siehe Bild "Unterscheidung nach Sprungantwort"<br />
[[Bild:Bild 4.5.2.svg]]<br />
<br />
*dezentrale Systeme<br />
** z.B. Messglieder, Stellglieder, Busse<br />
** z.B. verschiedene Tastzeiten (TS)<br />
*** Tsalgo, TsADU → Verschiebung durch nicht Synchrone Ts möglich (siehe später)<br />
<br />
= Grundlagen der Regelung mit Digitalreglern =<br />
→ Regelkreis<br />
<br />
[[Bild:Bild 5.1.svg]]<br />
<br />
x: Regelgröße / Zustandsgröße<br />
<br />
w: Führungswert<br />
<br />
u: Regelabweichung<br />
<br />
== Beschreibung linearer dynamischer Systeme ==<br />
f[x1(t)+x2(t)] = f[x1(t)] + f[x2(t)] <br><br />
→ Überlagerungssatz gilt !<br><br />
[[Bild:Bild_5.2.svg]]<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! bgcolor="#BBBBBB" | Elementar Signal<br />
! bgcolor="#BBBBBB" |Transformation<br />
! bgcolor="#BBBBBB" | häufige Anwendung<br />
|-----<br />
| [[Bild:Bild 5.3.svg]]<br />
Stoß, Spalt<br />
|Faltungsintegral<br />
|allgemein<br />
|-----<br />
| [[Bild:Bild 5.4.svg]]<br />
Sprung<br />
|Laplace Transformation<br />
|Automatisierungstechnik<br />
|-----<br />
| [[Bild:Bild 5.5.svg]]<br />
Cosinus<br />
|Fouriertransformation<br />
|Nachrichtentechnik<br />
|-----<br />
| [[Bild:Bild 5.6.svg]]<br />
periodische Stoßfolge<br />
| Z-Transformation<br />
|zeitdiskrete Systeme<br />
|-----<br />
| [[Bild:Bild 5.7.svg]]<br />
Rechteckfolge<br />
| Walsh-Transformation<br />
|digitale Kommunikatioin<br />
|-----<br />
|}<br />
''Bild/Tab 5.1''<br />
<br />
== Analytische Beschreibung von Prozessen ==<br />
* Funktionsbeziehung(Zeitfunktion/Zeitbereich)<br />
** Beschreibt analytisch das physikalische Verhalten von Systemkomponenten<br />
** ordnet Eingangsgrößen einer Ausgangsgröße y zu: y(t)= f(x(t))<br />
** Bsp.: Sprung (zu einer Bestimmung der Funktionalenbeziehung als Testsignal) [[Bild:Bild 5.4.svg]]<br />
** Verallgemeinerte Ableitung des Sprungs wird als Gewichtsfunktion bezeichnet, deren Laplace-Transformation Übertragungsfunktion heißt<br />
* Übertragungsfunktion<br />
** Bild Funktionen,Frequenzbereich<br />
** durch Laplace Transformation aus Zeitfunktion von E und A Signalen mit einfachen Rechenregelwerk<br />
*Def: Laplace-Transformation L{f(t)} ordnet der Zeitfunktion f(t) in eindeutiger weise eine komplexe Funktion F(s) zu<br />
::<math>F(s)=\int _{0}^{\infty }f(t)e^{-st} dt</math><br />
*s ist komplexe Variable: s= p+jw<br />
* Bild 5.3.1 (Korrespondenzen der Laplace-Transformation)<br />
* Bild 5.3.2 (Rechenregeln)<br />
* Bild 5.4 (Zusammenstellung einfacher Kennlinienglieder)<br />
* Bild 5.5 (Beschreibung der funktionalen Abhängigkeiten eines Gleichstrommotors)<br />
* Bsp. Roboterarm<br />
<br />
:'''1 Elektrischer Teil'''<br><br />
::<math>U_{a}-e_{m}=R_{a}\cdot i_{a}+L_{a}\cdot \dot{i}_{a}</math> <br><br />
::Wobei gilt: <math>e_{m}=\tau _{m}\cdot \omega _{m}</math><br><br />
::<math>\tau _{m}=c\cdot \Phi \ \ \Phi ...\mathit{Hauptfluss}</math><br><br />
::Zeitbereich !!<br />
<br />
:'''2 Mechanischer Teil'''<br><br />
::<math>\dot{J}_{m}\omega _{m}=M_{a}-M_{L}\ \ M_{L}...\mathit{Lastmoment} \ M_{a}...\mathit{Arbeitsmoment}</math><br />
::Zeitbereich !!<br />
<br />
:→ Laplacetransformation<br />
<br />
::<math>R_{a}\cdot I_{a}</math> → Linearkombination<br />
<br />
::<math>L_{a}\cdot \dot{i}_{a}</math> → Differenziation<br />
<br />
::<math>U_{a}-E_{m}=R_{a}\cdot I_{a}+L_{a}\cdot s\cdot I_{a}</math> <br />
<br />
::<math>I_{a}=\frac{\frac{1}{R_{a}}}{\frac{1+L_{a}}{R_{a}+s}}(U_{a}-E_{m})</math> → Verzögerungsglied<br />
<br />
<br />
::<math>M_{a}-M_{l}=J_{m}(s\cdot \Omega _{m}(s)-\omega _{m}(t_{0}))</math><br />
<br />
::<math>\Omega _{m}=\frac{M_{a}-M_{L}}{J_{m}\cdot s}+\frac{\omega_{m}{(-0)}}{s}</math> → I-Glied<br />
<br />
<br />
:1.Verstärker und Stromrichter haben proportionales Verhalten<br />
::→ Kv, Ksr<br />
:2. Summierpunkt<br />
::<math>U_{a}-e_{m}</math> (Eingang)<br />
:3. <math>I_{A}</math> (Ausgang) = <math>K=\frac{1}{R_{a}},T=\frac{L_{a}}{R_{a}}</math> <br />
::Übertragungsfunktion: <math>\frac{K}{1+T_{s}}</math><br />
:4. proportional Wirkende Motorkonstante<br />
::<math>k=\tau _{m}</math> (Übergang zum mechanischen Teil)<br />
:5. Summierpunkte: <math>M_{a}-M_{L}</math> (Eingang)<br><br />
:6. Ω (Ausgang) Übertragnungsfunktion <br />
:::<math>\frac{K}{s}=\frac{1}{J_{m}\cdot s}</math> <br />
:7. Rückwirkung:<br />
:::<math>e_{m}-\tau _{m}\omega ,k=\tau _{m}</math><br />
<br />
<br />
== Digitale Regelung ==<br />
* für Modellierung (technischer Prozess, Regler)<br />
* Simulation (technischer Prozess, Regler)<br />
* Regelung (Regler)<br />
* Forderung: Gesamtfehler muss unter max. zulässigem Fehler liegen!<br />
** bezüglich Zeit --> Nyquist Theorem (Shannon)<br />
** bezüglich Wert --> Auflösung, Genauigkeit,Abweichung<br />
* t. Prozess: beschrieben durch Differenzialgleichung bzw. Integralgleichung<br />
* getastete System: beschrieben durch Differenzengleichung bzw. Summengleichung<br />
=== Differenzengleichungen, Regler, Filteralgorithmen ===<br />
→ Bild 5.7<br />
<br />
→ Bild 5.6 (Elementare Systeme und Modelle)<br />
<br />
* Berechnung Gesamtübertragungsfunktion bei zusammengesetzten Systemen<br />
** Reihenschaltung<br />
** Parallelschaltung<br />
** Rückführung / Gegenkopplung<br />
<br />
→ Bild 5.8 (PID-Regler)<br />
<br />
→ Bild 5.9 (Filteralgorithmus für Hoch-Tiefpass)<br />
<br />
= Informationsverarbeitung in Prozeßrechnern =<br />
<br />
== Echtzeitbetrieb ==<br />
<br />
*Kopplung an technischen Prozeß nur sinnvoll, wenn auf alle Forderungen des technischen Prozesses zeitgerecht reagiert wird<br />
*Echtzeitbetrieb ist Betriebsart eines Rechners, bei der der Rechner sich an die dynamisch ändernden Anforderungen aus dem Prozess anpasst<br />
**Zustände, Zeitbedingungen, Wichtigkeiten<br />
<br />
technischer Prozeß:<br />
*dynamische Änderung<br />
*Zeitbedingungen<br />
<br />
* technischer Prozess --> Prozessrechner Anpassug--><br />
*Anpassung<br />
*spezielle E/A<br />
*spezielle Kommunikation und zusätzlich Erfassung zeitlicher Bedingungen<br />
:→ angepasste Reaktion<br />
<br />
→ entsteht Problem der Realisierung (Abbildung) von Zeiten<br />
<br />
=== EZ-Forderungen ===<br />
*Rechtzeitigkeit<br />
**Zeitforderungen für Antwortzeit<br />
**Start bzw. Ende Reaktionsprogramm<br />
*Gleichzeitigkeit<br />
**in technischen Prozeß sind Teilprozesse zeitlich / wirkungsmäßig parallel<br />
**Reaktionsprogramme müssen parallel / quasiparallel ablaufen<br />
**gegebenenfalls nur Sequentiell bedienbar --> quasiparallele Abarbeitung <--> Erfüllung der Zeitanforderung<br />
*Vollständigkeit<br />
**alle Teilprozesse sind auszuführen<br />
*Korrektheit<br />
<br />
=== Echtzeit ===<br />
*harte Echtzeit<br />
**bei Nichteinhaltung Schäden am Prozeß bzw. Gefährdung<br />
*weiche Echtzeit<br />
**Nichteinhaltung gegebenenfalls tollerierbar, keine kritisches Systemzustände<br />
<br />
verallgemeinertes Zeitspiel:<br />
<br />
[[Bild:EZS_Zeitspiel.PNG]]<br />
<br />
--> ''siehe Bild 6.1. (Zeitparameter von Reaktionsprozessen)''<br />
<br />
*für EZ-Betrieb maßgeblich:<br />
**Einhaltung aller Erfassungs- und Antwortzeiten aller Teilprozesse<br />
<br />
<math>T_{ai} \le T_{pai}</math><br />
<br />
<math>T_{ej} \le T_{pej}</math><br />
<br />
i, j = 1,2, ...<br />
<br />
=== Abbildung von Zeiten in Prozeßrechner ===<br />
*absolute Zeiten --> Echtzeituhr (EZU)<br />
**aus HW-Signal (Interupt)<br />
**aus SW-Uhrenmodell<br />
<br />
*relative Zeiten (Zeiträume) <br />
:--> aus HW-Signal (Interupt)<br />
:--> aus Taktbasis (Schleifen / Zyklen)<br />
::*Auszählung von Takten bei Befehlsabarbeitung<br />
::*Problem: Cache-Sprünge, Unterbrechung durch Interupt, Busrequest<br />
:-->Zwischenform: Zählerregister<br />
::*laufen mit Takt<br />
::*Abfrage per Befehl möglich<br />
::*Sprung / Aktivität bei 0<br />
<br />
=== Zeitabbildung ===<br />
*Zeiträume --> Zyklen<br />
*Zeitpunkte --> Bedingungen, Ereignisse<br />
<br />
== Koordination der Informationsverarbeitung ==<br />
<br />
Zyklen: 3-Phasen-Zyklus<br />
<br />
*''Erfassen'' aller Meßsignale (Eingabe Prozeßabbild)<br />
*''Verarbeitung'' (Algorithmus entsteht Ausgabeprozeßabbild)<br />
*''Ausgabe'' (Ausgabeabbild über Stellsystem an Prozeß)<br />
<br />
<br />
--> 3 Teilprozesse (Tasks) für n Aufgaben<br />
*Anzahl der möglichen Prozesse: n * 3<br />
--> Koordination und Planung erforderlich!<br />
<br />
=== statische Koordinierung ===<br />
<br />
[[Bild:statische_Koordinierung.png]]<br />
<br />
*polling<br />
*feste Reihenfolge (synchrone Programmierung)<br />
*keine sofortige Reaktion ist eher Regel<br />
*nicht variabel<br />
*sehr einfach<br />
<br />
=== dynamische Koordinierung ===<br />
*Reaktion abhängig von Prozeßzustand<br />
*bei überschaubaren (nicht kritischen) Prozessen<br />
*führt auf verteilte Steuerstrukturen<br />
<br />
Formen:<br />
*Polling<br />
**Erfassung aller Prozeßeingangsignale<br />
**Abhängig von Signal wird Reihenfolge festgelegt<br />
*selbstinitiierte Koordination<br />
**kürzere Bearbeitungszeiten<br />
**weniger Einflußnahme auf Ausnahmesituationen<br />
<br />
=== prozeßgesteuerte Koordinierung ===<br />
*Reaktion auf kritische Zustände<br />
*ereignisgetrieben<br />
*feste Bindung an Prozeß über Signale, Ereignisse (z.B. Ts-Interrupt, Alarmsignal)<br />
*asynchrone Programme<br />
**keine Zyklen<br />
**Konflikte durch Prioritäten gelöst<br />
**stochastische Anforderungen mit Bedienmodell modellieren<br />
**Planung ggf. mit Bedienmodellen<br />
**Realisierung über Interuptsignale<br />
<br />
== Reaktionsprogramme mit Prioritätsprinzip ==<br />
<br />
*prozeßgesteuerte Koordinierung<br />
<br />
einfach Realisierung:<br />
*alarmbedingter Programmsprung (kein Rücksprung, RESTART)<br />
*alarmbedingter direkter Programmsprung (HW-Verteiler, Interupt --> Sprung --> Rücksprung)<br />
*alarmbedingter indirekter Programmsprung (SW-Verteiler: entscheidet, wohin gesprungen wird, Sprung --> Rücksprung)<br />
<br />
komplexe Realisierung:<br />
*Echtzeitbetriebssystem (EZBS)<br />
**Prozesse sind Tasks<br />
**Prozesse mit Taskzustandsmodell (TZM) beschrieben<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_1.png]]<br />
<br />
<br />
<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_2.png]]<br />
<br />
== Zeitgerechte Einteilung (Bild 6.4) ==<br />
<br />
Planung: deterministische Systeme (konzentriert)<br />
*Zeiten sind bekannt<br />
**Festlegung<br />
**Messung<br />
**worst-case-Berechnung<br />
*Prioritäten<br />
*Zeiten (Antwortzeiten, Spielraum (<math>s = t_a - t_l</math>))<br />
*Planung / Prüfung (Gannt-Diagramm, ''Bild 6.5 (Prozessorvergabe Antwortzeit & Spielraum)'', ''Bild (Zweiprozessorsysteme)'')<br />
--> ''Bild 6.6''<br />
<br />
Auswahl = f(Ein- oder Mehrprozesse bzw. gleich oder ungleiche Startzeiten der Prozesse)<br />
<br />
=== verteilte determinierte (zyklische) Systeme ===<br />
<br />
*mit unterschiedlichen Zykluszeiten (unabhängig)<br />
<br />
[[Bild:Verteiltedeterministischesysteme.png]]<br />
<br />
<br />
*Gesamtzykluszeit<br />
*Dynamik<br />
*Einzelzykluszeiten<br />
:bestimmen als Verbundelemente (2 bzw. 3)<br />
<br />
--> ''Bild 6.7 (Zeitliches Verhalten eines 2-Elemente-Verbundes)''<br />
<br />
--> ''Bild 6.8 (Antwortzeiten in verteilten deterministischen Systemen)''<br />
<br />
<br />
*Verbundsystem mit Kommunkation<br />
<br />
Gesamtprozeß:<br />
*Gesamtzykluszeit (min, max, average)<br />
*Gesamtlaufzeiten (min, max, average)<br />
<br />
<math>T_{l,min} = T_{l,ADU} + T_{l,Algo} + T_{l,DAU}</math><br />
<br />
=== Zykluszeit des Verbundes ===<br />
<br />
<math>T = max(T_1 , T_2)</math><br />
<br />
=== Extremwert der Verzögerung ===<br />
<br />
<math>\Delta t_{max} = min(T_1 , T_2)</math><br />
<br />
<math>\Delta t_{min} = 0</math><br />
<br />
<math>\overline{\Delta t_{min}} = \frac{min(T_1 , T_2)}{2}</math><br />
<br />
=== Antwortzeit ===<br />
<br />
<math>t_{A,Verbund} = t_{b1} + t_{b2} + \Delta t_{Verbund}(T_1 , T_2)</math><br />
<br />
<math>t_{bi}</math> – Bearbeitungszeiten (Laufzeiten)<br />
<br />
- für n Elemente weitere Zusammenfassung möglich<br />
<br />
=== stochastische Prozesse ===<br />
<br />
*Bedienmodelle / Systeme (Kapitel 7)<br />
*Einplanung nach:<br />
**Ankunft --> Variation von Prioritäten, Warteschlangen<br />
**Laufzeit --> Variation von Prioritäten, Warteschlangen oder shortest remaining processing time<br />
<br />
[[Bild:Stochastischesysteme.png]]<br />
<br />
= Bedientheorie / Bediensysteme =<br />
<br />
*Versuch der Bedienung (echtzeitfähig) von stochastischen Anforderungen<br />
*Versuch stochastische Systeme zu modellieren ?!<br />
:→ basiert auf Wahrscheinlichkeiten<br />
<br />
''siehe Folie 7.1. (Bedienungsanforderungen, Bedienprozesse)'' <br> ''siehe Folie 7.2. (Merkmale von Bedienprozessen und Ankunftsprozessen)''<br />
<br />
== Modell eines Bediensystems ==<br />
''siehe Folie 7.3. (Modellstruktur eines Bedienungssystems)'' <br> ''siehe Folie 7.4. (Einflussgrößen und Bewertungsgrößen von Bedienungssystemen)<br />
<br />
=== Klassifikation von Bedienprozessen ===<br />
*nach sogenannten Kendall-Parametern<br />
''siehe Folie 7.5. (Klassifizierung von Bedienprozessen)''<br />
*bei PR-Anwendung sind poissonverteilte Anforderung und exponentialverteilte Bedienung der "härteste" Anwendungsfall<br />
<br />
=== Statistische Kennwerte ===<br />
''siehe Folie 7.6. (stat. Kennwerte: Anforerungsprozesse (1))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Anforerungsprozesse (2))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Verweilprozesse)'' <br><br />
* analytische Berechnung<br />
* Simulation<br />
* Schätzverfahren<br />
<br />
== Offene Bediensysteme (Folie 7.9.) ==<br />
*keine Rückführung (von Senke auf Quelle)<br />
*Anforderungen nicht Ergebnis einer Bedienung<br />
*Anzahl der Anforderungen → unendlich<br />
<br />
== Geschlossene Bediensysteme (Folie 7.10.) ==<br />
*Rückführung (von Senke auf Quelle)<br />
*Anforderung ist Funktion der Bedienung<br />
*Anzahl der Anforderungen (Quellen, Qi) endlich<br />
<br />
''siehe Folie 7.11. (Bewertungsgrößen für Bedienungssysteme)'' <br><br />
''siehe Folie 7.12. (Berechnungsbeispiele für Antwortzeiten)''<br />
<br />
== Bedienstrategien ==<br />
Funktion von<br />
*System<br />
:*deterministisch<br />
::*verteilt<br />
::*konzentriert<br />
:*stochastisch<br />
*zyklisch / nicht zyklisch<br />
*endlich / unendlich<br />
→ Verusch programmtechnischer Lösung<br />
:*synchron<br />
:*asynchron<br />
:*Mischung<br />
:*EZBS<br />
<br />
= Echtzeitsysteme / Echtzeitprogrammierung =<br />
<br />
Ziel: Programmsysteme, die echtzeitfähig die Anforderungen erfüllen!<br />
<br />
*Zeitbedingungen (zeitgerechte Einplanung)<br />
*Prioritäten<br />
*Synchronisation (Steuerablauf) / Kommunikation von Prozessen (Datenaustausch) <br />
:→ gegenseitige Abhängigkeiten<br />
*Ereignis- / Ausnahmebehandlung<br />
<br />
<br />
Realisierungen:<br />
*synchrone Programme<br />
*Betriebssysteme mit Taskkonzept (asynchron)<br />
**universelle BS (Windows)<br />
**erweiterte universelle BS (EZ-Linux)<br />
**EZ-BS (QNX)<br />
*Echtzeitprogrammiersprachen<br />
<br />
[[Bild:EZS-EZBS.PNG]]<br />
<br />
== Echtzeitbetriebssysteme (EZBS) ==<br />
<br />
*Eigenschaften und Größe = f(Anforderungen)<br />
<br />
Eigenschaften, die über universelle BS hinausgehen:<br />
<br />
:1) direkter Zugang zu E/A-Geräten<br />
::*direkte Programmierung von E/A Schnittstellen<br />
::*gerätespezifische Realisierung (Effizienz)<br />
::*definierte Zugriffszeiten<br />
<br />
:2) Interrupts auf Anwenderebene<br />
::*schnelle Reaktion auf Interrupt auf Algorithmenebene<br />
::*Operationen nötig: Maskierung, Priorisierung, Spezialisierung<br />
<br />
:3) Zeitverwaltung<br />
::*für alle Anforderungen der möglichen Taskplanung<br />
::*Fähigkeit einer EZ-Uhr<br />
<br />
:4) effektives Scheduling<br />
::*effektive Prozessorvergabe<br />
::*Einhaltung aller EZ-Forderungen<br />
<br />
:5) flexible Konfiguration (Skalierung)<br />
::*Anpassung an Umfang der Aufgabe<br />
::*maximale Leistung. minimale Größe<br />
::*Werkzeuge für Skalierung<br />
<br />
Anforderungen der Prozesse verschieden<br />
:--> verschiedene angepasste EZBS-Strukturen!<br />
<br />
--> ''Folie 8.1. (Strukturen von Prozessrechner-Betriebssystemen)''<br />
<br />
=== Abruf-BS ===<br />
*Kontrolle der Programme durch sequentielle Abläufe<br />
--> Takt- / Befehlsabarbeitung<br />
*eingeschränkte EZ-Fähigkeit<br />
*kleine / kompakte Systeme (Signalprozessoranwendungen)<br />
*nicht flexibel<br />
*Problem: Bedienung, Kommunikation, Anzeige<br />
<br />
=== Interrupt-BS ===<br />
*Zeitbasis ist Interrupt!<br />
*Interrupt (HW / SW) führt auf Realisierungsprogramm<br />
*zeitliche Kopplung an HW-Signal<br />
*flexibler: erweiterbar, Abhängigkeiten, Maskieren, ...<br />
<br />
=== Monitor-BS ===<br />
*basiert auf Interrupt (Sammelanforderung)<br />
*sehr flexibel (Monitor(SW) als Scheduler)<br />
*Task sind durch Programmierung beliebig änderbar (Prozesse aufnehmen, entfernen, umpriorisieren)<br />
<br />
=== Taskkonzept ===<br />
<br />
*Prozeß-EZ-System<br />
**Sollwerermittlung<br />
**Erfassungstask<br />
**Verarbeitungstask<br />
**Ausgabe / Shell Task<br />
<br />
*Task-Konzept --> TZM (Task-Zustands-Modell) --> Task hat definiert viele Zustände<br />
*Multi-Task-Betrieb!<br />
<br />
erfüllt werden muß:<br />
<br />
*EZ-Forderungen<br />
**Rechtzeitigkeit<br />
**Gleichzeitigkeit<br />
**Vollständigkeit<br />
: --> erfüllbar mit Verwaltungsstrategien & Umschaltstrategien (Dispatcher)<br />
*Korrektheit<br />
<br />
--> ''Bild 8.2. (Zustandsübergänge von Tasks)''<br />
<br />
Wertung: Taskkonzept<br />
*stellt alle Start-/Umschaltbedingungen bereit die von Prozesssteuerung gefordert werden<br />
*Konflikbehandlung über zusätzliche Prioritäten (o. ä.) möglich<br />
<br />
nötig-weiterhin:<br />
<br />
*Taskkommunikation (Datenaustausch)<br />
*Tasksynchronisation<br />
<br />
zur Synchronisation / Kommunikation Mechanismen<br />
<br />
*Semaphore (Informationsträger)<br />
*Monitore (spezielle Datenstruktur, Daten + Mechanismen)<br />
*Rendezvous<br />
*Bolt-Variable (ähnlich Semaphore)<br />
--> ''Bild 8.3. (Synchronisation von Tasks)''<br />
<br />
=== TZM ===<br />
<br />
Grundlage für:<br />
*Verwaltung / Planung der Takte<br />
*für Umschaltung<br />
<br />
Betrieb von Mehrprozessorsystem<br />
*n-gleiche<br />
:PR1 <----Kommunikation --> Prn<br />
*gemeinsamer BS<br />
<br />
[[Bild:EZS Mehrprozessorsystem.svg]]<br />
<br />
== Prozessprogrammiersprachen (EZ Sprachen) ==<br />
<br />
*zusätzliche Eigenschaften von EZ-Sprachen gegenüber herkömmlichen Prozeßprogrammiersprachen<br />
**Operationen für spezielle E/A<br />
**Operationen für Zeitabarbeitung<br />
**Operationen für Unterbrechungsverarbeitung (Ind, Alarme, dyn. Prozessorkopplung, Bedienkommandos, EA-Signale)<br />
**Operationen für Taskverarbeitung<br />
***z.B. Create<br />
***Terminate (T-Zyklen, T-Prioritäten)<br />
***Awaite<br />
**Operationen für Synchronisierung<br />
**Operationen für Kommunikation (Semaphor, Bolt ...)<br />
<br />
*Sprachen für EZ-Programmierung<br />
**System, Assemblersprachen (CORAL, C, RTL, PLIM, PLIZ)<br />
**erweiterte höhere Sprachen (RT-Fortran, RT-Basic, PL/1)<br />
**Prozessprogrammiersprache (PEARL, Concurrent Pascal, OCCAM)<br />
**Spezialsprachen/Fachsprachen (STEP1, STEP M, MATLAB & Simulink)<br />
*Wege der Realisierung<br />
**vorhandene Speicher<br />
***EZ-C<br />
***EZ-PASCAL<br />
**neu Erstellen<br />
***Ada. Für Multiprozessorsysteme<br />
***Pearl für PDV Systeme<br />
***--> Create REG Ti for n-Times TERMINATOR<br />
[[Kategorie:Studium]]<br />
<br />
Synchronisationsmechanismen in Sprachen: <br><br />
:a) Semaphor --> PEARL <br><br />
:b) Monitor --> PEARL, Modula 2, Concurrent Pascal <br><br />
:c) Rendesvouskonzept --> ADA <br><br />
:d) Bolt-Synchronisation (Riegel) --> PEARL <br><br />
<br />
--> ''Bild 8.6. (Darstellung binärer Signalverarbeitung)''</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Echtzeitsysteme&diff=10390Echtzeitsysteme2012-07-13T07:11:22Z<p>TheMrH: </p>
<hr />
<div>{{Vorlesung<br />
|richtung = alle<br />
|name = Echtzeitsysteme<br />
|kurz = EZS<br />
|mann = Ja<br />
|vorlesend = Kowalski<br />
|ort = K2077<br />
|url = http://www.tu-ilmenau.de/sp/lehre/vorlesungen/echtzeitsysteme/<br />
|urlname = Klick!<br />
}}<br />
<br />
<big>'''Klausurergebnisse'''</big><br />
<br />
<br />
Schein: [http://omega.theweblords.de/wiki/Bild:EZS_Schein.JPG Klick]<br />
<br />
Prüfung: [http://omega.theweblords.de/wiki/Bild:EZS_Pruefung.JPG Klick]<br />
<br />
<br />
<big>'''Vorlesungsmaterial'''</big><br />
<br />
Vorlesungsmaterial unter [http://pi0.theoinf.tu-ilmenau.de/ezbs http://pi0.theoinf.tu-ilmenau.de/ezbs]<br />
<hiddenlogin linktext="Login zum Zugriff (klick me!)">Login: ezbsu / alle9</hiddenlogin><br />
<br />
Zugelassene Hilfsmittel:<br />
- eigenes VL-Script<br />
- ein A4-Blatt<br />
<br />
<br />
<big>'''Vorlesungsmitschrift (Angaben ohne Gewähr)'''</big><br />
<br />
= Prozesse – Informatik – Echtzeitsysteme (EZS) =<br />
<br />
== Ziele der Prozeßinformatik (PIF) ==<br />
<br />
*inter-, transdisziplinäres Gebiet<br />
*enger Zusammenhang von PIF und Automatisierung<br />
<br />
'''Ziel:''' zielgerichtete Beeinflussung technischer Prozesse ''(siehe: Bild 1.1)''<br />
<br />
=== Gründe für Automatisierung und PIF ===<br />
<br />
*physische Grenzen<br />
*psychische Grenzen<br />
*humane Grenzen (zu komplex für den Menschen)<br />
*technische / ökonomische Gründe<br />
**Neuartigkeit<br />
**Wirtschaftlichkeit<br />
**"time to market" (Entwicklung und Überführung/Anpassung)<br />
<br />
=== Merkmalsbetrachtung am Beispiel (eingebetteter) EZS (Bild 1.1a) ===<br />
<br />
[[Bild:EZS_1.1a.png]]<br />
<br />
=== Entwurfsrelevante Merkmale ===<br />
*Einbettung in die Umgebung<br />
*Verteilung<br />
*Zeitanforderungen<br />
*Parallelitäten<br />
*Datenhaltung<br />
<br />
=== Nutzerrelevante (Qualitäts-) Merkmale ===<br />
*Erfüllung der Funktion<br />
*Benutzbarkeit (für den Bediener)<br />
*Effizienz (Rechenleistung, Kosten à Zeit / Ressourcen)<br />
*Zuverlässigkeit, Verfügbarkeit<br />
*Änderbarkeit<br />
*Portabilität<br />
*Sicherheitsanforderungen<br />
*gesetzliche Anforderungen<br />
<br />
=== Einordnung von EZS – PDV – Systemen interdisziplinär (Bild 1.2) ===<br />
(PDV – Prozeß-Daten-Verarbeitung)<br />
<br />
[[Bild:EZS_1.2.png]]<br />
<br />
=== Phasen: Analyse / Synthese / Entwurf (Bild 1.3) ===<br />
<br />
[[Bild:Analyse synthese entwurf.png]]<br />
<br />
Verbindung: (Schnittstelle – SS)<br />
*Art der Modellrepräsentation<br />
*Funktionale Modellrepräsentation<br />
<br />
=== Aufgabe für Prozeßinformatik beim EZ-Systementwurf ===<br />
<br />
(1) Erstellung von geeigneten Verfahren und Entwurfswerkzeugen für Automatiker unter Beachtung der Modellrepräsentation<br />
*Aufbereitung, Nutzung standardisierter Werkzeuge<br />
*Erstellung spezialisierter Entwurfswerkzeuge<br />
<br />
(2) direkter Entwurf von Hard- und Software<br />
*Darstellung, Modellierung (allgemeingültig)<br />
*Formalisierung<br />
*Überführung in einen konkreten (einheitlichen) Entwurf<br />
<br />
=> 2 Komplexe für die Vorlesung:<br />
*Systeme, Modelle, ...<br />
*Anforderungen an Systeme bzgl. Echtzeitverhalten (EZ-Sprachen)<br />
<br />
=== Systemplanung: ===<br />
<br />
[[Bild:Systemplanung.png]]<br />
<br />
----<br />
<br />
'''Aussage:''' es existieren<br />
*Vielzahl von Realisierungsmöglichkeiten<br />
*Vielzahl von Kriterien <br />
<br />
'''1) Voruntersuchung'''<br />
*Klärung wirtschaftlicher Fragen<br />
*Kosten-Nutzen-Analyse<br />
*Automatisierungsgrad<br />
<br />
'''2) Grobanalyse'''<br />
*Ziele: <br />
**Grobmodell für Verfeinerung und Implementierung<br />
**Darstellung und Abbildung der möglichen Hierarchie und Struktur<br />
**Auflösung von Elementar- und Einzelprozessen<br />
<br />
'''3) Schema / Konfigurationsaspekte'''<br />
*Meßaufgaben<br />
**Ort-, Wert-, Zeitverhalten<br />
**Verarbeitung, Übertragung, Meßeinrichtung<br />
*Steuerungsaufgabe<br />
**Lokalisierung, Größen<br />
**Zeitverhalten<br />
**Steuereinrichtung (elektrisch, mechanisch, pneumatisch)<br />
*Stellaufgabe<br />
**Ort-, Wert-, Zeitverhalten<br />
**Übertragung<br />
*Bedienaufgabe<br />
**Darstellung, Protokollierung<br />
**Bedienung, Bedienort / Bedieneinrichtung<br />
*Sicherheitsaufgabe<br />
**Vermeidung von Gefährdung bzw. Ausfall<br />
*Sollkonzept<br />
**Lastenheft / Pflichtenheft<br />
<br />
=== Beschreibung von Elementarprozessen ===<br />
*funktional<br />
*Verbund (hierarchisch, konzentriert, ...)<br />
<br />
=== Prozeßstrukturen ===<br />
*statische Strukturen<br />
**Grobstruktur des Aufbaus<br />
**nicht immer Rückschluß auf Funktion möglich<br />
**Blockdiagramme (z.B. Wirkungs- / Transportwege)<br />
*stationäre Strukturen<br />
**analog zu statischen Strukturen<br />
**Darstellung paralleler Abläufe<br />
**Blockdiagramme, ...<br />
*dynamische Strukturen<br />
**Elemente passen strukturell statisch zusammen<br />
**passieren im richtigen Moment (zeitabhängige Übergänge)<br />
**Beschreibung z.B. mit Petri-Netzen (PN)<br />
<br />
== Repräsentations- und Beschreibungsmöglichkeiten ==<br />
<br />
*graphische Beschreibungsmittel<br />
**Beschreibung für Struktur und Funktion möglich<br />
<br />
*in PIF Netzdarstellung<br />
**Instanzennetze<br />
**SADT (erweitertes Instanzennetz)<br />
**Petri-Netze<br />
<br />
*Struktur: Verbindung --- Elemente --- Funktion (statisch / dynamisch)<br />
<br />
*Beschreibungsmittel<br />
**Knoten: Zustände, Speicherung<br />
**Kanten: Übergänge, Wirkrichtung<br />
<br />
[[Bild:Knoten.png]]<br />
<br />
*Beispiel:<br />
**Instanzennetze ''(Bild 1.5)''<br />
***Instanzen, Kanäle, Verbindungen<br />
**SADT - Structured Analyse and Design Technique ''(Bild 1.6)''<br />
***Trennung von Daten- und Funktionsmodell<br />
***Redundanter Entwurf --- Sicherheit<br />
**Petri-Netze ''(Bild 1.7)''<br />
***Besonderheiten: Prozeßübergänge und –dynamik beschreibbar<br />
***geeignet für statische, stationäre und dynamische Strukturen<br />
***mathematisches Fundament<br />
***überführbar in andere Beschreibungsmittel<br />
***Tools vorhanden !<br />
***Plätze, Transitionen, Kanten, Marken<br />
***Schaltregel muß erfüllt sein (Vor- / Nachbedingungen)<br />
<br />
= Begriffe der PIF mit EZS =<br />
== System – Modell – Prozeß ==<br />
<br />
allgemeines Wirkschema<br />
<br />
[[Bild:Wirkschema_allgemein.png]]<br />
<br />
Wirkschema Normalbetrieb<br />
<br />
[[Bild:Wirkschema.png]]<br />
<br />
Prozess ist '''ursächlich'''! --> Quelle/Senke von Daten/Befehlen für Steuerung/Regelung<br />
<br />
'''zur Beobachtung/Führung:'''<br />
<br />
--> PDV-EZS mit folgender Spezifikation<br />
<br />
* Einhaltung zeitlicher Abfolgen und vorgegebener Bearbeitungszeiten (von Prozeß vorgegebene EZ-Bedingungen)<br />
* Echtzeitverarbeitung<br />
<br />
<br />
* ständige Aufnahmebereitschaft der PDV-Systeme für äußere(von Prozeß) / innere (Ausnahmezustände, Fehlermeldungen) Informationen / Ereignisse<br />
*deren schritthaltende Verarbeitung (nach vorgegebenen Algorithmen) zum Zweck der: <br />
** Verarbeitung <br />
** Speicherung <br />
** Transport / Übertragung<br />
<br />
* Daten/Ereignisse aus Gegenwart und Zukunft auch aus Vergangenheit erfolderlich<br />
* Gesamtsystem (oder Teilsystem) müssen geforderte Funktionen erfüllen<br />
* Gesamtsysteme (Teilsysteme) müssen sicher sein<br />
<br />
=== EZ-Forderungen ===<br />
* Rechtzeitigkeit<br />
* Vollständigkeit<br />
* Gleichzeitigkeit<br />
* Korrektheit/Sicherheit<br />
<br />
=== Begriffe ===<br />
* System (aus Sicht der PIF)<br />
** Einheit aus informationstechnischen Maßnahmen zur zielgerichteten Beeinflussung stofflicher, energetischer, informationelle Sachverhalte und Informationsverarbeitungstecnik selbst<br />
** je nach Betrachtung angepasste Modelle für Analyse/Synthese erforderlich<br />
** ''siehe Bild 2.4 / 2.5''<br />
<br />
* Modell<br />
** Abbildung eines Systems mittels einer kognitiven Struktur<br />
*Warum Modellnutzung?<br />
**Ausgangspunkt für Systementwicklung<br />
**Ausgangspunnkt für Systemuntersuchung<br />
**gdw. --> am Original: nicht möglich ist; zu teuer; zu langwierig<br />
<br />
=== Modellausprägungen ===<br />
<br />
* physikalische (materielle Modelle)<br />
** nur bei sehr teuren Zielsystemen<br />
** biologischer Bereich<br />
<br />
* mathematische Modelle<br />
** formale Modelle<br />
** grafisch, numerisch<br />
<br />
[[Bild:Flußdia.png]]<br />
<br />
=== Modellunterscheidung nach Charakter der Modellvariablen ===<br />
<br />
*Modellvariablen<br />
**Zeitbezug (--> dynamische /statische Modelle)<br />
**Wertetyp (--> diskrete / stetige Modelle)<br />
**Determiniertheit (--> deterministische / stochastische Modelle)<br />
*''siehe Bild 2.6''<br />
<br />
<br />
----<br />
<br />
<br />
[[Bild:Modell.png]]<br />
<br />
=== Modellprüfung ===<br />
<br />
* Validierung: Übereinstimmung von Modell und Realität (Bewertung, Kenntnisse der Domäne)<br />
* Verifikation: Übereinstimmung Computermodell und Realität (iterativ Herbeiführen)<br />
<br />
== Technische Prozesse ==<br />
<br />
* Vorgang zur Umformung, Transport, Speicherung von Materie, Energie, Information<br />
* dessen Zustandsgrößen mit technischen Mitteln erfasst werden können und beeinflusst werden können <br />
<br />
(vgl. DIN 66201)<br />
<br />
Unterscheidung wichtig da für verschiedene Grundformen<br />
* angepaßte Regelung-/Führungsstrategien<br />
* Einfluß auf EZ- Systemverhalten <br />
<br />
''siehe Bild 2.7''<br />
<br />
== Informationen in technischen Prozessen ==<br />
<br />
* Kopplung eines: technischen Prozesses und Steuerungssystems ist Ziel!<br />
* erfolgt durch: Informationsgewinn aus dem Prozess und Informationsverteilung in dem Prozess<br />
<br />
<br />
Repräsentation des Systems durch ein Modell ist:<br />
* Darstellung der Systemzustände<br />
* Darstellung der inneren Struktur<br />
<br />
--> erfolgt alles durch Informationen<br />
<br />
<br />
Abbildung der Systemzustände ist Voraussetzung für Prozeßbeobachtung<br />
<br />
[[Bild:Prozeßbeeinflussung.png]]<br />
<br />
*Sensorik: (Messglieder) Informationserfassung für Zustand<br />
*Aktorik: (Stellglieder) Informationsausgabe für Zustandsänderung<br />
<br />
''siehe Bild 2.8''<br />
<br />
=== Signale ===<br />
<br />
*zeitlicher Verlauf einer physikalischen Größe x, die Informationen in sich trägt<br />
<br />
Problem: Darstellung kontinuierlicher, veränderlicher Systemzustände durch Informationen<br />
<br />
[[Bild:EZS-Signale.jpg]]<br />
<br />
*unendlicher Wertevorrat --> wertkontinuierlich, zeitkontinuierlich<br />
*unendlicher Wertevorrat nicht abbildbar in diskreten Systemen<br />
<br />
=== Lösungsansatz ===<br />
<br />
*Quantisierung<br />
**Zustandsbereich auf Intervall beschränken in dem sich Zustandsgröße befindet<br />
**Aufteilung des Intervalls in Inkremente<br />
<br />
*Digitalisierung der Informationen<br />
**Entscheidungsgehalt = Maß für Aufwand zur Klassifizierung der Zustandsgröße<br />
**<math>H_0 = ld(n)</math><br />
**<math>M_Z = \{Z_1, ... , Z_n\}</math> - Zustandsraum<br />
<br />
*Auflösung: kleinste einstellbare, erkennbare Inkrement bezogen auf beschränkten Zustandsbereich<br />
**<math>A = \frac {\hat x - \check x}{\Delta x}</math> Länge des Inkrements<br />
<br />
*Genauigkeit: größte Abweichung des realen Zustandes Xr von seinem durch Information beschriebenem Zustand Xi<br />
**<math>G = \left| X_r - X_i \right|_{max}</math><br />
**<math>g = \frac {\left| X_r - X_i \right|_{max}}{X}</math> relative Genauigkeit<br />
<br />
*Abtastung<br />
**Informationserfassung nur alle <math>\Delta t</math> (<math>\Delta t</math> > 0)<br />
**--> Zeitdiskretisierung<br />
<br />
[[Bild:EZS-Abtastung.jpg]]<br />
<br />
=== Diskussion ===<br />
<br />
*Abtastfrequenz >> Signalfrequenz<br />
*bei Anwendung können A und G (gleich und) verschieden sein<br />
**hohe A bei kleiner G für Langzeitmessung<br />
**G > A – falsche Abbildung der physikalischen Zustände<br />
*Normalfall: A >,>> G<br />
*Fakt: ADU, DAU --> A > G , G – schlechterer Wert<br />
<br />
= Prozeßlenkung, Prozeßkopplung, Prozeßrechner =<br />
<br />
[[Bild: EZS-Prozess.jpg]]<br />
<br />
Sensor:<br />
*erfassen x(t)<br />
*wandeln x(t) in x(<math>\Delta</math>t)<br />
<br />
Verarbeitung: diskret<br />
<br />
Aktor:<br />
*stellen<br />
*wandeln y(<math>\Delta</math>t) in y(t)<br />
<br />
zeitdiskretes Signal<br />
*fungiert über diskrete Zahlenfolgen <math>x_i</math><br />
*führt auf <math>y_i</math><br />
<br />
== Untersuchung von Systemen ==<br />
<br />
(1) statische Systeme<br />
*y(t) hängt ausschließlich von x(t) ab<br />
<br />
[[Bild: EZS-Linear.jpg]]<br />
<br />
(2) dynamische Systeme<br />
*y(t) hängt zumindest in einem Zeitpunkt <math>T_1</math> von der Zeit und nicht nur von x(<math>t_x</math>) ab<br />
<br />
[[Bild: EZS-Knick.jpg]]<br />
<br />
=== Unterscheidung durch Linearität ===<br />
<br />
(1) lineare statische Systeme<br />
*g.d.w. Überlagerungssatz gilt<br />
*<math>f(x_1 + x_2) = f(x_1) + f(x_2)</math><br />
<br />
(2) lineare dynamische Systeme<br />
*für E-/A-Signale aus Vergangenheit und Gegenwart gilt Überlagerungssatz<br />
*<math>f(x_1(t) + x_2(t)) = f(x_1(t)) + f(x_2(t))</math><br />
*ist das nicht so: nichtlineare Systeme!<br />
<br />
=== Verhalten in linearen dynamischen Systemen ===<br />
<br />
<br />
[[Bild:EZS - Verhalten in linearen dynamischen Systemen.jpg]]<br />
<br />
=== mögliche Systemklassen ===<br />
<br />
[[Bild:Systemklassen.svg]]<br />
<br />
*lineare (insbesondere statische) Systeme lassen sich sehr gut beschreiben durch<br />
**Datenflußgraphen (DFG)<br />
**Signalflußgraphen (SFG)<br />
*''siehe Bild 3.3. (DFG / SFG)''<br />
**gerichteter Graph<br />
**Richtung entspricht Datenfluß<br />
<br />
Funktionsbeispiel: <math>y = a \cdot (b + c)</math> <br />
*Knoten / Plätze: Datenspeicher / Variable (a, b, c, y)<br />
*Operatoren: Operationen (ADD, MULT)<br />
<br />
[[Bild:EZ addmul.svg]]<br />
<br />
Defizit: Reihenfolge der Abarbeitung (Steuerfluß) fehlt<br />
<br />
=== Grundstrukturen ===<br />
<br />
*Reihenschaltung<br />
<br />
[[Bild:EZ reihe.svg]]<br />
<br />
*Parallelschaltung<br />
<br />
[[Bild:EZ parallel.svg]]<br />
<br />
*Rückkopplung<br />
**Gegenkopplung (Regler)<br />
**Mitkopplung (Oszillator)<br />
<br />
[[Bild: EZS - Rückkopplung.jpg]]<br />
<br />
== Struktur hierarchischer Prozeßlenkungen ==<br />
<br />
Ziel:<br />
[[Bild:EZ Bild3.2.1.svg]]<br />
<br />
Vorraussetzung: Erfassung des Streckenzustandes<br />
<br />
=== Strecke ===<br />
<br />
*Teil des Systems<br />
*technische bzw. physikalische Größen gemäß Zeitfunktion<br />
*meist zeitkontinuierlich<br />
*Streckenmodell durch Messen / Berechnen ermitteln<br />
<br />
=== Art der Einflußnahme ===<br />
<br />
*Steuerung<br />
**ist rückwirkungsfrei<br />
**SFG zyklenfrei<br />
**n-Eingangsgrößen möglich<br />
**Stellgrößen sind Ausgang<br />
**Führungswertsteuerung über externe Führungswerte<br />
**''siehe Bild 3.6''<br />
*Regelung<br />
**geschlossene Wirkungskette<br />
**Regelabweichung = Istwert – Führungswert<br />
**„Regeltechnisches Paradoxon“<br />
**Führungsbetrieb<br />
**Störbetrieb (externe Störungen)<br />
<br />
=== Automatisierungsziel ===<br />
<br />
*einfach --> einfaches PDV-EZS (autonomes) Automatisierungssystem <br />
*komplex<br />
**Dekomposition, Funktion, Hierarchie<br />
**Taxonomie --> PDV-EZS als Rechnerverbund<br />
*''siehe Bild 3.6''<br />
*Rechnerverbund --> Ebenen --> Zeitebene, Intelligenz, Komplexität<br />
<br />
=== Besonderheiten der Ebenen ===<br />
<br />
(1) Prozeßebene<br />
*direkte Prozeßüberwachung, -beeinflussung (Steuerung / Regelung)<br />
*Elementar-, Einzel-, Verbundprozesse<br />
*Kopplung Sensor --> Steuerung --> Aktor direkt oder über Busse (z.B. ASI-Bus)<br />
*Bedienung: prozeßnah<br />
**Handbetrieb<br />
**Normalbetrieb<br />
<br />
(2) Operativebene<br />
*Überwachung und Bedienung von Gruppen- und Einzelreglern (gegebenenfalls Backup)<br />
*Einzel-, Verbundprozesse<br />
*Bindeglied zwischen (1) und (3) – Koordinationsebene<br />
<br />
[[Bild:EZ Bild3.2.2.svg]]<br />
<br />
*Kopplung: EZ-Busse (z.B. CAN, Profi-Bus, Interbus)<br />
*Bedienung:<br />
**problemspezifische Programmierumgebung<br />
**Funktionstastaturen<br />
**Ausgabe: Störmeldungen, Protokolle, Trendanalyse<br />
<br />
(3) Koordinationsebene<br />
*Gruppen der Operativebene zusammengefaßt <br />
*Funktionskoordinierung:<br />
**Voraussetzung für Prozeßlenkung über Leitrechner<br />
*Funktionsoptimierung:<br />
**max. Effizienz der Teilprozesse nach gemeinsamen Zielfunktionen<br />
*Verbundprozesse<br />
*Kopplung:<br />
**(3) --> (2): EZ-Busse<br />
**(4) <-- (3): nicht EZ-Busse, (EZ-Busse möglich)<br />
*Redundanz für (2) (abhängig von Kopplung: EZ / nicht EZ)<br />
*Bedienung:<br />
**Abfrage aller unteren Ebenen (z.B. Bedienung von (2))<br />
**Programmierumgebung<br />
**Steuerstrategien<br />
<br />
(4) Leitebene / Managementebene<br />
*zentrale Leitung des Ausgabesystems (Automatisierungssystems)<br />
*Betriebsprozesse<br />
*Planung / Statistik / wirtschaftliche Strategie<br />
*Trennung zwischen System und Umgebung<br />
*Kopplung (4) --> (3): nicht EZ-Busse (möglich mit EZ-Busse)<br />
*Bedienung:<br />
**leistungsfähige (graphische) Programmierumgebung<br />
**Protokollierung / Archivierung<br />
<br />
=== Zeithorizonte der Ebenen ===<br />
<br />
[[Bild:EZ Bild3.2.3.svg]]<br />
<br />
bei ms-s (auch bei min): größte EZ-Forderung<br />
<br />
konkrete Aufgabenstellung in der Hierarchie bestimmt:<br />
*Zeitforderungen / Abläufe der Kopplung<br />
*Enge der Kopplung einer Rechners an den Prozeß<br />
*Eingriffsmöglichkeiten von Mensch und / oder Rechner auf den technischen Prozeß<br />
*--> Unterscheidung von Kopplungsprinzipien (nötig!)<br />
**Stärke der Kopplung<br />
**Mitwirkung Mensch, Rechner<br />
<br />
Varianten:<br />
*Mensch --> technischer Prozeß<br />
*Rechner --> technischer Prozeß<br />
*Mensch --> Rechner<br />
<br />
[[Bild:EZ Bild3.2.4.svg]]<br />
<br />
=== Kopplungsprinzipien ===<br />
<br />
*'''handbediente Prozesse'''<br />
[[Bild:EZS - Handbediente Prozesse.jpg]]<br />
**Mensch beobachtet & steuert --> alle Aufgaben der Prozesssteuerung bei Menschen --> geringere Komplexität<br />
**ggf. Kleinkraftwerke, Heizanlagen <br />
<br><br />
*'''indirekte Prozesskopplung'''<br />
**'''off-line'''<br />
**[[Bild:EZ offline petri.svg]]<br />
***Rechner muss nicht EZ-Fähig sein<br />
***Mensch ist Bindeglied zwischen ZP und Prozessrechner<br />
***keine zeitliche Bindung<br />
***offline Datenübergabe, -abholung<br />
<br><br />
**'''in-line'''<br />
**[[Bild:EZ Inline petri.svg]]<br />
***zeitliche Bindung<br />
***parallele Berechnung komplexer Algorithmen mit Rechner<br />
***als Vorgabe für Menschen, Mensch steuert nach wie vor (z.B. Prozessrechner errechnet komplexe Steuerdaten, aber Mensch führt Steuerung aus)<br />
<br><br />
*'''direkte Prozesskopplung'''<br />
**enge zeitliche Kopplung<br />
**Bediener möglichst ausserhalb der Kette<br />
**z.B. Fahrerloser Betrieb<br />
**Prozessrechner wird möglichst in Prozess integriert<br />
**siehe [http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap3/Bild%20_DirProz-koppl_3__.pdf Bild 3._]<br />
<br />
Rechner zur Kopplung technischer Prozeß à Prozeßrechner (PR)<br />
<br />
== Prozeßrechner ==<br />
<br />
*'''2 Arten:'''<br />
**erweiterte technische Lösung einer allgemeinen Universalrechnerstruktur (Operativ-, Kooperativebene) mit spez. PR-Elementen, -eigenschaften <br>(operativ- oder Kooperationsebene)<br />
**spezielle Realisierung mittels Mikroprozessoren als integrierte Systeme (Operativ- und / oder Prozeßebene)<br />
<br><br />
'''zu Bild 3.7.:'''<br />
<br />
*leistungsfähiger Rechenkern<br />
**modularer Aufbau<br />
**Konfigurierung von Meß- und Stellperipherie<br />
**(z.B. bis 100 Regelkreise)<br />
<br><br />
*Prozeßperipherie<br />
**peripheres Gerät = f(Aufgabenstellung) (bereits im Sys vorhanden oder ggf neu entwickeln)<br />
***Bsp.: Gerät = Druckmesser, Aufgabe = Druckmessung, ...<br />
**oft höhere Kosten als zentrale Verarbeitungseinheit<br />
**bestimmen maßgeblich Signalverhalten, Zeitverhalten, Sicherheit<br />
<br><br />
*Kommunikationsperipherie<br />
**Peripherie für Bedienung / Beobachtung<br />
**Kommunikation mit Bediener<br />
**Programmierung (Entwickler) / Parametrierung (Bediener)<br />
** --> für Systemkommunikationund<br />
***Rechnerverbund (funktionale Vernetzung von Rechnern)<br />
***fernwirk EA-Bindung<br />
***für Systemstart und Führung<br />
<br><br />
zu Bild 3.8.: spezieller PR-Chip als kleinste PR-Architektur<br />
<br />
*Ansatz<br />
**Aufgaben klein (bis mittel)<br />
**Verteilung von Aufgaben auf „kleine“ Systeme<br />
*Vorteile<br />
**dezentrale (parallele) Verarbeitung<br />
**hohe (Verarbeitungs-)Geschwindigkeit<br />
**kurze Wege für Prozesse & E/A<br />
**hohe Zuverlässigkeit (Redundanz)<br />
**überschaubarer Hard- / Softwareentwurf<br />
**geringe Kosten<br />
**=> möglich als Funktionsrechnerkonzept<br />
**=>erhöhter Kommunikationsaufwand<br />
**=>Anforderungen an Kommunikationsperipherie steigen<br />
<br />
*Komplexität der Prozesse<br />
**Komplexe Struktur, Topologie<br />
**Komplexe Funktion<br />
** ggf beides<br />
<br />
*=> PR-Architekturen<br />
**Mehrrechnerarch.<br />
**Einrechnerarch.<br />
**Mehrprozessorarch.<br />
**Einprozessorarch.<br />
<br />
Komplexe Systeme<br />
*Verteilung<br />
*Realisierung als Mehrprozessorsystem bzw. Mehrrechnersystem<br />
<br />
=== Prozeßrechner als Mehrprozessorsystem (Bild 3.9) ===<br />
<br />
[[Bild:PR_als_Mehrprozessorsystem.PNG]]<br />
<br />
*Verbindungssystem für Informationsaustausch (allgemeiner Bus, Speicherkopplung)<br />
**fest über Speicher<br />
**interne Busse<br />
*es entstehen verschiedene Zeitebenen in den Knoten und beim Informationsaustausch<br />
*Konzept: hohe Rechenleistung und gewisse Universalität<br />
*Coprozessoren:<br />
**Arithmetik<br />
**E/A-Verkehr<br />
**Speicher-Verkehr<br />
**Busverkehr<br />
**Besonderheit: Kommunikationssystem erforderlich<br />
***innerhalb Busse, Speicher<br />
***außerhalb<br />
****Speicher (global; Punkt zu Punkt)<br />
*Eigenschaften:<br />
**Universalität / hohe (angepasste) Rechenleistung<br />
**Ergänzung von fehlenden Eigenschaften der Co-Prozessoren<br />
**einzelne Prozessoren => lose Kopplung, interne Busse<br />
**zusätzliche Kommunikationskanäle (in Umgebung)<br />
<br />
a) einzelne Prozessoren – feste Kopplung über gemeinsamen Speicher (intern), Bussysteme<br />
<br />
b) zusammenhängende Kommunikationskanäle<br />
*E/A-Kommunikation<br />
**Punkt zu Punkt<br />
**Busse (Linie, Ring, Stern)<br />
<br />
=== Prozeßrechner als Mehrrechnersystem (Bild 3.11) ===<br />
<br />
[[Bild:PR_als_Mehrrechnersystem.PNG]]<br />
<br />
(einzelne Rechner kommunizieren über Speicher/Busse)<br />
<br />
Multicomputersysteme<br />
*System aus (gleichartigen) selbstständigen einzelnen Rechnern (Prozessor, Peripherie, Speicher)<br />
*Verbindungssystem zwischen Rechnern für Informationsaustausch erforderlich<br />
**feste Kopplung (gemeinsame, globale Speicher)<br />
**lose Kopplung (Gerätekopplung, E/A-Kopplung)<br />
<br />
=== Spezielle Mehrprozessorsysteme (Bild 3.12) ===<br />
<br />
Ansatz:<br />
*Leistungsfähige Verarbeitung<br />
*zusätzliche leistungsfähige Kommunikation<br />
<br />
[[Bild:EZ Transputer.svg]]<br />
z.B. für Vektor- & Matrizenrechnung<br />
<br />
Transputersysteme:<br />
*CPU + zusätzliche IO-Prozessoren (mit mehreren Kanälen) bilden einen Knoten (Rechner)<br />
<br />
Abschätzung:<br />
*Aufwand reine Rechenzeit<br />
*Aufwand Übertragung über Links<br />
<br />
== Echtzeitkommunikation / Busse / EZ-Busse ==<br />
<br />
[[Bild:3.4.PNG]]<br />
<br />
=== Anforderungen an EZ-Busse ===<br />
<br />
*definierte Antwortzeiten (Busübertragungszeit)<br />
*Übertragungssicherheit<br />
*Fehlererkennung und –behebung<br />
*Verfügbarkeit, Preis<br />
*effiziente Protokolle (Geschwindigkeit)<br />
*Standardisierung (breite Anwendung)<br />
<br />
=== Beispiel ===<br />
*ASI: Aktor-Sensor-Bus (Interface)<br />
**Master Slave Bus<br />
**begrenzte Adressierbarkeit<br />
**begrenzter Datenaustausch (Sensorabfrage)<br />
**verbinden "intelligenter" E/A<br />
**Prozeßebene (Sensor-Aktor-Ebene) <-> technischer Prozeß<br />
<br />
*CAN-Bus: (Profibus, Interbus) à siehe Folie<br />
**Regelungs-Steuerungs-Ebene<br />
<br />
= Prozeßperipherie =<br />
<br />
Aufgabe: Prozeßdaten vom und zum Prozeß zu übertragen!<br />
<br />
Unterscheidung: Prozeßgrößen (Sicht Automatisches System)/ Prozeßdaten (Sicht Prozessrechner) aus der Sichtweise<br />
<br />
Übertragungsart von parallel => seriell<br />
<br />
[[Bild: EZS - Prozessperipherie.jpg]]<br />
<br />
--> siehe Bild 4.0 – Prozeßgrößen<br />
<br />
*Prozeßperipherie:<br />
**erfaßt bzw. überträgt zum Prozeß<br />
**Prozeßdaten: analog, digital, binär (gemischt-hybrid)<br />
<br />
== Prozeßzustandserfassung ==<br />
<br />
klassifizierbar nach:<br />
*Auslösen der Zustandserfassung (Steuerungssystem, technischer Prozeß)<br />
*Dauer der Prozeßzustände (statisch, dynamisch)<br />
<br />
--> n-Tupel Tabelle<br />
<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! Initiator der Prozeßzustandserfassung <br />
| colspan="2" | '''Dauer der Prozeßzustände'''<br />
|-<br />
| <br />
|| langfristig <br />
|| kurzfristig<br />
|-<br />
| Steuerung <br />
|| statische Zustandssignale <br />
|| dynamische Zustandsignale<br />
|-<br />
| technischer Prozeß <br />
|| statische Alarmsignale <br />
||dynamische Alarmsignale<br />
|}<br />
<br />
=== Statische Zustandssignale (siehe Folie 4.1) ===<br />
<br />
*Prozeßsteuerung fordert zu definierten Zeiten regelmäßig Informationen aus Prozeß an, um bestimmte Reaktionen auszuführen<br />
*nur sinnvoll, wenn <math>\frac{1}{T_S} > \frac{1}{T_P}</math> (Anforderungsrate Prozeßsteuerung > Änderungsrate des Prozesses)<br />
*Erfassung relevanter Zustände mit Abtasttheorem ( <math>f_{abtast} \ge 2 \cdot f_{Prozess}</math> )<br />
<br />
=== Dynamische Zustandssignale ===<br />
<br />
*kurzfristige Zustandsänderungen die erfaßt werden müssen, wenn <math>T_P < T_S</math> (Dauer eines Prozeßzustandes < Periodendauer für Erfassung/Reaktion)<br />
*Zustandsänderung dynamischer Signale müssen gepuffert werden (Aufheben)<br />
--> Betriebsart: Taste-Halte-Glied (analog)<br />
*D-Flip-Flop (binär)<br />
*bis zum Überschreiben bleibt Pufferwert gültig<br />
*sinnvoll auf kurzfristige Ereignisse<br />
** wenn nicht schritthaltend reagiert werden muß<br />
*(Vorteil: Vermeidung von Busy-Waiting)<br />
*wenig Aufwand f. extrem seltene Signale<br />
<br />
=== Statische Alarmsignale ===<br />
<br />
*zeigen längerdauernde (insbesondere binäre) Zustände an<br />
*erweiterte Möglichkeit zur Abfrage und Auswertung von Prozeßsignalen durch:<br />
**Wegfall der zyklischen Abfrage bei seltenen Zuständen (vermeidet "busy-wait")<br />
**oder um bei Eintreten solcher Zustände unmittelbare Reaktionen zu veranlassen <math>T_P >> T_S > T_R</math> (Reaktionszeit)<br />
**oder wenn während bestimmter Zustände im Prozeß keine Zustandserfassung möglich ist (Grenzwertüberschreitungen)<br />
**Wunsch statischer Meldungen ständig verfügbar z.B. für Wiederaufruf (aus Reset, kritischer Zustand)<br />
*speichern möglich<br />
<br />
=== Dynamische Alarmsignale ===<br />
<br />
*Informationsparameter ist zeitlicher Ereignispunkt eines bestimmten Zustandswechsels<br />
*erfordert sofortige Reaktion im aktuellen Zyklus mit hoher Priorität<br />
*auffangen/speichern/reagieren<br />
*erfordert geeignete Maßnahmen zur Prozesszustandsabhängigen Steuerung<br />
*Reaktionszeit entspricht Prozeßzeit <br/> --> echtzeitfähige Reaktion<br />
**geht über Erfassung von Zustandssignalen hinaus<br />
<br />
''//Bild''<br />
<br />
*Reaktion echtzeitfähig aus jedem beliebigen Zustand der PR-Steuerung heraus<br />
<br />
== Funktionen und Funktionsgruppen der Prozeßperipherie ==<br />
<br />
Hauptfunktionen:<br />
*Abtastung<br />
*Quantisierung (Grenzwerte, Messbereich, Stückelung)<br />
*Digitalisierung<br />
<br />
Nebenfuntionen:<br />
*Signalanpassung (Pegelanpassung, Schaltungsanpassung)<br />
*Signalübertragung<br />
*Eliminierung von Störungen<br />
<br />
Realisierung:<br />
*Hardware (ADU, DAU, RC-Filter, ...)<br />
*Software (Kodiealgorithmen, Filteralgorithmen, ...)<br />
<br />
*Messgrößen klassifizierbar --> ''Bild 4.2.''<br />
<br />
*vollständige Meßkette / Stellkette<br />
**n-stufig<br />
**Realisierung durch Hardware und Software<br />
*Signale:<br />
**elektrisch, nicht elektrisch<br />
**analog, digital, ...<br />
*Eigenschaften der Signale erfordert spezielle Prozeßperipherie<br />
<br />
=== Klassifikation der Prozeßsignale ===<br />
<br />
a) nach Aufbereitung der Signale im Meßprozeß<br />
*primäre Meßwerte<br />
**direkt am Prozeß aufgenommen<br />
**"unverfälscht" (außer eventuelle Sensorfehler)<br />
**dem Prozeßzustand zugeordnet<br />
**z.B. Füllmenge einer Flasche<br />
*sekundäre Meßwerte<br />
**entstehen nach mindestens einer Umwandlung aus primären Meßwerten<br />
**können zusätzliche Fehler aufweisen<br />
**z.B. Füllhöhe auch von Form abhängig nicht nur von Füllhöhe<br />
<br />
b) nach technischer Natur<br />
*elektrische Meßwerte<br />
*nichtelektrische Meßwerte (Mehrzahl in der Natur)<br />
<br />
c) nach zeitlichen Verhalten<br />
*statische Signale<br />
**Werte sind zeitlich konstant<br />
*stationäre Signale<br />
**über längere Zeit wie statische Signale<br />
**bei Bedarf änderbar<br />
*quasistationäre Signale<br />
**verhalten sich wie stationäre Signale<br />
**langsame Änderung möglich<br />
**z.B. Temperatur<br />
*dynamische Signale<br />
**schnelle Änderung der Signalparameter möglich<br />
**nicht nur Momentanwert, auch Änderungsrate / Gradient ggf. interessant<br />
*Ereignisse (Alarme)<br />
**sprunghafte Änderung entscheidet<br />
**nicht unbedingt Wert interessant sondern Tatsache, dass Änderung eintritt (qualitativ)<br />
**Richtung und/oder Zeitpunkt interessant<br />
**z.B. Inkrementalgeber<br />
<br />
d) Klassifikation nach Signalformen<br />
*Gestaltung der Peripherie<br />
*beschreibt wie<br />
**Signal vom Meßglied bereitgestellt wird<br />
**vom Stellglied erwartet wird<br />
<br />
--> ''Bild 4.3.''<br />
<br />
*analoge Signale: konstante Änderung, jeder beliebige Wert möglich<br />
*diskontinuierliche Signale: zu bestimmten Zeitpunkten jede beliebige Amplitude möglich<br />
*diskrete Signale:<br />
**wertdiskret (endlich viele Werte möglich)<br />
**zeitdiskret (endlich viele Zeitpunkte möglich)<br />
**wert- und zeitdiskret<br />
*binäre Signale: 2 Zustände<br />
*Impulsfolgen: Impulsabstand / Impulsanzahl<br />
*Abtastimpulse<br />
<br />
=== Zusammenfassung ===<br />
<br />
*Prozeßperipherie muß an speziellen Charakter der Meß-/Stellwerte angepaßt werden<br />
*leider häufig neu entwickelt werden<br />
*im Regelfall (PDV) sind es quasistationäre bzw. dynamische, nichtelektrische, analoge Meßwerte (als Primärsignale)<br />
*aus Signalart folgt:<br />
**Art der Meßgeräte zur Prozesssignalerfassung (''Bild 4.4.'')<br />
**Kette der Prozeßgrößenaufnahme (''Bild 4.5.'')<br />
<br />
==Prozessgrößenaufnahme==<br />
<br />
Ziel: Umwandlung v. Prozessgrößem in Prozessdaten (Zustandsgrößen, Alarme)<br />
Ausgangspunkt --> angepasste Umsetzung => aus Klassifikation der Signale<br />
=> angepasste Umsetzung/Mess- bzw. Stellkette<br />
<br />
===a) nach Aufbereitung der Signale im Messprozess:===<br />
*primäre Messwerte:<br />
**direkt am Prozess gewonnen<br />
**unverfälscht (evtl. Fehler des Sensors)<br />
**Prozesszustandand zugeordnet<br />
**z.B. Füllhöhe in Behälter<br />
*sekundäre Messwerte:<br />
**enstehen nach mindestens einer Umformung<br />
**können zusätzliche Fehler haben<br />
**z.B. Füllhöhe indirekt über Gewicht bzw. Winkelauslenkung ermitteln<br />
<br />
===b) nach technischer Natur===<br />
*elektrische Signale (Messwerte)<br />
*nichtelektrische Signale (-"-) (Mehrzahl in der technische Anwendung)<br />
<br />
===c) nach zeitlichem Verhalten===<br />
*statische Signale: zeitlich konstant (gegebenenfalls in bezug auf Arbeitsprozess)<br />
*stationäre Signale:<br />
**konstante Sollwertparameter für bestimmte Zeit<br />
**Parameter/Sollwert mit wenig Änderung<br />
*quasistationäre Signale:<br />
**ähnlich zu stationären Signalen<br />
**sehr langsame Zustandsänderung<br />
**(Bsp.P Temperaturänderung bei großen Massen)<br />
*dynamische Signale:<br />
**schnelle Änderung der Sollparameter<br />
**nicht nur Momentanwert sondern auch Gradient interessant<br />
**zum Beispiel gedämpfte Schwingung: interessante Parameter sind: Dämpfung, Frequenz, Startamplitude, Gradient...<br />
*Ereignisse (Alarme):<br />
**sprunghafte Änderung der Signale<br />
**nicht nur Wert der Veränderung bedeutsam<br />
**sondern gegebenenfalls auch Zeitpunkt bzw. Richtung<br />
<br />
===d) nach Signalform===<br />
*[http://pi0.theoinf.tu-ilmenau.de/ezbs/Vorlesungen/Kap4/ArBl_K_4d.pdf siehe hier]<br />
*relevant für Gestaltung der Prozessperipherie<br />
*beschreibt wie Signal vom Messglied bereitgestellt/aufgenommen wird bzw. vom Stellglied benötigt wird<br />
*Formen:<br />
**analoge Signale:<br />
***kontinuierliche Änferung<br />
***innerhalb der bestimmten Grenzen ist jeder Wert möglich --> unendlicher Wertevorrat<br />
**diskontinuierliche Signale:<br />
***Veränderung sprunghaft<br />
***Signalwerte innerhalb der Grenzen<br />
**diskrete Signale<br />
***wertediskret<br />
***Zeitdiskret<br />
***kombination aus beiden --> Abtastsignal<br />
**quantisierte Signale: quantisierte Änderung möglich<br />
**binäre Signale: nur 1 und 0 als Zustand möglich<br />
**Impulsfolgen:<br />
***Information in <math>\Delta t</math><br />
***Information in der Anzahl der Impulse<br />
**Abtastimpulse <br />
***quantisiert aber nur über bestimmtes Zeitraster<br />
**PBM(PWM): <br />
***Pulsbreitenmoduliertes Signal<br />
***Information stecken im Verhältnis von 0 zu 1 bereichen<br />
*'''Zusammenfassung:'''<br />
**Prozessperipherie muss Charakter der Messwerte angepasst werden!<br />
**--> muss daher häufig neu entwickelt werden<br />
**im regelfall:<br />
***quasistatisch bzw. dynamische<br />
***nichtelektrische analoge Größen<br />
***als primäre Messwerte<br />
*aus Signalart:<br />
**--> Arten von Messgeräten --> vgl. Bild 4.4<br />
**Konkrete Kette der Prozessgrößenaufnahme --> vgl Bild 4.5<br />
<br />
== Quantisierung / Digitalisierung ==<br />
<br />
*Prinzip A/D-Umsetzung<br />
<br />
[[Bild:ad-umsetzer.png]]<br />
<br />
[[Bild:uf-umsetzer.png]]<br />
*U ≙ kontinuierliches Signal<br />
*F ≙ Zählsignal (digital)<br />
*UF-Umsetzung langsamer als A/D Umwandlung<br />
<br />
<br />
*Prinzip D/A-Umsetzer<br />
<br />
[[Bild:da-umsetzer.png]]<br />
<br />
[[Bild:fu-umsetzer.png]]<br />
*F ≙ Zählsignal (digital)<br />
*U ≙ kontinuierliches Signal<br />
<br />
== Prozeßgrößenübertragung ==<br />
<br />
Grundfunktionen<br />
*Anpassung des Signals an physikalische Anschlussbedingungen<br />
**Schaltungsanpassung (Widerstände, Potentialtrennung, Rückwirkungsfreiheit)<br />
**Pegelanpassung (Verstärkung Meßsignal, Wandlung I → U)<br />
*Übertragung<br />
**räumliche Trennung Meßgröße, Prozessrechner, Stellorgan<br />
**Fernwirksysteme<br />
*aus Übertragung folgt:<br />
**Signalverhalten<br />
**Übertragungseigenschaften<br />
**Störempfindlichkeit<br />
**Kosten<br />
<br />
--> ''siehe Bild 4.8.-10.''<br />
<br />
=== Multiplexen / Demultiplexen ===<br />
(Technik zur Umsetzung vieler Signale)<br />
<br />
--> ''Bilder auf den Folien 4.11. / 4.12''<br />
<br />
== Steuergröße, Stellglieder, Stelleinrichtung ==<br />
[[Bild:Bild 4.5.1.svg]] <br />
<br />
'''Steuergröße:'''<br />
* wirkt auf Stellglied<br />
* direkte Wirkung auf Stellgröße (Strom → Heizung)<br />
<br />
''' Stellgröße '''<br />
* wirkt am Stellort (Durchfluss bei Ventilen)<br />
* praktisch geringere Vielfalt als P-Messgrößen<br />
* Klassifizierung nach verschiedenen Gesichtspunkten<br />
--> Bild 4.14<br />
<br />
''' Statisches Verhalten'''<br />
* durch Kennlinie<br />
** Eingang ist Funktion vom Ausgang E=f(A)<br />
** z.B. Drehzahl (Fördermenge)<br />
* stetige Kennlinie<br />
** monoton<br />
** kontinuierlich<br />
** → stetiger Algorithmus<br />
* schaltende Geräte (diskrete Werte)<br />
** 2-Punkt Regelung (an/aus)<br />
** 3-Punkt Regelung (+,aus,-) z.B. Motor (rechts, aus, links)<br />
<br />
'''dynamisches Verhalten'''<br />
* Stellglieder sind in der Regel langsamer als Messglieder (Mechanische/Thermische Geräte)<br />
* Zeitverhalten muss im Prozess berücksichtigt werden (als Sprungantwort/ Impulsantwort)<br />
* ermitteln durch Testsignale (Sprung, Impuls ...)<br />
* oft zusätzliches nichtlineares Verhalten → Einfluss auf das Gesamtkonzept<br />
* Siehe Bild "Unterscheidung nach Sprungantwort"<br />
[[Bild:Bild 4.5.2.svg]]<br />
<br />
*dezentrale Systeme<br />
** z.B. Messglieder, Stellglieder, Busse<br />
** z.B. verschiedene Tastzeiten (TS)<br />
*** Tsalgo, TsADU → Verschiebung durch nicht Synchrone Ts möglich (siehe später)<br />
<br />
= Grundlagen der Regelung mit Digitalreglern =<br />
→ Regelkreis<br />
<br />
[[Bild:Bild 5.1.svg]]<br />
<br />
x: Regelgröße / Zustandsgröße<br />
<br />
w: Führungswert<br />
<br />
u: Regelabweichung<br />
<br />
== Beschreibung linearer dynamischer Systeme ==<br />
f[x1(t)+x2(t)] = f[x1(t)] + f[x2(t)] <br><br />
→ Überlagerungssatz gilt !<br><br />
[[Bild:Bild_5.2.svg]]<br />
{| {{Prettytable}} border="1" cellspacing="3"<br />
! bgcolor="#BBBBBB" | Elementar Signal<br />
! bgcolor="#BBBBBB" |Transformation<br />
! bgcolor="#BBBBBB" | häufige Anwendung<br />
|-----<br />
| [[Bild:Bild 5.3.svg]]<br />
Stoß, Spalt<br />
|Faltungsintegral<br />
|allgemein<br />
|-----<br />
| [[Bild:Bild 5.4.svg]]<br />
Sprung<br />
|Laplace Transformation<br />
|Automatisierungstechnik<br />
|-----<br />
| [[Bild:Bild 5.5.svg]]<br />
Cosinus<br />
|Fouriertransformation<br />
|Nachrichtentechnik<br />
|-----<br />
| [[Bild:Bild 5.6.svg]]<br />
periodische Stoßfolge<br />
| Z-Transformation<br />
|zeitdiskrete Systeme<br />
|-----<br />
| [[Bild:Bild 5.7.svg]]<br />
Rechteckfolge<br />
| Walsh-Transformation<br />
|digitale Kommunikatioin<br />
|-----<br />
|}<br />
''Bild/Tab 5.1''<br />
<br />
== Analytische Beschreibung von Prozessen ==<br />
* Funktionsbeziehung(Zeitfunktion/Zeitbereich)<br />
** Beschreibt analytisch das physikalische Verhalten von Systemkomponenten<br />
** ordnet Eingangsgrößen einer Ausgangsgröße y zu: y(t)= f(x(t))<br />
** Bsp.: Sprung (zu einer Bestimmung der Funktionalenbeziehung als Testsignal) [[Bild:Bild 5.4.svg]]<br />
** Verallgemeinerte Ableitung des Sprungs wird als Gewichtsfunktion bezeichnet, deren Laplace-Transformation Übertragungsfunktion heißt<br />
* Übertragungsfunktion<br />
** Bild Funktionen,Frequenzbereich<br />
** durch Laplace Transformation aus Zeitfunktion von E und A Signalen mit einfachen Rechenregelwerk<br />
*Def: Laplace-Transformation L{f(t)} ordnet der Zeitfunktion f(t) in eindeutiger weise eine komplexe Funktion F(s) zu<br />
::<math>F(s)=\int _{0}^{\infty }f(t)e^{-st} dt</math><br />
*s ist komplexe Variable: s= p+jw<br />
* Bild 5.3.1 (Korrespondenzen der Laplace-Transformation)<br />
* Bild 5.3.2 (Rechenregeln)<br />
* Bild 5.4 (Zusammenstellung einfacher Kennlinienglieder)<br />
* Bild 5.5 (Beschreibung der funktionalen Abhängigkeiten eines Gleichstrommotors)<br />
* Bsp. Roboterarm<br />
<br />
:'''1 Elektrischer Teil'''<br><br />
::<math>U_{a}-e_{m}=R_{a}\cdot i_{a}+L_{a}\cdot \dot{i}_{a}</math> <br><br />
::Wobei gilt: <math>e_{m}=\tau _{m}\cdot \omega _{m}</math><br><br />
::<math>\tau _{m}=c\cdot \Phi \ \ \Phi ...\mathit{Hauptfluss}</math><br><br />
::Zeitbereich !!<br />
<br />
:'''2 Mechanischer Teil'''<br><br />
::<math>\dot{J}_{m}\omega _{m}=M_{a}-M_{L}\ \ M_{L}...\mathit{Lastmoment} \ M_{a}...\mathit{Arbeitsmoment}</math><br />
::Zeitbereich !!<br />
<br />
:→ Laplacetransformation<br />
<br />
::<math>R_{a}\cdot I_{a}</math> → Linearkombination<br />
<br />
::<math>L_{a}\cdot \dot{i}_{a}</math> → Differenziation<br />
<br />
::<math>U_{a}-E_{m}=R_{a}\cdot I_{a}+L_{a}\cdot s\cdot I_{a}</math> <br />
<br />
::<math>I_{a}=\frac{\frac{1}{R_{a}}}{\frac{1+L_{a}}{R_{a}+s}}(U_{a}-E_{m})</math> → Verzögerungsglied<br />
<br />
<br />
::<math>M_{a}-M_{l}=J_{m}(s\cdot \Omega _{m}(s)-\omega _{m}(t_{0}))</math><br />
<br />
::<math>\Omega _{m}=\frac{M_{a}-M_{L}}{J_{m}\cdot s}+\frac{\omega_{m}{(-0)}}{s}</math> → I-Glied<br />
<br />
<br />
:1.Verstärker und Stromrichter haben proportionales Verhalten<br />
::→ Kv, Ksr<br />
:2. Summierpunkt<br />
::<math>U_{a}-e_{m}</math> (Eingang)<br />
:3. <math>I_{A}</math> (Ausgang) = <math>K=\frac{1}{R_{a}},T=\frac{L_{a}}{R_{a}}</math> <br />
::Übertragungsfunktion: <math>\frac{K}{1+T_{s}}</math><br />
:4. proportional Wirkende Motorkonstante<br />
::<math>k=\tau _{m}</math> (Übergang zum mechanischen Teil)<br />
:5. Summierpunkte: <math>M_{a}-M_{L}</math> (Eingang)<br><br />
:6. Ω (Ausgang) Übertragnungsfunktion <br />
:::<math>\frac{K}{s}=\frac{1}{J_{m}\cdot s}</math> <br />
:7. Rückwirkung:<br />
:::<math>e_{m}-\tau _{m}\omega ,k=\tau _{m}</math><br />
<br />
<br />
== Digitale Regelung ==<br />
* für Modellierung (technischer Prozess, Regler)<br />
* Simulation (technischer Prozess, Regler)<br />
* Regelung (Regler)<br />
* Forderung: Gesamtfehler muss unter max. zulässigem Fehler liegen!<br />
** bezüglich Zeit --> Nyquist Theorem (Shannon)<br />
** bezüglich Wert --> Auflösung, Genauigkeit,Abweichung<br />
* t. Prozess: beschrieben durch Differenzialgleichung bzw. Integralgleichung<br />
* getastete System: beschrieben durch Differenzengleichung bzw. Summengleichung<br />
=== Differenzengleichungen, Regler, Filteralgorithmen ===<br />
→ Bild 5.7<br />
<br />
→ Bild 5.6 (Elementare Systeme und Modelle)<br />
<br />
* Berechnung Gesamtübertragungsfunktion bei zusammengesetzten Systemen<br />
** Reihenschaltung<br />
** Parallelschaltung<br />
** Rückführung / Gegenkopplung<br />
<br />
→ Bild 5.8 (PID-Regler)<br />
<br />
→ Bild 5.9 (Filteralgorithmus für Hoch-Tiefpass)<br />
<br />
= Informationsverarbeitung in Prozeßrechnern =<br />
<br />
== Echtzeitbetrieb ==<br />
<br />
*Kopplung an technischen Prozeß nur sinnvoll, wenn auf alle Forderungen des technischen Prozesses zeitgerecht reagiert wird<br />
*Echtzeitbetrieb ist Betriebsart eines Rechners, bei der der Rechner sich an die dynamisch ändernden Anforderungen aus dem Prozess anpasst<br />
**Zustände, Zeitbedingungen, Wichtigkeiten<br />
<br />
technischer Prozeß:<br />
*dynamische Änderung<br />
*Zeitbedingungen<br />
<br />
* technischer Prozess --> Prozessrechner Anpassug--><br />
*Anpassung<br />
*spezielle E/A<br />
*spezielle Kommunikation und zusätzlich Erfassung zeitlicher Bedingungen<br />
:→ angepasste Reaktion<br />
<br />
→ entsteht Problem der Realisierung (Abbildung) von Zeiten<br />
<br />
=== EZ-Forderungen ===<br />
*Rechtzeitigkeit<br />
**Zeitforderungen für Antwortzeit<br />
**Start bzw. Ende Reaktionsprogramm<br />
*Gleichzeitigkeit<br />
**in technischen Prozeß sind Teilprozesse zeitlich / wirkungsmäßig parallel<br />
**Reaktionsprogramme müssen parallel / quasiparallel ablaufen<br />
**gegebenenfalls nur Sequentiell bedienbar --> quasiparallele Abarbeitung <--> Erfüllung der Zeitanforderung<br />
*Vollständigkeit<br />
**alle Teilprozesse sind auszuführen<br />
*Korrektheit<br />
<br />
=== Echtzeit ===<br />
*harte Echtzeit<br />
**bei Nichteinhaltung Schäden am Prozeß bzw. Gefährdung<br />
*weiche Echtzeit<br />
**Nichteinhaltung gegebenenfalls tollerierbar, keine kritisches Systemzustände<br />
<br />
verallgemeinertes Zeitspiel:<br />
<br />
[[Bild:EZS_Zeitspiel.PNG]]<br />
<br />
--> ''siehe Bild 6.1. (Zeitparameter von Reaktionsprozessen)''<br />
<br />
*für EZ-Betrieb maßgeblich:<br />
**Einhaltung aller Erfassungs- und Antwortzeiten aller Teilprozesse<br />
<br />
<math>T_{ai} \le T_{pai}</math><br />
<br />
<math>T_{ej} \le T_{pej}</math><br />
<br />
i, j = 1,2, ...<br />
<br />
=== Abbildung von Zeiten in Prozeßrechner ===<br />
*absolute Zeiten --> Echtzeituhr (EZU)<br />
**aus HW-Signal (Interupt)<br />
**aus SW-Uhrenmodell<br />
<br />
*relative Zeiten (Zeiträume) <br />
:--> aus HW-Signal (Interupt)<br />
:--> aus Taktbasis (Schleifen / Zyklen)<br />
::*Auszählung von Takten bei Befehlsabarbeitung<br />
::*Problem: Cache-Sprünge, Unterbrechung durch Interupt, Busrequest<br />
:-->Zwischenform: Zählerregister<br />
::*laufen mit Takt<br />
::*Abfrage per Befehl möglich<br />
::*Sprung / Aktivität bei 0<br />
<br />
=== Zeitabbildung ===<br />
*Zeiträume --> Zyklen<br />
*Zeitpunkte --> Bedingungen, Ereignisse<br />
<br />
== Koordination der Informationsverarbeitung ==<br />
<br />
Zyklen: 3-Phasen-Zyklus<br />
<br />
*''Erfassen'' aller Meßsignale (Eingabe Prozeßabbild)<br />
*''Verarbeitung'' (Algorithmus entsteht Ausgabeprozeßabbild)<br />
*''Ausgabe'' (Ausgabeabbild über Stellsystem an Prozeß)<br />
<br />
<br />
--> 3 Teilprozesse (Tasks) für n Aufgaben<br />
*Anzahl der möglichen Prozesse: n * 3<br />
--> Koordination und Planung erforderlich!<br />
<br />
=== statische Koordinierung ===<br />
<br />
[[Bild:statische_Koordinierung.png]]<br />
<br />
*polling<br />
*feste Reihenfolge (synchrone Programmierung)<br />
*keine sofortige Reaktion ist eher Regel<br />
*nicht variabel<br />
*sehr einfach<br />
<br />
=== dynamische Koordinierung ===<br />
*Reaktion abhängig von Prozeßzustand<br />
*bei überschaubaren (nicht kritischen) Prozessen<br />
*führt auf verteilte Steuerstrukturen<br />
<br />
Formen:<br />
*Polling<br />
**Erfassung aller Prozeßeingangsignale<br />
**Abhängig von Signal wird Reihenfolge festgelegt<br />
*selbstinitiierte Koordination<br />
**kürzere Bearbeitungszeiten<br />
**weniger Einflußnahme auf Ausnahmesituationen<br />
<br />
=== prozeßgesteuerte Koordinierung ===<br />
*Reaktion auf kritische Zustände<br />
*ereignisgetrieben<br />
*feste Bindung an Prozeß über Signale, Ereignisse (z.B. Ts-Interrupt, Alarmsignal)<br />
*asynchrone Programme<br />
**keine Zyklen<br />
**Konflikte durch Prioritäten gelöst<br />
**stochastische Anforderungen mit Bedienmodell modellieren<br />
**Planung ggf. mit Bedienmodellen<br />
**Realisierung über Interuptsignale<br />
<br />
== Reaktionsprogramme mit Prioritätsprinzip ==<br />
<br />
*prozeßgesteuerte Koordinierung<br />
<br />
einfach Realisierung:<br />
*alarmbedingter Programmsprung (kein Rücksprung, RESTART)<br />
*alarmbedingter direkter Programmsprung (HW-Verteiler, Interupt --> Sprung --> Rücksprung)<br />
*alarmbedingter indirekter Programmsprung (SW-Verteiler: entscheidet, wohin gesprungen wird, Sprung --> Rücksprung)<br />
<br />
komplexe Realisierung:<br />
*Echtzeitbetriebssystem (EZBS)<br />
**Prozesse sind Tasks<br />
**Prozesse mit Taskzustandsmodell (TZM) beschrieben<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_1.png]]<br />
<br />
<br />
<br />
<br />
[[Bild:Reaktionsprogramme_mit_Prioritäten-Prinzip_2.png]]<br />
<br />
== Zeitgerechte Einteilung (Bild 6.4) ==<br />
<br />
Planung: deterministische Systeme (konzentriert)<br />
*Zeiten sind bekannt<br />
**Festlegung<br />
**Messung<br />
**worst-case-Berechnung<br />
*Prioritäten<br />
*Zeiten (Antwortzeiten, Spielraum (<math>s = t_a - t_l</math>))<br />
*Planung / Prüfung (Gannt-Diagramm, ''Bild 6.5 (Prozessorvergabe Antwortzeit & Spielraum)'', ''Bild (Zweiprozessorsysteme)'')<br />
--> ''Bild 6.6''<br />
<br />
Auswahl = f(Ein- oder Mehrprozesse bzw. gleich oder ungleiche Startzeiten der Prozesse)<br />
<br />
=== verteilte determinierte (zyklische) Systeme ===<br />
<br />
*mit unterschiedlichen Zykluszeiten (unabhängig)<br />
<br />
[[Bild:Verteiltedeterministischesysteme.png]]<br />
<br />
<br />
*Gesamtzykluszeit<br />
*Dynamik<br />
*Einzelzykluszeiten<br />
:bestimmen als Verbundelemente (2 bzw. 3)<br />
<br />
--> ''Bild 6.7 (Zeitliches Verhalten eines 2-Elemente-Verbundes)''<br />
<br />
--> ''Bild 6.8 (Antwortzeiten in verteilten deterministischen Systemen)''<br />
<br />
<br />
*Verbundsystem mit Kommunkation<br />
<br />
Gesamtprozeß:<br />
*Gesamtzykluszeit (min, max, average)<br />
*Gesamtlaufzeiten (min, max, average)<br />
<br />
<math>T_{l,min} = T_{l,ADU} + T_{l,Algo} + T_{l,DAU}</math><br />
<br />
=== Zykluszeit des Verbundes ===<br />
<br />
<math>T = max(T_1 , T_2)</math><br />
<br />
=== Extremwert der Verzögerung ===<br />
<br />
<math>\Delta t_{max} = min(T_1 , T_2)</math><br />
<br />
<math>\Delta t_{min} = 0</math><br />
<br />
<math>\overline{\Delta t_{min}} = \frac{min(T_1 , T_2)}{2}</math><br />
<br />
=== Antwortzeit ===<br />
<br />
<math>t_{A,Verbund} = t_{b1} + t_{b2} + \Delta t_{Verbund}(T_1 , T_2)</math><br />
<br />
<math>t_{bi}</math> – Bearbeitungszeiten (Laufzeiten)<br />
<br />
- für n Elemente weitere Zusammenfassung möglich<br />
<br />
=== stochastische Prozesse ===<br />
<br />
*Bedienmodelle / Systeme (Kapitel 7)<br />
*Einplanung nach:<br />
**Ankunft --> Variation von Prioritäten, Warteschlangen<br />
**Laufzeit --> Variation von Prioritäten, Warteschlangen oder shortest remaining processing time<br />
<br />
[[Bild:Stochastischesysteme.png]]<br />
<br />
= Bedientheorie / Bediensysteme =<br />
<br />
*Versuch der Bedienung (echtzeitfähig) von stochastischen Anforderungen<br />
*Versuch stochastische Systeme zu modellieren ?!<br />
:→ basiert auf Wahrscheinlichkeiten<br />
<br />
''siehe Folie 7.1. (Bedienungsanforderungen, Bedienprozesse)'' <br> ''siehe Folie 7.2. (Merkmale von Bedienprozessen und Ankunftsprozessen)''<br />
<br />
== Modell eines Bediensystems ==<br />
''siehe Folie 7.3. (Modellstruktur eines Bedienungssystems)'' <br> ''siehe Folie 7.4. (Einflussgrößen und Bewertungsgrößen von Bedienungssystemen)<br />
<br />
=== Klassifikation von Bedienprozessen ===<br />
*nach sogenannten Kendall-Parametern<br />
''siehe Folie 7.5. (Klassifizierung von Bedienprozessen)''<br />
*bei PR-Anwendung sind poissonverteilte Anforderung und exponentialverteilte Bedienung der "härteste" Anwendungsfall<br />
<br />
=== Statistische Kennwerte ===<br />
''siehe Folie 7.6. (stat. Kennwerte: Anforerungsprozesse (1))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Anforerungsprozesse (2))'' <br><br />
''siehe Folie 7.7. (stat. Kennwerte: Verweilprozesse)'' <br><br />
* analytische Berechnung<br />
* Simulation<br />
* Schätzverfahren<br />
<br />
== Offene Bediensysteme (Folie 7.9.) ==<br />
*keine Rückführung (von Senke auf Quelle)<br />
*Anforderungen nicht Ergebnis einer Bedienung<br />
*Anzahl der Anforderungen → unendlich<br />
<br />
== Geschlossene Bediensysteme (Folie 7.10.) ==<br />
*Rückführung (von Senke auf Quelle)<br />
*Anforderung ist Funktion der Bedienung<br />
*Anzahl der Anforderungen (Quellen, Qi) endlich<br />
<br />
''siehe Folie 7.11. (Bewertungsgrößen für Bedienungssysteme)'' <br><br />
''siehe Folie 7.12. (Berechnungsbeispiele für Antwortzeiten)''<br />
<br />
== Bedienstrategien ==<br />
Funktion von<br />
*System<br />
:*deterministisch<br />
::*verteilt<br />
::*konzentriert<br />
:*stochastisch<br />
*zyklisch / nicht zyklisch<br />
*endlich / unendlich<br />
→ Verusch programmtechnischer Lösung<br />
:*synchron<br />
:*asynchron<br />
:*Mischung<br />
:*EZBS<br />
<br />
= Echtzeitsysteme / Echtzeitprogrammierung =<br />
<br />
Ziel: Programmsysteme, die echtzeitfähig die Anforderungen erfüllen!<br />
<br />
*Zeitbedingungen (zeitgerechte Einplanung)<br />
*Prioritäten<br />
*Synchronisation (Steuerablauf) / Kommunikation von Prozessen (Datenaustausch) <br />
:→ gegenseitige Abhängigkeiten<br />
*Ereignis- / Ausnahmebehandlung<br />
<br />
<br />
Realisierungen:<br />
*synchrone Programme<br />
*Betriebssysteme mit Taskkonzept (asynchron)<br />
**universelle BS (Windows)<br />
**erweiterte universelle BS (EZ-Linux)<br />
**EZ-BS (QNX)<br />
*Echtzeitprogrammiersprachen<br />
<br />
[[Bild:EZS-EZBS.PNG]]<br />
<br />
== Echtzeitbetriebssysteme (EZBS) ==<br />
<br />
*Eigenschaften und Größe = f(Anforderungen)<br />
<br />
Eigenschaften, die über universelle BS hinausgehen:<br />
<br />
:1) direkter Zugang zu E/A-Geräten<br />
::*direkte Programmierung von E/A Schnittstellen<br />
::*gerätespezifische Realisierung (Effizienz)<br />
::*definierte Zugriffszeiten<br />
<br />
:2) Interrupts auf Anwenderebene<br />
::*schnelle Reaktion auf Interrupt auf Algorithmenebene<br />
::*Operationen nötig: Maskierung, Priorisierung, Spezialisierung<br />
<br />
:3) Zeitverwaltung<br />
::*für alle Anforderungen der möglichen Taskplanung<br />
::*Fähigkeit einer EZ-Uhr<br />
<br />
:4) effektives Scheduling<br />
::*effektive Prozessorvergabe<br />
::*Einhaltung aller EZ-Forderungen<br />
<br />
:5) flexible Konfiguration (Skalierung)<br />
::*Anpassung an Umfang der Aufgabe<br />
::*maximale Leistung. minimale Größe<br />
::*Werkzeuge für Skalierung<br />
<br />
Anforderungen der Prozesse verschieden<br />
:--> verschiedene angepasste EZBS-Strukturen!<br />
<br />
--> ''Folie 8.1. (Strukturen von Prozessrechner-Betriebssystemen)''<br />
<br />
=== Abruf-BS ===<br />
*Kontrolle der Programme durch sequentielle Abläufe<br />
--> Takt- / Befehlsabarbeitung<br />
*eingeschränkte EZ-Fähigkeit<br />
*kleine / kompakte Systeme (Signalprozessoranwendungen)<br />
*nicht flexibel<br />
*Problem: Bedienung, Kommunikation, Anzeige<br />
<br />
=== Interrupt-BS ===<br />
*Zeitbasis ist Interrupt!<br />
*Interrupt (HW / SW) führt auf Realisierungsprogramm<br />
*zeitliche Kopplung an HW-Signal<br />
*flexibler: erweiterbar, Abhängigkeiten, Maskieren, ...<br />
<br />
=== Monitor-BS ===<br />
*basiert auf Interrupt (Sammelanforderung)<br />
*sehr flexibel (Monitor(SW) als Scheduler)<br />
*Task sind durch Programmierung beliebig änderbar (Prozesse aufnehmen, entfernen, umpriorisieren)<br />
<br />
=== Taskkonzept ===<br />
<br />
*Prozeß-EZ-System<br />
**Sollwerermittlung<br />
**Erfassungstask<br />
**Verarbeitungstask<br />
**Ausgabe / Shell Task<br />
<br />
*Task-Konzept --> TZM (Task-Zustands-Modell) --> Task hat definiert viele Zustände<br />
*Multi-Task-Betrieb!<br />
<br />
erfüllt werden muß:<br />
<br />
*EZ-Forderungen<br />
**Rechtzeitigkeit<br />
**Gleichzeitigkeit<br />
**Vollständigkeit<br />
: --> erfüllbar mit Verwaltungsstrategien & Umschaltstrategien (Dispatcher)<br />
*Korrektheit<br />
<br />
--> ''Bild 8.2. (Zustandsübergänge von Tasks)''<br />
<br />
Wertung: Taskkonzept<br />
*stellt alle Start-/Umschaltbedingungen bereit die von Prozesssteuerung gefordert werden<br />
*Konflikbehandlung über zusätzliche Prioritäten (o. ä.) möglich<br />
<br />
nötig-weiterhin:<br />
<br />
*Taskkommunikation (Datenaustausch)<br />
*Tasksynchronisation<br />
<br />
zur Synchronisation / Kommunikation Mechanismen<br />
<br />
*Semaphore (Informationsträger)<br />
*Monitore (spezielle Datenstruktur, Daten + Mechanismen)<br />
*Rendezvous<br />
*Bolt-Variable (ähnlich Semaphore)<br />
--> ''Bild 8.3. (Synchronisation von Tasks)''<br />
<br />
=== TZM ===<br />
<br />
Grundlage für:<br />
*Verwaltung / Planung der Takte<br />
*für Umschaltung<br />
<br />
Betrieb von Mehrprozessorsystem<br />
*n-gleiche<br />
:PR1 <----Kommunikation --> Prn<br />
*gemeinsamer BS<br />
<br />
[[Bild:EZS Mehrprozessorsystem.svg]]<br />
<br />
== Prozessprogrammiersprachen (EZ Sprachen) ==<br />
<br />
*zusätzliche Eigenschaften von EZ-Sprachen gegenüber herkömmlichen Prozeßprogrammiersprachen<br />
**Operationen für spezielle E/A<br />
**Operationen für Zeitabarbeitung<br />
**Operationen für Unterbrechungsverarbeitung (Ind, Alarme, dyn. Prozessorkopplung, Bedienkommandos, EA-Signale)<br />
**Operationen für Taskverarbeitung<br />
***z.B. Create<br />
***Terminate (T-Zyklen, T-Prioritäten)<br />
***Awaite<br />
**Operationen für Synchronisierung<br />
**Operationen für Kommunikation (Semaphor, Bolt ...)<br />
<br />
*Sprachen für EZ-Programmierung<br />
**System, Assemblersprachen (CORAL, C, RTL, PLIM, PLIZ)<br />
**erweiterte höhere Sprachen (RT-Fortran, RT-Basic, PL/1)<br />
**Prozessprogrammiersprache (PEARL, Concurrent Pascal, OCCAM)<br />
**Spezialsprachen/Fachsprachen (STEP1, STEP M, MATLAB & Simulink)<br />
*Wege der Realisierung<br />
**vorhandene Speicher<br />
***EZ-C<br />
***EZ-PASCAL<br />
**neu Erstellen<br />
***Ada. Für Multiprozessorsysteme<br />
***Pearl für PDV Systeme<br />
***--> Create REG Ti for n-Times TERMINATOR<br />
[[Kategorie:Studium]]<br />
<br />
Synchronisationsmechanismen in Sprachen: <br><br />
:a) Semaphor --> PEARL <br><br />
:b) Monitor --> PEARL, Modula 2, Concurrent Pascal <br><br />
:c) Rendesvouskonzept --> ADA <br><br />
:d) Bolt-Synchronisation (Riegel) --> PEARL <br><br />
<br />
--> ''Bild 8.6. (Darstellung binärer Signalverarbeitung)''</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9526Integrierte Hard- und Softwaresysteme 22012-02-19T16:28:32Z<p>TheMrH: /* 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt grob können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Was soll das Produkt genau können?<br />
# Design/Entwurf<br />
#* Architectural design<br />
#* Detailed design<br />
#* Implementation design<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
* Look-Up-Table<br />
* Tabellenbasiert<br />
* Realisierung jeder beliebigen Funktion mit maximal 4 Eingängen<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
* AND wenn x0 an D und !x1 an Reset<br />
* OR wenn x0 an D und x1 an Set<br />
<br />
==== 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? ====<br />
<br />
* 3er OR mit einer LUT<br />
** direkt in der LUT abgebildet<br />
* 5er OR mit einer LUT und einem FF als OR<br />
** 4 Eingänge verodert in der LUT<br />
** 5. Eingang + Ausgang der LUT mit einem FF verodert<br />
* 6er OR mit einer LUT, einem Multiplexer und einem FF als OR<br />
** 4 Eingänge verodert in der LUT<br />
** 5. Eingang + Ausgang LUT über Multiplexer verodert<br />
*** 5. Eingang = Select<br />
*** Ausgang LUT = Eingang 0 des Multiplexers<br />
*** Vcc = Eingang 1 des Multiplexers<br />
** 6. Eingang + Ausgang des Multiplexers mit einem FF verodert<br />
* 5er AND mit einer LUT und einem Multiplexer<br />
** 5. Eingang = Select<br />
** GND = Eingang 0 des Multiplexers<br />
** Ausgang LUT = Eingang 1 des Multiplexers<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9515Integrierte Hard- und Softwaresysteme 22012-02-19T07:39:52Z<p>TheMrH: /* 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? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt grob können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Was soll das Produkt genau können?<br />
# Design/Entwurf<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
* Look-Up-Table<br />
* Tabellenbasiert<br />
* Realisierung jeder beliebigen Funktion mit maximal 4 Eingängen<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
* AND wenn x0 an D und !x1 an Reset<br />
* OR wenn x0 an D und x1 an Set<br />
<br />
==== 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? ====<br />
<br />
* 3er OR mit einer LUT<br />
** direkt in der LUT abgebildet<br />
* 5er OR mit einer LUT und einem FF als OR<br />
** 4 Eingänge verodert in der LUT<br />
** 5. Eingang + Ausgang der LUT mit einem FF verodert<br />
* 6er OR mit einer LUT, einem Multiplexer und einem FF als OR<br />
** 4 Eingänge verodert in der LUT<br />
** 5. Eingang + Ausgang LUT über Multiplexer verodert<br />
*** 5. Eingang = Select<br />
*** Ausgang LUT = Eingang 0 des Multiplexers<br />
*** Vcc = Eingang 1 des Multiplexers<br />
** 6. Eingang + Ausgang des Multiplexers mit einem FF verodert<br />
* 5er AND mit einer LUT und einem Multiplexer<br />
** 5. Eingang = Select<br />
** GND = Eingang 0 des Multiplexers<br />
** Ausgang LUT = Eingang 1 des Multiplexers<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9514Integrierte Hard- und Softwaresysteme 22012-02-19T07:29:03Z<p>TheMrH: /* 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt grob können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Was soll das Produkt genau können?<br />
# Design/Entwurf<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
* Look-Up-Table<br />
* Tabellenbasiert<br />
* Realisierung jeder beliebigen Funktion mit maximal 4 Eingängen<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
* AND wenn x0 an D und !x1 an Reset<br />
* OR wenn x0 an D und x1 an Set<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9513Integrierte Hard- und Softwaresysteme 22012-02-19T07:28:52Z<p>TheMrH: /* 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt grob können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Was soll das Produkt genau können?<br />
# Design/Entwurf<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
* Look-Up-Table<br />
* Tabellenbasiert<br />
* Realisierung jeder beliebigen Funktion mit maximal 4 Eingängen<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
* AND wenn x0 an D und !x1 an Reset<br />
* OR wenn x0 an D und x1 ab Set<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9512Integrierte Hard- und Softwaresysteme 22012-02-19T07:17:03Z<p>TheMrH: /* 5. Wie funktioniert ein LUT? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt grob können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Was soll das Produkt genau können?<br />
# Design/Entwurf<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
* Look-Up-Table<br />
* Tabellenbasiert<br />
* Realisierung jeder beliebigen Funktion mit maximal 4 Eingängen<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9511Integrierte Hard- und Softwaresysteme 22012-02-19T07:14:54Z<p>TheMrH: /* 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt grob können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Was soll das Produkt genau können?<br />
# Design/Entwurf<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9510Integrierte Hard- und Softwaresysteme 22012-02-19T07:13:28Z<p>TheMrH: /* 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
# Analyse<br />
#* Problemanalyse<br />
#** Was soll das Produkt können?<br />
#* Machbarkeitsstudie<br />
#** Ist es technisch/wirtschaftlich umsetzbar?<br />
#* Anforderungsanalyse<br />
#** Wie setzen wir es um?<br />
# Design/Entwurf<br />
# Implementation<br />
# Integration<br />
# Wartung<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9509Integrierte Hard- und Softwaresysteme 22012-02-19T07:08:09Z<p>TheMrH: /* 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
<br />
# Synthese<br />
# Implementation<br />
#* Translate<br />
#* Map<br />
#* Place & Route<br />
# Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9471Integrierte Hard- und Softwaresysteme 22012-02-18T17:43:57Z<p>TheMrH: /* 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Einfachere Darstellung von FSM's<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
* Reaktiv: Zustandsorientiert<br />
** Beschrieben durch: FSM, Petri-Netze, hierarchischen gleichzeitige FSM's<br />
<br />
* Transformatorisch: Aktions-/Ereignisorientiert<br />
** Beschrieben durch: DFG, CFG<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
# mit IF-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* Nicht sehr übersichtlich<br />
# mit Case-Anweisungen<br />
#* innerhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
#* übersichtlicher als mit IF<br />
# mit WHEN-Anweisungen<br />
#* ausserhalb von einem Process<br />
#* Wird als Multiplexer erkannt<br />
# direkte Selektion<br />
#* Wird als Multiplexer erkannt<br />
# Wertetabelle<br />
#* Wird nicht als Multiplexer erkannt<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9411Integrierte Hard- und Softwaresysteme 22012-02-17T18:10:13Z<p>TheMrH: /* 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts<br />
<br />
# Zustandsbasiert<br />
# Immer Taktgesteuert<br />
<br />
* SDL<br />
<br />
# zeitlich unterschiedliche Änderungen<br />
# kann auch einzelne Befehle/Codezeilen veranschaulichen<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9405Integrierte Hard- und Softwaresysteme 22012-02-17T16:32:26Z<p>TheMrH: /* 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9404Integrierte Hard- und Softwaresysteme 22012-02-17T16:31:58Z<p>TheMrH: /* 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
#* <br />
#* <br />
<br />
# exponentiell<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9403Integrierte Hard- und Softwaresysteme 22012-02-17T16:31:48Z<p>TheMrH: /* 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
<br />
#* <br />
#* <br />
<br />
# exponentiell<br />
<br />
#* Markov Chain<br />
#*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9402Integrierte Hard- und Softwaresysteme 22012-02-17T16:31:34Z<p>TheMrH: /* 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
# deterministischen<br />
<br />
* <br />
* <br />
<br />
# exponentiell<br />
<br />
* Markov Chain<br />
*<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9400Integrierte Hard- und Softwaresysteme 22012-02-17T16:21:59Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) * Cj ]<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9399Integrierte Hard- und Softwaresysteme 22012-02-17T16:21:35Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ ceil( Ri,n/Tj ) ] * Cj<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9398Integrierte Hard- und Softwaresysteme 22012-02-17T16:21:22Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ceil(Ri,n/Tj)] * Cj<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9397Integrierte Hard- und Softwaresysteme 22012-02-17T16:21:12Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1)[ceil(Ri,n/Tj)] * Cj<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9395Integrierte Hard- und Softwaresysteme 22012-02-17T16:01:45Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ Ri,n/Tj ] * Cj<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9394Integrierte Hard- und Softwaresysteme 22012-02-17T16:01:31Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
<br />
Ri,n+1 = Ci + SUM(j=0 to i-1) [ Ri,n/Tj ] * Cj<br />
<br />
Solange rekursiv berechnen bis Ri,n+1 = Ri,n<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9392Integrierte Hard- und Softwaresysteme 22012-02-17T15:59:06Z<p>TheMrH: /* 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
Vorhersage der Worst-Case-Antwortzeit der einzelnen Prozesse und vergleichen mit der<br />
Frist, um die Durchführbarkeit des Ablaufplans zu ermitteln<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9391Integrierte Hard- und Softwaresysteme 22012-02-17T15:52:22Z<p>TheMrH: /* 11. VHDL */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
<br />
# Entity<br />
# Architecture<br />
# Process (?)<br />
<br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9390Integrierte Hard- und Softwaresysteme 22012-02-17T15:50:30Z<p>TheMrH: /* 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ====<br />
<br />
FSM nicht deterministisch -> Anforderungen unvollständig<br />
<br />
Nützlich für:<br />
* Optimierung (Bedingungen Uninteressant)<br />
* Verifizierung (Ausschluss unmöglicher Fälle)<br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
* StateCharts sind gut für Top-Level-Funktionalität geeignet, d.h. Verwendung in der Analyse<br />
<br />
* SDL sind gut für den Architekturentwurf da man Schritt für Schritt verfeindern kann und eine hierarchische Struktur erhält<br />
<br />
# System -> Struktur<br />
# Block -> Struktur<br />
# Process -> Verhalten<br />
# service -> Verhalten<br />
# procedure -> Verhalten<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9386Integrierte Hard- und Softwaresysteme 22012-02-17T15:39:42Z<p>TheMrH: /* 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
* Dienen zur Analyse und Spezifikation der Abläufe eines Systems und Unterstützen dabei die Modellierung mit SDL<br />
<br />
* Werden daher in der Analysephase verwendet.<br />
<br />
* 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.<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9385Integrierte Hard- und Softwaresysteme 22012-02-17T15:31:58Z<p>TheMrH: /* 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. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9384Integrierte Hard- und Softwaresysteme 22012-02-17T15:31:43Z<p>TheMrH: /* 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. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
loop<br />
wait on input<br />
<br />
array[2] = array[1]<br />
array[1] = array[0]<br />
array[0] = input<br />
<br />
out = c1 * array[0] + c2 * array[1] + c3 * array[2]<br />
end loop<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9383Integrierte Hard- und Softwaresysteme 22012-02-17T15:27:45Z<p>TheMrH: /* 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{| border="1" align="center" style="text-align:center;"<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9380Integrierte Hard- und Softwaresysteme 22012-02-17T15:25:31Z<p>TheMrH: /* 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{|<br />
! <br />
!Senders<br />
!Receivers<br />
!Buffer Size<br />
!Blocking Reads<br />
!Blocking Write<br />
!Single Reads<br />
|-<br />
|Unsynchronized<br />
|many<br />
|many<br />
|one<br />
|no<br />
|no<br />
|no<br />
|-<br />
|Read-Modify-Write<br />
|many<br />
|many<br />
|one<br />
|yes<br />
|yes<br />
|no<br />
|-<br />
|Unbounded FIFO<br />
|one/many<br />
|one<br />
|unbounded<br />
|yes<br />
|no<br />
|yes<br />
|-<br />
|Bounded FIFO<br />
|one/many<br />
|one<br />
|bounded<br />
|yes<br />
|may be<br />
|yes<br />
|-<br />
|Rendevous<br />
|one<br />
|one<br />
|one<br />
|yes<br />
|yes<br />
|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9379Integrierte Hard- und Softwaresysteme 22012-02-17T15:23:16Z<p>TheMrH: /* 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{|<br />
|-<br />
!Senders!Receivers!Buffer Size!Blocking Reads!Blocking Write!Single Reads<br />
|-<br />
Unsynchronized|many|many|one|no|no|no<br />
|-<br />
Read-Modify-Write|many|many|one|yes|yes|no<br />
|-<br />
Unbounded FIFO|one/many|one|unbounded|yes|no|yes<br />
|-<br />
Bounded FIFO|one/many|one|bounded|yes|may be|yes<br />
|-<br />
Rendevous|one|one|one|yes|yes|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9378Integrierte Hard- und Softwaresysteme 22012-02-17T15:21:49Z<p>TheMrH: /* 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
{|<br />
|Senders|Receivers|Buffer Size|Blocking Reads|Blocking Write|Single Reads<br />
|-<br />
Unsynchronized|many|many|one|no|no|no<br />
|-<br />
Read-Modify-Write|many|many|one|yes|yes|no<br />
|-<br />
Unbounded FIFO|one/many|one|unbounded|yes|no|yes<br />
|-<br />
Bounded FIFO|one/many|one|bounded|yes|may be|yes<br />
|-<br />
Rendevous|one|one|one|yes|yes|yes<br />
|}<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9325Integrierte Hard- und Softwaresysteme 22012-02-17T10:04:57Z<p>TheMrH: /* Fragen zum Seminar */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 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? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9324Integrierte Hard- und Softwaresysteme 22012-02-17T10:04:28Z<p>TheMrH: /* 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile hat diese Darstellungsform? ====<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben <br />
einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der <br />
Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 22. Wozu dienen Genetische Algorithmen und wie funktionieren diese? Welche Parameter gibt es und <br />
wozu dienen diese? Welche Einflüsse können extreme Einstellungen für diese Parameter haben? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9323Integrierte Hard- und Softwaresysteme 22012-02-17T10:04:18Z<p>TheMrH: /* 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht synthetisierbar sind? ====<br />
<br />
==== 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? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile <br />
hat diese Darstellungsform? ====<br />
<br />
==== 16. Geben Sie für eine vorgegebene Berechnung den zugehörigen DFG an, wenn sie beliebig viele <br />
Ressourcen zur Verfügung haben. Was kann man daraus ablesen? Wie ändert sich der DFG bei <br />
minimalen Ressourcen? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben <br />
einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der <br />
Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 22. Wozu dienen Genetische Algorithmen und wie funktionieren diese? Welche Parameter gibt es und <br />
wozu dienen diese? Welche Einflüsse können extreme Einstellungen für diese Parameter haben? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9322Integrierte Hard- und Softwaresysteme 22012-02-17T10:03:52Z<p>TheMrH: /* Seminar 02 */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ==== <br />
<br />
<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
<br />
<br />
==== 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? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht <br />
synthetisierbar sind? ====<br />
<br />
==== 10. Nennen Sie zwei Möglichkeiten zur Automatenrealisierung. Worin unterscheiden diese sich im <br />
Allgemeinen? Welche Vor- und Nachteile ergeben sich bei deren Umsetzung im FPGA? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein <br />
und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts <br />
zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile <br />
hat diese Darstellungsform? ====<br />
<br />
==== 16. Geben Sie für eine vorgegebene Berechnung den zugehörigen DFG an, wenn sie beliebig viele <br />
Ressourcen zur Verfügung haben. Was kann man daraus ablesen? Wie ändert sich der DFG bei <br />
minimalen Ressourcen? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben <br />
einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der <br />
Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 22. Wozu dienen Genetische Algorithmen und wie funktionieren diese? Welche Parameter gibt es und <br />
wozu dienen diese? Welche Einflüsse können extreme Einstellungen für diese Parameter haben? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Integrierte_Hard-_und_Softwaresysteme_2&diff=9320Integrierte Hard- und Softwaresysteme 22012-02-17T10:01:45Z<p>TheMrH: /* Seminar 02 */</p>
<hr />
<div>{{Veranstaltung<br />
|name=Integrierte Hard- und Softwaresysteme 2<br />
|kurz=IHS2<br />
|richtung=II<br />
|vorlesender=<br />
Dr.-Ing. Heinz- Dietrich Wuttke<br />
}}<br />
<br />
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.<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = mündliche Prüfung<br />
|datum = 00.00.2011<br />
|zeit = 00:00 - 00:00<br />
|ort = Blechhaus<br />
}}<br />
<br />
Am Ende des Semester gibt es eine mündliche Prüfung über 20 Minuten.<br />
<br />
== Fragen zur Vorlesung ==<br />
<br />
=== Anforderungen und Anforderungsanalyse ===<br />
==== 1. Beschreiben Sie den Zweck der Analysephase. ====<br />
* Die Ziele der Analysephasen sind laut Folie:<br />
** Identifizierung von Zweck und Verdienst der Porduktentwicklung, und<br />
** Identifizierung des Zwecks des Produktes und verstehen seiner exakten Anforderungen<br />
* Meine Interpretation (Martin):<br />
** Was genau soll das Teil leisten/können?<br />
** Für welches Anwendungsgebiet bau ich das und was hab ich davon?<br />
<br />
==== 2. Welchen Zwecken kann die Machbarkeitsstudie (feasability analysis) dienen? Geben Sie ein technisches und ein nichttechnisches Argument an. ====<br />
* Überprüfung der Realisierbarkeit<br />
* technisch: physikalisch realisierbar? z.B. kann Zuverlässigkeit gewährleistet werden? <br />
* nichttechnisch: wirtschaftlich realisierbar? Entstehende Nebenkosten für Lizenzen und Neuanschaffungen<br />
<br />
==== 3. Worin unterscheiden sich die Verhaltensbeschreibungen die in der Analyse und der Entwurfsphase erstellt werden? ====<br />
* der Beschreibung in der Analysephase enthalten nur Informationen, was das Produkt tun soll und welche Eigenschaften es haben soll<br />
* in der Entwurfphase wird geklärt, wie das System funktionieren soll. <br />
** Verkettung der Module (''Strukturansicht'')<br />
** Programmablaufplan<br />
<br />
==== 4. Beschreiben Sie die typischen Anforderungen an die Steuerung eines Dampferzeugers. ====<br />
* Sicherheit des Produkts (Notabschaltung bei Fehlfunktion)<br />
* Zuverlässigkeit (der Sensoren)<br />
* Maßnahmen zum Abfangen von Reaktionen des Nutzers (Fehler des Nutzers)<br />
<br />
==== 5. Beschreiben Sie die typischen Anforderungen an ein ABS-System. ====<br />
* Echtzeitfähigkeit (Deadline einhalten: der Zeitpunkt der Bremsverzögerung ist wichtig)<br />
* Zuverlässigkeit ( muss erkennen, wenn ein Sensor ausfällt)<br />
* Sicherheit<br />
<br />
=== Verhaltensbeschreibungen ===<br />
==== 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. ====<br />
<br />
==== 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. ====<br />
<br />
==== 3. Identifizieren Sie die Mechanismen für Kommunikation zwischen Prozessen und vergleichen Sie diese. ====<br />
<br />
==== 4. Wozu dient Nichtdeterminismus von Automaten bei der Spezifikation von Systemen und ihrer Umgebung? ==== <br />
<br />
==== 5. Ermitteln Sie den DFG für eine gegebene Funktion (z.B. f(x,y,z) = (6y + 7) + 4y (z + 4x)). ==== <br />
<br />
==== 6. Skizzieren Sie die wichtigsten Unterschiede zwischen Statecharts und SDL. ====<br />
<br />
==== 7. Wozu dienen Message Sequence Charts (MSC)? In welchen Phasen des Entwicklungsprozesses werden MSCs eingesetzt. Begründen Sie ihre Antworten. ====<br />
<br />
==== 8. Beschreiben Sie den Unterschied zwischen reaktiven und transformatorischen Systemen. ====<br />
<br />
==== 9. Spezifizieren Sie verschiedene Zustandsautomaten mit Statecharts (z.B. aus den Praktikas bekannte Automaten wie Spindelsteuerung, Kassenautomat, Kreuztisch, etc.). ====<br />
<br />
==== 10. SystemC ====<br />
* a. Beschreiben Sie kurz den Design-Flow mit SystemC. <br />
* b. Nennen Sie die SystemC-Prozesstypen und vergleichen Sie diese. <br />
* c. Erstellen Sie eine Header-Datei eines Moduls mit Ein-/Ausgabeports, 2 Signalen <br />
und einem der möglichen Prozesse in SystemC-Syntax. ====<br />
<br />
==== 11. VHDL ====<br />
* a. Benennen Sie die Grundelemente einer VHDL-Beschreibung? <br />
* b. Welches Sprachkonstrukt wird für parallele Beschreibungen verwendet? Erläutern Sie die prinzipielle Syntaxstruktur dieser Anweisung. <br />
* c. Benennen Sie die Haupteigenschaften der VHDL-Erweiterung AMS? Beschreiben <br />
Sie die damit verbundenen neuen Sprachelemente. ====<br />
<br />
=== Funktionale Validierung ===<br />
<br />
==== 1. Worin unterscheidet sich die Validierung durch Simulationen von der Validierung durch Tests? ====<br />
<br />
===== Validierung durch Simulationen =====<br />
* Modell des kompletten Systems mit Tests füttern und auswerten<br />
<br />
===== Validierung durch Tests =====<br />
* Reales System mit Testwerten prüfen<br />
<br />
==== 2. Erläutern Sie die Begriffe Vollständigkeit und Widerspruchsfreiheit. ====<br />
<br />
===== Vollständigkeit =====<br />
* Alle eintretenden Zustände und Zustandswechsel definiert<br />
* Alle Belegungen kommen in wegführenden Kanten und Eigenschleifen vor<br />
===== Widerspruchsfreiheit =====<br />
* Für gleiche Zustände keine verschiedenen Wechsel<br />
<br />
==== 3. Worin unterscheidet sich die Validierung mittels Model Checking von der Validierung der Vollständigkeit. ====<br />
<br />
===== Model Checking =====<br />
* vollautomatisch<br />
* Systembeschreibung in formaler Sprache (Programm, endlicher Automat)<br />
* Prinzip:<br />
** Eingabe von Systembeschreibung<br />
** Erfüllt Systembeschreibung Spezifikation --> stoppen, Korrektheitszertifikat<br />
** Findet Algorithmus Verletzung Spezifikation --> stoppen, Ausgabe von Gegenbeispiel<br />
*** meist mögliche Systemausführung, die das Verletzen der Spezifikation nachweist<br />
<br />
===== Vollständigkeit =====<br />
* weiß nicht, was damit gemeint sein soll, ggf die Vollständigkeitsprüfung, die wir alle kennen<br />
<br />
==== 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. ====<br />
<br />
=== Validierung temporaler Eigenschaften ===<br />
<br />
==== 1. Erläutern Sie das Prinzip der Schedulability-Analyse von periodischen Systemen mit unterbrechenden Prioritäten mittels der Analyse der Antwortzeiten. ====<br />
<br />
==== 2. Erläutern Sie die Vor- und Nachteile der simulativen Leistungsbewertung. ====<br />
<br />
==== 3. Welche Leistungsbewertungsansätze eignen sich besonders für Systeme mit deterministischen bzw. mit exponentiell verteilten Ankünften und Bedienzeiten. ====<br />
<br />
==== 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. ====<br />
<br />
==== 5. Warum liefern Verfahren zur Bestimmung von Antwortzeiten in der Regel weniger genaue Ergebnisse als Verfahren zur Bestimmung der Auslastung? ====<br />
<br />
==== 6. Nennen Sie Argumente zur Bewertung von Leistungsaspekten in den frühen Entwurfsphasen. ====<br />
<br />
==== 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 ====<br />
<br />
{| <br />
|-<br />
! Prozess !! Periose T !! Rechenzeit C !! a) Priorität !! b) Priorität<br />
|-<br />
| 0 || 7 || 3 || 3 || 1<br />
|-<br />
| 1 || 12 || 3 || 2 || 2<br />
|-<br />
| 2 || 20 || 3 || 1 || 3<br />
|}<br />
<br />
Bestimmen Sie die Schedulability soweit möglich mit verschiedenen Methoden (utility-based und response-time-based).<br />
<br />
===Optimierungsverfahren ===<br />
<br />
==== 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. ====<br />
<br />
==== 2. Lösen Sie dasselbe Problem mit einem Verfahren zur sukzessiven Verbesserung einer Anfangslösung, z.B. Tabu Search. ====<br />
<br />
==== 3. Konstruieren Sie zwei Taskgraphen so, dass bei einem Taskgraphen HLFET und beim anderen SCFET die besseren Ergebnisse liefert. ====<br />
<br />
==== 4. Skizzieren Sie einen Vorschlag zur Erweiterung von Listenscheduling bei nicht vernachlässigbaren Kommunikationskosten zwischen Tasks, die auf verschiedene Prozessoren zugeordnet sind. ====<br />
<br />
==== 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. ====<br />
<br />
==== 6. Skizzieren Sie die Anwendung der folgenden Verfahren zur HW/SW-Partitionierung: ====<br />
* a. Hill Climbing<br />
* b. Genetische Algorithmen<br />
* c. Simulated Annealing<br />
* d. Tabu Search<br />
* e. Clusteringverfahren<br />
* f. Branch-and-Bound<br />
<br />
==== Ziel der Optimierung ist die Minimierung der Antwortzeit als auch der Kosten der Hardwarekomponenten. ====<br />
<br />
==== 7. Mit welchen Mittel lösen die verschiedenen besprochenen heuristischen Optimierungsverfahren das Problem lokaler Optimas? ====<br />
<br />
=== High-level Synthese ===<br />
<br />
==== 1. Beschreiben Sie die Unterschiede zwischen high-level Synthese und der RTL-Synthese. ====<br />
<br />
===== High-Level (System-Synthese/Algorithmische Synthese) =====<br />
<br />
* Jede Komponente kann durch RT-Beschreibung beschrieben werden<br />
* Taktunabhängig<br />
* Generierung einer Struktur von Prozessoren, Speichern, Controllern und Schnittstellen aus einem Satz von System-Komponenten<br />
* RTL kann durch Compiler/Generatoren erzeugt werden<br />
Realisierungsmöglichkeit egal (egal, welche Bausteine benutzt werden)<br />
* abstrakte Sicht (nur die Funktion ist von Intresse)<br />
<br />
===== RTL =====<br />
* Start mit Satz von Zuständen und Registern<br />
** Registerbezogen<br />
* Strukturgenerierung is zwei Abschnitten:<br />
** Datenpfad (data path)<br />
*** DFG<br />
** Sequenzpfad (control unit)<br />
*** CFG<br />
* Taktbezogen (Pro Zustand meist ein "Clock-cycle"<br />
<br />
==== 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). ====<br />
<br />
http://wiki.erazor-zone.de/_detail/graphviz:97eb27f48171dcc65b680df4613d1369.png?id=wiki%3Astudy%3Aevps<br />
<br />
===== Mapping =====<br />
* Zuordnung von Daten auf Speichereinheiten (Register)<br />
* Zuordnung von Operationen auf funktionale Einheiten (ALUs etc)<br />
* Zurodnung von Kommunikation auf Busse oder Verbindungen<br />
<br />
===== Scheduling =====<br />
<br />
* ASAP(as soon as possible) ohne Ressourcen-Einschränkung<br />
** Jedem Zeitslot werden Knoten zugewiesen<br />
** Jeder Zeitslot (bis auf den ersten) wird durch seine Vorgänger-Knoten bestimmt<br />
** In polynomialer Zeit lösbares Problem<br />
<br />
----<br />
to : MUL_1, MUL_2, MUL_3<br />
----<br />
t1 : ADD_1, ADD_2<br />
----<br />
t2 : MUL_4<br />
----<br />
t3 : ADD_3<br />
----<br />
<br />
* ALAP (as late as possible) ohne Ressourcen-Einschränkung<br />
** Start mit Knoten ohne Nachfolger (Rückwärts aufbauen)<br />
<br />
----<br />
t3 : ADD_3<br />
----<br />
t2 : ADD_2, MUL_4<br />
----<br />
t1 : MUL_1, MUL_2, ADD_1<br />
----<br />
to : MUL_3<br />
----<br />
<br />
* Erweiterungen: Ressourcen-Einschränkung (x * multiplier, x * ALUs)<br />
* List Scheduling<br />
Nach Priorität geordnete Liste von Prozessen<br />
** Beispiel Abhängig von Einschränkung und Prioritäten<br />
<br />
== Fragen zum Seminar ==<br />
<br />
=== Seminar 01 === <br />
==== 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) ====<br />
<br />
* Field Programmable Gate Array<br />
* Elektronischer Schaltkreis<br />
* Viele logische frei programmierbare Einheiten<br />
* Ggf. zustäzliche Einheiten wie Speicher, Interfaces, etc.<br />
* Funktion nicht wie bei Prozessoren / ASIC vorher definiert<br />
* Funktion wird über Programmierung festgelegt<br />
* Funktion bei SRAM Typen beliebig oft änderbar<br />
** teilweise sogar partiell zur Laufzeit<br />
<br />
* Funktion wird zusammengesetzt aus:<br />
** Look-Up Table (logische Funktion)<br />
** FlipFlop (Speicherelement / Verzögerung)<br />
** Routing (Verbindung untereinander)<br />
<br />
* Grundelemente<br />
** LUT - Look-up-table (logic elements)<br />
** FF - Flip-Flop (register elements)<br />
** Routing - to connect elements<br />
** BRAM - Block RAM (memory elements)<br />
** Multiplier - embedded 18x18 multipliers<br />
** DCM - digital clock manager<br />
** IOB - input-output block (I/O elements)<br />
<br />
==== 2. Nennen Sie den groben Ablauf beim Entwurfsprozess (Entwurfsschritte in den Entwicklungstools) von FPGAs mit VHDL. (6 Punkte (davon 3 Unterpunkte)) ====<br />
* Komplexe Tools bilden z.B. VHDL auf FPGA ab<br />
** Synthese<br />
** Implementation<br />
* Translate<br />
* Map<br />
* Place & Route<br />
** Bit File Generation<br />
<br />
==== 3. Beschreiben Sie den groben Aufbau einer Entity und Architecture. Wozu dient die Entity? Wozu dient die Architecture? ====<br />
<br />
'''Entity'''<br />
* Rahmen der zu entwickelnden Hardware<br />
* Generics<br />
** Definition von Modulverhalten<br />
** Bilden unterschiedlicher Modulinstanzen<br />
* Ports<br />
** Input/Output Verbindungen<br />
<br />
'''architecture'''<br />
* Beschreibung von Funktionalität<br />
** Prozesse<br />
** Logik<br />
* Beschreibung von Modulen<br />
** Interaktion<br />
<br />
=== Seminar 02 === <br />
==== 4. Beschreiben Sie das Wasserfallmodell des Entwurfsprozesses. Was bewirkt der Analyseschritt? ====<br />
<br />
==== 5. Wie funktioniert ein LUT? ====<br />
<br />
==== 6. Interpretieren sie eine vorgegebene Konfiguration eines FF. Welche weiteren <br />
Konfigurationsmöglichkeiten für Set/Reset gibt es und was bewirken diese? ====<br />
<br />
==== 7. Beschreiben Sie ein 3er OR in VHDL. Wie sieht die zugehörige Realisierung als RTL Schematic und <br />
im LUT aus? Wie ist es möglich auch 5er ANDs oder 6er OR mit einem LUT zu realisieren? ====<br />
<br />
=== Seminar 03 ===<br />
==== 8. Wozu dient die Simulation von Schaltungen (z.B. in VHDL)? ====<br />
<br />
==== 9. Was ist eine Testbench? Welche Konstrukte von VHDL kann man in Simulation verwenden, die nicht <br />
synthetisierbar sind? ====<br />
<br />
==== 10. Nennen Sie zwei Möglichkeiten zur Automatenrealisierung. Worin unterscheiden diese sich im <br />
Allgemeinen? Welche Vor- und Nachteile ergeben sich bei deren Umsetzung im FPGA? ====<br />
<br />
==== 11. Ordnen Sie die Teile einer RTL Darstellung eines Automaten zu. Welcher Automatentyp könnte es sein <br />
und warum? ====<br />
<br />
==== 12. Was sind State Charts? Fassen Sie einen oder mehrere Zustände eines vorgegebenen State Charts <br />
zusammen. ====<br />
<br />
==== 13. Was sind State Charts? Führen Sie an einem Beispiel eine AND Dekomposition durch. ====<br />
<br />
=== Seminar 04 ===<br />
==== 14. Was können Sie zur Platzierung im FPGA sagen? Warum ist dies so? Welche Auswirkungen hat es? ====<br />
<br />
==== 15. Stellen Sie die synchronisierte Kommunikation zweier Teilnehmer mit Petrinetzen dar. Welche Vorteile <br />
hat diese Darstellungsform? ====<br />
<br />
==== 16. Geben Sie für eine vorgegebene Berechnung den zugehörigen DFG an, wenn sie beliebig viele <br />
Ressourcen zur Verfügung haben. Was kann man daraus ablesen? Wie ändert sich der DFG bei <br />
minimalen Ressourcen? ====<br />
<br />
=== Seminar 05 === <br />
==== 17. Geben Sie für ein Programm im Pseudocode den zugehörigen CFG an. ====<br />
<br />
==== 18. Nennen Sie fünf Möglichkeiten einen Multiplexer darzustellen. Welche Vor- und Nachteile haben <br />
einige von diesen Beschreibungsformen? ====<br />
<br />
=== Seminar 06 === <br />
==== 19. Erläutern Sie an einem einfachen Beispiel die Vorteile von Prioritäten beim Scheduling. ==== <br />
<br />
==== 20. Berechnen Sie an einem einfachen Beispiel die Responsetime eines Tasks und Auslastung der <br />
Prozessoren. ====<br />
<br />
==== 21. Wozu dienen Timing Contraints? Welche Bestandteile sind aus dem Seminar bekannt? ====<br />
<br />
==== 22. Wozu dienen Genetische Algorithmen und wie funktionieren diese? Welche Parameter gibt es und <br />
wozu dienen diese? Welche Einflüsse können extreme Einstellungen für diese Parameter haben? ====</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=Hardwarebeschreibungssprachen&diff=9122Hardwarebeschreibungssprachen2012-02-13T15:51:48Z<p>TheMrH: /* Nebenläufige Anweisungen */ Fehler im Bsp.-code</p>
<hr />
<div>{{Veranstaltung<br />
|name=Hardwarebeschreibungssprachen<br />
|kurz=HBS<br />
|richtung=II/IHS<br />
|vorlesender=Dr.-Ing. Steffen Arlt<br />
}}<br />
<br />
Vorteile der Nutzung von Hardwarebeschreibungssprachen, Erlernen der syntaktischen<br />
Grundelemente von VHDL, Überblick über gängige Simulations- und Synthesewerkzeuge, Unterschiede zur<br />
Hardwarebeschreibungssprache Verilog, Simulation von VHDL-Designs, Synthesegerechte VHDL-Modellierung,<br />
Alternative Beschreibungskonzepte (System C)<br />
<br />
== Prüfung ==<br />
<br />
{{Abschluss<br />
|name = Klausur<br />
|datum = 25.02.2011<br />
|zeit = 09:00 - 10:30<br />
|ort = Sr HU 211/212<br />
}}<br />
<br />
Am Ende des Semester gibt es eine Klausur die über 90 Minuten geht. Es sind alle selbst erstellten Unterlagen und die vorgefertigten in der Klausur zugelassen.<br />
<br />
'''Klausur HBS WS2010/11'''<br />
<br />
Inhalt:<br />
* Beschreibungssprachen<br />
** Warum HDL?<br />
** Y-Diagramm<br />
** Unterschiede zwischen VHDL 87 und VHDL 93<br />
** Unterschied zwischen Signal und Variable<br />
** case-Anweisung<br />
** Verzögerungsmodell<br />
**nicht synthesefähige Anweisungen<br />
** Flankendetektor<br />
**32 Bit Vektor zu null setzten<br />
** Process vervollständigen (war ein FlipFlop)<br />
** korrigieren eines Codes<br />
** Beschreibung eines Automatengraphen in VHDL<br />
<br />
Zu den meisten Punkten sollten auch immer Beispiele angegeben werden.<br />
<br />
== Vorlesungsmitschriften ==<br />
<br />
=== 1. Vorlesung ===<br />
<br />
==== Motivation ====<br />
<br />
* Lücke zwischen Integrationsdichte und Design<br />
* Steigende Komplexität<br />
** 1970 Intel CPU 4004<br />
*** 4 Bit, 10µm, 600mm 2 , 0, 74MHz, 2, 25k Transistoren<br />
** 1997 Intel CPU Pentium 2<br />
*** 32 Bit, 0, 35µm, 203mm 2 , 300MHz, 7.500k Transistoren<br />
** 2005 Intel CPU Pentium 4 6xx<br />
*** 64 Bit, 0, 09µm, 135mm 2 , 3587, 8MHz, 169.000k Transistoren<br />
* Abstraktion, Generik<br />
* Time to Market<br />
* Intellectual Properties (IP) & Reuse<br />
* Regularität<br />
* Information Hiding<br />
* Modularität<br />
<br />
==== Was ist eine HDL? ====<br />
<br />
Modellierungssprachen für die Simulation und Implementierung elektronischer Schaltungen<br />
* Dokumentationsmittel speziell auf höherem Abstraktionsniveau<br />
* Übliche HDLs: VHDL, ABEL, Verilog, Altera-HDL, UDL/I<br />
* Unterschiede zu Hochsprachen wie C, C++, Pascal:<br />
** Beschreibung von Parallelität¨at<br />
** strukturelle Beschreibung (Entwurf des Steuer- und Datenflusses)<br />
** Existenz entsprechender Datentypen f¨ur die Modellierung von Signalvektoren und Signalpegeln<br />
<br />
===== Anwendungen =====<br />
<br />
Spezifikation<br />
* Verifikation, Modellierung ⇒ Simulation<br />
* Synthese<br />
* Dokumentation<br />
<br />
==== Historie VHDL ====<br />
<br />
VHSIC Very High Speed Integrated Circuits - Programm des DoD<br />
`<br />
VHDL- Hardware Description Language<br />
* 1981 erste Anforderungen<br />
* 1983-1985 VHDL-Entwicklung von Intermetrics, IBM, TI<br />
* 1987 IEEE Standard 1076-1987 VHDL-87<br />
* 1991 IEEE Standard 1164 (neunwertige Logik)<br />
* 1993 IEEE Standard 1076-1993 VHDL-93<br />
* 1995 IEEE Standards 1076.3 1076.4<br />
<br />
==== Historie Verilog ====<br />
<br />
* 1985 Verilog- Spache und Simulator von Gateway Automation entwickelt<br />
* 1985-1989 wachsende Zunahme der Verwendung von Verilog bei ASIC-Herstellern<br />
* 1989 Verilog wird von Cadence ¨ubernommen<br />
* 1990 Formulierung von Open Verilog International (OVI)<br />
* 1995 IEEE Standard 1364<br />
<br />
==== Kurzvergleich ====<br />
<br />
* VHDL bietet mehr lexikalische Elemente (erweiterte Typdefinitionen, Variablen)<br />
* Vorteile von Verilog liegen bei der Simulation von Netzlisten mit Timingmodellen, ist an C angeleht, keine strenge Typprüfung<br />
* Die Favorisierung einer Sprache ist bei den heute verfügbaren Simulations- und Synthesewerkzeugen nicht mehr notwendig<br />
* Europa: ca. 90% Nutzung von VHDL<br />
* USA: ca.50% Nutzung von VHDL<br />
* Verilog oft effizienter als VHDL<br />
<br />
=== 2. Vorlesung ===<br />
<br />
=== 3. Vorlesung ===<br />
<br />
=== 4. Vorlesung ===<br />
<br />
=== 5. Vorlesung ===<br />
<br />
==== Operatoren ====<br />
<br />
'''logische Operatoren:''' and, or, nand, nor, xor, xnor, not<br />
<br />
<source lang="vhdl"><br />
x <= a xnor b;<br />
x_vec <= a_vec and b_vec; -- bei Vektoren Bitweise<br />
</source><br />
<br />
'''relative Operatoren:''' =, /=, <, <=, >, >=<br />
<br />
'''arithmetische Operatoren:''' sign + - , +, -, &, *, /, mod, rem, **, abs()<br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
5 mod 3 = 2<br />
- 5 mod 3 = 1<br />
5 mod (-3) = -1 <br />
- 5 mod (-3) = -2<br />
<br />
5 rem 3 = 2<br />
- 5 rem 3 = -2<br />
5 rem -3 = 2<br />
- 5 rem -3 = -2<br />
</source><br />
'''Shift Operatoren:''' SLL, SRL, SLA, SRA, ROL, ROR<br />
<br />
==== Nebenläufige Anweisungen ====<br />
<br />
<source lang="VHDL"><br />
architecture<br />
<concurrent decluration part><br />
begin --concurrent VHDL begin<br />
concurrent part<br />
process (...)<br />
sequential decluration part<br />
begin<br />
sequential VHDL<br />
end process<br />
end --concurrent VHDL end<br />
</source><br />
<br />
* process<br />
* bedingte Signalzuweisung (condition signal assignment)<br />
<br />
<source lang="VHDL"><br />
<sig_id> <= <waveform>/sig_value when <condition><br />
else <condition><br />
</source><br />
<br />
''Bsp.:''<br />
<source lang="VHDL"><br />
q <= a when addr = "oo" else -- Vergleichbar if-then, elsif- else Konstruktion<br />
b when addr = "11" else<br />
c; -- alternative: unaffected;<br />
</source><br />
<br />
* selektive Signalzuweisung (selected signal assignment)<br />
<source lang="VHDL"><br />
with addr select -- entspricht einem Multiplexer (HBS 4-12)<br />
q = a when "00",<br />
b when "11",<br />
c when others;<br />
</source><br />
<br />
'''case-Konstrukt'''<br />
<br />
<source lang="VHDL"><br />
architecture Mux1 of MUX is -- Skizze (HBS 4-12)<br />
begin<br />
y <= (I(0) and not E and not S)<br />
or (I(1) and not E and S);<br />
end Mux1;<br />
<br />
architecture Mux2 of Muc is<br />
begin<br />
y <= (I(0) and not E) when s = '0' else<br />
(I(1) and not E);<br />
end Mux2;<br />
<br />
architecture rtl1 or test is<br />
signal a,b,c,d,e : std_logic;<br />
begin<br />
d <= a and (b or c);<br />
e <= a or b;<br />
end rtl1;<br />
<br />
architecture rtl2 of test is<br />
begin<br />
process (a,b,c)<br />
variable var: std_logic;<br />
begin<br />
var := b or c;<br />
d <= a and var;<br />
end process;<br />
process (a,b)<br />
begin<br />
e <= a or b;<br />
end process;<br />
end rtl2;<br />
</source><br />
<br />
<source lang="VHDL"><br />
process (a)<br />
wait until a = 1;<br />
wait on a;<br />
wait for 10ns;<br />
<br />
wait for 2* period;<br />
wait until a = 1 for 10ns;<br />
</source><br />
<br />
''Bsp.:'' Verzögerungsmodell <br />
<source lang="VHDL"><br />
process (a) -- Skizze (HBS 4-13)<br />
begin<br />
c1 <= not a;<br />
end process;<br />
<br />
process<br />
begin<br />
c2 <= not a;<br />
wait on a;<br />
end process;<br />
<br />
process<br />
begin<br />
wait on a;<br />
c3 <= not a;<br />
end process;<br />
<br />
process<br />
begin<br />
wait until a = '1';<br />
c4 <= not a;<br />
end process;<br />
<br />
process<br />
begin<br />
c5 <= not a;<br />
wait until a = '1' for 10ns;<br />
end process;<br />
</source><br />
<br />
==== Sequentielle Statements ====<br />
<br />
<source lang="VHDL"><br />
if addr = "00" then<br />
q <= a;<br />
elsif addr = "11" then<br />
q <= c;<br />
end if;<br />
<br />
case addr is<br />
when "00" => q <= a;<br />
when "11" => q <= b;<br />
when others => q <= c;<br />
end case;<br />
<br />
type alu_mod is (addr, sub, idle); -- Null-Anweisung<br />
variable sel: alu_mod;<br />
case sel is<br />
when add = c := a + b;<br />
when sub = c := a - b;<br />
when idle => null;<br />
end case;<br />
</source><br />
<br />
=== 6. Vorlesung ===<br />
<br />
==== Schleifen ====<br />
* "loop"<br />
* Abbruch exit, next<br />
<br />
===== bedingungslose Schleife =====<br />
<source lang="vhdl"><br />
<label> : loop<br />
.<br />
.<br />
.<br />
end loop [<label>];<br />
</source><br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
elementar_loop : loop<br />
if i = 31 then<br />
exit;<br />
else<br />
i := i+1;<br />
q(i) <= '0';<br />
end if;<br />
end loop elementar_loop;<br />
</source><br />
<br />
===== for-Schleifen =====<br />
<source lang="vhdl"><br />
<label> : for <index> in <range> loop<br />
.<br />
.<br />
.<br />
end loop [<label>];<br />
</source><br />
''Bsp.:''<br />
<source lang="vhdl"><br />
for i in 0 to 31 loop<br />
addr(i) <= '0';<br />
end loop;<br />
</source><br />
<br />
===== while-Schleifen =====<br />
<source lang="vhdl"><br />
<label> : while <condition> loop<br />
.<br />
. <br />
.<br />
end loop;<br />
</source><br />
''Bsp.:''<br />
<source lang="vhdl"><br />
while i<5 loop<br />
q(i) <= data_in(i)<br />
i := i + 1;<br />
end loop;<br />
</source><br />
<br />
===== optionales & zusätzliches =====<br />
<source lang="vhdl"><br />
[<label>] exit [<label>] [when]:<br />
next<br />
</source><br />
<br />
==== Unterprogramme (Subprograms) ====<br />
* function, procedure<br />
* Operatoren, Datentypen, Konstanten, Konvertierung<br />
* lokal (in einer architecture), global (package)<br />
* rein sequenzielles VHDL<br />
* laut IEEE_1076.6 sind Signaldeklarationen nicht synthesefähig<br />
* Rekursion - nicht synthesefähig!<br />
<br />
===== Funktionen =====<br />
* mehrere Übergabeparameter<br />
* ein Rückgabewert<br />
<br />
<source lang="vhdl"><br />
function <func_id> (<parameter_list>) return <type_id> is<br />
<variable. constant, type declaration>;<br />
begin<br />
<ssequential statements><br />
return <id>;<br />
end [<func_id>];<br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
funtion vec2int (v:std_logic_vector) return integer is<br />
variable tmp: integer := 0;<br />
begin<br />
for i in v'range loop<br />
tmp : = tmp*2;<br />
if v(i) = '1' then<br />
tmp := tmp + 1;<br />
end if;<br />
end loop;<br />
return tmp;<br />
end vec2int;<br />
<br />
(int_var := vec2int(vec_var))<br />
</source><br />
<br />
'''function overloading'''<br />
<br />
<source lang="vhdl"><br />
type tri_logic is ('0', '1', 'K');<br />
function and (in_1: tri_logic; in_2: tri_logic) return tri_logic is<br />
begin<br />
if in_1 = '1' and in_2 = '1'then return '1';<br />
elsif in_1 = '0' or in_2 = '0' then return '0';<br />
else return 'K';<br />
end if;<br />
end and;<br />
</source><br />
<br />
''Zustände von Funktionen:'' pure, impure<br />
<br />
===== Prozeduren =====<br />
* liefern keine Rückgabewerte: <math>\Rightarrow</math> nicht in Ausdrücken<br />
* mehrere Ü-Parameter möglich (in, out, inout)<br />
* [in = ro]<br />
* [out = wo]<br />
* [inout = r/w]<br />
<br />
<source lang="vhdl"><br />
procedure <proc_id> (<param_list>] is <declaration><br />
begin<br />
<sequ. VHDL><br />
end [<proc_id>];<br />
</source><br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
procedure std_logicvec2int (v: in std_logic_vector;<br />
f: out boolean;<br />
result: out int) is<br />
variable tmp : integer := 0;<br />
begin<br />
result := 0;<br />
f := true;<br />
for i in v'range loop<br />
result := result*2;<br />
if v(i) = '1' then<br />
result := result + 1;<br />
f := false;<br />
end if;<br />
end loop;<br />
end std_logic2int;<br />
</source><br />
<br />
===== Assertion =====<br />
* Überprüfung von Bedingungen und Angaben von errors, warnings<br />
* Meldung wenn Bedingung "false"<br />
* default Meldung: "Assertion violution"<br />
<br />
<source lang="vhdl"><br />
assert <not condition> [report]["<text>"][severity]]serverity_level] { <note|warning|failure><br />
</source><br />
* default für severity_level ist error<br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
assert (a = '1' and b = '1')<br />
report "a and b not equal '1' at same time" severity warning;<br />
</source><br />
<br />
=== 7. Vorlesung ===<br />
<br />
==== Interne Behandlung von Signalen und Variablen ====<br />
<br />
<source lang="vhdl"><br />
sig <= <waveform>, ...<br />
waveform = <expr.>[after time] | unaffected<br />
</source><br />
<br />
===== Transaktionslisten =====<br />
* (current_time + time, value)<br />
* delta - Delay: 1/unendlich, Summe = (1/unendlich)<br />
<br />
'''wählt Aktion2'''<br />
<source lang="vhdl"><br />
signal x : std_logic := 0;<br />
process (...)<br />
begin<br />
x <= '1';<br />
if (x = '1') then<br />
-- Aktion1<br />
else<br />
-- Aktion2<br />
end if;<br />
end process<br />
</source><br />
<br />
'''wählt Aktion1'''<br />
<source lang="vhdl"><br />
process (...)<br />
variable x : std_logic := 0;<br />
begin<br />
x := '1';<br />
if (x = '1') then<br />
-- Aktion1<br />
else<br />
-- Aktion2<br />
end if;<br />
end process;<br />
</source><br />
<br />
===== Simulationsablauf =====<br />
<br />
====== Initialisierung ======<br />
* Wertzuweisungen<br />
* Simulationtime = 0<br />
* alle Prozesse anstarten<br />
<br />
'''Aktualisierung'''<br />
* Bestimmung von next_time und next_event aus der Transaktions + Weckliste<br />
* current_time auf next_time<br />
* => Ausführen der Transaktionen, Wertzuweisungen + Aktivierung von Prozessen<br />
* Löschen der aktiven Transaktionen<br />
<br />
'''Ausführen der Prozesse'''<br />
* aller aktivierten Prozesse<br />
* Weränderung erst nach Prozess-Stop<br />
<br />
* (Schleife aus Aktualisierung & Ausführen von Prozesse)<br />
<br />
'''Simulationsende'''<br />
* alle Transktionslisten leer<br />
* keine Events mehr ausführen<br />
* Signale stabil<br />
* Zeitlimit<br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
constant check_periode : time := 250ns;<br />
begin<br />
process<br />
begin<br />
clk <= 0;<br />
wait for clock_period/2;<br />
clk <= 1;<br />
wait for clock_periode/2;<br />
end process;<br />
</source><br />
<br />
Alternativ<br />
<source lang="vhdl"><br />
clk <= not clk after 125ns;<br />
</source><br />
<br />
====== Verzögerungsmodelle bei Signalzuweisungen ======<br />
<br />
<source lang="vhdl"><br />
<sig> <= [<inertial(default)|transport>]<waveform>,...<br />
</source><br />
<br />
''Bsp.:''<br />
<source lang="vhdl"><br />
begin<br />
a <= '0', '1' after 10ns, 'o' after 30ns, '1' after 50ns, '0' after 58ns;<br />
b <= '0', '1' after 15ns;<br />
c <= inertial a and b after 12ns;<br />
d <= transport a and b after 12ns;<br />
e <= reject 8ns inertial not a after 10ns;<br />
<br />
process(clk)<br />
variable num, sum integer range 0 to 15 := 0;<br />
begin<br />
if (clk = '1' and clkevent) then<br />
veq_q0 <= sum;<br />
num := num + 1;<br />
sum := num + 1;<br />
veq_q1 <= sum;<br />
end if;<br />
end process;<br />
<br />
signal num, sum : integer range 0 to 15 := 0;<br />
process(clk)<br />
begin<br />
if (clk = '1' and clkevent) then<br />
veq_q0 <= sum;<br />
num <= num + 1;<br />
sum <= num + 1;<br />
veq_q1 <= sum;<br />
end if;<br />
end process;<br />
</source><br />
<br />
=== 8. Vorlesung ===<br />
<br />
==== Entwurfsbeispiele ====<br />
<br />
===== Latch (HBS_5-3) =====<br />
'''Definition:''' Ein Latch (engl. für Schnappschloss, Auffangregister), oder auch als zustandsgesteuertes Flipflop bezeichnet, ist eine bestimmte Ausführung eines elektronischen 1-Bit-Datenspeichers und bildet(e) die Grundlage für weite Bereiche der Digital-Hardware, insbesondere innerhalb CPU- und Peripherie-Chips.<br />
<br />
Im Gegensatz zu taktflankengesteuerten Flipflops ist ein Latch während der gesamten aktiven Taktphase transparent, d. h. Eingangsänderungen können den Ausgang sofort beeinflussen.<br />
<br />
<source lang="vhdl"><br />
entity LATCH is port (d, en : in bit; q : out bit);<br />
end LATCH;<br />
architecture test1 of LATCH is<br />
beagin<br />
process (en, d)<br />
begin<br />
if en = '1' then<br />
q <= d;<br />
-- else<br />
-- q <= q;<br />
end if;<br />
end process;<br />
end test1;<br />
<br />
architecture test2 of LATCH is<br />
begin<br />
process (clk, d)<br />
begin<br />
case clk is<br />
when '1' => q <= d;<br />
when '0' => null;<br />
end process;<br />
end test2;<br />
<br />
architecture test3 of LATCH is<br />
signal temp : bit;<br />
begin<br />
process (en, d)<br />
begin<br />
if en = '1' then<br />
q <= temp;<br />
else<br />
temp <= d;<br />
end if;<br />
end process;<br />
end test3;<br />
<br />
architecture test4 of LATCH is<br />
begin<br />
process (en, d)<br />
variable temp : bit;<br />
begin<br />
temp := 0;<br />
if en = '1' then<br />
temp <= d;<br />
end if;<br />
q <= temp;<br />
end process;<br />
end test4;<br />
<br />
architecture test5 of LATCH is<br />
begin<br />
process (en, d)<br />
variable temp : bit;<br />
begin<br />
temp := 0;<br />
if en = '1' then<br />
temp <= d;<br />
else<br />
temp := not temp;<br />
end if;<br />
q <= temp;<br />
end process;<br />
end test5;<br />
</source><br />
<br />
===== FLipFlops =====<br />
'''Definition:''' Ein Flipflop (engl. flip-flop), meist auch bistabile Kippstufe oder bistabiles Kippglied genannt, ist eine elektronische Schaltung, die zwei stabile Zustände einnehmen und diese speichern kann.<br />
<br />
Das Flipflop ist eine einfache elektronische Schaltung, welche eine Datenmenge von einem Bit über eine lange Zeit speichern kann. Es ist fundamentaler Bestandteil vieler elektronischer Schaltungen (sequentieller Schaltkreise) – von der Quarzuhr bis zum Mikroprozessor. Daneben ist es in vieltausend- bis milliardenfacher Ausführung in Computerspeicherchips (statischen Speicherbausteinen) enthalten.<br />
<br />
====== Asynchrones Reset D-Flip Flop ======<br />
<source lang="vhdl"><br />
Library ieee;<br />
use ieee.std_logic_1164.all;<br />
entitiy FF is port (clk : in std_logic;<br />
reset : in std_logic;<br />
d : in std_logic;<br />
q : out std_logic);<br />
end FF;<br />
architecture rtl of FF<br />
begin<br />
process (clk, reset)<br />
begin<br />
if reset = '0' then<br />
q <= 0;<br />
elsif (clk = '1' and clk'event) then<br />
q <= d;<br />
end if;<br />
end process;<br />
end rtl;<br />
</source><br />
<br />
''Alternative für Simulation''<br />
<source lang="vhdl"><br />
wait until clk'event and clk = '1'<br />
if rising_edge(clk)<br />
(falling)<br />
</source><br />
<br />
====== Synchrones Reset Preset D-FlipFlop ======<br />
<source lang="vhdl"><br />
architecture rtl2 of FF is<br />
begin<br />
process(clk)<br />
begin<br />
if (clk = '0' and clk'event) then<br />
if (reset = '0' then<br />
q <= '0':<br />
elsif preset = '0' then<br />
q <= '1';<br />
elsif enable = '1' then<br />
q <= d;<br />
else<br />
null;<br />
end if;<br />
end if;<br />
end process;<br />
end rtl2;<br />
</source><br />
<br />
===== Zähler =====<br />
<br />
====== Johnson-Zähler ======<br />
<source lang="vhdl"><br />
Library ieee;<br />
use idee.std_logic_1164.all;<br />
entity johnson is port (clk : in std_logic;<br />
sum : out std_logic_vector (3 downto 0);<br />
end johnson;<br />
architecture rtl of johnson is<br />
begin<br />
process(clk)<br />
variable count : std_logic_vector (3 downto 0);<br />
begin<br />
if (clk = '1' and clk'event) then<br />
for i in 3 downto 1 loop<br />
count(i) := count(i-1);<br />
end loop;<br />
count(0) := not count(3);<br />
end if;<br />
sum <= count;<br />
end process;<br />
end rtl;<br />
</source><br />
<br />
=== 9. Vorlesung ===<br />
<br />
==== Schieberegister ====<br />
<br />
<source lang="vhdl"><br />
library ieee;<br />
use ieee.std_logic_1164.all;<br />
entity shiftreg is port (ld_shift, clk : in std_logic;<br />
ld_val : in std_logic_vector (4 downto 0);<br />
ser_out : out std_logic);<br />
end shift_reg;<br />
<br />
architecture rtl of shift_reg is<br />
signal temp : std_logic_vector (4 downto 0);<br />
begin<br />
process (clk)<br />
begin<br />
if (clk = '1' and clk'event) then<br />
if ld_shift = '1' then<br />
tmp <= ld_val;<br />
else<br />
tmp (4 downto 0) <= temp (3 downto 0) & '0';<br />
end if;<br />
end if;<br />
end process;<br />
end rtl;<br />
</source><br />
<br />
* Beispiel zwei fehlt...<br />
<br />
==== Finite State Machines (FSM) ====<br />
<br />
===== Automaten =====<br />
<br />
====== Automatenentwurf ======<br />
Zustandskodierung binär hot one<br />
# FlipFlops {ld n} n<br />
k komplexer i.a. einfach<br />
<br />
* "1001" -> FSM -> 1<br />
<br />
Skizze<br />
<br />
<source lang="vhdl"><br />
library ieee;<br />
use ieee.std_logic_1164.all;<br />
entity detect_fsm is port(x, rst ,clk : in std_logic;<br />
y : out std_logic);<br />
end detect_fsm;<br />
<br />
architecture rtl of detect_fsm is<br />
type state_type is (z0, z1, z2, z4);<br />
signal next_state, current_state : state_type;<br />
begin<br />
next_state_process: process (current_state, x)<br />
begin<br />
case current_state is<br />
when z0 => if x = '1' then next_state <= z1;<br />
end if;<br />
z1 => if x = '0' then next_state <= z2;<br />
end if;<br />
z2 => if x = '0' then next_state <= z3;<br />
else<br />
next_state <= z1;<br />
end if;<br />
when others => if x = '1' then next_state <= z1;<br />
else<br />
next_state <= z0;<br />
end if;<br />
end case;<br />
end process next_state process;<br />
output_process : process (current_state, x)<br />
begin<br />
if (current_state = z3 and x = '1') then<br />
y <= 1;<br />
else<br />
y <= 0;<br />
end if;<br />
end process output_process;<br />
clk_process: process(clk, rst)<br />
begin<br />
if (rst = '1') then current_state <= z0;<br />
elsif (clk = '1' and clk'event) then current_state <= next_state;<br />
end if;<br />
end process clk_process,<br />
end rtl;<br />
</source><br />
<br />
<source lang="vhdl"><br />
architecture rtl2 of detect_fsm is<br />
type state_type is (z0, z1, z2, z4);<br />
signal state : state_type;<br />
begin<br />
process (rst, clk)<br />
begin<br />
if (rst = '1' then state <= z0;<br />
y<= 0;<br />
elsif (clk = '1' and clk'event) then<br />
case state is<br />
when z0 => if x = '1' then state <= z1;<br />
end if;<br />
when z1 => if x = '0' then state <= z2;<br />
end if;<br />
when z2 => if x = '0' then state <= z3;<br />
else<br />
state <= z1;<br />
end if;<br />
when others => if x = '1' then state <= z1;<br />
y <= 1;<br />
else<br />
state <= z0;<br />
end if;<br />
end case;<br />
end process;<br />
end rtl2;<br />
<source><br />
<br />
'''mit one hot Codierung'''<br />
<source lang="vhdl"><br />
architecture rtl3 of detect_fsm is<br />
signal z0, z1, z2, z4 : std_logic;<br />
begin<br />
process (rst, clk)<br />
begin<br />
if (rst = '1' then <br />
z0 <= '1'; <br />
z1 <= '0';<br />
z2 <= '0';<br />
z3 <= '0';<br />
y <= '0';<br />
elsif (clk = '1' and clk'event) then<br />
z0 <= (z0 or z3) and not x;<br />
z1 <= x;<br />
z2 <= zi and not x;<br />
z3 <= z2 and not x;<br />
y <= z3 and x;<br />
end if;<br />
end if;<br />
end process;<br />
end rtl3;<br />
</source><br />
<br />
==== 7-Segment-Anzeige ====<br />
<br />
BCD a b c d e f g<br />
0 0000 0 0 0 0 0 0 1<br />
.<br />
.<br />
.<br />
9 1001 0 0 0 0 1 0 0<br />
<br />
==== 6. Testbenches ====<br />
* drei Skizzen<br />
<br />
=== 10. Vorlesung ===<br />
<br />
==== Testumgebung für einen MUX ====<br />
<br />
<source lang="vhdl"><br />
library ieee;<br />
use ieee.std_logic_1164.all;<br />
entity mux is port (in 0, in 1, sel : in std_logic;<br />
z : out std_logic);<br />
end mux;<br />
<br />
architecture rtl of mux is<br />
begin<br />
with sel select<br />
z <= in 0 when '0';<br />
in1 when others;<br />
end rtl;<br />
<br />
entity tb is<br />
end tb<br />
<br />
architecture tb_version1 of tb is<br />
component mux port (in 0, in 1, sel : in std_logic;<br />
2 : out std_logic);<br />
end component,<br />
<br />
signal in 0, in 1, sel z : std_logic;<br />
type sample is record<br />
in0 : std_logic;<br />
in1 : std_logic;<br />
sel : std_logic;<br />
end record;<br />
<br />
type samples_array is array (natural rang <>) of sample;<br />
constant test_data : sample_array := (('0','0','0',),('0','0','1'),('0','1','0'),('0','1','1'),('1','0','0'),('1','0','1'),('1','1','0'),('1','1','1'));<br />
begin<br />
dut: mux port map(in0 => in0, in1 => in1, sel => sel, z => z);<br />
process<br />
begin<br />
for i in test_data'range loop<br />
in0 <= test_data(i).in0;<br />
in1 <= test_data(i).in1;<br />
sel <= test_data(i).sel;<br />
wait for 10 ns;<br />
end loop;<br />
wait<br />
end process;<br />
<br />
process<br />
begin<br />
wait for 5ns;<br />
assert z = '0' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '0' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '0' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '1' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '1' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '0' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '1' report "wrong result" severity note;<br />
wait for 10ns;<br />
assert z = '1' report "wrong result" severity note;<br />
wait for 10ns;<br />
wait;<br />
end process;<br />
end tb_version1;<br />
</source><br />
<br />
==== VERILOG ====<br />
<br />
===== Ripple Carry Counter =====<br />
<br />
<source lang='verilog'><br />
module ripple_carry_counter (q, clk, reset);<br />
output [3:0] q;<br />
input clk, reset;<br />
T_FF tff0 (q [0], clk, reset);<br />
T_FF tff1 (q [1], q [0], reset);<br />
T_FF tff2 (q [2], q [1], reset);<br />
T_FF tff3 (q [3], q [2], reset);<br />
end module<br />
<br />
module T_FF(q, clk, reset);<br />
output q;<br />
input clk, reset;<br />
wire d;<br />
D_FF dff0 (q, d, clk, reset);<br />
not n1 (d, q);<br />
end module<br />
<br />
module D_FF (q, d, clk, reset);<br />
output q;<br />
input d, clk, reset;<br />
reg q;<br />
<br />
always @(posedge reset or negedge dk)<br />
if (reset)<br />
q = 1'b0;<br />
else<br />
q = d;<br />
end module<br />
</source><br />
<br />
== Materialien ==<br />
<br />
Das vollständige Skript der aus dem Downloadbereich:<br />
* [http://www.tu-ilmenau.de/fileadmin/media/mne_ess/vorlesung_hbs.pdf Skript]<br />
<br />
Beschreibung zum FPGA-Board für das Praktikum:<br />
* [http://www.tu-ilmenau.de/fileadmin/media/mne_ess/Beschreibung_FPGA_Board.pdf FPGA Board]<br />
<br />
Die Praktikumsanleitung zum Versuch Stoppuhr:<br />
* [http://www.tu-ilmenau.de/fileadmin/media/mne_ess/anleitung_stoppuhr.pdf Stoppuhr]<br />
<br />
Die Praktikumsanleitung zum Versuch Signalgenerator:<br />
* [http://www.tu-ilmenau.de/fileadmin/media/mne_ess/anleitung_ddsgenerator.pdf Signalgenerator]<br />
<br />
== Literaturhinweise ==<br />
<br />
* Hunter, R.D., Johnson, T.T.: Indruction to VHDL. Springer US 1995<br />
* Sjoholm, St., Lindh, L.: VHDL for Designers. Prentice Hall 1996<br />
* Reichardt, J.: VHDL-Synthese. Oldenbourg 2003<br />
* [http://wiki.erazor-zone.de/wiki:study:scripts:hdl ältere Vorlesungsmitschrift]<br />
<br />
<br />
[[Kategorie:Studium]]</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=II-Bash09&diff=8808II-Bash092012-02-03T19:59:21Z<p>TheMrH: </p>
<hr />
<div> mrh: ohne mond wär scotty der größte erdtrabant<br />
Sc0ttY: dann hätten wir aber en problem weil ich bin schon runtergefalln<br />
monsieurpoulet_: solange du dich alle 6stunden im bett rumdrehst hamer immer noch ebbe und flut ^^</div>TheMrHhttps://wikiii.de/w_iki/index.php?title=II-Bash09&diff=8807II-Bash092012-02-03T19:59:10Z<p>TheMrH: Die Seite wurde neu angelegt: „== II-Bash 09 == mrh: ohne mond wär scotty der größte erdtrabant Sc0ttY: dann hätten wir aber en problem weil ich bin schon runtergefalln monsieurpoulet_:...“</p>
<hr />
<div>== II-Bash 09 ==<br />
<br />
mrh: ohne mond wär scotty der größte erdtrabant<br />
Sc0ttY: dann hätten wir aber en problem weil ich bin schon runtergefalln<br />
monsieurpoulet_: solange du dich alle 6stunden im bett rumdrehst hamer immer noch ebbe und flut ^^</div>TheMrH