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

Ähnliche Dokumente
, WS2012 Übungsgruppen: Mo., Do.,

, SS2012 Übungsgruppen: Do., Mi.,

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

Einführung in die technische Informatik

Tutorium Rechnerorganisation

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

Übung zu Einführung in die Informatik # 10

Speicherverwaltung (Swapping und Paging)

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

Lösungsvorschlag zur 5. Übung

Grundlagen der Rechnerarchitektur

Wie groß ist die Page Table?

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Linux Paging, Caching und Swapping

Grundlagen der Informatik III Wintersemester 2010/2011

Technische Informatik 2 Speichersysteme, Teil 3

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

Memory Management. Peter Puschner Institut für Technische Informatik

Betriebssysteme (BTS)

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

CA Übung Christian kann heute nicht kommen => ich bin heute da, Christian das nächste Mal wieder

Grundlagen der Informatik III Wintersemester 2010/2011

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Tutorium Rechnerorganisation

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Vorlesung Rechnerarchitektur. Speicher V 1.2

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

Digital Design Entwicklung der DRAMs. Richard Roth / FB Informatik und Mathematik Speicher 1

Speicherhierarchie. [Technische Informatik Eine Einführung] Univ.-Prof. Dr. Paul Molitor

Datenpfad einer einfachen MIPS CPU

a) Wie viele ROM-Bausteine benötigen Sie für den Aufbau des 64x16 ROMs? c) Wie viele Bytes Daten können im 64x16 ROM insgesamt gespeichert werden?

Technische Informatik 2 Speichersysteme, Teil 2

Informatik I WS 07/08 Tutorium 24

4.3 Hintergrundspeicher

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

8. Swapping und Virtueller Speicher

Definitionen zum Verschnitt

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

(Prüfungs-)Aufgaben zum Thema Speicherverwaltung

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

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

Übungen zur Vorlesung Betriebssysteme, Rechnernetze und verteilte Systeme I Sommersemester Projekt 2

Klausur zur Vorlesung Grundlagen der Betriebssysteme WS 2012/2013

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

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Betriebssysteme und Systemsoftware

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

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Grundbegriffe der Informatik

Übung zu Grundlagen der Betriebssysteme. 13. Übung

Kompetitive Analysen von Online-Algorithmen

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

Rechnerarchitektur. Vorlesungsbegleitende Unterlagen. WS 2003/2004 Klaus Waldschmidt

Speicher Typen. TI-Übung 5. Speicher SRAM. Speicher DRAM. SRAM vs. DRAM (EEP)ROM, NV-RAM, Flash,... Speicher, Caches

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3

, 2015S Übungstermin: Mi.,

8.1. Klassifikation von Speichern

Prozesse und Scheduling

4.2 Verbesserung der Leistungsfähigkeit von Caches

Technische Informatik 1

Zugriff auf die Modul-EEPROMs

Numerisches Programmieren, Übungen

Main Memory. Hauptspeicher. Memories. Speichermodule. SIMM: single inline memory module 72 Pins. DIMM: dual inline memory module 168 Pins

Nachholklausur Informatik II

, SS2012 Übungsgruppen: Do., Mi.,

Anbindung zum Betriebssystem (BS)

Grundlagen der Rechnerarchitektur

9 Speicherorganisation

Zahlen- und Buchstabencodierung. Zahlendarstellung

Intel x86 Bootstrapping

Betriebssysteme 1. Thomas Kolarz. Folie 1

8 Cache. 8.1 Motivation. 8.1 Motivation 335

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.

Analyse verschiedener HLS-Systeme in Hinblick auf ihren Umgang mit der Hochsprachenabstraktion Speicher. Sascha Kath

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Aufgabe 1 Entwicklung einer Virtuellen Maschine

= 7 (In Binärdarstellung: = 0111; Unterlauf) = -8 (In Binärdarstellung: = 1000; Überlauf)

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

Aufbau und Funktionsweise eines Computers

Technische Informa/k II

Kapitel 2. Zahlensysteme, Darstellung von Informationen

Echtzeit-Multitasking

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

2.1 Adressierung im Internet

Speicherorganisation

Klausur zur Mikroprozessortechnik

Rechner Architektur. Martin Gülck

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

1. Speicher. Typische Nutzung eines Adreßraums. Systemsoftware. Textbereich relativ klein. Sehr großer Abstand zwischen Heap und Stack

B1 Stapelspeicher (stack)

Rechnergrundlagen SS Vorlesung

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Einführung in die Systemprogrammierung

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

Transkript:

VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2014W Übungsgruppen: Mo., 12.01. Mi., 14.01.2015 Aufgabe 1: Cache-Adressierung Ein Prozessor mit einer Adresslänge von 20 Bit besitzt einen 16 KiB großen Cache für Nutzdaten, der in 128 Byte große Blöcke gegliedert ist. Die Datenwortlänge beträgt 4 Byte, die Adressierung erfolgt auf Datenwort-Ebene. a) Betrachten Sie für den Cache die Varianten Direct Mapped Cache, 8-Way Set Associative Cache und Fully Associative Cache. Berechnen Sie für jede dieser Varianten die Längen von Tag, Index und Offset! b) Berechnen Sie zu den Adressen (ADEBC) 16 und (32145) 16 die Werte für Tag, Index und Offset zu jedem der drei Caches aus Teilaufgabe a)! Geben Sie die Werte jeweils binär und hexadezimal an, wobei führende Nullen weggelassen werden können. c) Angenommen, zur Realisierung der Ersetzungsstrategie (z.b. LRU, LFU, etc.) werden beim 8-Way Associative Cache 3 Bit pro Block und beim Fully Associative Cache 7 Bit pro Block benötigt. Bei schreibendem Zugriff soll darüber hinaus bei einem Hit das Verfahren Copy-Back angewendet werden, anderenfalls Fetch-on-Write. Wie viel zusätzlicher Speicher muss für die Verwaltung der drei Caches jeweils berücksichtigt werden?

Aufgabe 2: Fully Associative Cache Auf einem Prozessor mit einer Adresslänge von 16 Bit wird folgende Befehlssequenz ausgeführt (alle Konstanten sind im Hexadezimalsystem angegeben): 1: R1 0x2F 2: R2 0xC4E 3: R3 memory[(r2)+] 4: R4 memory[(r2)+] 5: R0 memory[0x0] 6: R3 memory[r2] 7: memory[0xd5e] 0xA00 8: R4 memory[r1] 9: memory[r1+0x2f] R4 10: R4 memory[r2+0x10e] 11: R1 memory[(r4) ] 12: memory[ (R4)] R3 a) Bestimmen Sie bei Speicherzugriffen die Adressen, die sich aus dem Ablauf der Befehlssequenz ergeben. Tragen Sie diese in untenstehender Tabelle in der Spalte Adresse ein und geben Sie in der Spalte r/w an, ob es sich dabei um eine lesenden (r) oder schreibenden (w) Zugriff handelt. Hinweis: Bei den Instruktionen 1 und 2 finden keine Speicherzugriffe statt, weshalb diese nicht in der Tabelle enthalten sind. Die erste Zeile zeigt Ihnen den Initialzustand des Caches. b) Der Prozessor besitzt einen Fully Associative Cache mit 4 Blöcken, ein Block enthält 16 Datenwörter. Die Adressierung erfolgt auf Datenwort-Ebene, die Datenwortlänge beträgt 64 Bit. Die zu verwendende Ersetzungsstrategie ist First In First Out (FIFO). Initial ist der Cache leer, die Blöcke werden in aufsteigender Reihenfolge beschrieben. Für Schreibzugriffe gilt: Bei einem Hit wird Write-Through verwendet, bei einem Miss wird Write-Around verwendet. Bestimmen Sie für jede Adresse Tag und Offset (führende Nullen müssen nicht dargestellt werden). Tragen Sie diese in die Tabelle ein und geben Sie an, ob der jeweilige Speicherzugriff ein Hit oder ein Miss ist. Geben Sie nach dem jeweiligen Speicherzugriff die Werte für Tag und Valid-Bit (V) aller vier Blöcke an! Block 0 Block 1 Block 2 Block 3 Adresse r/w Tag Offset Hit/Miss Tag V Tag V Tag V Tag V 0 0x0 0 0x0 0 0x0 0 0x0 0 3 r 4 r 5 r 6 r 7 w 8 r 9 w 10 r 11 r 12 w c) Wie viele Bytes Nutzdaten können in diesem Cache gespeichert werden?

Aufgabe 3: Set Associative Cache Für einen anfangs leeren Cache ist eine Sequenz von Adresszugriffen gegeben. Bei dem Cache handelt es sich um einen 2-Way Set Associative Cache mit 4 Sets. Pro Block können 8 Datenwörter gespeichert werden. Datenwort- und Adresslänge betragen 1 Byte, die Adressierung erfolgt auf Datenwortebene. Als Ersetzungsstrategie gilt Least Frequently Used (LFU). Falls unter den Ersetzungskandidaten mehrere Blöcke innerhalb eines Sets in Frage kommen, wird der Block mit der niedrigeren Blocknummer ausgewählt. Nach dem Ersetzen eines Blocks startet die zugehörige Anzahl der Zugriffe wieder bei 1. a) Wie viele Bytes Nutzdaten können in diesem Cache maximal gespeichert werden? b) Tragen Sie in der nachfolgenden Tabelle ein, welches Cache-Set die jeweils angegebene Adresse anspricht und ob es sich bei dem Zugriff um einen Hit oder einen Miss handelt. Geben Sie bei einem Hit an, in welchem Block des Sets die zugehörigen Daten gespeichert sind. Geben Sie bei einem Miss an, welcher Block des Sets überschrieben wird und von welchen Adressen Daten in diesen Block geladen werden. Verwenden Sie für diesen Zugriff auf den Hauptspeicher die Notation mem[x-y], wobei x die erste und y die letzte Adresse des Adressbereichs angibt, von dem die Daten in den Cache geladen werden. Die Adressen sind in dezimaler Form gegeben und sollen zunächst in Binärdarstellung umgewandelt werden. Die erste Zeile ist bereits vorausgefüllt. Adresse Adresse Anzahl (dezimal) (binär) Hit/Miss Set Block Inhalt Zugriffe 23 0 0 0 1 0 1 1 1 Miss 2 0 mem[16-23] 1 24 25 7 101 121 70 58 113 112 87 138 64 2 18 c) Wie hoch ist die Hit-Rate der oben angeführten Speicherzugriffssequenz? d) Wie viel Prozent des Caches blieben unbenutzt, wurden also nicht beschrieben?

Aufgabe 4: Direct Mapped Cache Gegeben ist ein Prozessor mit einer Adresslänge von 12 Bit und einer Datenwortlänge von 1 Byte. Der integrierte Direct Mapped Cache besitzt 4 Blöcke und speichert 8 Byte pro Block. Für Schreibzugriffe gilt: Bei einem Hit wird Copy-Back verwendet, bei einem Miss wird Fetch-on-Write verwendet. a) Skizzieren Sie die Struktur des Caches. Berücksichtigen Sie in Ihrer Skizze außerdem, welche Informationen zusätzlich zu den Nutzdaten für die Verwaltung des Caches gespeichert werden müssen. Geben Sie für die Verwaltungsinformationen die genaue Länge in Bit an! b) Zeigen Sie, wie sich die Verwaltungsdaten des anfangs leeren Caches verändern, wenn der Prozessor in der gegebenen Reihenfolge die folgenden lesenden (rd) oder schreibenden (wr) Speicherzugriffe ausführt: rd(0xaeb) rd(0xae1) wr(0xae8) rd(0x3a7) rd(0x18) wr(0x3a0) rd(0xf80) wr(0x3a6) Geben Sie nach jedem Speicherzugriff die aktuell gespeicherten Werte der Verwaltungsdaten im gesamten Cache an. Geben Sie außerdem zu jedem Speicherzugriff an, ob er ein Hit oder Miss ist.

Aufgabe 5: Multilevel Caching Gehen Sie von einem Prozessor mit folgenden Eckdaten aus: Prozessortakt: 4 GHz Zugriffsdauer auf L1-Cache: 2 Taktzyklen Zugriffsdauer auf L2-Cache: 20 Taktzyklen Zugriffsdauer auf Hauptspeicher: 100 Taktzyklen a) Angenommen, die CPU führt 10.000 Adressanfragen aus. Die Hit-Rate (h) für den L1-Cache betrage 90% und für den L2-Cache 80%. Wie viele Misses treten beim L1-Cache bzw. beim L2-Cache auf? b) Geben Sie die Zugriffsdauer auf den L1-Cache (t L1 ), auf den L2-Cache (t L2 ) und auf den Hauptspeicher (t main ) in Nanosekunden an! c) Um welchen Faktor verbessert sich die effektive Speicherzugriffszeit durch Verwendung des L2-Caches? Berechnen Sie dazu t eff L1 für das Szenario ohne L2-Cache und t eff L2 für das Szenario mit L2-Cache. Der Beschleunigungsfaktor ergibt sich dann als Quotient t eff L1 /t eff L2. Hinweis: Die effektive Speicherzugriffszeit wird bei Verwendung eines Caches grundsätzlich nach folgender Formel berechnet (vgl. Foliensatz 13 Speichermanagement / 1, Folie 39): t eff = h t cache + (1 h) t main

Aufgabe 6: Paging / System-Analyse Ein System arbeitet mit 8 KiB großen Pages und Frames, die kleinste adressierbare Einheit ist 1 Byte. Zu Beginn werden die folgenden (virtuellen) Adresszugriffe von links nach rechts abgearbeitet, wobei Frames in aufsteigender Reihenfolge (bei 0 beginnend) beschrieben werden und als Ersetzungsstrategie First In First Out (FIFO) verwendet wird: (1DEA) 16 (BEEF ) 16 (1234) 16 (CAF E) 16 (B678) 16 Die resultierende Page-Table lautet: Page-Nr Frame-Nr Present-Bit 000 0 0 001 0 0 010 0 0 011 0 0 100 0 0 101 1 1 110 0 1 111 0 0 a) Wie lang sind in diesem System virtuelle Adressen, wie lang physische Adressen? b) Wie viel Byte physischer Speicher sind im System vorhanden? c) Wie lautet die entsprechende physische Adresse zur (virtuellen) Adresse (C0DE) 16? d) Wie verändert sich die Page-Table durch die nachfolgenden beiden Adresszugriffe? (A123) 16 (E123) 16 Hinweis: Sie brauchen nur jene Zeilen eintragen, die sich gegenüber der obigen Darstellung der Page- Table verändern. Page-Nr Frame-Nr Present-Bit 000 001 010 011 100 101 110 111

Aufgabe 7: Paging / System-Entwurf Entwerfen Sie ein System, das mit 16 Bit langen virtuellen Adressen arbeitet. Die Adressierung soll auf Datenwortebene erfolgen, wobei ein Datenwort 1 Byte lang ist. Im System sollen 32KiB Speicher physikalisch verbaut sein und die virtuelle Speicherverwaltung soll mit 8192 Byte großen Page-Frames arbeiten. Der physikalische Speicherbereich von Frame 0 beginnend bei Adresse 00...0 soll dauerhaft für das Betriebssystem reserviert werden, die weiteren Frames werden initial nach aufsteigender Frame-Nummer vergeben. Als Ersetzungsstrategie soll Least Frequently Used verwendet werden, wobei 3 Bit für die Darstellung der bisherigen Anzahl an Zugriffen verwendet werden. a) Geben Sie den Aufbau der virtuellen und physischen Adressen an und skizzieren Sie die Page-Table! b) Geben Sie die Zuordnung des physischen Adressbereichs zu den einzelnen Frames an! c) Sie starten auf dem System einen Prozess P, der wie folgt auf den (virtuellen) Speicher zugreift: 0x1234 0x8192 0x0101 0xB0B1 0x9100 0xC960 0x8000 0xFA14 Zeigen Sie, wie der Prozess P den Speicher nutzt, wenn diese Speicherzugriffssequenz ausgeführt wird! Nehmen Sie an, dass die Page-Table zu Beginn leer ist. Geben Sie bei jedem Speicherzugriff an, ob es sich um einen Page-Fault handelt oder nicht.

Aufgabe 8: Paging / Parallelität Sie arbeiten mit einem Betriebssystem, das 7 Bit virtuelle Adressen verwendet. 4 Bit davon gehören zum Offset. Die physikalischen Adressen sind 6 Bit lang. Ersetzungsstrategie ist Least Recently Used (LRU). Die Programme P1 und P2 laufen parallel zueinander, wobei jedes Programm eine eigene Page-Table besitzt. Die Programme werden wie folgt ausgeführt (acht Takte): P1 P1 P2 P1 P2 P2 P1 P2 Die Programme greifen pro Abarbeitungsschritt (= 1 Takt) auf folgende virtuelle Adressen zu: Schritt P1 P2 1 0x3D 0x42 2 0x05 0x73 3 0x35 0x0F 4 0x68 0x35 a) Tragen Sie in nachfolgender Tabelle ein, welche Page in welchem Frame liegt und zu welchem Programm sie gehört. Tritt ein Page-Fault auf, aktualisieren Sie den Inhalt des entsprechenden Frames. Liegt die Page bereits im physischen Speicher, tragen Sie beim entsprechenden Frame H ein. Die ersten beiden Zeilen sind bereits vorausgefüllt. Schritt Frame-Nummer Takt P1 P2 00 01 10 11 1 1 P1: 0x3 2 2 P1: 0x0 3 4 5 6 7 8 b) Geben Sie die Page-Tables von P1 und P2 nach Abarbeitung aller Schritte an. Befüllen Sie dabei nur jene Zeilen, die während des Programmablaufs modifiziert wurden! Page-Table von Programm P1: PageNr Frame Present-Bit 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 Page-Table von Programm P2: PageNr Frame Present-Bit 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7