Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 18 Seiten. Überprüfen Sie die Vollständigkeit!

Ähnliche Dokumente
Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 24 Seiten. Überprüfen Sie die Vollständigkeit!

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10

Computational Engineering I

"Organisation und Technologie von Rechensystemen 4"

Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 18 Seiten. Überprüfen Sie die Vollständigkeit!

Computational Engineering I

Computational Engineering I

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 6 und Präsenzaufgaben Übung 7

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Assembler - Adressierungsarten

RO-Tutorien 15 und 16

, 2014W Übungsgruppen: Mo., Mi.,

1. räumliche Lokalität - Nach dem Zugriff auf eine bestimmte Adresse erfolgt in naher Zukunft ein erneuter Zugriff auf ein dazu benachbartes Datum.

Übung Praktische Informatik II

Technische Informatik 1 - HS 2017

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Wie groß ist die Page Table?

Virtueller Speicher und Memory Management

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Übung Praktische Informatik II

Cache Blöcke und Offsets

Lösungsvorschlag zur 5. Übung

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Hinweise C-Programmierung

, 2015W Übungsgruppen: Mo., Mi.,

Just-In-Time-Compiler (2)

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Übung 1 - Betriebssysteme I

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

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

RO-Tutorien 17 und 18

Assembler - Einleitung

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Aufgabe 4 : Virtueller Speicher

Grundlagen der Rechnerarchitektur

Just-In-Time-Compiler (2)

Tutorium Rechnerorganisation

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

Schriftliche Prüfung. Aufgaben OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK. Technische Informatik II. am:

RO-Tutorien 15 und 16

Teil 2: Speicherstrukturen

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

, 2015W Übungsgruppen: Mo., Mi.,

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur

Das Prinzip an einem alltäglichen Beispiel

Speicherverwaltung. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

1. Von-Neumann-Architektur (7/66 Punkte)

Zwei Möglichkeiten die TLB zu aktualisieren

Lösungsvorschlag zur 6. Übung

Datenpfad einer einfachen MIPS CPU

Klausur Betriebssysteme

Rechnergrundlagen SS Vorlesung

Grundlagen der Informatik III Wintersemester 2010/2011

Speicherverwaltung (Swapping und Paging)

Leichtgewichtsprozesse

Leichtgewichtsprozesse

Der von Neumann Computer

Schriftliche Prüfung

Grundlagen der Rechnerarchitektur. Speicher

Datenpfad einer einfachen MIPS CPU

ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen

Grundlagen der Rechnerarchitektur. Speicher

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Datenpfad einer einfachen MIPS CPU

5. Aufgabenblatt Speicherverwaltung

Schriftliche Prüfung

Paging. Einfaches Paging. Paging mit virtuellem Speicher

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

Überschrift. Speicherverwaltung. Prof. Dr. Margarita Esponda Freie Universität Berlin 2011/2012

Rechnernetze und Organisation

Rechnerarchitektur (RA)

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Vorlesung Rechnerarchitektur. Einführung

Rechnerarchitektur (RA)

Technische Realisierung (1)

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I

Übung zu Einführung in die Informatik # 10

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

Teil 1: Prozessorstrukturen

Grob-Struktur des Prozessor-Speichersystems

Transkript:

Department Informatik Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Martensstraße 3, 9158 Erlangen 2.2.215 Klausur zu Grundlagen der Rechnerarchitektur und -organisation........................................................................................... Matrikelnummer Geburtsdatum Vorname Name Es sind keine Hilfsmittel erlaubt! Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 18 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! Begründen Sie Ihre Antworten! Durch meine Unterschrift bestätige ich den Empfang der vollständigen Klausurunterlagen die Kenntnisnahme der obigen Informationen. Erlangen, den 2.2.215............................. (Unterschrift) Aufgabe 1 2 3 4 5 6 7 max. Punktzahl 1 12 13 17 14 11 13 erreichte Punktzahl Summe /9 Bonus /15 Gesamt Note

2

Aufgabe 1: Allgemein 1 Punkte Welche der folgenden Aussagen sind wahr, welche falsch? Kreuzen Sie an! Punktabzug bei falschen Antworten! 1. Assemblerprogrammierung 4 Punkte wahr falsch < > < > Ein unmittelbar adressierter Operand wird normalerweise während der Befehlsholphase aus dem Arbeitsspeicher geladen. < > < > Der Framepointer beschleunigt den Zugriff auf den Arbeitsspeicher. < > < > CPU-Register können über Arbeitsspeicheradressen angesprochen werden. < > < > Eine stackbasierte Architektur besitzt mehrere Register. < > < > Zur Verwendung eines Stacks sind zwingend spezielle CPU-Instruktionen erforderlich. < > < > Auf Register-Register-Architekturen können sich Operanden für arithmetische Instruktionen im Speicher befinden. < > < > Eine akkumulatorbasierte Architektur besitzt mehrere Rechenregister. < > < > Ein Befehl mit Register-Direkt adressiertem Operanden wird schneller ausgeführt als mit Register-Indirektem. 2. Arbeitsspeicher 3 Punkte wahr falsch < > < > Der Effektivtakt bei DDR-SDRAM ist doppelt so hoch wie bei normalem SDRAM. < > < > Interleaving erhöht den Speichertakt. < > < > Speicherzellen sind bei DDR3-SDRAM immer höher getaktet als bei DDR2. < > < > Burst-Transfers sind nötig, um den Prefetch von DDRx-SDRAM ausnutzen zu können. < > < > Benachbarte Daten sollten sich bei Interleaving möglichst auf gleichen Speicherbänken befinden, sofern sie nicht ohnehin gemeinsam geladen werden können. < > < > Die Blockgröße des Caches beeinflusst die Häufigkeit von Burst-Transfers zwischen CPU und RAM. 3. Speicherschutz 3 Punkte wahr falsch < > < > Segmentierung erlaubt es, Speicher von Prozessen vor ungewolltem Zugriff zu schützen. < > < > Speicherschutz kann alleine durch das Betriebssystem realisiert werden. < > < > Wenn Paging verwendet wird, sind ggf. mehrere Speicherzugriffe nötig, um ein Datum aus dem Speicher zu laden. < > < > Paging erlaubt das Auslagern von Arbeitsspeicherinhalt auf der Festplatte. < > < > Segmentierung erlaubt das Auslagern von Arbeitsspeicherinhalt auf der Festplatte. < > < > Bei Verwendung von Segmentierung entscheidet das Betriebssystem bei jedem Speicherzugriff, ob der Zugriff gewährt wird oder nicht. 3

Aufgabe 2: Mikroprogrammierung 12 Punkte Gegeben sei der folgende Teil einer CPU: Lade A Lade B A+B A-B B-1 B Lade C Wähle ALU Wähle Eingabe Wähle vom Speicher Lade D Lade E Wähle C Wähle D Wähle zum Speicher Wähle Ausgabe Springe, falls C>= Springe Adresse Adresse des nächsten Mikrobefehls 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18...21 A Vorzeichenbit & 1 ALU C B if (Sel==) then Out=In else Out=In1 D E + In Sel Out In1 Mikrobefehlszähler Eingabe vom Speicher zum Speicher Ausgabe 1. Erklären Sie konkret anhand der obigen Darstellung, welche Arten von Sprüngen unterstützt werden und wie sie realisiert werden. 4 Punkte 4

2. Schreiben Sie ein Mikroprogramm für obige CPU, das eine natürliche Zahl n > von der Eingabe liest, schrittweise dekrementiert und jeweils genau einmal ausgibt, einschließlich der. In der Ausgabe soll also n, n 1, n 2,..., erscheinen. Vermeiden Sie unnötige Befehle! Eine Fehlerbehandlung ist nicht nötig. Verwenden Sie die folgende Tabelle und tragen Sie jeweils auch die Bedeutung (z.b. D E) in die Spalte Erklärung ein. Leer gelassene Steuerleitungen entsprechen dem Wert, bei Sprüngen muss die Zieladresse explizit angegeben werden! Das niederwertigste Bit des Sprungziels entspricht Steuerleitung 21. Hinweis: Überlegen Sie sich zunächst den Ablauf in Pseudocode (wird nicht bewertet)! 8 Punkte (Die Tabellenlänge entspricht nicht der erwarteten Mikroprogrammlänge!) Adr. 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 Erklärung 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 5

Aufgabe 3: Parallelverarbeitung 13 Punkte Gegeben sei eine Architektur mit einer fünfstufigen Pipeline, bestehend aus Befehl holen und dekodieren (BH-BD), Operanden holen (OH), Befehl ausführen Teil 1 (BA1) und Teil 2 (BA2) und Ergebnis sichern (ES). 1. Wie hoch ist der theoretisch maximale Speedup dieser Pipeline? (Keine Berechnung/Begründung nötig.) 1 Punkt 2. Führen Sie das folgende Programm auf obiger CPU aus: 1 L s t a r t : 2 movl $2, %eax % Reg [ eax ]=2 3 movl $1, %ecx 4 Lcond : 5 cmpl %eax, %ecx % Flags ( Reg [ ecx ] Reg [ eax ] ) 6 je Lend 7 jg Lgreater 8 L l e s s : 9 subl %ecx, %eax % Reg [ eax ] = Reg [ eax ] Reg [ ecx ] 1 jmp Lcond 11 Lgreater : 12 subl %eax, %ecx 13 jmp Lcond 14 Lend : Die Pipeline verfüge über keine erweiterten Mechanismen wie Sprungvorhersage, spekulative Ausführung, Forwarding, etc. Um dennoch ein korrektes Ergebnis zu garantieren, soll statt dessen die Ausführung weiterer Instruktionen so lange verzögert werden, bis kein Konflikt mehr vorliegt, bzw. das Sprungziel definitiv bekannt ist, allerdings auch nicht länger. Tragen Sie in der Tabelle auf der nächsten Seite in jeder Stufe die Instruktion und die Zeile des dort gerade ausgeführten Befehls ein (z.b. subl12). Geben Sie außerdem den aktuellen Registerinhalt von eax und ecx an, soweit bekannt. Felder mit nop können leer gelassen werden. Bei Sprungbefehlen soll der Befehlszähler so früh wie möglich aktualisiert werden. Unbedingte Spünge werden bereits in BH-BD ausgewertet. Der Befehl cmpl aktualisiert das Statusregister zur Sprungauswertung erst in der Phase ES, bedingte Sprünge werten es in der OH -Phase aus. Jeder Befehl muss die gesamte Pipeline durchlaufen. Lassen Sie am Ende die Pipeline leer laufen. Die Tabellenlänge entspricht nicht der erwarteten Ausführungszeit! 8 Punkte 6

Takt BH-BD OH BA1 BA2 ES eax ecx movl2?? 1 movl3 movl2?? 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 2 21 22 23 24 25 26 27 28 29 3 31 32 33 34 7

3. Unterscheiden sich Hochsprachenprogramme für VLIW-basierte und superskalare Architekturen? Von wem wird jeweils die Parallelisierung umgesetzt? 2 Punkte 4. Erklären Sie das Prinzip von Simultanem Multithreading und welchen Vorteil es gegenüber Zeitscheiben-, bzw. Ereignisgesteuertem Multithreading besitzt. 2 Punkte 8

Aufgabe 4: Speicherschutz 17 Punkte 1. Auf einem 64-Bit System soll der Arbeitsspeicher durch mehrstufiges Paging verwaltet werden. Virtuelle und physikalische Adressen seien 48 Bit breit. Die Einträge in den Tabellen umfassen jeweils 8 Byte. Eine Seite sei 4 KiB groß, ebenso die einzelnen Verwaltungstabellen. Bestimmen Sie die Tiefe der Tabellenhierarchie rechnerisch! 4 Punkte 2. Wie könnten auf einem System mit 4 KiB großen Pages und zweistufiger Seitenverwaltung (z.b. Intel x86, siehe unten) sog. Huge-Pages realisiert werden, also Seiten, die einen langen zusammenhängenden (virtuellen/physikalischen) Adressbereich von 4 MiB verwalten? Wie könnte hierbei die virtuelle Adresse in Seitenindex und Offset im Vergleich zur normalen Seitengröße von 4 KiB aufgeteilt werden? 4 Punkte 9

Eine CPU biete eine Memory-Management-Unit mit folgenden Eigenschaften: zweistufige Adresstabellen je 124 Einträge zu je 4 Byte in den Tabellen Bit 31-12: höherwertige Bits der physikalischen Adresse Bit 11-3: unbenutzt Bit 2: Execute-Enable-Bit (EE) Bit 1: Write-Enable-Bit (WE) Bit : Present-Bit (P) Pages zu je 4 KiB Größe Der virtuelle Adressraum ist wie folgt aufgebaut. Gültige Einträge sind grau hinterlegt. Bei Bereichen ist jeweils der erste und letzte Eintrag gegeben, dazwischenliegende Einträge haben die gleichen Flags und liegen sequentiell im Speicher. x 2 Page-Directory- Basis-Register 7 x 3 5 x 1 x 4 x B 8 1 x3ff... 1 8 Seiten... x 1 7 x B F 1 x 2 1 x3ff 1 x 4 1 2 x 5 1... Page Directory x 5......... x2c x 6 3 3 x2cf x 1 5 3 x3ff x3ff 16 Seiten...... Page Tables Pages 1

3. Überlegen Sie sich für die folgenden Codeabschnitte, ob bei bzw. im Anschluß an ihre Ausführung Exceptions auftreten. Geben Sie ggf. Art und Ursache an. 4 Punkte a) call x AC 2C 1C b) movl $x 4 2 F, %eax movl $5, (%eax) c) movl $x 4 2 F, %eax movl (%eax), %ecx d) incl x AD 4. Warum wird das Present-Bit nicht im TLB gespeichert? 1 Punkt 5. Erklären Sie das grundlegende Prinzip von Segmentierung! 4 Punkte 11

Aufgabe 5: Cache 14 Punkte 1. Was versteht man unter räumlicher und zeitlicher Lokalität typischer Programme? 2 Punkte 2. Eine CPU besitze einen 64 KiB großen 4-fach Assoziativcache mit einer Blockgröße von 64 Byte. Beim wievielten Speicherzugriff findet frühestens eine Verdrängung aus dem Cache statt, wenn durch die Ersetzungsstrategie das am längsten nicht verwendete Datum einer Menge verdrängt wird (LRU) und der Cache zu Beginn leer ist? Wie nennt sich die Art des Cache Misses, die dabei auftritt? 2 Punkte 3. Gegeben sei folgende Adressaufteilung: 31... 2 19... 4 3... Tag Index Byteadr Welche Organisationsform liegt bei den folgenden Cachegrößen (nur Cacheblöcke, keine Verwaltungsinformationen) vor? Begründen Sie Ihre Antwort rechnerisch! 4 Punkte a) 2 2 Byte b) 4 MiB 12

4. Eine 32-Bit CPU verwende einen 4-fach assoziativen Cache mit insgesamt 8 Blöcken. Jeder Block umfasse 8 Byte. Der Cache sei zu Beginn leer. Es wird jeweils der Eintrag verdrängt, der am längsten nicht verwendet wurde (LRU). Ein Programm liest nacheinander jeweils 4 Byte von den folgenden Adressen: x cd 1 5 x cd 1 58 x cd 1 6 x1 x cd 1 54 x1 1 x cd 1 78 x cd 1 74 Der relevante Speicherbereich hat folgenden Inhalt: x cd 1 5: ca 1 6b 7f ff 1 bc bf 41 45 e8 a7 56 x cd 1 6: e8 a4 22 ff ff 5 bf 4 b c7 a3 5 21 21 x cd 1 7: 57 41 56 42 55 43 54 41 89 55 53 fd 89 48 48 f3... x1 : a8 64 ff ff 89 48 e8 df a9 1c ff ff 8b 48 ed 3d x1 1: 32 4b e1 75 fb c1 11 9 7b 8 2e 1 94 f ff 1... Welchen Inhalt hat der Cache nach Ausführung des Programms? Es genügt, jeweils das erste und letzte Byte der Daten im Cache-Block einzutragen. 6 Punkte Menge Valid Tag Daten 1 13

Aufgabe 6: Speicherverwaltung 11 Punkte 1. Nennen Sie einen Vorteil und einen Nachteil von Alignment! 2 Punkte 2. Wie viel Platz braucht folgende Datenstruktur auf einer 32-Bit-Architektur, wenn korrektes Alignment verwendet wird? Arrays werden nur gemäß ihres Typs ausgerichtet. Ändern Sie dabei nicht die Reihenfolge der Variablen! Verwenden Sie die folgende Tabelle. Tragen Sie auch die Füllbytes explizit ein. 4 Punkte 1 struct student { 2 char [ 1 1 ] name ; // char : 1 Byte 3 char [ 1 2 ] vorname ; 4 short versuch ; // s h o r t : 2 Byte 5 char g e s c h l e c h t ; 6 int matnr ; // i n t : 4 Byte 7 char bestanden ; 8 float note ; // f l o a t : 4 Byte 9 } ; Variable erstes Byte letztes Byte name 1 vorname 11 14

3. Wie viele obiger Studenten lassen sich in 8 KiB abspeichern? 1 Punkt 4. Was versteht man unter Little-Endian (LE) und Big-Endian (BE)? 2 Punkte 5. Ab der Adresse x12 stehen folgende Bytes sequentiell im Speicher: xfc, x13, xcb, x1. Welchem hexadezimalen 4-Byte Integer-Wert entspricht dies jeweils in LE- und BE-Darstellung? 2 Punkte 15

Aufgabe 7: Assembler 13 Punkte Gegeben sei der folgende Linux-x86-ABI konforme AT&T-Assemblercode. 1.data 2 LEN: 3.long 12 4 i : 5.long 6.text 7 Lcond : 8 movl i, %eax 9 cmpl LEN, %eax 1 j l Lbody 11 jmp Lend 12 Lbody : 13 c a l l func1 14 incl i 15 jmp Lcond 16 Lend : 17... 1. Um welche Befehlssatzarchitektur-Klasse handelt es sich und woran ist dies erkennbar? 2 Punkte 2. Konvertieren Sie den gegebenen Assemblercode für eine Register-Register-Architektur. Verwenden Sie das folgende Befehlsformat: Opcode Operand 1 Operand 2 Operand 3 Erklärung add,sub Rd Rs Rt/C Rd = Rs + Rt/C loadr Rt Rs Rt = Memory[Rs] storer Rt Rs Memory[Rs] = Rt loadm Rt MemAddr Rt = Memory[MemAddr] storem Rt MemAddr Memory[MemAddr] = Rt loadi Rd C Rd = C blt Rs Rt Label if (Rs<Rt) Befehlszähler=Label b Label Befehlszähler=Label call Label Label() Rd, Rs, Rt entsprechen den (Caller-Save) Registern R, R1,... C ist eine unmittelbar adressierte Konstante (Immediate Operand) MemAddr ist eine ausreichend breite Speicheradresse, bzw. Variablenname 6 Punkte 16

Fortsetzung von Aufgabe 2. 3. Wie viele Sprünge müssen beim gegebenen Programm pro Schleifeniteration, abgesehen vom call, ausgeführt werden? 1 Punkt 4. Beschreiben Sie, wie die Reihenfolge der Instruktionen geändert werden müsste, um die Anzahl zu reduzieren! (Es ist nicht nötig, das geänderte Programm anzugeben.) 2 Punkte 5. Warum muss i immer wieder ins Register eax geladen werden? Wodurch könnte das vermieden werden? (Keine nebenläufigen Prozesse.) 2 Punkte 17

18 Zusätzlicher Platz