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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 CPU Bisher: Pipeline mit 5 sequentiellen Pipeline-Stufen Schönes, sauberes, einfaches, schnelles,... Design CPU II 2/

3 CPU Probleme: Befehle der Art pusha, div $3, %r2, %r3 oder add $1, 2, 3 nicht implementierbar Delayed-Branching gewöhnungsbedürftig CISC-ISA kann mit einfachem Pipelining nicht implementiert werden. Z.B. Intel-80x86-Prozessoren arbeiten mit CISC-Anweisungen. Kein Pipelining möglich? CPU II 3/

4 CPU CISC Complex Instruction Set Computer ( CISC ): Befehle unterschiedlicher Bit-Länge Befehle mit komplexen Aktionen Befehle mit komplexen Adressierungsarten wenige Register... CPU II 4/

5 CPU Variable Befehlslänge Problem: Um mit jedem Takt einen Befehl abarbeiten zu können, muss man auch mit jedem Takt einen Befehl holen können... Beispiel: x86-befehle sind 1 bis 16 Bytes lang. CPU II 5/

6 CPU Variable Befehlslänge Überlegen Sie sich, wieviel Bits notwendig/sinnvoll sind, um folgende Befehle zu kodieren: nop je label jmp %r1 add $1, %r2, %r3 add %r2, %r2, %r3 load (%r2), %r3 add $0, %r2, %r2 xor %r2, %r2, %r2 inc %r2 cmp $2, %r5 push %r5 pusha add %r4, 8(%r5) clr label btst $4, label mov %r2, %PDBR CPU II 6/

7 CPU Variable Befehlslänge Müssen maximal N Bytes auf einmal aus dem Speicher/Cache geholt werden können, muss der Bus zum Speicher/Cache mindestens 8N Bits breit sein. Aber: Befehle meist nicht aligned : CPU II 7/

8 CPU Variable Befehlslänge Befehle unterschiedlich lang => Befehle i.a. nicht aligned => Befehle u.u. nicht mit einem Speicherzugriff lesbar => immer zwei Speicherzugriffe gleichzeitig durchführen. ein Cache für die Speicherblöcke mit geraden Nummern ein Cache für die Speicherblöcke mit ungeraden Nummern Hat einer der beiden Caches nicht das Gewünschte => Stall. CPU II 8/

9 CPU Variable Befehlslänge Frage Wie sieht in diesem Fall die Hardware-Struktur mit CPU-Core, Caches und MMU aus? CPU II 9/

10 CPU Variable Befehlslänge Fragen Annahme: die Befehle einer CPU sind maximal 16 Bytes lang. Welchen Speicherblock muss Cache 0 und welchen Cache 1 liefern, wenn der Instruction-Pointer den Wert 0x12345 (0x23456) enthält? Wie kann man aus dem Instruction-Pointer diese zwei Zahlen per Hardware berechnen? CPU II 10/

11 CPU Variable Befehlslänge Frage Was kann passieren, wenn die CPU Code ausführt, der kurz vor dem Ende einer MMU-Page bzw. kurz vor dem Ende des Speichers steht? CPU II 11/

12 CPU Variable Befehlslänge Frage Sind Befehle unterschiedlich lang, wird der Instruction-Pointer nicht immer um 1 erhöht. Überlegen Sie sich, wie die Logik aussehen muss, die den jeweils nächsten Instruction-Pointer-Wert berechnet! CPU II 12/

13 CPU Komplexe Befehle Frage Intel-CPUs kennen z.b. den Befehl inc 4(%eax, %ebx, 8) (der Inhalt der Speicherzelle mit der Nummer 4 + %eax + %ebx 8 wird inkrementiert). Wie müsste eine Pipeline aufgebaut sein, die diesen Befehl abarbeiten kann? CPU II 13/

14 CPU Komplexe Befehle Um komplexe Befehle in einer einfachen Pipeline abarbeiten zu können, kann man diese zerlegen. Beispiel: komplexer Befehl einfachere Befehle inc 4(%eax, %ebx, 8) (Zusätzliche Register notwendig!) lsl $3, %ebx, %tmp0 add %eax, %tmp0, %tmp0 add $4, %tmp0, %tmp0 load (%tmp0), %tmp1 add $1, %tmp1, %tmp1 store %tmp1, (%tmp0) CPU II 14/

15 CPU Komplexe Befehle CISC-Anweisungen werden in der CPU zunächst in RISC-ähnliche Instruktionen zerlegt und der Reihe nach in die Pipeline geschoben. Vorteile: alte CISC-Software bleibt lauffähig neue RISC-Befehle können dem Befehlssatz hinzugefügt werden CPU II 15/

16 CPU Komplexe Befehle Frage Nennen Sie Beispiele für komplexe Befehle und Adressierungsarten und zerlegen Sie sie jeweils in eine Folge von Mikro-Instruktionen! CPU II 16/

17 CPU Komplexe Befehle Frage Wie kann man eine solche Dekodier-Logik in Hardware bauen? CPU II 17/

18 CPU Komplexe Befehle Frage Normalerweise wird auch der Instruction-Pointer mit durch die Pipeline geschoben. Warum? Wie ist es in diesem Fall? CPU II 18/

19 CPU Komplexe Befehle Frage Wie kann man diese Dekodier-Logik nutzen, um die Integer-Multiplikation und -Division zu implementieren? Welche Extra-Hardware ist dafür sinnvollerweise in die ALU zu integrieren? CPU II 19/

20 CPU Delayed Branching Delayed Branching gewöhnungsbedürftig für Assembler-Programmierer schwierig mit Compilern auszunutzen lange (=> schnelle) Pipelines ergeben viele Delay-Slots Änderungen in der Pipeline können ISA ändern (# Delay-Slots) i.a. nur wenige Delay-Slots vom Programmier/Compiler nutzbar inkompatibel mit alten ISAs => Sprungvorhersage / Branch Prediction CPU II 20/

21 CPU Branch Prediction Beobachtung: viele Branch-Befehle verzweigen in den allermeisten Fällen immer in eine bestimmte Richtung z.b: Schleifen-Branch-Befehle verzweigen meist zurück zum Anfang der Schleife beim Suchen in Datenstrukturen fällt der gefunden? -Test meist negativ aus unbedingte Sprünge und Unterprogrammaufrufe verzweigen immer Ausnutzen durch Branch Prediction CPU II 21/

22 CPU Branch Prediction Branch Prediction lässt sich unterteilen in Wired Taken / Not-Taken Prediction: Hart-codierte Information für den Prozessor, dass er immer / nie annehmen soll, dass verzweigen wird Direction Based Prediction: bei Rückwärtssprüngen wird angenommen, dass sie ausgeführt werden; bei Sprüngen nach vorn nicht Static Branch Prediction: ein Bit im Opcode des Sprungbefehls zeigt der CPU, ob vermutlich/vermutlich nicht verzweigt werden wird (Software-Lösung) Dynamic Branch Prediction: die CPU führt Branch-Instruktionen aus und merkt sich für die jeweils N letzten, ob sie dort die M letzten Male verzweigt hat oder nicht (Hardware-Lösung) CPU II 22/

23 CPU Branch Prediction Frage Überlegen Sie sich genau, wo die Informationen, ob gesprungen werden soll, herkommen! CPU II 23/

24 CPU Branch Prediction Static Branch Prediction vom Compiler durchgeführt Wissen stammt aus der Code-Analyse von Hinweisen des Programmierers aus Profiling-Informationen früherer Läufe des Programms CPU II 24/

25 CPU Branch Prediction Ist N nicht 0, wird ein Cache benötigt, der sich die letzten N Sprungbefehle merkt: Branch Target Address Cache BTAC Befehlsadresse Zieladresse Prediction Bits CPU II 25/

26 CPU Branch Prediction Funktionsweise Branch Target Address Cache: die IF-Stage vergleicht den IP mit den Befehlsadressen im BTAC wenn der aktuelle IP mit einer Befehlsadresse im BTAC übereinstimmt, wird im Falle eines jmp-befehls die Zieladresse direkt in den IP geschrieben wird im Falle eines bedingten Sprunges die Vorhersage aus den Prediction Bits gewonnen lautet die Vorhersage Branch taken, wird die Zieladresse in den IP geschrieben CPU II 26/

27 CPU Branch Prediction Branch Target Address Cache: falsche Vorhersagen können auftreten wenn die Branch-Instruktion die MEM-Stage durchlaufen hat, ist das richtige Ergebnis bekannt => BTAC updaten => gegebenenfalls fälschlicherweise begonnene Instruktionen abbrechen CPU II 27/

28 CPU Branch Prediction Frage Wie muss die Hardware für eine Sprungvorhersage für eine Pipeline aussehen? CPU II 28/

29 CPU Branch Prediction Fragen Wie kann man den BTAC sinnvoll initialisieren? Wie ist bei einem Kontext-Wechsel zu verfahren? CPU II 29/

30 CPU Branch Prediction Branch Target Address Cache: lautet die Vorhersage Branch not taken, kann Eintrag im BTAC entfallen => BTAC kleiner ändert die Hardware die Prediction Bits auf Grund von neuen Erfahrungen, spricht man von Dynamic Branch Prediction CPU II 30/

31 CPU Branch Prediction Branch Target Address Cache: im Falle der Dynamic Branch Prediction können Einträge im BTAC, die auf Branch Not Taken lauten, entfallen (=> bessere Ausnutzung des BTAC) wenn sich die Vorhersage jedoch auf Branch Taken ändert, muss Zieladresse neu berechnet werden CPU II 31/

32 CPU Branch Prediction Ein BTAC kann erweitert werden zum BTB oder BTC: Branch Target Buffer oder Branch Target Cache in dem die Zielinstruktion(en) zusätzlich gespeichert werden (sogenanntes Branch Folding ) CPU II 32/

33 CPU Branch Prediction Vorteile des Branch Target Buffer: wenn die Zielinstruktion(en) vom BTB geholt werden, bleibt mehr Zeit, um im BTB zu suchen (=> BTB kann größer werden) wenn die Zielinstruktion im BTB vorhanden ist, kann sie anstatt des jmp- bzw. Branch-Befehls in die Pipeline geschoben werden CPU II 33/

34 CPU Branch Prediction 1-Bit-Vorhersage: CPU II 34/

35 CPU Branch Prediction Frage Bewerten Sie die 1-Bit-Vorhersage! (Denken Sie an Schleifen, If-Then-Else-Konstrukte, Rekursion,...!) CPU II 35/

36 CPU Branch Prediction Performance der Branch Prediction hängt ab von Qualität der Sprungvorhersage Kosten im Falle falscher Vorhersagen Qualität der Sprungvorhersage kann durch bessere Branch Prediction verbessert werden Kosten im Falle falscher Vorhersagen abhängig von Pipeline-Länge Pipeline-Organisation der Weise, wie fälschlicherweise begonnene Instruktionen abgebrochen werden können... CPU II 36/

37 CPU Branch Prediction Kosten sind typischerweise hoch z.b.: Alpha 21264: 4 bis 9 Taktzyklen Pentium II: 11 oder mehr Taktzyklen CPU II 37/

38 CPU Branch Prediction Frage Wovon hängen die Kosten der falschen Vorhersage ab? CPU II 38/

39 CPU Branch Prediction 2-Bit-Vorhersage: Saturation Counter Schema: UltraSPARC Schema: CPU II 39/

40 CPU Branch Prediction Frage Bewerten Sie die zwei 2-Bit-Vorhersagen! CPU II 40/

41 CPU Branch Prediction Frage Wie groß ist der Speedup einer 10-stufigen Pipeline mit Sprungvorhersage, die im Falle von Sprüngen mit 90% Wahrscheinlichkeit richtig vorhersagt? Annahme: Etwa jeder 5. Befehl ist ein Sprung. CPU II 41/

42 CPU Branch Prediction Frage Welche Effekte können z.b. bei sehr kurzen Schleifen auftreten? (Bedenken Sie, wann Sprünge im BTAC ein- bzw. ausgetragen werden!) CPU II 42/

43 CPU Branch Prediction Fragen Wie könnte ein BTAC aufgebaut sein? Was wäre der Key, nach dem im Cache gesucht wird? Welche Art Cache wäre sinnvoll? CPU II 43/

44 CPU Branch Prediction Alternative: nur die letzten N Sprünge ansehen (unabhängig von ihrem Speicherort): Global History Beispiel: for (i = 0; i < N; i++) { if (array[i] == key) { break; } } Inhalt der Global History könnte im Beispiel sein: : if-bedingung schlägt meist fehl 1: umgebende Schleife springt immer wieder zum Schleifenanfang CPU II 44/

45 CPU Branch Prediction for (i = 0; i < 1000; i++) { for (j = 0; j < 3; j++) {... } } Sprungvorhersage mit Global History lernt hier z.b., dass beim Inhalt eine 0 folgen wird (nach 3 Durchläufen durch die innere Schleife wird diese abgebrochen), dass beim Inhalt eine 1 folgen wird (nach Abbruch der inneren Schleife wird äußere wiederholt) Funktioniert solange, wie die Anzahl der Schleifendurchläufe durch die innere Schleife kleiner ist als die Global History. CPU II 45/

46 CPU Branch Prediction Fragen Was wäre hier der Key, nach dem im Cache gesucht wird? Wann ist ein Per Address History Cache und wann ist ein Global History Cache besser? Ist eine Kombination von Per Address History Cache und Global History Cache möglich? CPU II 46/

47 CPU Interrupts Treten externe Events auf (z.b. Taste wurde gedrückt, Platte hat angeforderten Block gelesen,...), muss CPU darauf reagieren (Tastatur abfragen, Block auslesen,...). => Interrupts CPU II 47/

48 CPU Interrupts Frage Könnte man auch ohne Interrupts mit externen Geräten arbeiten? CPU II 48/

49 CPU Interrupts Idee Interrupt: Tritt Interrupt auf (IRQ-Input der CPU ist 1 )) speichert CPU ihren aktuellen Zustand auf dem Stack ab (ihre Register inkl. IP und Flags); disabled die CPU weitere Interrupts lädt die CPU in ihren Instruction Pointer einen neuen Wert Das laufende Unterprogramm ( Interrupt-Handler ) muss nun den Grund für den Interrupt beseitigen (z.b. Tastatur auslesen, Block von Platte abholen,...). Danach ruft es iret auf. Um iret auszuführen, werden die alten Register-Werte wieder vom Stack zurückgeladen. CPU II 49/

50 CPU Interrupts Frage Wie kann die CPU weitere Interrupts disablen? CPU II 50/

51 CPU Interrupts Frage Was macht Interrupts beim Pipelining so schwierig? CPU II 51/

52 CPU Interrupts/Exceptions/System-Calls Der Ablauf von Exceptions entspricht dem Ablauf von Interrupts ( interne Interrupts ). Der Ablauf von System-Calls entspricht dem Ablauf von Exceptions ( gewollte Exceptions ). CPU II 52/

53 CPU Interrupts/Exceptions/System-Calls beim Auftreten von Exceptions, Interrupts und System-Calls werden keine neuen Instruktionen mehr angestoßen gewartet, bis alle Instruktionen abgeschlossen sind erst dann wird die Exception-, Interrupt- oder System-Call- Behandlung begonnen => Exceptions, Interrupts, System-Calls sind teuer CPU II 53/

54 CPU Precise und Imprecise Interrupts Precise Interrupt: der beim Precise Interrupt gespeicherte Zustand (meist auf dem Stack) entspricht dem Zustand des Prozessors zum Zeitpunkt des Interrupts im seriellen Modell (eine Instruktion ist abgearbeitet, bevor eine neue gestartet wird) CPU II 54/

55 CPU Precise und Imprecise Interrupts Precise Interrupt: Wenn eine Instruktion eine Exception oder einen System-Call auslöst, müssen alle vorangegangenen Instruktionen abgeschlossen sein, und keine der nachfolgenden darf ausgeführt worden sein. CPU II 55/

56 CPU Precise und Imprecise Interrupts Behandlung der Interrupts/Exceptions/System-Calls wie Delayed Branching gibt Probleme: zu speichernder Zustand besteht aus mehr Infos als den in der ISA angegebenen Registern; Zustand notwendig, um unterbrochene Instruktion nachträglich wiederholen zu können beim Weiterarbeiten nach der ersten Exception können weitere Exceptions/Interrupts/System-Calls auftreten CPU II 56/

57 CPU Precise und Imprecise Interrupts Frage Überlegen Sie sich ein Szenario, bei dem nach einer Exception weitere auftreten! CPU II 57/

58 CPU Precise und Imprecise Interrupts Wiederholen von Instruktionen (kompletter Zustand nötig) u.u. nicht notwendig es reichen weniger Information um die Auswirkung einer Instruktion nachzuholen => Imprecise Interrupts CPU II 58/

59 CPU Precise und Imprecise Interrupts Imprecise Interrupts werden eine gewisse Zeit nach dem Auftreten der Exception, des Interrupts, des System-Calls über Delayed Branching angestoßen. Der Exception-, Interrupt-, oder System-Call-Handler bekommt in speziellen Registern Zusatzinformationen über die Instruktion, die sich zum Zeitpunkt der Exception, des Interrupts oder System-Calls in Abarbeitung befunden hat. CPU II 59/

60 CPU Precise und Imprecise Interrupts Beispiel (Motorola M88100): Beim Page-Fault (Schreibzugriff) werden die virtuelle Adresse, das zu schreibende Datum in speziellen Registern gespeichert. Danach erfolgt der Aufruf des Page-Fault-Handlers mit delayed Branching. Page-Fault-Handler kann dann z.b. die Seite von Platte nachladen und den Schreibzugriff nachholen. CPU II 60/

61 CPU Multitasking Mehrere Prozesse sollen (fast) gleichzeitig auf einem Rechner ablaufen. Prozessläufe sollen voneinander unabhängig sein: CPU wird von den Prozessen abwechselnd genutzt Prozesse nutzen verschiedene I/O-Geräte Prozesse nutzen verschiedene Speicherbereiche Prozessläufe sollen koordinierbar sein: Prozesse nutzen gemeinsame Speicherbereiche CPU II 61/

62 CPU Multitasking Prozesse oder können freiwillig kooperieren Hardware kann dies durch nachfolgende Erweiterungen erzwingen: Nutzung der CPU: Hardware verhindert zu lange Nutzung der CPU durch einen Prozess I/O-Koordinierung: Hardware verhindert direkten I/O-Zugriff Speicherschutz: Hardware verhindert Lese-/Schreib-Zugriff auf fremde Speicherbereiche CPU II 62/

63 CPU Multitasking Probleme (Beispiele): Prozesse müssen auf I/O-Geräte zugreifen können beim Starten oder Terminieren von Prozessen muss auf fremde Speicherbereiche zugegriffen werden können beim Allozieren neuen Speichers muss der Speicherschutz geändert werden... Je nach Sicherheitsstrategie ist manches erlaubt, manches nicht: Wenn der Prozess vorher eine Datei geöffnet hat, dann darf er im weiteren Verlauf auf die zugehörigen Blöcke der Festplatte zugreifen... Wenn der Prozess vorher Speicher alloziert hat, dann darf er auf den Speicher zugreifen Sicherheitsstrategie ist Programm! CPU II 63/

64 CPU Multitasking Dieses Strategie-Programm (Betriebssystem) muss den laufenden Prozessen Rechte geben bzw. entziehen können oder für die Prozesse Aktionen durchführen Hardware-Lösung: Die CPU führt bestimmte (priviligierte) Instruktionen nur dann aus, wenn sie in einem bestimmten (priviligierten) Zustand ist. Zustands-/Priviligierungswechsel nur über Interrupts, Exceptions und System-Calls sowie per iret. CPU II 64/

65 CPU Multitasking Da Interrupt-, Exception- und System-Call-Handler jetzt priviligiert ablaufen, dürfen die Interrupt-, Exception- und System-Call-Vektoren im User-Modus nicht modifiziert werden können. Dies kann erreicht werden, indem die Interrupt-, Exception- und System-Call-Vektor-Tabelle im Speicher liegt und dieser im User-Modus nicht zugänglich ist (ähnlich den Speicherbereichen anderer Prozesse). CPU II 65/

66 CPU Multitasking CPU wird abwechselnd von allen Prozessen verwendet. Prinzip: f o r e v e r { Load r e g i s t e r s o f p r o c e s s #1 Do some work... Save r e g i s t e r s o f p r o c e s s #1 Load r e g i s t e r s o f p r o c e s s #2 Do some work... Save r e g i s t e r s o f p r o c e s s #2... Load r e g i s t e r s o f p r o c e s s #N Do some work... Save r e g i s t e r s o f p r o c e s s #N } CPU II 66/

67 CPU Multitasking Endlosschleife läßt sich umschreiben: Load r e g i s t e r s o f p r o c e s s #1 f o r e v e r { Do some work... Save r e g i s t e r s o f p r o c e s s #N Load r e g i s t e r s o f p r o c e s s #N+1 } Load r e g i s t e r s o f p r o c e s s #1 entspricht Initialisierung des Rechners nach Einschalten Save r e g i s t e r s o f p r o c e s s #N Load r e g i s t e r s o f p r o c e s s #N+1 kann zusammengefasst werden zu sogenannter schedule-prozedur. CPU II 67/

68 CPU Multitasking I n i t i a l i s i e r u n g f o r e v e r { Do some work... s c h e d u l e ( ) ; } Problem: oder Do some work... muss immer wieder terminieren schedule muss immer wieder aufgerufen werden. CPU II 68/

69 CPU Multitasking Unterbrechen/Abrechen eines Programm-Stücks über (Timer-) Interrupts möglich ( preemptive scheduling ). t i m e r _ h a n d l e r : / Save r e g s o f c u r r e n t p r o c e s s. / p u s h l %eax ; p u s h l %ebx ;... ; p u s h l %e s i movl c u r r e n t, %eax movl %esp, (%eax ) / C a l c u l a t e next p r o c e s s. /... movl..., c u r r e n t / Load r e g s o f next p r o c e s s. / movl c u r r e n t, %eax movl (%eax ), %esp p opl %e s i ;... ; p o p l %ebx ; p o p l %eax i r e t CPU II 69/

70 CPU Multitasking Programm im User-Modus darf Interrupts nicht verhindern können => Nutzung der Befehle cli popfw, popfl im User-Modus nicht erlaubt (=> Exception) bzw. ohne Auswirkung auf Interrupt-Enable-Bit. => User-Programm hat keine Möglichkeit Unterbrechungen zu verhindern => User-Programme von Multi-User-Systemen i.a. nicht Realzeit-fähig CPU II 70/

71 CPU Multitasking Prozess im User-Modus darf i.a. nicht direkt auf I/O-Geräte zugreifen => Nutzung der Befehle inb, inw, inl outb, outw, outl im User-Modus nicht erlaubt (=> Exception). => Ein-/Ausgabe i.a. nur über System-Calls möglich CPU II 71/

72 CPU Multitasking Prozess im User-Modus darf nicht auf fremde Speicherbereiche zugreifen => Nutzung der Befehle call, ret movb, movw, movl addb, addw, addl subb, subw, subl... im User-Modus nicht erlaubt?!? Diese Lösung ist nicht sinnvoll, da nahezu alle wichtigen Befehle im User-Modus damit unzulässig wären. => Zugriff durch die Hardware auf bestimmte Speicherbereiche beschränken CPU II 72/

73 CPU Multitasking Zugriff durch die Hardware auf bestimmte Speicherbereiche beschränken Möglich über MMU mit Page-Tabellen mit Present-Bits. CPU II 73/

74 CPU Multitasking CPU II 74/

75 CPU Threading Bis das Ergebnis einer Berechnung aus einer Pipeline herauskommt, vergehen soviele Takte, wie die Pipeline lang ist. Solange muss man warten (Zeitaufwand), oder entsprechende Hardware für Forwarding und Sprungvorhersage vorsehen (Hardware-Aufwand) Eine andere Idee wäre, in der Wartezeit andere unabhängige Instruktionen in die Pipeline zu schieben. Instruktionen anderer Threads sind unabhängig! CPU II 75/

76 CPU Threading CPU II 76/

77 CPU Threading Frage Was sind die Vor- bzw. Nachteile dieses Verfahrens? Wann nützt mir diese CPU viel? Wann nützt sie wenig? CPU II 77/

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Just-In-Time-Compiler (2) 1/13 2011-09-12 Just-In-Time-Compiler

Mehr

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

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Multiprozessoren 1/29 2011-06-16 Multiprozessoren Leistungsfähigkeit

Mehr

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

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU 1/62 2012-02-29 CPU Übersicht: Pipeline-Aufbau Pipeline- Hazards CPU

Mehr

Just-In-Time-Compiler (2)

Just-In-Time-Compiler (2) Just-In-Time-Compiler (2) Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2015/2016 V. Sieh Just-In-Time-Compiler

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

Assembler - Einleitung

Assembler - Einleitung Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache

Mehr

"Organisation und Technologie von Rechensystemen 4"

Organisation und Technologie von Rechensystemen 4 Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Assembler Integer-Arithmetik

Assembler Integer-Arithmetik Assembler Integer-Arithmetik Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Integer-Arithmetik 1/23 2008-04-01 Arithmetik

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

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

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

Name: ES2 Klausur Thema: ARM Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Hinweise C-Programmierung

Hinweise C-Programmierung Hinweise C-Programmierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2016/2017 V. Sieh Hinweise C-Programmierung

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

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

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 II. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Cache II. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache II Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Cache II 1/14 2012-02-29 Schreibstrategien Es sind verschiedene Fälle

Mehr

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Aufgabe 1 Entwicklung einer Virtuellen Maschine Aufgabe 1 Entwicklung einer Virtuellen Maschine Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Entwicklung

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17

1 Maschinenunabhängige Optimierungen. Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17 1 Maschinenunabhängige Optimierungen Maschinenunabhängige Optimierungen Wintersemester 2008/09 1 / 17 Optimierungen Automatische Optimierungen sind nötig, weil unoptimierter Code meist besser lesbar ist.

Mehr

Assembler-Programmierung

Assembler-Programmierung Assembler-Programmierung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 Assembler-Programmierung 1/48 2012-02-29 Assembler-Programmierung

Mehr

Assembler Unterprogramme

Assembler Unterprogramme Assembler Unterprogramme Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Unterprogramme 1/43 2008-06-03 Unterprogramme

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

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

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

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Was ist die Performance Ratio?

Was ist die Performance Ratio? Was ist die Performance Ratio? Wie eben gezeigt wäre für k Pipeline Stufen und eine große Zahl an ausgeführten Instruktionen die Performance Ratio gleich k, wenn jede Pipeline Stufe dieselbe Zeit beanspruchen

Mehr

Assembler Kontrollstrukturen

Assembler Kontrollstrukturen Assembler Kontrollstrukturen Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Kontrollstrukturen 1/21 2008-04-03 Kontrollstrukturen

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

Shangrila. One Instruction Set Computer

Shangrila. One Instruction Set Computer Shangrila One Instruction Set Computer Outline One Instruction Set Computer Die Idee Funktion Die Machine Shangrila VM Interfaces Tools Implementation Status & Zukunft OISC >> Die Idee CPU mit nur einer

Mehr

Computer-Architektur Ein Überblick

Computer-Architektur Ein Überblick Computer-Architektur Ein Überblick Johann Blieberger Institut für Rechnergestützte Automation Computer-Architektur Ein Überblick p.1/27 Computer-Aufbau: Motherboard Computer-Architektur Ein Überblick p.2/27

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

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

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04. Kontrollstrukturen Informatik II SS 2004 Teil 4: Assembler Programmierung Sprünge (bedingte und unbedingte) If-then-else, Case Loop (n Durchläufe) While (Abbruchbedingung) Institut für Informatik Prof.

Mehr

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform. BS-V Betriebssysteme SS 2015 Dipl.-Math., Dipl.-Inform. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls v1.0, 2015/05/28 (klassische Dokumentation) Folie V-1 Übersicht: BS Praxis und BS Theorie

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

Hardware-basierte Virtualisierung

Hardware-basierte Virtualisierung Hardware-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2011/2012 Hardware-basierte Virtualisierung 1/22

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

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung

Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung Konzepte von Betriebssystem- Komponenten Ausnahme- / Unterbrechungsbehandlung Sommersemester 2005 Uni Erlangen Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebsysteme Tarek Gasmi Tarek.Gasmi@informatik.stud.uni-erlangen.de

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 4 Prozesse Wolfram Burgard Version 18.11.2015 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

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

Hardware-basierte Virtualisierung

Hardware-basierte Virtualisierung Hardware-basierte Virtualisierung Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 V. Sieh Hardware-basierte

Mehr

Rechnerorganisation. Überblick über den Teil 13

Rechnerorganisation. Überblick über den Teil 13 Rechnerorganisation Teil 3 9. Juni 2 KC Posch Überblick über den Teil 3 Arbiter: Wie können sich 2 aktive Partner vertragen? Direkter Speicherzugriff: Ein Ko Prozessor zum Daten Schaufeln Die Verbesserung

Mehr

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Busse Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 Busse 1/40 2008-10-13 Übersicht 1 Einleitung 2 Bus-Konfiguration

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45 Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45 Single Cycle Performance Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen folgende Ausführungszeiten:

Mehr

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

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

9.1. Aufbau einer Befehlspipeline

9.1. Aufbau einer Befehlspipeline Kapitel 9 - Befehlspipelining Seite 191 Kapitel 9 Befehlspipelining 9.1. Aufbau einer Befehlspipeline Ein typischer Befehl in einer Maschine mit einem RISC-artigen Befehlssatz besteht aus den Operationen:

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

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

Legen Sie den Ausweis (mit Lichtbild!) griffbereit auf den Platz! Dieses Aufgabenheft umfasst 24 Seiten. Überprüfen Sie die Vollständigkeit! Department Informatik Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Martensstraße 3, 91058 Erlangen 25.09.2013 Klausur zu Grundlagen der Rechnerarchitektur

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.) ARM: Befehlssatz (Forts.) Befehl SWI zum Auslösen eines Software-Interrupts: Instruktionsformat: Ausführung von SWI überführt CPU in den supervisor mode (nach Retten des PC in r14_svc und des CPSR in SPSR_svc)

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Vorlesung 5: Interrupts

Vorlesung 5: Interrupts Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme Vorlesung 5: Interrupts Peter B. Ladkin Kommunikation über den Bus CPU läuft zu einer Taktfrequenz I/O Geräte laufen zu anderen

Mehr

4. Übung - Rechnerarchitektur/Betriebssysteme

4. Übung - Rechnerarchitektur/Betriebssysteme 4. Übung - Rechnerarchitektur/Betriebssysteme 1. Aufgabe: Caching Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen a) Was ist ein Cache? Wann kommt Caching zum Einsatz? b) Welchen Vorteil

Mehr

i386 Interrupt-Deskriptortabelle (IDT)

i386 Interrupt-Deskriptortabelle (IDT) Agenda: IRQ-Behandlung in OO-Stubs Interrupts und Traps bei x86 Die Interrupt-Deskriptor-Tabelle (IDT) Aufbau der IDT Traps und Hardware IRQs Der Programmierbare Interruptcontroller PIC 8295A Aufbau Verwendung

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

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

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Interruptbehandlung in OOStuBS Wanja Hofer Lehrstuhl für Informatik IV WS 07/08 1 Agenda: IRQ-Behandlung in OOStuBS Interrupts und Traps beim x86 Die Interrupt-Deskriptor-Tabelle

Mehr

Computational Engineering I

Computational Engineering I DEPARTMENT INFORMATIK Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg Martensstraße 3, 91058 Erlangen 25.01.2016 Probeklausur zu Computational Engineering

Mehr

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß? Kontrollflüsse Einführung 1 Motivation Kontrollfluß Anwendung logischer Adreßraum Kontrollfluß (Thread) = führt Instruktionen aus Was charakterisiert einen Kontrollfluß? Programmzähler Registerinhalte

Mehr

Neue Prozessor-Architekturen für Desktop-PC

Neue Prozessor-Architekturen für Desktop-PC Neue Prozessor-Architekturen für Desktop-PC Bernd Däne Technische Universität Ilmenau Fakultät I/A - Institut TTI Postfach 100565, D-98684 Ilmenau Tel. 0-3677-69-1433 bdaene@theoinf.tu-ilmenau.de http://www.theoinf.tu-ilmenau.de/ra1/

Mehr

Geräteentwurf mit Mikroprozessoren 1

Geräteentwurf mit Mikroprozessoren 1 Geräteentwurf mit Mikroprozessoren 1 Vorlesung am Institut für Elektronik der TU Graz Dipl.-Ing. Dr. Gerhard Stöckler SS 2003 Vorausgesetzte Kenntnisse: Grundlagen der Digitaltechnik Binäre Informationsdarstellung

Mehr

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion) Auch hier wieder Aus voriger Wahrheitstabelle lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem Control Symbol abstrakt darstellen. Instruction[31 26] (also:

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

Zusammenfassung der Assemblerbefehle des 8051

Zusammenfassung der Assemblerbefehle des 8051 Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 7 Prozesse und Threads Lothar Thiele Computer Engineering and Networks Laboratory Betriebssystem 7 2 7 3 Betriebssystem Anwendung Anwendung Anwendung Systemaufruf (syscall) Betriebssystem

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 5. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la

Mehr

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

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining Themen heute Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining Organisatorisches Wie schon in den vorhergehenden Tutorien erwähnt, ist Mehrfachabgabe, außer bei Programmieraufgaben,

Mehr

Kapitel 11 RISC-Rechner

Kapitel 11 RISC-Rechner Kapitel 11 - RISC-Rechner Seite 219 Kapitel 11 RISC-Rechner (reduced instruction set computer, RISC) 11.1. Einleitung In den Achtzigerjahren änderten sich die Randbedingungen für Rechner: Hardware wurde

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren 5. Oktober 2008 1 Grundlagen 2 SWEB 3 Kernel Basics Memory Management Details 4 Userspace 5 Hacking 6 Beispiele 7 Assignment 0 Aufgaben eines Betriebssystems

Mehr

Hinweise 80x86-Architektur

Hinweise 80x86-Architektur Hinweise 80x86-Architektur Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Hinweise 80x86-Architektur

Mehr

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

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

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Rechnerarchitektur Aufgabe

Mehr

Arbeitsfolien - Teil 4 CISC und RISC

Arbeitsfolien - Teil 4 CISC und RISC Vorlesung Informationstechnische Systeme zur Signal- und Wissensverarbeitung PD Dr.-Ing. Gerhard Staude Arbeitsfolien - Teil 4 CISC und RISC Institut für Informationstechnik Fakultät für Elektrotechnik

Mehr

Tag 3 Repetitorium Informatik (Java)

Tag 3 Repetitorium Informatik (Java) Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung

Mehr

Grundlagen Rechnerarchitektur und Betriebssysteme

Grundlagen Rechnerarchitektur und Betriebssysteme Grundlagen Rechnerarchitektur und Betriebssysteme Johannes Formann Definition Computer: Eine Funktionseinheit zur Verarbeitung von Daten, wobei als Verarbeitung die Durchführung mathematischer, umformender,

Mehr

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Betriebssystembau 3. Übung Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund michael.engel@tu-dortmund.de http://ess.cs.uni-dortmund.de/~me/ 1 Agenda: IRQ-Behandlung

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013. Vorlesung 9, Dienstag 18. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2012 / 2013 Vorlesung 9, Dienstag 18. Dezember 2012 (Performance Tuning, Profiling, Maschinencode) Prof. Dr.

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 13.11.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Daniel Betz Wintersemester 2011/12

Daniel Betz Wintersemester 2011/12 Daniel Betz Wintersemester 2011/12 Digitally signed by daniel.betz@daniel-betz.com Date: 2011.12.04 17:24:40 +01'00' Insgesamt 16 Register von je 16 Bit (=WORD) Breite Untere 8 Register auch als 2 Register

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion

Betriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

Mehr

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

x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 x86 Assembler Praktische Einführung Sebastian Lackner Michael Müller 3. Juni 2013 1 / 53 Inhaltsverzeichnis 1 Einführung 2 Assembler Syntax, Register und Flags 3 Hauptspeicher 4 Stack 5 Assemblerbefehle

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

Instruktionen pro Takt

Instruktionen pro Takt (c) Peter Sturm, Universität Trier (u.a.) 1 Instruktionen pro Takt 500 MIPS (Dhrystone) Taktfrequenz 450 400 350 300 250 200 150 100 50 0 8086 80286 80386 80486 Pentium Pentium Pro Die-Größen: Intel Vorlesung

Mehr

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Betriebssysteme. Tutorium 2. Philipp Kirchhofer Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 4. November 2009 Philipp

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 21.11.2012 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Testat nach Weihnachten Mittwoch

Mehr

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen

Mehr

früher: CISC ( Complex Instruction Set Computer )

früher: CISC ( Complex Instruction Set Computer ) Hochleistungs-CPUs früher: CISC ( Complex Instruction Set Computer ) mächtige Instruktionssätze zur Unterstützung von Hochsprachenkonstrukten durch Hardware (Idee: don t do in software what you can do

Mehr

8. Beschreibung des Prozessors MSP 430

8. Beschreibung des Prozessors MSP 430 8. Beschreibung des Prozessors MSP 430 8.1 Die Eigenschaften des MSP 430 8.2 Die Register des MSP 430 8.3 Der Aufbau des Speichers 8.4 Interrupts 8.5 Der Watchdog Programmierkurs II Wolfgang Effelsberg

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr