Vorlesung Echtzeitsysteme II
|
|
- Leonard Schulze
- vor 5 Jahren
- Abrufe
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 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.
MehrQuiz. 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
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
MehrEchtzeitsysteme. 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
MehrIn 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
MehrWie 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
MehrGrundlagen 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
MehrSchreiben 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
MehrCache 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
MehrGrundlagen 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
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie
MehrProzessorarchitektur. 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
MehrEchtzeitsysteme. Ü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
MehrBeispiele 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
MehrCache-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
MehrVirtueller 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
MehrCache-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
MehrGrundlagen 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
MehrBesprechung 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
MehrAlgorithmische 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.,
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
MehrGrob-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
MehrWeitere 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
MehrEchtzeitsysteme. 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.
MehrSpeicher. 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
MehrDer 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
MehrLö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
MehrTechnische 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
MehrJ. 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)
Ü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
MehrSpeicherorganisation
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
MehrTU 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
MehrBitte 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
MehrRO-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
MehrVirtueller 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
Mehr2.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
MehrAbstrakte 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
MehrBesprechung 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
MehrAusgewä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
MehrInhalt. 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
MehrAnalyse 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
MehrName: 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
MehrCache. 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
MehrCarry 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:
MehrSeminar 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
Mehr7. 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
MehrTechnische 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
MehrKapitel 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.
MehrVorlesung 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
MehrDynamisches 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 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) Wintersemester 2012/13 Jakob Vogel Computer-Aided Medical Procedures Technische Universität München Komplexität von Programmen Laufzeit kann näherungsweise
MehrLö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
MehrTechnische 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
MehrTechnische 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
MehrKü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
MehrKapitel 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
MehrRechnerarchitektur 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
MehrFreispeicherverwaltung 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
MehrAnalyse 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
MehrKapitel 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
MehrProgrammiertechnik 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
MehrParallele Programmiermodelle
Parallele Programmiermodelle ProSeminar: Parallele Programmierung Semester: WS 2012/2013 Dozentin: Margarita Esponda Einleitung - Kurzer Rückblick Flynn'sche Klassifikationsschemata Unterteilung nach Speicherorganissation
MehrRechnerarchitektur 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
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
MehrWahlalgorithmen 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),
MehrTutorium 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
MehrAllgemeine 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
MehrTest-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
MehrAlgorithm 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?
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
MehrBetriebssysteme 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
MehrSysteme 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
Mehr1. 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
Mehr1. Ü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
MehrTechnische 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
Ü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
MehrMemory 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
MehrPaging. 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
MehrKonzepte 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
MehrSoftware 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
MehrOpenCL. 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.,
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
MehrVorlesung 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!
MehrBeispielvortrag: 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
MehrAlgorithmen & 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
MehrInvalidierungs- 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
MehrOptimierungen 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
MehrDatenstrukturen & 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
MehrTutoraufgabe 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
MehrTechnische 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
MehrDynamische 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
MehrModell-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
MehrObjektorientierte 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
MehrLö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
MehrDas 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
MehrSpeicherverwaltung (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
MehrEin 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
MehrEntwurf 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