DEPARTMENT INFORMATIK Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Martensstraße 3, 91058 Erlangen 25.01.2016 Probeklausur zu Computational Engineering I............ Matrikelnummer Geb.-Datum Vorname Name Es sind keine Hilfsmittel erlaubt Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 14 Seiten. Überprüfen Sie die Vollständigkeit! Gesondert beigelegte Blätter werden nicht bewertet. Schreiben Sie deutlich! Unleserliches wird nicht bewertet! Es darf nicht mit der Farbe rot geschrieben werden! Offensichtlich falsche oder überflüssige Antworten können zu Punktabzug führen! Durch meine Unterschrift bestätige ich den Empfang der vollständigen Klausurunterlagen die Kenntnisnahme der obigen Informationen. Erlangen, den 25.01.2016... (Unterschrift) Ich bin damit einverstanden, dass mein Prüfungsergebnis der Klausur unter Angabe der Matrikel-Nummer veröffentlicht wird. Erlangen, den 25.01.2016... (Unterschrift) Aufgabe 1 2 3 4 5 6 7 8 9 Summe max. Punktzahl 10 13 10 10 10 8 8 11 10 90 erreichte Punktzahl
Aufgabe 1: Zahlendarstellung (10 Punkte) Stellen Sie die Dezimalzahl 2015 als Dualzahl dar. Verwenden Sie das Hornerschema. Stellen Sie die Dezimalzahl 2015 als BCD-Zahl dar; für was steht die Abkürzung BCD und was versteht man darunter? Stellen Sie die folgenden beiden Dualzahlen im Oktal- und Hexadezimalsystem dar: * 1000101 * 100010
Aufgabe 2: Boolesche Algebra und Gatterlogik (13 Punkte) A B & 1 Out & & AND 1 OR & NAND Leiten Sie aus oben stehender Schaltung die Wahrheitstabelle ab. A B Out Welche Funktion wird durch diese Schaltung realisiert? Entwerfen Sie eine alternative Schaltung mit gleicher Funktion, die nur aus NAND Gattern besteht.
Aufgabe 3: Mikroprogrammierung (10 Punkte) Gegeben sei folgendes Leitwerk: Lade B Lade A 1 2 B A A + B nicht A A und B A oder B 3 4 5 6 ALU Lade C 7 C Eingabe Wähle ALU 8 Wähle Eingabe 9 vom Speicher Wähle Speicher 10 Lade D 11 D Lade E Wähle C Wähle D Wähle Speicher 12 13 14 15 E zum Speicher Ausgabe Wähle Ausgabe 16 Schreiben Sie ein Mikroprogramm, dass einen Wert von der Eingabe mit einem Wert vom Speicher mit XOR verknüpft und das Ergebnis auf die Ausgabe schreibt. Sie können davon ausgehen, dass sowohl an der Eingabe als auch beim lesen vom Speicher dauerhaft der gleiche Wert vorliegt. Adresse 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Aufgabe 4: Rechnerarchitektur (10 Punkte) Der von Neumann-Rechner besteht aus 4 Werken. Nennen Sie diese und erklären Sie kurz deren jeweilige Funktion. Nennen Sie zwei Modifikationen/Erweiterungen der klassischen von Neumann- Architektur die man in heutige Prozessoren findet. Vergleichen Sie RISC und CISC Prozessoren (tabellarisch!) hinsichtlich ihrer Gemeinsamkeiten und Unterschiede.
Aufgabe 5: Gleitkommazahlen (10 Punkte) Beschreiben Sie den Aufbau einer Gleitkommazahl nach IEEE 754 mit einfacher Genauigkeit und geben Sie alle relevanten Kenngrößen in Bit bzw. dezimal an. Welche vier unterschiedlichen Darstellungsarten/(symbolische) Werte bietet der IEEE 754 Standard und wie werden diese in der Zahlendarstellung codiert? Was ist das hidden bit und warum verwendet man es? Wandeln Sie folgende Dezimalzahl in eine Gleikommazahl nach IEEE 754 in einfacher Genauigkeit um: -0,6875 Rechnen Sie folgende Gleitkommazahl in eine (ggf. sinnvoll gerundete) Dezimalzahl um: V E M 1 0111 1111 101 1000 0000 0000 0000 0000
Aufgabe 6: Caches (8 Punkte) Nennen Sie die drei gebräuchlichen Cache-Organisationsformen. Wie heißen die beiden in der Vorlesung vorgestellten Prinzipien, auf Grund derer sich bei einem Speicherzugriff benötigte Daten häufig im Cache finden lassen? Nennen Sie zwei Aktualisierungsstrategien welche eingesetzt werden, um Inkonsistenzen zwischen Hauptspeicher und Cache zu vermeiden. Nennen Sie eine weitere Ersetzungsstrategie neben LRU (Least Recently Used).
Aufgabe 7: Pipelining (8 Punkte) Was versteht man im Zusammenhang mit Pipelines unter Daten- und Steuerungshazards? Nennen Sie für beide Hazards je eine Gegenmaßnahme! Wieviele Stufen hat eine Pipeline die für 15 Befehle einen Speedup von 5 erzielt?
Aufgabe 8: OpenMP, MPI und CUDA (11 Punkte) Ordnen Sie OpenMP und MPI je ein Programmiermodell zu. Ordnen Sie beiden Modellen eine typische Parallelrechnerarchitektur zu. Vergleichen Sie OpenMP und MPI in Bezug auf Komplexität und Einfachheit der Programmierung. Wofür steht die Abkürzung SIMT? Erklären Sie, was diese im Zusammenhang mit CUDA bedeutet. Schreiben Sie einen einfachen CUDA-Kernel, der eine Vektoraddition durchhführt. Übergeben werden 3 float Zeiger, A, B und C, die Länge der Vektoren ist N. Beschränken Sie sich dabei auf den device code!
Aufgabe 9: MESI (10 Punkte) In folgender Abbildung ist der Ablauf des MESI-Protokolls dargestellt: Ergänzen Sie die Inhalte der Caches (siehe nächsten Seite) mit den zugehörigen MESI-Zuständen von CPU A und CPU B nach dem Ausführen der angegebenen Anweisungen. Alle Variablen sind als globale Variablen zu betrachten und als Ersetzungsstrategie werde LRU (Least Recently Used) verwendet.
Zusätzlicher Platz
Zusätzlicher Platz