4. Mikroprogrammierung 4a - 1

Größe: px
Ab Seite anzeigen:

Download "4. Mikroprogrammierung 4a - 1"

Transkript

1 4. Mikroprogrammierung 4.1 Motivation 4.2 Eine einfache Mikroarchitektur 4.3 Die Integer Java Virtual Machine und der Stack 4.4 Die Mikroprogrammiersprache MAL 4.5 Optimierung der Mikroarchitektur 4. Mikroprogrammierung 4a - 1

2 4.1 Motivation Die Aufgabe des Mikroprogramms ist das Ausführen der Maschinenbefehle der ISA-Ebene (Instruction Set Architecture) in Hardware. Das Mikroprogramm verwendet die Ebene der digitalen Logik (die Gatter-Schaltwerke und Schaltnetze und die Register) der digitalen Logik direkt. Es handelt sich also sozusagen um einen Hardware-Interpreter für Maschinenbefehle. Je nach Komplexität der Maschinenbefehle kann die Mikroarchitektur eines Mikroprozessors sehr einfach oder sehr aufwändig sein 4. Mikroprogrammierung 4a - 2

3 4.2 Eine einfache Mikroarchitektur Als Beispiel entwickeln wir eine Mikroarchitektur, die JVM-Befehle in Hardware ausführen kann. Dabei beschränken wir uns auf Integer-Operationen. Wir nennen sie IJVM (Integer Java Virtual Machine). Stufe 4 Stufe 3 Assembler Betriebssystemmaschine Stufe 2 ISA (Instruktionssatz-Architektur) Stufe 1 Mikroarchitektur Stufe 0 Digitale Logik (Gatter, Register) 4. Mikroprogrammierung 4a - 3

4 Das Prinzip der IJVM In einer Endlosschleife: Hole den nächsten IJVM Befehl. Führe den IJVM Befehl durch ein kleines Mikroprogramm aus Ein Mikroprogramm besteht aus Mikroinstruktionen. Eine Mikroinstruktion ist eine Folge von Bits. Die Bits beschreiben den Zustand von Schaltern auf der Ebene der digitalen Logik: ein (1) aus (0) Eine Mikroinstruktion wird in einem Maschinenzyklus ausgeführt. 4. Mikroprogrammierung 4a - 4

5 Der Datenpfad der IJVM (1) 1. Register (alle 32 Bits breit, bis auf MBR): Speicherzugriff: MDR: Memory Data Register MAR: Memory Address Register PC: Program Counter MBR (8 Bit): Memory Buffer Register SP: Stack Pointer LV: Local Variables CPP: Constant Pool Pointer TOS: Top Of Stack OPC: Offset Program Counter H: Help register 4. Mikroprogrammierung 4a - 5

6 Datenpfad der IJVM (2) 2. Zwei Busse: Bus B: Inhalt eines Registers auf den B-Eingang der ALU legen Bus C: Ergebnis einer ALU-Operation auf die Eingänge (fast) aller Register legen 3. ALU (Arithmetic and Logic Unit, Rechenwerk): sechs Eingangssignale zum Steuern der ALU-Operation Das Ergebnis geht an den Shifter und zwei Signale N und Z als Aus-gänge 4. Shifter: modifiziert das Ergebnis durch Shifting Steuerung mit zwei Signalen 4. Mikroprogrammierung 4a - 6

7 Zugriff auf die Register Auslesen ( Register auf den Bus B legen ): Kontrollsignal anlegen Besonderheiten: MAR wird für den Speicherzugriff verwendet und kann nicht auf B gelegt werden MBR behandeln wir später (zusätzliches Kontrollsignal) H wird automatisch auf den A-Eingang der ALU gelegt Speichern ( Register vom C-Bus laden ) Kontrollsignal anlegen Besonderheiten: MDR kann aus dem Speicher oder von C aus geladen werden MBR wird immer aus dem Speicher geladen 4. Mikroprogrammierung 4a - 7

8 Die Arithmetic Logic Unit (ALU) Wir verwenden die folgende (stark vereinfachte) ALU: hier: Logik für ein Bit. Die ALU entsteht durch Verketten von 32 dieser Schaltungen! 4. Mikroprogrammierung 4a - 8

9 Steuerung der ALU Increment = Carry in Bit 0 auf 1 setzen! 4. Mikroprogrammierung 4a - 9

10 Shifter Ermöglicht eine Manipulation der ALU Ausgabe: Zwei Signale ( 8 SLL8 (Shift Left Logical verschiebe alle Bits um 8 Stellen nach links fülle untere 8 Bits mit 0 auf SRA (Shift Right Arithmetic 1) verschiebe alle Bits um 1 Stelle nach rechts verändere das höchstwertige Bit nicht 4. Mikroprogrammierung 4a - 10

11 Zeitlicher Ablauf einer Mikroinstruktion (ein Zyklus) Wie kann man innerhalb einer Mikroinstruktion dasselbe Register lesen und schreiben? 4. Mikroprogrammierung 4a - 11

12 Speicherzugriff auf Daten (1) per MAR/MDR Immer ein Wort gleichzeitig (= 4 Byte) MAR enthält die Adresse MDR enthält den Inhalt Beispiel: MAR = 2 dann enthält MDR die Bytes 8-11 Realisierung des MAR in Hardware: 4. Mikroprogrammierung 4a - 12

13 Speicherzugriff auf Daten (2) Speichern: lade MAR mit der Speicher-Adresse (erster Zyklus) lade MDR mit dem Inhalt, signalisiere, dass gespeichert werden soll (zweiter Zyklus) Die Daten sind am Ende des dritten Zyklus im Speicher, MDR darf im dritten Zyklus wieder verwendet werden! Lesen: lade MAR mit der Speicher-Adresse, signalisiere, dass geladen werden soll ( Zyklus.1) Ergebnis liegt ab Ende 2. Zyklus im MDR, ursprünglicher Inhalt des MDR kann im 2. Zyklus noch verwendet werden im 2. Zyklus darf nicht vom C Bus ins MDR geschrieben werden 4. Mikroprogrammierung 4a - 13

14 Speicherzugriff auf Maschinenbefehle (ISA-Instruktionen) per PC/MBR byteweise MBR wird zur Ansteuerung des Mikroprogramms für diesen Maschinenbefehl (diese ISA-Instruktion) verwendet (später dazu mehr) Speichern gibt es nicht! Lesen analog zum Lesen von Daten nur ein Byte FETCH-Signal zum Ansteuern Bei allen Speicherzugriffen: Annahme, dass die Daten zu 100% im Cache gefunden werden, da sonst mehr als ein Zyklus für den Speicherzugriff gebraucht würde 4. Mikroprogrammierung 4a - 14

15 Mikroinstruktion Eine Mikroinstruktion besteht aus 36 Bits: 8 Bits (ALU) für die Steuerung der ALU 9 Bits (C) für das Schreiben in die Register 3 Bits (MEM) für den Speicherzugriff 4 Bits (B) für das Legen der Register auf den B-Bus 9 Bits (Addr), um die nächste Mikroinstruktion zu adressieren 3 Bits (JAM) für bedingte Sprünge 4. Mikroprogrammierung 4a - 15

16 Kontrollpfad Control store für das Mikroprogramm (512 Plätze für Instruktionen) Micro Instruction Register (MIR): enthält die aktuelle Mikroinstruktion Micro Program Counter (MPC): zeigt auf die nächste auszuführende Mikroinstruktion 4-to-16 Decoder: Bildet das 4-Bit-Signal für den B-Bus auf die Enable-Signale für die einzelnen Register ab 4. Mikroprogrammierung 4a - 16

17 Ablauf eines Zyklus (1) Lade neue Mikroinstruktion: gemäß MPC aus dem control store in das MIR 4. Mikroprogrammierung 4a - 17

18 Ablauf eines Zyklus (2) Stabilisieren der ALU-Eingänge: 4-Bit B-Teil des MIR wird dekodiert Das entsprechende Register wird auf den B-Bus gelegt B-Bus stabilisiert sich und liegt am B-Eingang der ALU an H-Register liegt am A Eingang der Alu an 4. Mikroprogrammierung 4a - 18

19 Ablauf eines Zyklus (3) Berechnung: die ALU rechnet der Shifter modifiziert das Ergebnis 4. Mikroprogrammierung 4a - 19

20 Ablauf eines Zyklus (4) Stabilisieren des C-Buses: die Ausgabe des Shifters auf dem C-Bus stabilisiert sich 4. Mikroprogrammierung 4a - 20

21 Ablauf eines Zyklus (5) Speichern in Registern: Laden der Register vom C-Bus Das geschieht sehr schnell, als Reaktion auf steigende Flanke des Taktgebers 4. Mikroprogrammierung 4a - 21

22 Ablauf eines Zyklus (6) Berechnen des neuen MPC: Generell steht die Adresse der nächsten Mikroinstruktion im Addr-Feld der aktuellen Mikroinstruktion. Ausnahmen: verzweigen (JAMN, JAMZ) ( JMPC ) springen 4. Mikroprogrammierung 4a - 22

23 Bedingte Sprünge Bei bedingten Sprüngen ist typischerweise das oberste Bit von NEXT_ADDR auf 0 gesetzt (NEXT_ADDR[8] = 0). Wenn das JAMN(Jump on Negative)-Bit gesetzt ist, wird zu NEXT_ADDRESS[8] der ALU-Ausgang N hinzugeodert : MPC[8] = NEXT_ADDRESS[8] OR N Analog dazu wird JAMZ (Jump on Zero) gehandhabt. Insgesamt gilt: MPC[8] = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8] Das N-Bit ist gesetzt, wenn das Ergebnis der letzten ALU-Operation eine 1 im höchstwertigen Bit hatte. Das Z-Bit ist gesetzt, wenn das Ergebnis der letzten ALU-Operation 0 war. 4. Mikroprogrammierung 4a - 23

24 Beispiel für JAMZ 4. Mikroprogrammierung 4a - 24

25 JMPC (Jump on PC) Verwendung: für direkte Sprünge zu einer Mikroinstruktion im control store die Adresse, an die gesprungen wird, wird aus dem MBR gelesen und mit NEXT_ADDR verodert. Idee: Ins MBR wird immer der aktuelle Maschinenbefehl geladen. Dieser wird als Index in den control store verwendet. An der Stelle, auf die der Index zeigt, steht die erste Mikroinstruktion zur Ausführung des Maschinenbefehls. 4. Mikroprogrammierung 4a - 25

26 4.3 Die Integer Java Virtual Machine und der Stack Wir entwickeln jetzt ein Mikroprogramm, das die Integer Java Virtual Machine (IJVM) implementiert. Dazu wird auch eine Stack-Verwaltung in Hardware benötigt. 4. Mikroprogrammierung 4a - 26

27 Der Stack Der Stack ist ein Bereich im Hauptspeicher. Er wächst von unten nach oben. Man kann ein 32-Bit Wort oben auf den Stack legen, ein 32-Bit Wort von oben vom Stack herunternehmen. Das Register SP (Stack Pointer) zeigt auf das oberste Wort des Stacks. Beispiel: SP = 2: verweist auf das zweite Wort im Hauptspeicher. Dieses Wort enthält die Bytes 8, 9, 10 und 11. Das Register TOS (Top of Stack) soll immer den Wert des obersten Wortes auf dem Stack enthalten: Dies macht den Speicherzugriff effizienter. Aber: Es muss im Mikroprogramm explizit verwaltet werden. SP Operand 2 Operand 1... TOS = Operand 2 4. Mikroprogrammierung 4a - 27

28 ( PC ) Der Program Counter Der PC ist ein besonderes Register. Der PC addressiert Bytes (nicht Worte). Er verweist auf die aktuelle Stelle im zu interpretierenden IJVM- Programm. Bei der Ausführung wird das nächste Byte des IJVM-Programms geholt: PC um eins erhöhen Fetch-Signal anlegen einen Zyklus warten dann steht des nächste Byte in MBR. PC... 0x60 0x Mikroprogrammierung 4a - 28

29 Zur Orientierung Wir bauen eine JVM die Java-Bytecode ausführen (interpretieren) kann mit signifikanten Einschränkungen, daher IJVM Java-Programm compilieren Java Bytecode Üblicherweise ist die JVM ein gewöhnliches Programm. Wir wollen aber jetzt die JVM hardwarenah als Mikroprogramm realisieren. In unserem Fall: Java Bytecode = Maschinenbefehl (ISA Instruktion) (entspricht Assembler) Lernziel: Analog zur Interpretation von Java-Bytecode erfolgt auch die Interpretation von Assembler-Instruktionen. 4. Mikroprogrammierung 4a - 29

30 Beispiel für einen Integer-Befehl: iadd Die Funktionsweise des Befehls iadd Vorher: SP Operand 2 Operand 1... PC... 0x60 0x64 TOS = Operand 2... Nachher: SP Summe... PC... 0x60 0x64 TOS = Summe Mikroprogrammierung 4a - 30

31 Mikroprogramm für iadd 0x100: 0x PC=PC+1;fetch;goto 0x101 (! warten ) 0x101: 0x goto 0x102 0x102: 0x goto MBR 0x060: 0x MAR=SP=SP-1;rd;goto 0x061 0x061: 0x H=TOS;goto 0x062 0x062: 0x MDR=TOS=MDR+H;wr;goto 0x Mikroprogrammierung 4a - 31

32 Stackbehandlung Der Stack dient zur Speicherung von Operanden und Ergebnis lokalen Variablen einer Methode/Funktion. Frage: Warum haben lokale Variablen nicht einfach eine feste Speicheradresse? Antwort: weil eine Methode rekursiv aufgerufen werden kann. Das Register LV enthält immer die Adresse des Wortes, bei dem die lokalen Variablen für die aktuelle Methode beginnen. 4. Mikroprogrammierung 4a - 32

33 IJVM-Speichermodell Current Local Variable Frame und Current Operand Stack sind bekannt. Der Constant Pool enthält unter anderem Konstanten und Information zu Methoden. Die Method Area enthält das eigentliche IJVM Programm in Form von IJVM-Instruktionen. 4. Mikroprogrammierung 4a - 33

34 ( ISA-Instruktionen ) IJVM-Instruktionssatz 4. Mikroprogrammierung 4a - 34

35 IJVM -Instruktionen: invokevirtual und ireturn invokevirtual und ireturn: erlauben den Aufruf von Methoden hier vereinfacht dargestellt: man darf nur Funktionen für ein Objekt aufrufen. keine Objektorientierung mehr Prinzipieller Ablauf: speichere Adresse des Objektes auf dem Stack, für das die Methode aufgerufen wird ( Vereinfachung (überflüssig, da speichere Parameter des Funktionsaufrufes auf dem Stack rufe invokevirtual auf invokevirtual hat einen 2 Byte langen Parameter Dieser beschreibt einen Eintrag im Constant Pool. Der Eintrag enthält die Adresse. an der die IJVM Instruktionen für die Methode liegen. 4. Mikroprogrammierung 4a - 35

36 Auffinden der Methode aufgerufene Methode Adresse disp disp2 disp1 invokevirtual 4. Mikroprogrammierung 4a - 36

37 Zusätzliche Daten An der Stelle, die durch die Adresse im CPP beschrieben wird, steht folgendes: zwei Bytes, die die Anzahl der übergebenen Parameter enthalten zwei Bytes, die den Speicherplatz für lokalen Variablen für diese Funktion enthalten als 5. Byte die erste Instruktion der aufgerufenen Funktion. 4. Mikroprogrammierung 4a - 37

38 Stack bei invokevirtual 4. Mikroprogrammierung 4a - 38

39 Stack bei ireturn 4. Mikroprogrammierung 4a - 39

40 Compilieren: Java nach IJVM i i 4. Mikroprogrammierung 4a - 40

41 4.4 Die Mikroprogrammiersprache MAL Prinzipiell: Inhalt des control stores aufschreiben 512 Mikroinstruktionen, je 36 Bit Problem: sehr unübersichtlich und fehleranfällig man muss sich genau überlegen, an welche Stelle welche Mikroinstruktion geschrieben wird: 0x99 erste Instruktion von IFEQU 0x9B erste Instruktion von IFLT -> kein lineares Ablegen von Instruktionen Außerdem: die Zweige von bedingten Anweisungen unterscheiden sich nur im 9. Bit, müssen also genau 256 Speicherpätze auseinander liegen Lösung: Einführen einer symbolischen Micro Assembly Language textuelle Beschreibung von Mikroinstruktionen, wird compiliert, Adressen werden dabei automatisch vergeben. 4. Mikroprogrammierung 4a - 41

42 MAL (1) Jede Zeile entspricht einer Mikroinstruktion. ALU-Operationen und Registerzugriff: Beispiel: SP = MDR = SP+1 Illegal: MDR = SP+MDR Illegal: H = H-MDR Speicheroperationen: rd und wr zum Schreiben von MDR fetch zum Lesen in MBR Illegal: erste Instruktion: MAR=SP;rd zweite Instruktion: MDR=H 4. Mikroprogrammierung 4a - 42

43 MAL (2) Direkte Bestimmung des nachfolgenden Befehls: entweder explizit mit goto <Marke> Zum Beispiel: goto Main1 Jede MAL-Zeile hat eine Marke. oder implizit, dann weglassen von goto Beispiel: iadd1 iadd2 iadd3 MAR=SP=SP-1;rd H=TOS MDR=TOS=MDR+H;wr;goto Main1 4. Mikroprogrammierung 4a - 43

44 MAL (3) Verzweigung aufgrund der Z- und N-Flags der ALU Beispiel: if(z) goto L1; else goto L2 Überprüfen von Registerinhalten auf Z/N: Beispiel: Z = TOS TOS wird auf B gelegt ALU erzeugt B als Ausgabe kein Register wird geschrieben 4. Mikroprogrammierung 4a - 44

45 MAL (4) Springen durch JMPC: ( value goto (MBR or ( MBR ) Oder, falls value=0, goto In der Mikroinstruktion steht value in NEXT_ADDRESS. 4. Mikroprogrammierung 4a - 45

46 Der Interpreter Auszug: Es folgen einige Beispiele. 4. Mikroprogrammierung 4a - 46

47 Main Voraussetzung: PC zeigt auf die als nächstes auszuführende IJVM-Instruktion. Diese ist bereits ins MBR geladen. Ausführen: PC um 1 erhöhen Fetch-Signal anlegen (am Ende des nächsten Zyklus steht die nächste IJVM- ( MBR Instruktion im zur Mikroinstruktion springen, mit der die Ausführung der aktuellen IJVM-Instruktion beginnt 4. Mikroprogrammierung 4a - 47

48 iadd Voraussetzung: TOS beinhaltet oberstes Wort auf Stack (= Operand 2) Ausführen: ( 1 SP um 1 dekrementieren (zeigt jetzt auf Operand Read-Signal anlegen Operand 2 in H laden summieren, Ergebnis schreiben: auf die aktuelle Position im Stack in TOS nach Main1 springen 4. Mikroprogrammierung 4a - 48

49 pop und iload<varnum> Achtung! Der Befehl iload <varnum> besteht aus 2 Bytes: 0x15 für iload ( LV <varnum> beschreibt den Offset der zu ladenden Variablen (relativ zu 4. Mikroprogrammierung 4a - 49

50 wide und wide_iload (1) Was machen wir, wenn eine lokale Variable mehr als 256 Wörter von LV entfernt ist? wide als IJVM-Instruktion davor schreiben: Wide soll auch für andere Operationen (z.b. istore) funktionieren. 4. Mikroprogrammierung 4a - 50

51 wide und wide_iload (2) 4. Mikroprogrammierung 4a - 51

52 goto <offset> Sprünge erfolgen relativ zum aktuellen PC. OPC dient zum Speichern des PC. Das erste Byte des Offset wird vorzeichenbehaftet auf den B-Bus gelegt (mit sign extension): Das oberste Bit des Inhalts von MBR wird in allen 24 Bits wiederholt, die ergänzt werden, um zu einem 32-Bit-Wort zu kommen. Das zweite Byte wird ohne Berücksichtigung des Vorzeichens auf den B-Bus gelegt (ohne sign extension): Die obersten 24 Bits sind auf 0 gesetzt. Daher sind Sprünge in beide Richtungen möglich. 4. Mikroprogrammierung 4a - 52

53 Beispiel für Sign Extension Problem: Gegeben sei eine ganze Zahl, kodiert in 8 Bit. Wie konvertiert man diese in die gleiche Zahl bei Darstellung mit 32 Bit? Beispiel: -6 = naive Lösung: (= ) Lösung: Sign extension: wiederhole das oberste Bit in allen Stellen die man hinzufügt: (=-6) Nur,wenn die umzuwandelnde Zahl im 2er Komplement dargestellt ist: bei natürlichen Zahlen (>0) einfach Nullen davor schreiben. 4. Mikroprogrammierung 4a - 53

54 Bedingter Sprung: if_icmpeq1 <offset> Bedeutung: hole die obersten beiden Worte vom Stack wenn gleich, dann springe um Offset 4. Mikroprogrammierung 4a - 54

55 invokevirtual <disp> 4. Mikroprogrammierung 4a - 55

56 ireturn 4. Mikroprogrammierung 4a - 56

57 4.5 Optimierung der Mikroarchitektur Die Leistung/Geschwindigkeit der Mikroarchitektur kann auf verschiedene Weise erhöht werden: durch Reduktion der Zyklen (Anzahl an Mikroinstruktionen), die eine ISA-Instruktion (ein Maschinenbefehl) benötigt. durch Reduktion der Länge eines Zyklus durch Einsatz schnellerer Hardware (hier nicht weiter betrachtet). durch die überlappende Ausführung von Instruktionen. Dies erfordert meist einen Kompromiss zwischen Kosten und Nutzen Beispiel: Decoder vs. direkte Angabe der Signale für die Steuerung des B Busses: weniger ROM für das Mikroprogramm vs. weniger Latenzzeit für das Anlegen der Signale. 4. Mikroprogrammierung 4b - 1

58 Reduktion der Zyklen pro ISA-Instruktion Ziel: Minimieren der Anzahl der Mikroinstruktionen pro ISA-Instruktion (Maschinenbefehl) Grund: Eine Reduktion der Anzahl der Mikroinstruktionen pro ISA-Instruktion kann die Leistung der Mikroarchitektur dramatisch erhöhen: Wenn man die durchschnittliche Anzahl von 5 auf 4 reduziert, dann wird der Prozessor um 20% schneller. Mechanismen: Interpreter-Schleife optimieren Architektur mit drei Bussen Einführen einer Instruction Fetch Unit 4. Mikroprogrammierung 4b - 2

59 Interpreter-Schleife Optimieren (1) Main1 muss nach jeder ISA-Instruktion ausgeführt werden: Daher kann man Main1 in die Ausführung jeder ISA-Instruktion integrieren: 4. Mikroprogrammierung 4b - 3

60 Interpreter-Schleife Optimieren (2) Erste Methode zur Reduktion der Mikroinstruktionen pro ISA-Instruktion: Interpreter-Schleife mit der Ausführung der ISA-Instruktion zusammenlegen. Auswirkung: Bei manchen Befehlen wird eine Mikroinstruktion weniger pro ISA-Instruktion benötigt. Daher erhöht sich die Geschwindigkeit. 4. Mikroprogrammierung 4b - 4

61 Interpreter-Schleife Optimieren (3) Bisher: Sehr umständlicher Umgang mit dem zweiten Operanden über das H-Register. Beispiel: 4. Mikroprogrammierung 4b - 5

62 Interpreter-Schleife Optimieren (4) Zweite Methode zur Reduktion der Mikroinstruktionen pro ISA-Instruktion: Einführung eines dritten Busses (A-Bus), der (fast) alle Register direkt auf die zweite Eingabe der ALU leitet. Kosten: zusätzlicher Bus, zusätzliche Kontrollleitungen für diesen Bus. Auswirkung auf iload: 4. Mikroprogrammierung 4b - 6

63 Instruction Fetch Unit (1) Die folgenden Aktionen sind in der Regel für die Ausführung einer ISA-Instruktion notwendig: PC um eins erhöhen mit dem PC die erste Mikroinstruktion holen die Operanden vom Stack lesen rechnen Ergebnis speichern. Für die ersten beiden Aktionen wird die ALU benutzt, ist aber unterfordert. Idee: diese Arbeiten durch eine separate Instruction Fetch Unit (IFU) erledigen lassen. 4. Mikroprogrammierung 4b - 7

64 Instruction Fetch Unit (2) 4. Mikroprogrammierung 4b - 8

65 Instruction Fetch Unit (3) Das Schieberegister (Shift Register) beinhaltet die nächsten 0-6 Bytes des Programms. IMAR ist die Adresse des letzten Wortes (4 Bytes), das in das Schieberegister geladen wurde. Das älteste Byte wird nach MBR1 kopiert. Die ältesten beiden Bytes werden nach MBR2 kopiert. Wenn MBR1 ausgelesen wird, dann: Verschieben der Bytes im Schieberegister um eine Stelle nach rechts erneutes Laden von MBR1 und MBR2. 4. Mikroprogrammierung 4b - 9

66 Instruction Fetch Unit (4) Wenn MBR2 ausgelesen wird, dann: Verschieben der Bytes im Schieberegister um zwei Stellen nach rechts erneutes Laden von MBR1 und MBR2. Wenn vier Bytes im Schieberegister frei sind: IMAR um 1 erhöhen, Wort in das Schieberegister laden MBR1 enthält den Opcode einer ISA-Instruktion oder einen 1-Byte-Parameter. MBR2 enthält 2-Byte-Parameter. 4. Mikroprogrammierung 4b - 10

67 Behandlung des Program Counter (PC) Der PC wird bei Instruktionen, die keine Sprünge sind, von der der IFU weitergeschaltet. Dafür hat der PC eine eigene Schaltung zum Inkrementieren um eins oder zwei. Immer wenn auf MBR1/MBR2 zugegriffen wird,sorgt die IFU dafür, dass der PC um eins oder zwei erhöht wird und der nächste Wert aus dem Speicher in MBR1/MBR2 steht. Bei Sprüngen: explizites Laden des PC durch das Mikroprogramm (wie bisher). Daran merkt die IFU, dass der Inhalt des Schieberegisters ungültig geworden ist. Der Wert des PCs wird ins IMAR übernommen, und das Schieberegister wird entsprechend neu geladen. 4. Mikroprogrammierung 4b - 11

68 Architektur der Mic-2 Neue Ausstattung: A-Bus IFU Kosten: zusätzlicher Bus zusätzliche IFU Nutzen: weniger Mikroinstruktionen pro ISA-Instruktion 4. Mikroprogrammierung 4b - 12

69 Vergleich für iload Mic-1: Mic-2: 4. Mikroprogrammierung 4b - 13

70 Pipelining (1) Optimierung durch überlappende (parallelisierte) Ausführung mehrerer Mikroinstruktionen Ausführung einer Mikroinstruktion: Befehl holen Register auf A- und B-Bus legen ALU und Schieberegister rechnen Ergebnisse vom C-Bus in die Registern speichern; Lesen/Schreiben im Memory Im Folgenden sollen diese Schritte parallelisiert werden. 4. Mikroprogrammierung 4b - 14

71 Pipelining (2) Ausführung von drei gleichartigen Verarbeitungsaufträgen in je vier Teilverarbeitungsschritten: Serielle Verarbeitung: Auftrag Auftrag Auftrag 3 Pipeline-Verarbeitung: Auftrag Auftrag Auftrag 3 4. Mikroprogrammierung 4b - 15

72 Beispiel: Wäsche-Pipelining (1) Ein Wäsche-Vorgang kann in vier Teilvorgänge unterteilt werden: schmutzige Wäsche in die Waschmaschine nasse Wäsche in den Trockner Falten, Bügeln,... Wäsche in den Schrank 4. Mikroprogrammierung 4b - 16

73 Beispiel: Wäsche-Pipelining (2) Aufträge 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 A B C D 6:00 7:00 8:00 9:00 10:00 11:00 12:00 13:00 14:00 A B C D 4. Mikroprogrammierung 4b - 17

74 Definitionen Unter dem Begriff Pipelining versteht man: die Zerlegung einer Instruktion in mehrere Phasen die Bearbeitung der Phasen in hintereinander geschalteten Verarbeitungseinheiten (taktsynchron). Die Gesamtheit dieser Verarbeitungseinheiten nennt man eine Pipeline. Der Speedup (Beschleunigung) einer Pipeline ist der durchschnittliche Geschwindigkeitsgewinn pro Instruktion, verglichen mit der sequentiellen Ausführung. Dieser ist abhängig von der Anzahl der Stufen auftretenden Hazards (Hemmnissen). 4. Mikroprogrammierung 4b - 18

75 Pipeline-Hazards Hazards durch Speicherzugriff Nach einem Ladebefehl kann der geladene Wert nicht für den direkt darauf folgenden Befehl im nächsten Takt zur Verfügung stehen, da der Speicherzugriff zusätzlich Zeit benötigt. Daten-Hazards Falls ein Befehl das Resultat des direkten Vorgängerbefehls benötigt, muss gewartet werden. Beispiel: H=MDR TOS=H Hazards durch Speicherzugriff = spezielle Daten-Hazards. Kontroll-Hazards ergeben sich zum Beispiel durch bedingte Sprünge. Problem: Bis der bedingte Spring vollständig bearbeitet wurde, ist nicht klar, welche Instruktion als nächstes ausgeführt werden soll. 4. Mikroprogrammierung 4b - 19

76 Architektur der Mic-3 Drei Flipflops für die drei Busse eingefügt. Jetzt dauert eine Mikroinstruktion bis zu vier Zyklen: Instruktion holen Register auslesen ALU und Schieberegister rechnen Register speichern Aber: jeder einzelne Zyklus ist kürzer die überlappende Bearbeitung von Mikroinstruktionen wird möglich alle Teile der Mikroarchitektur werden kontinuierlich ausgenutzt. 4. Mikroprogrammierung 4b - 20

77 Beispiel: SWAP für Mic-3 Mic-2 Mic-3: Aufteilen in drei Schritte Instruktion laden (mit der IFU) wird hier nicht betrachtet (ist auch nur für swap1 relevant) Wir notieren die Flipflops A, B und C wie Register. 4. Mikroprogrammierung 4b - 21

78 Pipelining: Aufteilen Swap1: Ergebnis des Speicherzugriffs steht erst in Zyklus 5 zur Verfügung. Swap3: Hier wird das Ergebnis von MDR=mem (Swap2) benötigt, die Pipeline wird angehalten (engl. stalling), bis dies der Fall ist. Dies nennt man eine Lesen-nach-Schreiben-Abhängigkeit (engl. RAW dependency) Dies ist ein Beispiel für einen Hazard. 4. Mikroprogrammierung 4b - 22

79 Gewinn durch Pipelining Ohne Pipelining: Dauer eines Zyklus: T Eine Instruktion benötigt einen Zyklus. Instruktionen werden sequentiell bearbeitet. Mit Pipelining: Tiefe der Pipeline (Anzahl der Arbeitsschritte): n Optimal: Dauer eines Zyklus: T p =T/n Realistisch: Dauer eines Zyklus etwas länger durch zusätzliche Hardware (im Beispiel die Flipflops A, B und C) Eine Instruktion benötigt n Zyklen. Optimal: in jedem Zyklus kann eine neue Instruktion gestartet werden. Realistisch: Hazards berücksichtigen Gewinn (speedup): Der Speedup einer Pipeline entspricht idealerweise deren Tiefe. Aber: durch Hazards und durch das Einführen zusätzlicher Hardware ist die sinnvolle Tiefe einer Pipeline beschränkt. 4. Mikroprogrammierung 4b - 23

80 Beispiel für den optimalen Ablauf von Pipelining Instruktion Zeit 4. Mikroprogrammierung 4b - 24

81 Weitere Optimierungsmöglichkeiten Neben den grundlegenden Möglichkeiten, die Mikroarchitektur zu verbessern, werden ständig neue Ideen entwickelt, um die Arbeit eines Prozessors zu beschleunigen. Zwei Kategorien: Verbesserung der Implementierung Der ISA-Instruktionssatz ändert sich nicht (wesentlich). Verbesserung der Architektur Neuer oder stark veränderter Instruktionssatz erforderlich. In der Realität: meist eine Kombination aus beidem. Wir betrachten: Caching Branch Prediction (Vorhersage bedingter Sprünge) Out-of-order Execution (Ausführen von Instruktionen außer der Reihe) 4. Mikroprogrammierung 4b - 25

82 Caching (1) Prinzipielle Idee bereits bekannt: Cache: kleiner schneller Speicher nah am Prozessor enthält die mit hoher Wahrscheinlichkeit als Nächstes verwendeten Daten arbeitet idealerweise mit Prozessorgeschwindigkeit. Häufig wird ein Level1-Cache in einen Daten- und einen Instruktionscache unterteilt. Werte für Intel Core extreme Edition kbyte L1/Kern - 8 MByte L2 Cache 4. Mikroprogrammierung 4b - 26

83 Caching (2) 1. Nachschauen, ob die gewünschten Daten im Cache liegen. 2. Wenn ja Cache Hit, dann Daten direkt verwenden 3. Wenn nein Cache Miss, dann : einen alten Eintrag aus dem Cache löschen die neuen Daten dorthin in den Cache laden die neuen Daten verwenden. 4. Durchschnittliche Zugriffszeit = c+(1-h)m c = Zugriffszeit auf den Cache h = Wahrscheinlichkeit für einen Treffer m = zusätzliche Zugriffszeit bei einem Cache Miss 4. Mikroprogrammierung 4b - 27

84 Caching (3) Gründe für Caching Räumliche Lokalität (Spatial Locality): wenn Daten/Instruktionen an einer bestimmten Speicherstelle benötigt werden, ist es wahrscheinlich, dass danach Daten/Instruktionen aus der unmittelbaren Nachbarschaft benötigt werden. Daher kann man Daten/Instruktionen auf Vorrat in den Cache laden. Zeitliche Lokalität (Temporal Locality): wenn man Daten/Instruktionen an einer bestimmten Speicherstelle benötigt, dann ist es wahrscheinlich, dass man sie kurz danach wieder benötigen wird. Daher sollte man kürzlich benötigte Daten/Instruktionen im Cache halten. Zeilen eines Caches (Cache Lines) Im Cache werden die Daten in Zeilen gespeichert. Üblich sind Zeilen der Länge 4-64 Byte. 4. Mikroprogrammierung 4b - 28

85 Direct-Mapped Cache (1) 4. Mikroprogrammierung 4b - 29

86 Direct-Mapped Cache (2) 5 Byte 1... Byte 32 =? Mikroprogrammierung 4b - 30

87 Direct-Mapped Cache (3) Eigenschaften: Jede Speicheradresse kann genau an einer Stelle im Cache stehen. Im Beispiel bedeutet das: Der Cache kann 2048*32 aufeinander folgende Bytes speichern. Der Cache kann keine Cache-Zeilen enthalten, die genau 2048*32 Bytes auseinander liegen, da diese an der gleichen Stelle im Cache abgelegt werden würden. Daraus lassen sich einfach Fälle konstruieren bei denen man bei jedem Zugriff eine Cache Miss erzeugt. Beispiel: ein 64k-Byte-weiter Sprung im Programm. Solche Fälle sind in der Praxis jedoch selten. Sie können zum Teil auch durch einen guten Compiler vermieden werden. 4. Mikroprogrammierung 4b - 31

88 Schreiben mit Cache (1) Was passiert wenn Daten in den Speicher geschrieben werden? a) Wenn der Inhalt der Adresse im Cache liegt: in jedem Fall: Daten in den Cache schreiben Alternative 1: Daten gleichzeitig in den Speicher schreiben (write through) Vorteil: Der Hauptspeicher hält immer die aktuellen Daten. Nachteil: Mehr Speicherzugriffe. Alternative 2: Daten nur im Cache aktualisieren (write back) Setzen eines Dirty-Flags, um zu markieren, dass die Daten gegenüber dem Speicher verändert wurden Zurückschreiben in den Speicher erst, wenn eine Cachezeile mit gesetztem Dirty-Flag aus dem Cache verdrängt wird. Vorteil: Weniger Speicherzugriffe. Nachteile: Aufwändigeres Design, problematisch bei Mehrprozessorrechnern. 4. Mikroprogrammierung 4b - 32

89 Schreiben mit Cache (2) b) Wenn der Inhalt der Adresse nicht im Cache liegt: in jedem Fall: Daten in den Hauptspeicher schreiben Alternative 1: Daten in den Cache laden (write allocation) Meist verwendet, wenn write back eingesetzt wird. Vorteil: Ausnutzen von räumlicher/zeitlicher Lokalität. Nachteil: Aufwändigeres Design. Alternative 2: Daten nicht in den Cache laden (no write allocation) Wird meist in Zusammenspiel mit write through eingesetzt, um eine möglichst einfache Cache-Architektur zu realisieren. Vorteil: einfaches Design Nachteil:. räumliche/zeitlicher Lokalität kann nicht ausgenutzt werden. 4. Mikroprogrammierung 4b - 33

90 Branch Prediction Bisher: Pipelining funktioniert nur bei linearer Ausführung von ISA-Instruktionen; bei Sprüngen muss die Pipeline angehalten werden. In der Realität sind aber Sprünge häufig: Bedingte Sprünge Unbedingte Sprünge if (i == 0) CMP i,0 ; compare i to 0 BNE ELSE ; branch to ELSE if not equal k = 1; MOV #1,K ; set k to 1 else k = 2; ELSE: MOV #2,K ; set k to2 4. Mikroprogrammierung 4b - 34

91 Unbedingte Sprünge Problem: Der Sprung muss dekodiert werden, bevor die IFU darauf reagieren kann. Erst nach Schritt 2 der Pipeline ist bekannt, dass es sich um einen Sprung handelt. Dann ist aber bereits der Befehl nach dem Sprung von der IFU geladen worden. Lösung: Delay Slot nach jedem Sprung wird durch den Compiler eingefügt meist NOP Alternativ: viel Aufwand z.b. beim Pentium 4. Mikroprogrammierung 4b - 35

92 Bedingte Sprünge (1) Problem Das Sprungziel ist erst nach der Verarbeitung des Sprungbfehls bekannt. Daher Delay Slot + zusätzlich Ungewissheit über das Sprungziel Früher keine neuen Befehle in die Pipeline laden, bis das Sprungziel bekannt ist, dann erst neuen Befehl laden. Sehr schlecht für die Leistung: Ca % der ISA Instruktionen sind bedingte Sprünge. Pipeline-Tiefe beim P4 ist 20 Stufen. Dann wäre die Pipeline nahezu nie vollständig gefüllt. 4. Mikroprogrammierung 4b - 36

93 Bedingte Sprünge (2) Modernere Lösung Betrachte eines der beiden Sprungziele als wahrscheinlicher. Führe die Instruktionen an dieser Stelle als Nächste aus. Dies erfordert einen Mechanismus zur Vorhersage von Sprungzielen (branch prediction). Einfache Vorhersage: ( if-abfrage ) Sprünge nach vorne werden nicht ausgeführt ( Schleife Sprünge nach hinten werden ausgeführt (Ende einer Vorhersage richtig einfach weiterarbeiten Vorhersage falsch Pipeline leeren und neue Befehle laden. Aufpassen, dass die Ausführung der falschen Befehle keine Auswirkung hat: Entweder die Ergebnisse in Spezialregistern speichern und erst in die echten Register übernehmen,wenn das Sprungziel bekannt ist oder: alte Registerwerte in Spezialregistern retten 4. Mikroprogrammierung 4b - 37

94 Dynamic Branch Prediction Generelle Idee Man versucht, aus der Vergangenheit zu lernen, welches das Ziel des Sprunges sein wird. Dazu benötigt man eine Tabelle (History Table), die analog zu einem Cache aufgebaut ist. In der Tabelle werden nicht die Inhalte einer Speicheradresse abgelegt, sondern nur Informationen darüber, ob der Sprungbefehl an dieser Speicheradresse in der Vergangenheit ausgeführt wurde oder nicht. Wenn ein Sprung ausgeführt werden soll, wird in der History Table nachgeschaut: Informationen zu dem Sprung in der Tabelle vorhanden: Entsprechend handeln und Tabelle aktualisieren keine Informationen in der Tabelle vorhanden: einfache Vorhersage und Tabelle aktualisieren 4. Mikroprogrammierung 4b - 38

95 Eine einfache History Table Bei der einfachen History Table wird nur die letzte Sprungentscheidung für einen Sprungbefehl mitgeführt. Problem Am Ende einer Schleife ist die Vorhersage falsch. Außerdem wird beim Neustart der Schleife die Vorhersage wieder falsch sein. Verbesserung Zwei Bits für die Vorhersage bereitstellen: ein Bit für das normale Verhalten ein Bit für das Verhalten beim letzen Mal (zum Beispiel beim Ende der Schleife) 4. Mikroprogrammierung 4b - 39

96 Vorhersage mit zwei Bits 1-Bit History-Tabelle 2-Bit History-Tabelle Vorhersage mit Zieladresse 4. Mikroprogrammierung 4b - 40

97 Endlicher Automat für die Vorhersage mit zwei Bits 4. Mikroprogrammierung 4b - 41

98 Vorhersage der Zieladresse Bisher: Auswahl zwischen zwei festen Alternativen. Manchmal wird die Zieladresse eines Sprungs vom Sprungbefehl dynamisch berechnet. Dann kann man statt den Bits zur Vorhersage einfach das Ziel des berechneten Sprunges in der History-Tabelle ablegen. 4. Mikroprogrammierung 4b - 42

99 Static Branch Prediction Die dynamische Vorhersage von Verzweigungen benötigt spezielle Hardware. Manchmal kann aber ein Compiler bereits beim Übersetzen eines Programms erkennen, dass eine Alternative eines Sprunges viel wahrscheinlicher ist als die andere. Beispiel Schleife: for (i=0; i<10000; i++) {...}. Beispiel UltraSPARC II: es gibt einen zusätzlichen Satz von Sprunginstruktionen auf ISA Ebene, bei denen der Compiler in einem Bit die wahrscheinliche Richtung des Sprunges angeben kann. Dies bezeichnet man als statische Vorhersage von Verzweigungen oder static branch prediction. 4. Mikroprogrammierung 4b - 43

100 Out-of-Order Execution und Register Renaming (1) Die meisten modernen Prozessoren sind superskalar; d.h. sie können mehr als eine Instruktion vollständig parallel abarbeiten (und nicht nur überlappend): Wie stellt man jetzt fest, ob die zweite Instruktion einen Konflikt auslöst? Beispiel: Instruktionen dürfen nur in der richtigen Reihenfolge gestartet werden. Instruktionen dürfen nur in der richtigen Reihenfolge beendet werden. 4. Mikroprogrammierung 4b - 44

101 Out-of-Order Execution und Register Renaming (2) Mögliche Konflikte Eine Instruktion mit zwei Operanden und einem Ergebnis darf nicht gestartet werden, wenn von einer vorangegangenen Operation, die noch nicht beendet ist ein Register, in dem ein Operand steht, geschrieben wird ( read-after-write -Abhängigkeit) das Register, in dem das Ergebnis abgelegt wird, gelesen wird ( write-after-read -Abhängigkeit) das Register, in dem das Ergebnis abgelegt wird, geschrieben wird ( write-after-write -Abhängigkeit) Verhindern von Konflikten durch ein so genanntes Scoreboard. Hier nur für Register betrachtet. In der Realität auch für die Einheiten der Pipeline. 4. Mikroprogrammierung 4b - 45

102 Scoreboard-Beispiel 4. Mikroprogrammierung 4b - 46

103 Scoreboard-Regeln Wenn eine Operation zugelassen wird, muss das Scoreboard entsprechend angepasst werden. Wenn eine Operation beendet wird, muss das Scoreboard entsprechend angepasst werden. Operation werden nur zugelassen wenn von dieser Operation nicht ein Register gelesen wird, welches als geschrieben markiert ist, ein Register geschrieben wird, welches als gelesen oder geschrieben markiert ist. Eine Operation wird erst beendet, wenn alle vorangegangenen Operationen beendet wurden. Unterstützung präziser Interrupts. Wenn diese Regel nicht eingehalten wird, ist bei einer Unterbrechung nicht klar, wie der aktuelle Status des Prozessors ist. 4. Mikroprogrammierung 4b - 47

104 Out-of-Order Execution - Beispiel 4. Mikroprogrammierung 4b - 48

105 Out-of-order Execution - Regeln Wenn eine Operation blockiert ist, werden deren Nachfolger untersucht. Wenn eine Operation nicht blockiert ist, wird sie ausgeführt. Die vorgezogene Operation darf keinen Operanden verwenden, der in der ausgelassenen Instruktion geschrieben wurde. Realisierung über ein weiteres Scoreboard (hier nicht gezeigt). 4. Mikroprogrammierung 4b - 49

106 Register Renaming Bisher: es durfte keine Operation gestartet werden, die einen Operanden oder das Ergebnis einer vorangegangenen Operation überschreibt. Andere Vorgehensweise: Das Ergebnis wird in einem anderen (geheimen, engl. secret) Register zwischengespeichert und: später zurückkopiert oder, falls der Inhalt nur in einer nachfolgenden Operation benötigt wird, wird der Operand der nachfolgenden Operation einfach auf das secret register umgesetzt. 4. Mikroprogrammierung 4b - 50

107 Register Renaming - Beispiel 4. Mikroprogrammierung 4b - 51

108 Zusammenfassung Wir haben eine einfache Mikroarchitektur kennen gelernt. Wir verstehen das Prinzip der Mikroprogrammierung. Wir verstehen, wie man eine Mikroarchitektur optimieren kann durch Pipelining Caching Vorhersage von Sprüngen (branch prediction) die Out-of-Order-Ausführung von Befehlen. 4. Mikroprogrammierung 4b - 52

4. Mikroprogrammierung 4a - 1

4. Mikroprogrammierung 4a - 1 4. Mikroprogrammierung 4.1 Motivation 4.2 Eine einfache Mikroarchitektur 4.3 Die Integer Java Virtual Machine und der Stack 4.4 Die Mikroprogrammiersprache MAL 4.5 Optimierung der Mikroarchitektur 4. Mikroprogrammierung

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim [email protected] 20.03.09 4-1 Heutige große Übung Ankündigung

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

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

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

Computerarchitektur. Übung 3

Computerarchitektur. Übung 3 Computerarchitektur Übung 3 ufgabe 18) Die LU ist das Rechenwerk in einem Prozessor und führt arithmetische und logische Operationen auf Datenwörter aus. Intern kann die LU aus parametrischen Schaltungen

Mehr

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

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

Mehr

4. Mikroprogrammierung (Firmware)

4. Mikroprogrammierung (Firmware) 4. Mikroprogrammierung (Firmware) 4. Ein Mikroprogramm-gesteuerter Computer 4.2 Mikroprogramm-Beispiel: Multiplikation 4.3 Interpretation von Maschinenbefehlen durch ein Mikroprogramm 4. Mikroprogrammierung

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Übung 7 Datum : 22.-23. November 2018 Pipelining Aufgabe 1: Taktrate / Latenz In dieser Aufgabe

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

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

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht Kapitel 3 Mikroarchitektur 3.1 elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung (zur Realisierung der Befehlsabarbeitung

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

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

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

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren der beiden Registerwerte $t1 und $t2 in einem Zielregister

Mehr

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich

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

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

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

Mehr

Beispiele von Branch Delay Slot Schedules

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

Mehr

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

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

Mehr

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74 Data Hazards Grundlagen der Rechnerarchitektur Prozessor 74 Motivation Ist die Pipelined Ausführung immer ohne Probleme möglich? Beispiel: sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2

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

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

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

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

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

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

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

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

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das

Mehr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr Praktikum zur Vorlesung Prozessorarchitektur SS 2017 Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch 21.06.2017, 14:00 Uhr 1.1. Einführung Programmsteuerbefehle

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

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Steuerwerk einer CPU Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Implementierung des Datenpfads Direkte Implementierung Mikroprogrammierung

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

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

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC HSD RISC &CISC CISC - Complex Instruction Set Computer - Annahme: größerer Befehlssatz und komplexere Befehlen höhere Leistungsfähigkeit - Möglichst wenige Zeilen verwendet, um Aufgaben auszuführen - Großer

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 6 Datum: 24. 25. 11. 2016 Pipelining 1 Taktrate / Latenz In dieser

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

Allgemeine Lösung mittels Hazard Detection Unit

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

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

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 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

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

Grundlagen der Rechnerarchitektur. Speicher

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

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 8 Datum: 30. 11. 1. 12. 2017 In dieser Übung soll mit Hilfe des Simulators WinMIPS64 die

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

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller SS 2004 VAK 18.004 Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller Aufgabenblatt 2.5 Lösung 2.5.1 Befehlszähler (Program Counter, PC) enthält Adresse des nächsten auszuführenden

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 8 Musterlösung zu Übung 5 Datum : 8.-9. November 8 Aufgabe : MIPS Architektur Das auf der nächsten

Mehr

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool.

Java-Prozessoren. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz. Datentypen. Operanden-Stack. Konstanten-Pool. Die Java Virtual Machine spezifiziert... Java Instruktions-Satz Datentypen Operanden-Stack Konstanten-Pool Methoden-Area Heap für Laufzeit-Daten Class File Format 26 Die Java Virtual Machine Java Instruktions-Satz

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

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

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

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

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 5: ikroprozessor (icro16) 183.579, 2014W Übungsgruppen: o., 01.12. i., 03.12.2014 Aufgabe 1: Schaltwerksentwicklung Hexapod / Teil 2 a) Befüllen Sie die untenstehende

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining Implementierung

Mehr

, WS2013 Übungsgruppen: Di., Fr.,

, WS2013 Übungsgruppen: Di., Fr., VU Technische Grundlagen der Informatik Übung : Stack, Pipelining., WS20 Übungsgruppen: Di., 0.01. Fr.,.01.201 Aufgabe 1: Stack - Funktionsweise Erläutern Sie die Funktionsweise eines Stacks bzw. Kellerspeichers

Mehr

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

Sprungbefehle und Kontroll-Strukturen

Sprungbefehle und Kontroll-Strukturen Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter

Mehr

Tutorium Rechnerorganisation

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

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

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

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

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Kapitel 22: Mima-X Thomas Worsch KIT, Institut für Theoretische Informatik Wintersemester 2015/2016 GBI Grundbegriffe der Informatik KIT, Institut für Theoretische Informatik

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

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

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09 Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: : BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.

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 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

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

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018 Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018 Aufgabe 1: Taktrate / Latenz Einzeltakt-Architektur Pipelining-Architektur Pipelining-Architektur 15 15 120 ps 15

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

Grob-Struktur des Prozessor-Speichersystems

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

Mehr

Arithmetische und Logische Einheit (ALU)

Arithmetische und Logische Einheit (ALU) Arithmetische und Logische Einheit (ALU) Enthält Blöcke für logische und arithmetische Operationen. n Bit Worte werden mit n hintereinander geschalteten 1 Bit ALUs bearbeitet. Steuerleitungen bestimmen

Mehr

Die HAM. Die Hypothetische Akku-Maschine

Die HAM. Die Hypothetische Akku-Maschine Die HAM Die Hypothetische Akku-Maschine Inhaltsverzeichnis 1 Die Ham 1.1 Überblick 1.2 Hardware Funktion der HAM 1.3 Der Assembler-Befehlssatz Addition zweier Zahlen 1.4 Der HAM-Editor Addition zweier

Mehr