Computational Engineering I

Ähnliche Dokumente
Bitte in Druckschrift ausfüllen: Nachname: Vorname: Fachbereich: Matrikelnummer: Geheimwort: Bitte nicht ausfüllen:

Tutorium Rechnerorganisation

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Technischen Informatik I, WS 2004/05

Klausur "Informationstechnische Grundlagen" WS 2012/2013

Technische Informatik I. Übung 3 Speicherhierarchie. v t d 0 d 1 d 2 d Technische Informatik I Übung 3. Technische Informatik I Übung 3

Technische Informatik 1

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Midterm-Klausur Technische Grundlagen der Informatik

Grundlagen der Informatik II

Lösungsvorschlag zur 5. Übung

Vertraulich. Nachname: Vorname: Matrikel-Nummer: Studiengang: WIN TI Datum: Maximale Punktzahl: 58 Erreichte Punktzahl: Note: Datum: Unterschrift:

3 Rechnen und Schaltnetze

OpenMP am Beispiel der Matrizenmultiplikation

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

Vertraulich. Nachname: Vorname: Matrikel-Nummer: Studiengang: Datum: 30. Januar 2015

Stephan Brumme, SST, 2.FS, Matrikelnr

Zahlendarstellungen und Rechnerarithmetik*

Banner T 1 T 2. Bild T 7 T 8. Fließtext T 9

Klausur zu High Performance Computing 12. Juli 2013

Das Prinzip an einem alltäglichen Beispiel

INFORMATIK Oberstufe. Funktionsweise eines Rechners

Information Security Management System. Klausur Wintersemester 2009/10 Hochschule Albstadt-Sigmaringen

Modul Computersysteme Prüfungsklausur SS Prof. Dr. J. Keller LG Parallelität und VLSI Prof. Dr.-Ing. W. Schiffmann LG Rechnerarchitektur

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Übungen zu Grundlagen der Rechnerarchitektur und -organisation (ÜGRa)

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Mikroprozessortechnik. 03. April 2012

Grundlagen der Rechnerarchitektur

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Mikroprozessor als universeller digitaler Baustein

Schaltungstechnik 1 (Wdh.)

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Technische Informatik. Der VON NEUMANN Computer

Zahlensysteme: Oktal- und Hexadezimalsystem

Darstellung von Informationen

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Dualzahlen

Lösung 1. Übungsblatt

Digitaltechnik FHDW 1.Q 2007

Sucosoft S40 KOP/FBS KOP FBS

JMPCN Sprungbefehl nur ausführen, wenn VKE 0 ist. JMPC Sprungbefehl nur ausführen, wenn VKE 1 ist. JMP Ohne Bedingung zur Sprungmarke wechseln.

KLAUSUR DIGITALTECHNIK SS 00

Vorlesung Rechnerarchitektur. Einführung

Die Mikroprogrammebene eines Rechners

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Probeklausur: Programmierung WS04/05

Daten, Informationen, Kodierung. Binärkodierung

IT- Handbuch für Fachinformatiker, 7. Auflage: Text- Lösungen Sascha Kersken

Algorithmen & Programmierung. Zahlensysteme Bits und Bytes

L3. Datenmanipulation

Instruktionssatz-Architektur

Einführung in die Programmierung

Repräsentation von Daten: Binär-, Oktal- u. Hexadezimalcodierung von ganzen und rationalen Zahlen

Grundlagen der Informatik

Johann Wolfgang Goethe-Universität

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010

Zahlensysteme Seite -1- Zahlensysteme

Klausur Grundlagen der Informatik

Teil II. Schaltfunktionen

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754.

K L A U S U R D E C K B L A T T

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Einführung in die Systemprogrammierung

Einführung in die technische Informatik

Nachholklausur Informatik II

Shangrila. One Instruction Set Computer

Hochschule Darmstadt. IT-Sicherheit

Informatik I WS 07/08 Tutorium 24

Programmieren. Kapitel 3: Wie funktioniert ein moderner Computer? Wintersemester 2008/2009. Prof. Dr. Christian Werner

Prozesse und Scheduling

Grundlagen der Rechnerarchitektur. Einführung

2. Negative Dualzahlen darstellen

Lineare Gleichungssysteme

y x x y ( 2x 3y + z x + z

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Technische Führung. Bachelor. mer. meiner Note zusammen ... Diplom. gründlich. Sie lesbar! Wenn Sie. Viel Erfolg! max. Punktzahl.

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Eine Logikschaltung zur Addition zweier Zahlen

Grundlagen der Informatik

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 11/12

Assembler und Hochsprachen

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Übungen zu Informatik 1

Assembler-Programmierung

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 18

FH Jena Prüfungsaufgaben Prof. Giesecke FB ET/IT Binäre Rechenoperationen WS 09/10

Klausur Betriebssystemkonzepte sowie Architektur von Rechnersystemen und Betriebssystemkonzepte

1. Übung aus Digitaltechnik Aufgabe. Die folgende CMOS-Anordnung weist einen Fehler auf:

Transkript:

DEPARTMENT INFORMATIK Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Martensstraße 3, 91058 Erlangen 12.02.2014 Klausur 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 17 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 12.02.2014... (Unterschrift) Ich bin damit einverstanden, dass mein Prüfungsergebnis der Klausur unter Angabe der Matrikel-Nummer veröffentlicht wird. Erlangen, den 12.02.2014... (Unterschrift) Aufgabe 1 2 3 4 5 6 7 8 9 10 Summe max. Punktzahl 7 9 10 9 8 8 12 7 10 10 90 erreichte Punktzahl

Aufgabe 1: Zahlendarstellung (7 Punkte) Führen Sie die folgenden Additionen schriftlich im Binärsystem (5-bittige Binärzahlen in Zweierkomplement-Darstellung) durch und überprüfen Sie die Ergebnisse durch Umrechnung in Dezimalzahlen: 00001+10011 11000+01101 Stellen Sie die folgenden beiden Dualzahlen im Oktal- und Hexadezimalsystem dar: 111010 1011101

Aufgabe 2: Boolesche Algebra und Gatterlogik (9 Punkte) Minimieren Sie die folgende logische Schaltung hinsichtlich der Anzahl von Gattern durch Anwendung boolescher Algebra! Der Lösungsweg sollte erkennbar sein.

Aufgabe 3: Mikroprogrammierung (10 Punkte) Erläutern Sie kurz, welche Vorteile ein mikroprogrammiertes Leitwerk im Vergleich zu einem festverdrahteten Leitwerk hat! Welche Phasen des Befehlszyklus werden in einem mikroprogrammierten Leitwerk durch Mikrobefehle realisiert? Was versteht man unter Vertikaler Mikroprogrammierung?

Was versteht man unter Horizontaler Mikroprogrammierung? Welche Vor- und Nachteile haben diese Verfahren jeweils?

Aufgabe 4: Pipelining (9 Punkte) 1. Wie viele Stufen hat eine Pipeline, die für 10 Befehle einen Speedup von 5 erzielt? 2. Im Folgenden sehen Sie einen Assembler-Pseudocode: 1: label: 2: mul R3, R4, R1 \\R1=R3*R4 3: add R1, R3, R6 \\R6=R1+R3 4: jltz R6, label \\springe zu label, falls R6<0 5: print("ende") \\Bildschirmausgabe Wenn dieser Code in einer simplen 5-stufigen Pipeline (BH, DE, OP, BA, RS) ausgeführt wird, treten zwei Arten von Hazards auf. Nennen Sie diese beiden Arten und geben Sie an, wo es in dem Code genau zu Hazards kommt!

Aufgabe 5: Assembler-Programmierung (8 Punkte) Gegeben sei ein Prozessor mit 5 Registern t0,...,t4, sowie einem speziellen Register zero, welches immer den Wert 0 enthält. Geben Sie einen Assembler-Code an, welcher t0 (Betrag des Wertes in t0) in das Register t1 lädt! Folgende Assembler-Befehle stehen dabei zur Verfügung (ri,rj,rk seien beliebige Register und c eine Konstante): add ri rj rk setzt Register ri auf rj+rk. sub ri rj rk setzt Register ri auf rj-rk <label>: eine beliebige Zeichenkette, die eine Codezeile markiert zu der über einen Sprungbefehl gesprungen werden kann. bltz ri <label> Springt zu der Marke <label>, falls Inhalt von ri kleiner 0. beq ri c <label> Springt zu der Marke <label>, falls Inhalt von ri gleich der Konstanten c. jmp <label> Springt in jedem Fall zu <label>.

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: Caches2 (12 Punkte) Gegeben sei ein 64 KByte großer byteadressierer Hauptspeicher. Ferner seinen folgende drei Caches gegeben: Cache A: direkt abbildend, Cachelinegröße 4 Byte, Gesamtgröße 4 KByte Cache B: 2-fach assoziativ, Cachelinegröße 8 Byte, Gesamtgröße 32 KByte Cache C: 4-fach assoziativ, Cachelinegröße 32 Byte, Gesamtgröße 32 KByte Die Cachezeilen bei Cache A bzw. die Mengen bei Cache B und C seinen fortlaufend adressiert. Die Abbildung einer Zeile eines Hauptspeichers auf eine Cachezeile bzw. eine Cachemenge erfolge per Modulo-Operation. Geben Sie für jeden der drei Caches die Adresse der Cachezeile (Cache A) bzw. der Cachemenge (Cache B und C) an, auf die das Byte an der Hauptspeicheradresse 1001111101000111 abgebildet würde. Hinweis: die Anzahl der zu verwendenden Bits für die Cachezeilen-/Cachemengenadresse ergibt sich aus der verfügbaren Anzahl der Zeilen/Mengen im jeweiligen Cache.

Aufgabe 8: OpenMP (7 Punkte) 1. Im folgenden Programmabschnitt sollen mehrere Threads ein Array x beginnend ab Index offset wiederholt mit der Folge aller Thread-Ids füllen. Dabei wurden aber Klauseln für die Daten-Verwaltung vergessen. Welche Klauseln müssen bei der parallelen Region angegeben werden, damit alle Variablen korrekt (privat oder global) behandelt werden? int N=100; int offset = 10; int tid, num_threads; int x[n]; #pragma omp parallel { num_threads=omp_get_num_threads(); tid = omp_get_thread_num(); offset = tid+offset; for(int j=offset;j<n;j+=num_threads){ x[j] = tid; } }

2. Welcher Wert für die Variable sum wird am Ende des folgenden Programmabschnitts ausgegeben? int sum=0; int localsum=0; int x[10]; #pragma omp parallel firstprivate(localsum) shared(x,sum) { #pragma omp for for(int i=0;i<10;i++){ x[i]=i; } #pragma omp for for(int i=0;i<10;i++){ localsum=localsum+x[i]; } #pragma omp critical { sum=sum+localsum; } } printf("%d\n",sum);

Aufgabe 9: MESI (10 Punkte) In folgender Abbildung ist der Ablauf des MESI-Protokolls dargestellt: Ergänzen Sie entsprechend die Inhalte der Caches (auf der 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.

Aufgabe 10: Leistungsmaße (10 Punkte) Gegeben sei ein Programm, das sich wie folgt für p Prozessoren parallelisieren lässt: 4% können nur seriell ausgeführt werden 80% können nur von p/4 Prozessoren parallel ausgeführt werden Der Rest lässt sich perfekt auf p Prozessoren parallelisieren 1. Was ist der maximal mögliche Speed-Up mit 8 Prozessoren nach Amdahl? 2. Welche parallele Effizienz ergibt sich daraus? 3. Was ist die obere Grenze für den Speed-Up mit p Prozessoren? Eine parallelisierte Anwendung habe ein Laufzeit von 10 s mit 8 Prozessoren. Davon werden 2 s für den seriellen Anteil benötigt. Wie hoch ist der skalierte Speed-Up nach Gustafson-Barsis?

Zusätzlicher Platz

Zusätzlicher Platz