Vorlesung Echtzeitsysteme II

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Echtzeitsysteme II"

Transkript

1 1 / 51 Vorlesung Echtzeitsysteme II Thema 6: Worst-Case Execution Timing (WCET) Robert Baumgartl 24. November 2015

2 2 / 51 Literatur keine dedizierten Lehrbücher, da junges Gebiet Überblick über Forschungsstand: Reinhard Wilhelm et al. The Worst-Case Execution Time Problem Overview of Methods and Survey of Tools. In: ACM Transactions on Embedded Computing Systems 7.3 (Mai 2007), S Andreas Ermedahl. A Modular Tool Architecture for Worst-Case Execution Time Analysis. Diss. Uppsala Universitet, Juni 2003, Kapitel 2-4

3 Motivation 3 / 51 Problemstellung: Zur Festlegung einer Deadline muß die Abarbeitungszeit des zugehörigen Programmes bekannt sein. Wie kann man diese ermitteln? Im Zusammenhang mit Deadlines interessiert im wesentlichen die maximale Ausführungszeit (Worst Case Execution Time WCET) eines Programmes auf einer gegebenen Zielhardware. WCET ist variabel Schranke, Schätzwerte

4 Veranschaulichung 1 Fig. 1. Basic notions concerning timing analysis of systems. The lower curve represents a subset of measured executions. Its minimum and maximum are the minimal observed execution times and maximal observed execution times, resp. The darker curve, an envelope of the former, represents the times of all executions. Its minimum and maximum are the best-case and worst-case execution times, resp., abbreviated BCET and WCET. 1 Reinhard Wilhelm et al. The Worst-Case Execution Time Problem Overview of Methods and Survey of Tools. In: ACM Transactions on Embedded Computing Systems 7.3 (Mai 2007), S / 51

5 5 / 51 WCET-Ermittlung Der für das Scheduling genutzte Schätzwert der WCET muß 2 Bedingungen erfüllen (vgl. vorige Abbildung): 1. Er darf nie kleiner sein als die wahre WCET (ansonsten wird irgendwann die zugeordnete Deadline verletzt). 2. Er sollte nahe an der wahren WCET liegen (ansonsten wird Verarbeitungszeit verschenkt Verteuerung des Systems). Bemerkungen: relativ junger Zweig der Echtzeitsysteme Komplexitätsproblem: entweder ziemlich ungenau oder sehr aufwendig angetrieben durch Prozessorevolution

6 Statische vs. dynamische Analyse 6 / 51 Statische WCET-Analyse Ableitung der Abarbeitungszeit aus Programmcode, ohne dass dieser ausgeführt wird. benötigt Wissen über: Kontrollfluss des zu analysierenden Programms interne Zustände des Prozessors Dynamische WCET-Analyse (Messung) Instrumentierung des Codes repräsentative Menge an Eingabedaten Ausführung des Codes auf realer Hardware oder im Simulator Messung einer hinreichend großen Anzahl Programmabläufe Maximum aller Ausführungszeiten ist eine Abschätzung der WCET, jedoch keine sichere Schranke

7 7 / 51 2 Ebenen 1. makroskopische Betrachtung: Was macht ein gegebenes Programm? 2. mikroskopische Betrachtung: Was passiert im Prozessor Beide Ebenen sind nicht getrennt voneinander zu betrachten, sondern greifen ineinander.

8 Phasen der Statischen WCET-Analyse 8 / Analyse des Kontrollflusses formale Repräsentation des Programmes Ermittlung möglicher konkreter Abarbeitungspfade aus dem Quellprogramm und/oder ausführbarem Maschinencode 2. Verhaltensanalyse der zugrundeliegenden Prozessorarchitektur Einbeziehung von Kontextinformationen timingrelevanter Komponenten: Speicher, Caches, Pipelines, Sprungvorhersage erfordert präzises Modell des Prozessors 3. Errechnung einer Abschätzung für die WCET kombiniert Ergebnisse der beiden vorangegangenen Phasen

9 9 / 51 Control Flow Graph (CFG) repräsentiert den Steuerfluss eines (Teil-)Programms alle möglichen Pfade durch das Programm abgebildet Knoten sind so genannte Basic Blocks, die keine Verzweigungen enthalten ( einfaches, konstantes Timing) aus Quelltext oder Binärabbild erzeugbar Def. Ein Control Flow Graph (CFG) ist ein gerichteter Graph G = (V, E, i), bei dem die Knoten v V Basic Blocks repräsentieren. Eine Kante e E V V zwischen zwei Knoten v i, v j existiert genau dann, wenn v j unmittelbar nach v i ausgeführt wird. Es gibt genau einen Startknoten i V, dieser hat keine zu ihm führende Kante ( v V : (v, i) E).

10 Control Flow Graph Beispiel int foo(int x, int y) { int i = 0, ret=29; 3 A start } while (i<100) { /* A */ if (x == 42) { /* B */ ret = ret + 12; /* C */ } else { ret = 24; /* D */ } if (y%2 == 0) { /* E */ ret *= 23; /* F */ } else { ret += 95; /* G */ } i++; /* H */ } return ret; C 7 F 8 B 5 4 E 6 5 H 2 exit D G CFG mit zeitbewerteten Basic Blocks 10 / 51

11 11 / 51 3 Methoden der WCET-Ermittlung 1. baumbasierte Ermittlung (Timing Schema) 2. pfadbasierte Ermittlung 3. IPET-basierte Ermittlung (Implicit Path Enumeration Technique)

12 Variante 1: baumbasierte Ermittlung Grundidee 2 : Programm besteht grundsätzlich aus 3 verschiedenen Strukturen sequentielle Blöcke (seq) Verzweigungen (if ) Schleifen (loop) Aufbau eines Syntaxbaums für das Programm Annotation aller Schleifen mit maximaler Iterationszahl (maxiter) nach Bottom-Up Transformation der Strukturen des Syntaxbaums durch einfachere Strukturen 2 Chang Yun Park und Alan C. Shaw. Experiments with a Program Timing Tool Based on Source-Level Timing Schema. In: IEEE Computer 24.5 (Mai 1991), S / 51

13 13 / 51 Variante 1: baumbasierte Ermittlung Regeln für die Transformation T(S i ) sei die WCET für den sequentiellen Block S i 2 aufeinanderfolgende sequentielle Blöcke: T(seq(S 1, S 2 )) = T(S 1 ) + T(S 2 ) (Zeiten werden addiert) Verzweigung: T(if(S 1 ) then (S 2 ) else (S 3 )) = T(S 1 ) + max(t(s 2 ), T(S 3 )) (der längere der beiden Pfade dominiert die WCET) Schleife (S 1 ist der Schleifenkopf, S 2 der Schleifenkörper): T(while(S 1, S 2, maxiter)) = T(S 1 ) + (T(S 1 ) + T(S 2 )) maxiter

14 14 / 51 Variante 1: baumbasierte Ermittlung Syntaxbaum des Beispiels int foo(int x, int y) { int i = 0, ret=29; } while (i<100) { /* A */ if (x == 42) { /* B */ ret = ret + 12; /* C */ } else { ret = 24; /* D */ } if (y%2 == 0) { /* E */ ret *= 23; /* F */ } else { ret += 95; /* G */ } i++; /* H */ } return ret; while A seq if seq B C D if H E F G Syntaxbaum zu foo()

15 15 / 51 Variante 1: baumbasierte Ermittlung Schrittweise Transformation des Beispiels... an der Tafel...

16 16 / 51 baumbasierte Ermittlung Zusammenfassung Vorteile: einfache Methode geringer Aufwand skaliert ausgezeichnet mit Größe des Programms Nachteile: Korrelationen zwischen nicht-lokalen Codeteilen nicht berücksichtigt so genannte infeasible paths nicht ausschließbar

17 17 / 51 Nichtrealisierbare Pfade (Infeasible Paths) int baz(int x) { if (x<5) /* A */ x += 1; /* B */ else x *= 2; /* C */ if (x>10) /* D */ x=sqrt(x); /* E */ return x; /* F */ } Pfad <A, B, D, E, F> ist unmöglich, da wenn eingangs x < 5 gilt, die Bedingung D nicht wahr werden kann Wenn eingangs x > 10 gälte, wäre der einzig mögliche Pfad <A, C, D, E, F> Einbeziehung solchen Wissens kann Anzahl zu betrachtender Pfade drastisch reduzieren

18 18 / 51 Explizite Flussinformationen (Flow Facts) Beispiel int foo(unsigned int x) { char i=0; // A while(i < 100) { // B if ((i<20) (x<30)) // C x = x + 1; // D else x = x * 2; // E i++; // F if (errorcheck(i,x)) // G return 0; // H } return x; // I } Extrahierbare Flussinformationen: Bei jedem Aufruf von foo() kann die Schleife höchstens 100mal durchlaufen werden. Während der ersten 20 Iterationen kann E nicht ausgeführt werden. D kann nur während der ersten 30 Iterationen ausgeführt werden. Sobald x 30 gilt, muss für alle verbleibenden Iterationen E ausgeführt werden.

19 Problem: Obergrenzen für Schleifeniterationen 19 / 51 leicht: for (c=0; c<42; c++) { /* Tu wat */ } mittelschwer: int c; for (c=1; c < 100; c = c * 3 + 1) { /* do something */ } schwer (Euklidischer Algorithmus): unsigned long gcd_euclid(unsigned long a, unsigned long b) { unsigned long h; } while (b!= 0) { h = a % b; a = b; b = h; } return a;

20 Obergrenzen für Schleifeniterationen geschachtelte Schleifen? typisch: manuelle Annotationen (aufwändig, öde, fehleranfällig) automatische Schrankenextraktion ist Forschungsgegenstand 3 3 vgl. z. B. Jens Knoop, Laura Kovács und Jakob Zwirchmayr. Symbolic Loop Bound Computation for WCET Analysis. In: Proceedings of the 8th international conference on Perspectives of System Informatics (PSI 11). 2011, S / 51

21 21 / 51 Variante 2: pfadbasierte Ermittlung Grundidee: Suche nach dem längsten Pfad durch den CFG ist dieser realisierbar, dann handelt es sich um dem Pfad der WCET falls nicht, Suche nach zweitlängstem Pfad usw. Anmerkungen: Pfade werden explizit behandelt exponentielle Komplexität (Verschachtelungstiefe!) eignet sich gut für nichtverschachtelte Schleifen hardwarebedingte Eigenheiten auf dem Pfad können gut berücksichtigt werden

22 22 / 51 Variante 2: pfadbasierte Ermittlung Beispiel... an der Tafel...

23 Variante 3: Implicit Path Enumeration Technique Grundidee: jeder Basic Block i erhält eine (Worst-Case-)Ausführungszeit t i und einen Zähler x i, der angibt, wie häufig der Block aufgerufen wird aus dem Code und dem CFG werden (automatisiert oder manuell) logische bzw. algebraische Nebenbedingungen extrahiert, die das konkrete Abarbeitungsverhalten beschreiben (Maximalzahl Aufrufe, Schleifenobergrenzen usw.) Optimierungsproblem; es wird t i x i maximiert Ergebnis ist die WCET des betrachteten Codes i 23 / 51

24 24 / 51 Variante 3: Implicit Path Enumeration Technique Beispiel x start x starta start x HA Start- und Exitbedingungen: x start = 1, x exit = 1 x Aexit 3 A x A 5 B x B x BC 7 C x C 4 D x D x CE x EF 6 E x E 8 F x F 5 G x G x FH 2 H x H x exit x AB xbd x DE xeg x GH exit CFG mit Flussbedingungen Strukturelle Bedingungen: x start = x starta x A = x starta + x HA = x Aexit + x AB x B = x AB = x BC + x BD x C = x BC = x CE x D = x BD = x DE x E = x CE + x DE = x EF + x EG x F = x EF = x FH x G = x EG = x GH x H = x FH + x GH = x HA Schleifenschranke: x A 100 Zu optimierender Ausdruck: WCET = max(3x A + 5x B + 7x C + 4x D + 6x E + 8x F + 5x G + 2x H )

25 IPET Anmerkungen: typisch ist der Einsatz von Werkzeugen zur Lösung des Optimierungsproblems: Constraint Solvers Integer Linear Programming (ILP) 4 Pfade werden nicht explizit behandelt (Name!) komplexes Verhalten der zugrundeliegenden Hardware i. a. gut integrierbar (Caches, Pipelines) 4 besonders verbreitet, da leistungsfähige Open-Source-Software zur Verfügung steht vgl / 51

26 Mikroskopische Ebene 26 / 51 bisherige Betrachtung geht von der Voraussetzung aus, dass Blöcke und Maschineninstruktionen eines Programmes voneinander weitestgehend unabhängig sind Dies ist in modernen Prozessoren (meist) nicht der Fall! Einbeziehung der Einheiten nötig, die das Timing der Instruktionen beeinflussen: Caches Pipeline Sprungvorhersage Out-of-Order-Execution? Superskalarität (mehrere Einheiten auf dem Core) Branch Prediction und Speculative Execution (MMU Virtueller Speicher)

27 Processorcaches Motivation Prozessoren werden schneller schneller als der Hauptspeicher : Abbildung: Geschwindigkeitszuwachs von Prozessor und Hauptspeicher, bezogen auf John L. Hennessy und David A. Patterson. Computer Architecture. A Quantitative Approach. 4. Aufl. Elsevier, 27 / 51

28 Prozessorcaches Motivation Beobachtung: zeitliche und räumliche Lokalität von Zugriffen auf den Hauptspeicher (90/10-Regel). Idee: Bei Referenz eines Datums im Hauptspeicher wird der das Datum enthaltende Speicherblock in einen kleinen, sehr schnellen Zwischenspeicher übertragen, so dass Referenzen auf weitere Daten, die in der Nähe liegen, dann aus dem Cache bedient werden können. Abbildung: Beispiel einer einfachen Speicherhierarchie 7 7 John L. Hennessy und David A. Patterson. Computer Architecture. A Quantitative Approach. 4. Aufl. Elsevier, 2007, S / 51

29 Prozessorcaches Funktionsprinzip Zugriffsoperation mindestens Faktor 10 schneller als gecachtes Medium Cache-Hit vs. Cache-Miss Assoziativität: Anzahl Positionen, an denen eine Line gespeichert werden kann genau 1 Möglichkeit: direct-mapped n verschiedene Möglichkeiten: n-wege-assoziativ (n {2, 4, 8, 16}) überall: vollassoziativer Cache virtuell vs. physisch indexierter Cache inklusive (Intel) vs. exklusive (AMD) Speicherung Eigenschaften sind ggf. experimentell bestimmbar 8. 8 Tobias John und Robert Baumgartl. Exact Cache Characterization by Experimental Parameter Extraction. In: Proceedings of the 15th International Conference on Real-Time and Network Systems (RTNS 07). Nancy, März 2007, S / 51

30 Timingbeispiele t l [Zyklen] Pentium 4 Opteron 240 Itanium 2 ARM SA1110 L L HS 36 (?) Tabelle: Latenzen älterer Cachearchitekturen 9 ) Aktuelles Beispiel 10 : Intel Core i7 Xeon 5500 L1 Cache hit: 4 cycles L2 Cache hit: 10 cycles L3 Cache hit: 40/65/ cycles (unshared/shared/remote) Local RAM: 60 ns (180 3GHz) Remote RAM: 100 ns (300 3 GHz) 9 Kamen Yotov, Keshav Pingali und Paul Stodghill. X-Ray: A Tool for Automatic Measurement of Hardware Parameters. In: Proceedings of the Second International Conference on the Quantitative Evaluation of Systems (QEST 2005). 2005, S siehe auch 30 / 51

31 31 / 51 Prozessorcache Leseoperation Ablauf: 1. CPU referenziert ein Datum X mit der virtuellen Adresse A lesend 2. (MMU setzt virtuelle in physische Adresse um) 3. Cache Lookup: Durchmustern des Caches nach A gefunden (Cache Hit): X wird an CPU übertragen nicht gefunden (Cache Miss): X wird aus Hauptspeicher geholt Verzögerung (Miss Penalty), gleichzeitiges Laden der entsprechenden Line in den Cache. Falls kein Platz mehr im Cache Auswahl einer zu verdrängenden Cache-Line, Verdrängung dieser, um Platz zu schaffen.

32 32 / 51 Prozessorcache Schreiboperation 1. CPU referenziert ein Datum X mit der virtuellen Adresse A schreibend 2. Cache Lookup: Durchmustern des Caches nach A Cache Hit 2 Möglichkeiten: Write-Through: X wird im Cache aktualisiert und zusätzlich in den Hauptspeicher geschrieben ( durch den Cache ) Write-Back: X wird nur im Cache aktualisiert; erst wenn die zugehörige Line verdrängt wird, wird diese in den Hauptspeicher übertragen Cache Miss 2 Möglichkeiten: Write-Allocate: Datum wird im Hauptspeicher aktualisiert und zugehörige Line wird in den Cache übertragen Write-No-Allocate: Datum wird nur im Hauptspeicher aktualisiert

33 33 / 51 Prozessorcache Verdrängung von Cachelines ideal: Verdrängung der Cacheline, die zukünftig am längsten nicht benötigt wird (unmöglich) First In First Out (FIFO; aka Round Robin ) Motivation: die älteste Line wird stets verdrängt leicht zu implementieren z. B. Motorola MPC 56x, Intel XScale, ARM 9, ARM 11 Least Recently Used (LRU) Motivation: die Line, die am längsten nicht genutzt wurde, wird verdrängt (zu) komplexe Logik z. B. Intel Pentium, MIPS 24K/34K

34 34 / 51 Prozessorcache Verdrängung von Cachelines Pseudo Least-Recently Used (PLRU) Motivation: Approximation von LRU mit deutlich niedrigerem Aufwand z. B. Intel Pentium II-4, Power PC 75x Most Recently Used (MRU) Motivation: noch simplere Approximation von LRU 1 Bit/Line nötig z. B. Intel-Nehalem-Architektur (bestimmte Xeon, i5, i7)

35 Pseudo Least-Recently Used (PLRU) Approximation von LRU mittels binärer Bäume bei n-wege-assoziativität pro Set n 1 Tree-Bits benötigt; Bedeutung: 0 = linker Subbaum 1 = rechter Subbaum Tree-Bits zeigen stets zum potentiell zu ersetzenden Element nach jedem Hit werden alle Bits, die auf das betreffende Element verweisen, invertiert Beispiel 11 für eine PLRU-Referenzfolge (4 Wege, Referenz e, a, f ): e M 1 1 a H 1 1 f M 1 0 a b c d a b e d a b e d a b e f Initial state: After a miss to e: After a hit to a: After a miss to f: [a, b, c, d] [110] [a, b, e, d] [011] [a, b, e, d] [111] [a, b, e, f] [010] 11 Daniel Grund und Jan Reineke. Toward Precise PLRU Cache Analysis. In: Proceedings of the 10th International Workshop on Worst-Case Execution Time Analysis (WCET 2010). Hrsg. von Björn Lisper. Brussels, Juli 2010, S / 51

36 Most Recently Used (MRU) 36 / 51 manchmal PLRU (sic!) oder Bit-based PLRU genannt approximiert LRU mit minimalem Aufwand pro Line 1 Bit; Bedeutung: 0 = längere Zeit nicht referenziert 1 = kürzlich referenziert bei Cache Hit wird das zugehörige Bit stets auf 1 gesetzt Ausnahme: wenn der Hit die letzte verbliebene 0 auf 1 setzen würde, dann werden alle Bits auf 0 gesetzt, nur das Bit des Hits auf 1 ( Global Flip ) bei Cache Miss: Ersetzung der ersten Line, deren Bit 0 ist Bit der neu eingelagerten Line wird 1

37 Most Recently Used (MRU) Beispiel Beispiel 12 für eine MRU-Referenzfolge (4 Wege): initialer Zustand: [F, G, T, H] Referenzfolge O, F, H 1 F 1 F 1 F 0 F 0 G O 1 O F 1 O H 0 O 1 T 1 T 1 T 0 T 0 H 0 H 0 H 1 H 12 nach Nan Guan, Mingsong Lv und Wang Yi. WCET Analysis with MRU Caches: Challenging LRU for Predictability. In: Proceedings of the 18th Real-Time and Embedded Technology and Applications Symposium (RTAS 12). Beijing, Apr. 2012, S / 51

38 Least-Recently Used (LRU) 38 / 51 relativ gut untersucht für den Einsatz in Echtzeitsystemen Beispiel: 4-Wege-assoziativer Cache F G T H X X F G T Alter der Lines F G T H T T F G H Alter der Lines H wird ersetzt. Cache Miss Cache Hit

39 39 / 51 Analyse von LRU Literaturhinweis / Quellennachweis: Jan Reineke. Caches in WCET Analysis. Diss. Universität des Saarlandes, Nov Christian Ferdinand, Florian Martin und Reinhard Wilhelm. Applying Compiler Techniques to Cache Behavior Prediction Vortragsfolien Sebastian Altmeyer, Uni Saarbrücken Vorlesungsfolien Peter Puschner,

40 40 / 51 Analyse von LRU Must- and May-Analysis Problem, den konkreten Cacheinhalt für einen bestimmten Abarbeitungspfad im CFG zu ermitteln ist unentscheidbar stattdessen Nutzung Abstrakter Interpretation, um bestimmte Eigenschaften eines Caches für einen Ausführungspfad zu bestimmen (Verlust an Information, aber effizient berechenbar!) Hier: 1. Ermittlung oberer Grenzen für das Alter von Speicherblöcken im Cache (Must-Analysis) 2. Ermittlung unterer Grenzen für das Alter von Speicherblöcken im Cache (May-Analysis)

41 41 / 51 Must-Analysis für LRU-Caches Idee: Ermittlung oberer Grenzen (og) für das Alter von Speicherblöcken nach bestimmten Regeln og Assoziativität Block ist im Cache {F} max-age 0 F ist gerade referenziert worden {G} {T,X} 1 2 {} 3 Beispiel eines abstrakten Cachezustandes (4-Wege) G hat ein max. Alter von 1 (gerade referenziert worden oder im Takt davor) T und X haben beide ein max. Alter von 2 (referenziert während der letzten beiden Takte oder gerade)

42 42 / 51 Must-Analysis für LRU-Cache Abstrakte Update-Funktion Regeln: 1. Wenn der Speicherblock x referenziert wird, dann wird max-age(x) = 0 gesetzt. 2. Für alle anderen Lines c des Caches gilt: wenn max-age(c) max-age(x), dann max-age(c) = max-age(c) wenn max-age(c) < max-age(x), dann max-age(c) = max-age(c) + 1 Beispiel: X referenziert {F} {X} {G} {F} {T,X} {T,G} {} {} Alter der Lines

43 43 / 51 Must-Analysis für LRU-Cache Join: Kombination mehrerer Steuerflüsse an bestimmten Stellen im CFG vereinigen sich Steuerflüsse (Ende von Alternativen) zwei differierende abstrakte Cachezustände müssen konservativ zu einem vereinigt werden Es wird der Mengendurchschnitt beider abstrakter Cachezustände unter Beachtung des maximalen Alters gebildet. Beispiel: {F} {T} {} {G} {T,X} JOIN {G} {F} = {G} {T,F} {} {X} {X}

44 Beispiel für Must-Analysis eines LRU-Caches start [{}, {}, {}, {} ] [ {D}, {}, {A}, {} ] [ {A}, {}, {}, {} ] A [ {D}, {}, {A}, {} ] [ {}, {}, {}, {} ] = [ {}, {}, {}, {} ] [ {A}, {}, {}, {} ] B C D [ {B}, {A}, {}, {} ] [ {C}, {A}, {}, {} ] = [ {}, {A}, {}, {} ] [ {D}, {}, {A}, {} ] exit 44 / 51

45 45 / 51 Beispiel für Must-Analysis eines LRU-Caches Schlussfolgerungen / Ergebnis kein einziger Cache Hit prognostiziert, obwohl Schleife Hits verursachen müsste Ursache: erste Iteration generiert nur Misses (zu konservativ abgeschätzt) Abhilfe: erste Iteration aufrollen und getrennt analysieren (Virtual Loop Unrolling)

46 Aufrollen der ersten Schleifeniteration start [{}, {}, {}, {} ] [ {}, {}, {}, {} ] [ ] {A}, {}, {}, {} B exit [ ] {}, {A}, {D}, {} [ ] {A}, {D}, {}, {} B A D A D C [ {A}, {}, {}, {} ] [ {B}, {A}, {}, {} ] [ {C}, {A}, {}, {} ] = [ {}, {A}, {}, {} ] [ {D}, {}, {A}, {} ] C [ {A}, {D}, {}, {} ] [ {B}, {A}, {D}, {} ] [ {C}, {A}, {D}, {} ] = [ {}, {A}, {D}, {} ] Ergebnis: Referenzen zu A und D werden nach der ersten Iteration korrekt als Hit klassifiziert Für Referenzen zu B und C sind keine Aussagen möglich (als Miss anzunehmen) [ {D}, {}, {A}, {} ] exit 46 / 51

47 47 / 51 May-Analysis für LRU-Cache funktioniert ähnlich wie Must-Analysis ermittelt jedoch Untergrenzen (ug) für das Alter von Speicherblocks im Cache ug Assoziativität Block ist garantiert nicht im Cache

48 48 / 51 Analyse von Caches Fazit Nutzung Abstrakter Interpretation (Must- und May-Analysis) reduziert Rechenaufwand und verliert Information, erlaubt dadurch aber Aussagen über garantierte Cache-Hits und Cache-Misses LRU besonders einfach zu analysieren; andere Ersetzungsstrategien leider nicht

49 Alternativen zur Cacheanalyse 49 / 51 Einschränkungen des Programmiermodells keine Rekursion erlaubt Schleifen nur mit konstanter Iterationsanzahl Beeinflussung des Caches Abschalten inakzeptabler Leistungseinbruch, aber deterministisches Timing Einfrieren (Cache Freeze) Cache Coloring Ersetzung des Caches durch Scratch-Pad Memory direkt adressiert, gleiche Zugriffsgeschwindigkeit wie Cache häufig genutzte Datenstrukturen in SPM Compilerunterstützung nötig

50 50 / 51 Cache Coloring Problem: Cacheinhalte interferieren zwischen mehreren Tasks und dem Betriebssystem (Thrashing!) Idee: Partitionierung des Hauptspeichers, so dass einzelne Cache-Lines jeweils einer Task exklusiv zur Verfügung stehen Thrashing unmöglich Nachteil: Cache muss im gleichen Verhältnis wie der Hauptspeicher zugeteilt werden (d.h., wenn eine Task 50% des Caches erhält, erhält sie automatisch auch die Hälfte des Adressraums) Literatur: Jochen Liedtke, Hermann Härtig und Michael Hohmuth. OS-Controlled Cache Predictability for Real-Time Systems. In: Proceedings of the Third IEEE Real-Time Technology and Applications Symposium (RTAS 97). Juni 1997, S ISBN:

51 Schluss 51 / 51 Was haben wir nicht behandelt?... konkrete Programmiermodelle, synchrone Sprachen, viele Aspekte des Scheduling (z. B. Flexible Computations), verteilte Echtzeitsysteme, Software Engineering für zuverlässige und echtzeitfähige Systeme (Real-Time UML), Verifikation mit Spin und Promela, echtzeitfähige Speicherverwaltung (RT-GC), Echtzeit-Protokolle für das Internet, NTP...

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

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

Mehr

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.

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. 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 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

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

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich. 28. Oktober Lehrstuhl Informatik 4

Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich. 28. Oktober Lehrstuhl Informatik 4 Echtzeitsysteme Zeitliche Analyse von Echtzeitanwendungen Peter Ulbrich Lehrstuhl Informatik 4 28. Oktober 2014 c fs, pu (Lehrstuhl Informatik 4) Echtzeitsysteme WS 14/15 1 / 31 Gliederung 1 Übersicht

Mehr

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

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher

Mehr

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

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

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes

Grundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes Grundlagen der Informatik III Wintersemester 2010/2011 15. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Prozessorarchitektur. Sprungvorhersage. M. Schölzel Prozessorarchitektur Sprungvorhersage M. Schölzel Inhalt Sprungvorhersage statische Methoden dynamische Methoden Problem Fetch-Phase Befehlswarteschlange Speicher b? Neue Adresse für noch nicht bekannt

Mehr

Echtzeitsysteme. Übungen zur Vorlesung. Analyse von Ausführungszeiten

Echtzeitsysteme. Übungen zur Vorlesung. Analyse von Ausführungszeiten Echtzeitsysteme Übungen zur Vorlesung Analyse von Ausführungszeiten Florian Schmaus Peter Wägemann Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU) Lehrstuhl für Informatik 4 (Verteilte Systeme

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach

Cache-Speicher. Design Digitaler Systeme. Prof. Dr.-Ing. Rainer Bermbach Cache-Speicher Design Digitaler Systeme Prof. Dr.-Ing. Rainer Bermbach Übersicht Cache-Speicher Warum Cache-Speicher? Cache-Strukturen Aufbau und Organisation von Caches Cache-Architekturen Cache-Strategien

Mehr

Virtueller Speicher und Memory Management

Virtueller Speicher und Memory Management Virtueller Speicher und Memory Management Speicher-Paradigmen Programmierer ein großer Adressraum linear adressierbar Betriebssystem eine Menge laufender Tasks / Prozesse read-only Instruktionen read-write

Mehr

Cache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg

Cache-Kohärenz und -Konsistenz. Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: Universität Heidelberg Cache-Kohärenz und -Konsistenz Betreuer: Prof. Brüning Veton Kajtazi Mat.-Nr.: 3220501 Universität Heidelberg Inhaltsverzeichnis Wozu Caches? Unterschied Kohärenz und Konsistenz MESI-Protokoll Fazit 2

Mehr

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

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

Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Themen heute Besprechung des 8. Übungsblattes Einführung in Caches Cache-Organisation Cache-Ersetzungsstrategien Aufgaben (an der Tafel) Testklausur Besprechung des 8. Übungsblattes Aufgabe 2.6. In diesem

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Prof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Die Forschungsuniversität Meyerhenke, in der Institut für Theoretische Informatik

Mehr

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

, 2014W Übungsgruppen: Mo., Mi., 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

Mehr

Grob-Struktur des Prozessor-Speichersystems

Grob-Struktur des Prozessor-Speichersystems 2.3.2 Speicherstruktur (1) Grob-Struktur des Prozessor-Speichersystems Chipsatz (Erklärung s. später, Folie 104) 22.4.-27.5.2013, Folie 52 2.3.2 Speicherstruktur (2) Zugriff Prozessor zumeist auf schnelle

Mehr

Weitere Verbesserungen

Weitere Verbesserungen Weitere Verbesserungen Welcher Cache liefert aktuellen Block falls mehrere Caches Block im Zustand S halten? Lösung: Einführung eines weiteren Zustands O (Owner) Zustand O besagt: Eigentümer des Blocks

Mehr

Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich

Echtzeitsysteme. Zeitliche Analyse von Echtzeitanwendungen. Peter Ulbrich Echtzeitsysteme Zeitliche Analyse von Echtzeitanwendungen Peter Ulbrich Lehrstuhl für Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg https://www4.cs.fau.de 13.

Mehr

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen: Übersicht 1 Einleitung Hauptspeicher 2 Hauptspeicher 3 Caches, Cache-Kohärenz Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Mehr

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner

Mehr

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2 Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende

Mehr

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

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

Mehr

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST Modellbasierte Generierung von statischen Schedules für sicherheitskritische, eingebettete Systeme mit Multicore Prozessoren und harten Echtzeitanforderungen J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim

Mehr

(Cache-Schreibstrategien)

(Cache-Schreibstrategien) Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. 2. Nennen Sie zwei rotierende magnetische digitale Datenspeicher. 3. Nennen Sie zwei

Mehr

Speicherorganisation

Speicherorganisation Speicherorganisation John von Neumann 1946 Ideal wäre ein unendlich großer, undendlich schneller und undendlich billiger Speicher, so dass jedes Wort unmittelbar, d.h. ohne Zeitverlust, zur Verfügung steht

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Einsatz und Realisierung von Datenbanksystemen im SoSe16 Moritz Kaufmann

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.713 Prüfung Echtzeitsysteme 27. März 2015 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(25) 3.)(15) 4.)(25) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Grundlagen

Mehr

RO-Tutorien 15 und 16

RO-Tutorien 15 und 16 Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 10 am 29.06.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

2.3 Prozessverwaltung

2.3 Prozessverwaltung Realisierung eines Semaphors: Einem Semaphor liegt genau genommen die Datenstruktur Tupel zugrunde Speziell speichert ein Semaphor zwei Informationen: Der Wert des Semaphors (0 oder 1 bei einem binären

Mehr

Abstrakte Interpretation (AbsInt)

Abstrakte Interpretation (AbsInt) Abstrakte Interpretation (AbsInt) Viktoria Pleintinger 24. Juni 2009 1 Inhaltsverzeichnis 1 Einleitung 3 2 Worst-Case Laufzeitanalyse aufgrund von Messung 4 3 WCET Analyse durch Static Programm Analysis

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Themen heute Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben Besprechung des 9. Übungsblattes Aufgabe 2 Ist in einer Aufgabe wie hier keine explizite Wortbreite angegeben, nicht

Mehr

Ausgewählte Kapitel eingebetteter Systeme

Ausgewählte Kapitel eingebetteter Systeme Ausgewählte Kapitel eingebetteter Systeme Verfahren zur Bestimmung der WCET Andreas Kaiser Friedrich-Alexander University Erlangen-Nuremberg Übersicht Wieso WCET Berechnung? Methoden zur Bestimmung der

Mehr

Inhalt. Annäherung an das Nichtberechenbare - Statische Programmanalyse - Reinhard Wilhelm. Interessante Fragen über Programme

Inhalt. Annäherung an das Nichtberechenbare - Statische Programmanalyse - Reinhard Wilhelm. Interessante Fragen über Programme Annäherung an das Nichtberechenbare - Statische Programmanalyse - Reinhard Wilhelm Inhalt Eigenschaften von Programmen Approximation Effective Abstractions (P. Cousot) Voraussage des Cacheverhaltens Interessante

Mehr

Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz. Markus Krause

Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz. Markus Krause Analyse aktueller Cache-Architekturen hinsichtlich Struktur und Effizienz Markus Krause Dresden, Gliederung 1. Einführung 2. Problemstellung 3. Lösungen a) Miss Rate b) Miss Penalty c) Hit Time 4. Zusammenfassung

Mehr

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

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden. Name: Vorname: Matr.-Nr.: 4 Aufgabe 1 (8 Punkte) Entscheiden Sie, welche der folgenden Aussagen zum Thema CISC/RISC-Prinzipien korrekt sind. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen

Mehr

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

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache 1/53 2012-02-29 Einleitung Hauptspeicherzugriffe sind langsam die

Mehr

Carry Lookahead Adder

Carry Lookahead Adder Carry Lookahead Adder Mittels der Generate und Propagate Ausdrücke lässt ich dann für jede Stelle i der Carry (Übertrag) für die Stelle i+1 definieren: Für einen 4 Stelligen Addierer ergibt sich damit:

Mehr

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer Seminar Werkzeuggestütze tze Softwareprüfung fung Slicing Sebastian Meyer Überblick Einführung und Begriffe Static Slicing Dynamic Slicing Erweiterte Slicing-Techniken Fazit 2 Was ist Slicing?? (I) Program

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Technische Informatik 1 - HS 2016

Technische Informatik 1 - HS 2016 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2016 Lösungsvorschläge für Übung 8 Datum: 8. 9. 12. 2016 1 Instruktionsparallelität VLIW Gegeben

Mehr

Kapitel 6: Dynamic Shortest Path

Kapitel 6: Dynamic Shortest Path Kapitel 6: Dynamic Shortest Path 6.4 Experimentelle Analyse VO Algorithm Engineering Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 18. VO 12. Juni 2007 Literatur für diese VO C.

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Übung zu Einführung in die Informatik # 10

Übung zu Einführung in die Informatik # 10 Übung zu Einführung in die Informatik # 10 Tobias Schill tschill@techfak.uni-bielefeld.de 15. Januar 2016 Aktualisiert am 15. Januar 2016 um 9:58 Erstklausur: Mi, 24.02.2016 von 10-12Uhr Aufgabe 1* a),

Mehr

Übung zu Algorithmen und Datenstrukturen (für ET/IT)

Übung zu Algorithmen und Datenstrukturen (für ET/IT) Übung zu Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise

Mehr

Lösung von Übungsblatt 2

Lösung von Übungsblatt 2 Lösung von Übungsblatt 2 Aufgabe 1 (Digitale Datenspeicher) 1. Nennen Sie einen digitalen Datenspeicher, der mechanisch arbeitet. Lochstreifen, Lochkarte, CD/DVD beim Pressen. 2. Nennen Sie zwei rotierende

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 11 Datum: 21. 22. 12. 2017 Virtueller Speicher 1 Performanz Gehen Sie von einem virtuellen

Mehr

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1 E-1 Technische Grundlagen der Informatik 2 SS 2009 Einleitung R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt Lernziel E-2 Verstehen lernen, wie ein Rechner auf der Mikroarchitektur-Ebene

Mehr

Kürzeste-Wege-Algorithmen und Datenstrukturen

Kürzeste-Wege-Algorithmen und Datenstrukturen Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2

Mehr

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

Kapitel 1 Parallele Modelle Wie rechnet man parallel? PRAM- PRAM- DAG- R UND R Coles und Kapitel 1 Wie rechnet man parallel? Vorlesung Theorie Paralleler und Verteilter Systeme vom 11. April 2008 der Das DAG- Das PRAM- Das werkmodell Institut für Theoretische

Mehr

Rechnerarchitektur SS 2012

Rechnerarchitektur SS 2012 Rechnerarchitektur SS 2012 Cachekohärenz Michael Engel TU Dortmund, Fakultät für Informatik Teilweise basierend auf Material von Gernot A. Fink und R. Yahyapour 11. Juni 2013 Speicher in MP-Systemen Zentrales

Mehr

Freispeicherverwaltung Martin Wahl,

Freispeicherverwaltung Martin Wahl, Freispeicherverwaltung Martin Wahl, 17.11.03 Allgemeines zur Speicherverwaltung Der physikalische Speicher wird in zwei Teile unterteilt: -Teil für den Kernel -Dynamischer Speicher Die Verwaltung des dynamischen

Mehr

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

Analyse verschiedener HLS-Systeme in Hinblick auf ihren Umgang mit der Hochsprachenabstraktion Speicher. Sascha Kath Analyse verschiedener HLS-Systeme in Hinblick auf ihren Umgang mit der Hochsprachenabstraktion Speicher Sascha Kath Dresden, Gliederung 1. Motivation & Zielstellung 2. HLS-Systeme 3. Benchmark-Funktionen

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Parallele Programmiermodelle

Parallele Programmiermodelle Parallele Programmiermodelle ProSeminar: Parallele Programmierung Semester: WS 2012/2013 Dozentin: Margarita Esponda Einleitung - Kurzer Rückblick Flynn'sche Klassifikationsschemata Unterteilung nach Speicherorganissation

Mehr

Rechnerarchitektur SS 2012

Rechnerarchitektur SS 2012 Rechnerarchitektur SS 2012 Cachekohärenz TU Dortmund, Fakultät für Informatik XII Literatur: Hennessy/Patterson: Computer Architecture, 3. Auflage, 2003, Abschnitte 6.2, S. 549ff und 6.5, S. 576ff. Huang:

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43 Wahlalgorithmen Überblick/Problemstellung Wahlalgorithmen auf Ringstrukturen Beispiel TokenRing Wahlalgorithmen auf Baumstrukturen Wahlalgorithmen auf beliebigen Netzstrukturen Verteilte Algorithmen (VA),

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 11 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Allgemeine Lösung mittels Hazard Detection Unit

Allgemeine Lösung mittels Hazard Detection Unit Allgemeine Lösung mittels Hazard Detection Unit Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 83

Mehr

Test-Suite Beurteilung

Test-Suite Beurteilung Test-Suite Beurteilung Seminar: Beiträge zum Software Engineering @FU Berlin, Prof. Dr. Lutz Prechelt WS14/15 - Mehmet Bayram A Verglichene Arbeiten Comparing Non-adequate Test Suites using Coverage Criteria

Mehr

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR #7 Terminchaos Nächste Vorlesungen: 27. 5. Vertretung durch Prof. Fekete 3. 6. Exkursionswoche 10. 6. Vertretung durch N.N. 17. 6. back to normal... Experiment Durchlaufe zwei gleichgrosse Arrays: Sortierte

Mehr

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

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert? SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 2 2014-04-28 bis 2014-05-02 Aufgabe 1: Unterbrechungen (a) Wie unterscheiden sich synchrone

Mehr

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen Betriebssysteme I 05a 64-/32-Bit-Architekturen Prof. Dr. Dirk Müller Begriff Eine n-bit-architektur ist eine Prozessorarchitektur mit einer Wortbreite von n Bit. meist Zweierpotenzen: 8-, 16-, 32-, 64-Bit-Architekturen

Mehr

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung Version 21.12.2016 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

1. Welche Speichereinheiten werden belegt, wenn die folgenden Strategien eingesetzt werden?

1. Welche Speichereinheiten werden belegt, wenn die folgenden Strategien eingesetzt werden? Sommersemester 009 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Hausübung 05 Abgabe am 0.07.009 (Kästen D) Aufgabe : Speicherzuteilung (6++=8 Punkte) Es sei der

Mehr

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

1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3 1. Übersicht zu den Prozessorfamilien 2 2. Grundlagen der Rechnerorganisation 3 2.1. Aufbau eines Rechners in Ebenen 3 2.2. Die Ebene der elektronischen Bauelemente 5 2.3. Die Gatterebene 5 2.3.1 Einfache

Mehr

Technische Universität München SoSe 2015 Institut für Informatik I Mai 2015 Dr. Tobias Lasser. Aufgabe 1 Rechnen mit Landau-Symbolen

Technische Universität München SoSe 2015 Institut für Informatik I Mai 2015 Dr. Tobias Lasser. Aufgabe 1 Rechnen mit Landau-Symbolen Technische Universität München SoSe 2015 Institut für Informatik I-16 27. Mai 2015 Dr. Tobias Lasser Lösungsvorschläge zur Musterklausur zu Algorithmen und Datenstrukturen Aufgabe 1 Rechnen mit Landau-Symbolen

Mehr

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

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Memory Models Frederik Zipp

Memory Models Frederik Zipp Memory Models Frederik Zipp Seminar: Programmiersprachen für Parallele Programmierung (SS 2010) Fakultät für Informatik - IPD SNELTING LEHRSTUHL PROGRAMMIERPARADIGMEN 1

Mehr

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Paging. Einfaches Paging. Paging mit virtuellem Speicher Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz

Mehr

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P SoSe 2014 Konzepte und Methoden der Systemsoftware Universität Paderborn Fachgebiet Rechnernetze Präsenzübung 3(Musterlösung) 2014-05-05 bis 2014-05-09 Aufgabe 1: Polling vs Interrupts (a) Erläutern Sie

Mehr

Software Engineering Informatik. Grundlagen der Statischen Analyse und ihre Werkzeuge

Software Engineering Informatik. Grundlagen der Statischen Analyse und ihre Werkzeuge Grundlagen der Statischen Analyse und ihre Werkzeuge Übersicht 1. Statische Analyse Allgemein 2. Grundlagen 3. Abstrakte Interpretation 4. Werkzeuge der Statischen Analyse 5. Zusammenfassung 2 Sichere

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

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

, 2015W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 7: Speichermanagement 183.579, 2015W Übungsgruppen: Mo., 11.01. Mi., 13.01.2016 Aufgabe 1: Cache-Adressierung Ihr Cachingsystem soll 32 GiB an Speicher auf

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

Beispielvortrag: HPCG auf Intel Haswell-EP

Beispielvortrag: HPCG auf Intel Haswell-EP Beispielvortrag: HPCG auf Intel Haswell-EP Johannes Hofmann 1 Seminarvortrag Architekturen von Multi- und Vielkern-Prozessoren Erlangen, 19.4.2016 1 Computer Architecture, University Erlangen-Nuremberg

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu

Mehr

Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle

Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle Invalidierungs- und Update-basierte Cache-Kohärenz-Protokolle Architecture of Parallel Computer Systems WS15/16 J.Simon 1 SC mit Write-Back Caches Beweisidee: Behandlung von Reads wie beim Write-Through

Mehr

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen

Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen Optimierungen der Lattice Boltzmann Methode auf x86-64 basierten Architekturen J. Treibig, S. Hausmann, U. Ruede 15.09.05 / ASIM 2005 - Erlangen Gliederung 1 Einleitung Motivation Grundlagen 2 Optimierungen

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen

Mehr

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Tutoraufgabe 1 (Starke Zusammenhangskomponenten): für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Datenstrukturen und Algorithmen SS1 Übungsblatt (Abgabe 4.0.01) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder

Mehr

Technische Realisierung (1)

Technische Realisierung (1) Technische Realisierung () Einfachstes Modell: Prozess (Daten+Code) befindet sich im Hintergrundspeicher Bei teilweise eingelagerten Prozessen: Zusätzlich Teile im Hauptspeicher Logische Adressen überdecken

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische Programmierung. Problemlösungsstrategie der Informatik als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung

Mehr

Modell-basierte Entwicklung mit der Timing Definition Language (TDL)

Modell-basierte Entwicklung mit der Timing Definition Language (TDL) Modell-basierte Entwicklung mit der Timing Definition Language (TDL) Prof. Dr. Wolfgang Pree Univ. Salzburg Inhalt Motivation für einen Paradigmenwechsel bisher: zuerst Plattform, dann Software => Software

Mehr

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III

Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Objektorientierte Programmierung VL: Prof. Dr. Marco Block-Berlitz - Freie Universität Berlin Proinformatik III Text: Hinnerk van Bruinehsen - Grafiken: Jens Fischer powered by SDS.mint SoSe 2011 1 Teil

Mehr

Lösungsvorschlag zur 5. Übung

Lösungsvorschlag zur 5. Übung Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zur 5. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche Aussagen über Caches sind

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Speicherverwaltung (Swapping und Paging)

Speicherverwaltung (Swapping und Paging) Speicherverwaltung (Swapping und Paging) Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente 750k 0 Rückblick: Segmentierung Feste Einteilung des Speichers in einzelne Segmente

Mehr

Ein konfigurierbarer, visueller Cache-Simulator unter spezieller Berücksichtigung komponenten- basierter Modellierung mit Java Beans

Ein konfigurierbarer, visueller Cache-Simulator unter spezieller Berücksichtigung komponenten- basierter Modellierung mit Java Beans Ein konfigurierbarer, visueller Simulator unter spezieller Berücksichtigung komponenten- basierter Modellierung mit Java Beans Holger 6. März 2001 Universität Wilhelm-Schickard-Institut für dieser Arbeit

Mehr

Entwurf und Implementierung einer Prozessinterkommunikation für Multi-Core CPUs Workshop Echtzeit 2013

Entwurf und Implementierung einer Prozessinterkommunikation für Multi-Core CPUs Workshop Echtzeit 2013 Entwurf und Implementierung einer Prozessinterkommunikation für Multi-Core CPUs Workshop Echtzeit 2013 Manuel Strobel 1 Hochschule Furtwangen University Fakultät CEE 2 Embedded Office GmbH & Co. KG 21.

Mehr