====== HSCD + RC ====== * Prüfer: Teich * Beisitzer: Michael Glaß * Ergebnis: 1 ===== Bemerkungen ===== * Entspannte Atmosphäre, nettes "Gespräch" * Prüfer lenkt Gespräch in die Richtung, die er haben will. Wenn Frage unklar -> nachfragen. * Fragen und Diagramme waren vorbereitet, wurden aber dynamisch ausgewählt. ===== Fragen ===== ==== HSCD ==== * Codesign - was ist das? (-> complex, concurrent, coordinated, correct) * Wie sieht ein klassischer Codesign-Entwurfsfluss aus? (-> Spezifikation, Systemsynthese, HW/SW/IF-Synthese, Schätzung, Maschinencode, Netzliste) * Was findet man in einem SoC? (Prozessoren, Speicher, HW-Module, Busse, ...) * Welche Arten von Verbindungsstrukturen gibt es in einem SoC? (-> Bus, circuit switching, packet switching (NoC)) * Prüfer legt 3-Addresscode hin (ca. 15 Zeilen). * Was ist das? * Wo würde man dieses Diagramm im Doppeldachmodell einordnen? (-> SW-Blockebene) * Welche andere Darstellung für Zwischencode gibt es? (DAG) * Zeichnen Sie mal den DAG zu diesem 3-Addresscode. * Wie generiert man aus einem DAG den Maschinencode? (-> naiv: topologisch sortieren oder DP) * Was braucht man für DP zur Codegenerierung? (-> Zielarchitektur (Befehle mit Kosten), Anzahl der Vielzweckregister) * Bei welchen Prozessoren gibt es Spezialregister und keine Vielzweckregister? (-> kleine Microcontroller mit Akku und Indexregister) * Bei welchen Anwendungen macht es kaum Sinn, Parallelität einzuführen? (-> kontrollflussdominante Anwendungen - Steuerungsaufgaben) ==== RC ==== * Wie sieht ein Van-Neumann Rechner aus? (Programm- u. Datenspeicher, Bus, Control unit, Processing unit) * Probleme davon? (-> sequentielle Instruktionsabarbeitung) * Wie kann man das verbessern? (-> Pipelining, Cache-Hierarchien) * Welche konfigurierbare Hardware gibt es und klassifizieren Sie diese? (-> PAL, PLA, CPLD, FPGA) * Unterschied PAL, PLA und wie sind diese konfigurierbar? (-> PAL: programmierbare UND-Matrix, PLA programmierbare UND- und ODER-Matrix, Konfiguration durch Durchbrennen von Transistoren) * Implementiere Sie mal "AB+C(not D)A+BD" als PAL. * Wie ist k-LUT in einem SRAM-basierten FPGA aufgebaut? (-> RAM-Zelle mit k LUT-Eingängen als Adressleitung und 2^k Einträgen von je einem Bit als Ausgang) * Implementieren Sie mal "AB+CD+AB(not C)+A" mit 3-LUTs. (-> erste LUT hat A,B,C als Eingang, zweite LUT hat Ergebnis von erster LUT, C und D als Eingang). * Welche Algorithmen würden dieses Problem lösen? (-> Chortle-crf und Flow-Map) * Was ist der Unterschied bezüglich des Ergebnisses? (-> Chortle-crf minimiert Anzahl der LUTs, Flow-Map minimiert die Latenz) * Was ist die Latenz? (-> Anzahl der LUTs im kritischen Pfad - hier also 2) * 1.0-Frage: Wie sieht eine 2-LUT als Netzliste aus? (-> 4 Flipflops mit nachgeschaltetem 4 zu 1 Multiplexer. 2 Inputs der LUT sind Selektor-Eingänge des Multiplexers) * Und wie sieht ein Multiplexer als Netzliste aus? (-> aus UND- und einem ODER-Gatter zusammenpuzzlen - vgl. TI1)