Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 12 » Hardware-Software-Co-Design   (Übersicht)

Hardware-Software-Co-Design

  • Datum: 21.02.14
  • Prüfer: Prof. Teich
  • Dauer: 30 Minuten, Beginn etwas verzögert

Allgemeines / Beginn

  • Drei Frageblöcke vorbereitet, davon wurde alles verwendet.
  • Am Ende wurde es etwas knapp, da er nichts weglassen wollte und sich das erste Thema hinzog
  • Ausweis vorzeigen, sofortiger Beginn mit 1. Frage (nichts Allgemeines über HSCD)
  • Fragen meist etwas ausführlicher, unten nur Kurzfassung
  • Entspanntes Gespräch; Prüfer hilft, falls man nicht auf die Antwort kommt; lässt nichts weg, wenn man es nicht so sagt, wie er es wünscht, erklärt er es selber

Fragen

Systempartitionierung

  • Was ist das? Was gibt es für Verfahren? ⇒ alle nennen
  • Wie lassen sich diese einordnen? ⇒ exakt / heuristisch: konstruktiv, iterativ
  • Warum verwendet man heuristische V., wenn es doch exakte V. gibt? ⇒ evtl. keine Lösung in endlicher Zeit

Ausführungszeit

  • Ausführungszeit bestimmbar (HW/SW)? ⇒ in SW nur Schätzung
  • WCET: Was ist das? ⇒ Formel, Erklärung
  • [Legt ca. 10 Zeilen C-Code vor] Einordnung im Doppeldach? Grundblockgraph zeichnen! (Vorher GB bestimmen)
  • Bedingungen WCET? Beginnen, WCET zu bestimmen (GB-Eingang = GB-Ausgang)
  • [Legt Tabelle mit Werten von 3 Schätzverfahren vor, jeweils E(D) und M(D)] Berechnen sie Treue und Exaktheit! ⇒ Formel, Erklärung und Berechnung

Codegenerierung

  • Ablauf Codegenerierung? ⇒ Allokation, Ablaufplanung, Bindung
  • Was wird jeweils konkret getan?
  • Anforderungen an „guten“ Code?
  • Wie kann man die Registervergabe bestimmen/optimieren/…?
  • ⇒ Graphfärbung, Registerbelegungsgraphen (beides kurz erklären)
  • ⇒ Nutzenfunktion (kurz nennen)
  • ⇒ Dynamische Programmierung: [legt math. Ausdruck vor, ähnlich: a + b * x + d / e] ⇒ DAG erstellen
  • Reduzierter Satz (Kosten jeweils 1): Ri = Ri op Rj; Ri = Mi; Mi = Ri;
  • ⇒ DP durchführen, Kostenvektoren (Erklärung) ⇒ beginnen, daraus Code zu erstellen