12. Rechnerarchitektur und Assemblerprogrammierung

Größe: px
Ab Seite anzeigen:

Download "12. Rechnerarchitektur und Assemblerprogrammierung"

Transkript

1 12 Rechnerarchitektur und Assemblerprogrammierung Inhalt: Schichtenmodell Rechnerarchitektur und Techniken innerhalb der Mikroprozessoren x86-architektur und x86-assemblerprogrammierung Assemblersprache und Einbindung in C 1 Schichtenmodell Strukturierung des Rechensystems (Hardware und Software) in mehrere aufeinander liegende Schichten Höhere Schichten benutzen darunter liegende über Schnittstellen Nur die Schnittstellen sind nach oben sichtbar, die Implementierung der zugehörigen Schicht bleibt verborgen ( information hiding ) Schichten können ausgetauscht werden (unter Beibehaltung ihrer Schnittstelle), ohne dass die darüber liegenden Schichten geändert werden müssen Beispiel: Verschiedene Sprachschichten High-level language level (C): A = B + C; Assembly language level (MC68020): MOVEW B, D1 ADDW C, D1 MOVEW D1, A 2

2 Beispiel Machine language level (MC68020) (in bits): 1000: MOVEW (0x2002)W,D : ADDW (0x2004)W,D : MOVEW D1,(0x2000)W : A 2002: B 2004: C 3 Beispiel Die C-Anweisung summe = a + b + c + d; ist für einen Mikroprozessor zu komplex und muss daher in mehrere einzelne Anweisungen aufgeteilt werden Ein Prozessor kann immer nur zwei Zahlen addieren und das Ergebnis in einer der beiden verwendeten "Variablen" (Akkumulatorregister) speichern Das Programm unten entspricht daher eher einem Maschinenprogramm (Assembler): summe = a; summe = summe + b; summe = summe + c; summe = summe + d; das würde beim x86 so aussehen: mov eax,[a] add eax,[b] add eax,[c] add eax,[d] 4

3 Schichtenmodell Schnittstelle zu Level 2 entspricht einer Rechnerarchitektur Schicht Level 1 wird im Allgemeinen zur Hardware gerechnet, obwohl sie auch Mikroprogramme (Firmware) enthalten kann Heute aber meist fest verdrahtete Ablaufsteuerungen (Hardware) Einzelne Schichten sind intern selbst wieder in Schichten unterteilt Systementwurf muss auch Wechselwirkung zwischen Schichten berücksichtigen 5 Konvertierung zwischen Schichten (1) - Compilierung von Programm P high auf P low (Sprache L high auf L low ) (Beispiel: C-Compiler) Source program Compiler Object program Object program P high (L high ) P low (L low ) Hardware Hardware Execution Execution 6

4 Konvertierung zwischen Schichten (2) Interpretation von L high auf L low (Beispiele: Mikroprogramme, Basic- Interpreter) Source program L high Interpreter Machine instructions P high (L high ) L low Hardware Execution Eine umgekehrte Konvertierung von einer tieferen auf eine höhere Schicht ist im Allgemeinen nicht mehr möglich, da Semantik verloren geht ( semantic gap ) 7 Konvertierung zwischen Schichten (3) Level3: Hybride Schicht: Einige Befehle von Level3 (z B ADD) sind identisch mit Level 2 Dazu kommen Betriebssystemaufrufe (system calls) wie open(), write(),gettimeofday() etc, die von L3 interpretiert werden Level2: Die Mikroarchitekur auf Level1 interpretiert die Maschinensprache (per Mikroprogramm oder festverdrahtet) Level1: Die Mikro-Operationen bzw Steuerungen zur Ausführung der Befehle werden durch die digitalen Schaltkreise aus Schicht Level0 interpretiert ( Hardware-Interpreter ) 8

5 Konvertierung zwischen Schichten (4) Level 5 Level 4 Level 3 Level 2 Level 1 Level 0 Problem-oriented language Translation (compiler) Assembly language Translation (assembler) Operating system machine Partial interpretation (operating system) Instruction set architecture Interpretation (microprogram) or direct execution Microarchitecture Interpretation (Hardware) Digital logic Schichtenmodell kann auch als eine Hierarchie immer abstrakter virtueller Maschinen aufgefasst werden Level5: Eine höhere Programmiersprache wird durch Compilation oder Interpretation auf die Schnittstelle zu Level4 konvertiert Level5 stellt eine virtuelle Maschine dar Level4 stellt eine virtuelle Maschine dar, die dem Benutzer als Schnittstelle Assemblerbefehle plus Systemaufrufe anbietet Level4: Assembler auf Schicht Level4 übersetzt ein Assemblerprogramm in die erweiterte Maschinensprache (inkl Systemaufrufe) Einfache Form von Compilation 9 Implementierung neuer Schichten Beispiel: Spracherweiterung durch Prozeduren in C Hybride Schicht: Schnittstellen der alten Schicht bleiben weiter sichtbar Modulkonzept (Funktionen und Bibliotheken) erlaubt Einführung einer echten Schicht (tiefere Schnittstellen werden in der Implementierung verborgen) 10

6 Funktionen in Hardware oder Software? 11 Funktionen in Hardware oder Software? Hardware (Entwicklung eines Mikroprozessors): schnell, aber unflexibel, teuer Software: langsamer, leicht änderbar, billiger Beispiel: Implementierung eines neuen Datentyps mit zugehörigen Operationen als Speicherstruktur mit Funktionen (Softwarebibilothek) als Datentyp der Programmiersprache (Übersetzer) als Maschinendatentyp (Hardware) 12

7 Funktionen in Hardware oder Software? Vergleich: Realisierungsvarianten von Funktionen y[ i] w1 x[ i] w2 x[ i 1] w3 x[ i 2] w4 x[ i 3] Software: Befehlsfolge auf universal- Prozessor (links) Register x1 bis x3 werden nach x2 bis x4 umkopiert Adressrechnung für x[i] Register x1 (x[i]) wird aus Speicher geladen Multiplikationen und Additionen Adressrechnung für y[i] Speichern von y[i] Zugehörige Strukturen und Datenpfad rechts dargestellt 13 Funktionen in Hardware oder Software? y[ i] w1 x[ i] w 2 x[ i 1] w3 x[ i 2] w 4 x[ i 3] Hardware: Funktionsspezifische Realisierung zb durch FPGA 14

8 Rechnerarchitektur Rechnerarchitektur (RA) nach Amdahl/Blaauw/Brooks, 1964 (Architekten des IBM System/360): The term architecture is used here to describe the attributes of a system as seen by the programmer, i e the conceptual structure and functional behavior, as distinct from the organization and data flow and control, the logical design and physical implementation Architektur: Implementierung: Realisierung: Äußeres funktionelles Erscheinungsbild des Rechners, wie es der unmittelbare Benutzer (Maschinenprogrammierer) sieht Logische Struktur (Organisation), mehrere Implementierungen der gleichen Architektur möglich Konkrete Version einer Implementierung in Hardware und evtl Firmware (mehrere Realisierungen einer Implementierung möglich) 15 Rechnerarchitektur Als Rechnerarchitektur verstanden: Äußeres funktionelles Erscheinungsbild Anzahl der Prozessorregister, Registerbreite (32 oder 64 Bit) und Einschränkungen für deren Benutzung Liste der Befehle eines Prozessors Adressierungsarten, dh Art wie Daten von Befehlen adressiert werden können 16

9 Rechnerarchitektur Als Rechnerorganisation verstanden, zt auch als Rechnerarchitektur: Implementierung Art und Anordnung von Hardwarebausteinen, die Funktionen der äußeren Sicht realisieren Beispiel: Implementierung eines einfachen Prozessors: 17 Rechnerarchitektur Nicht zu Rechnerarchitektur gezählt: Konkrete Version einer Implementierung Taktfrequenz eines Prozessors Strukturbreite der Halbleiterstrukturen (Beispiel: CellBE PS3 mit 65nm und CellBE in PS3Slim mit 45nm) Cache-Größe 18

10 Beispiel für Rechnerarchitektur (1) Feldrechnerarchitektur zur datenparallelen Befehlsverarbeitung (zb SIMD Befehlssatzerweiterungen, oder GPUs) Leitwerk u skalare Befehle PE 1 ADD MUL p Rechenwerke (PEs) PE 2 PE p-1 PE p Kontrolleinheit Programmspeicher Privatspeicher Verbindungsnetzwerk 19 Beispiel für Rechnerarchitektur (2) Prozessorpipeline zur schnellen Befehlsverarbeitung S4 ALU Befehlspipeline ALU S1 S2 S3 S6 Instruction fetch unit Instruction decode unit Oberand fetch unit LOAD Write back unit Phasenpipeline STORE Floating point 20

11 Beschleunigung des Speicherzugriffs (1) Von-Neumann-Architektur (gemeinsamer Befehls- und Datenspeicher) Instruction and Data memory Universell, aber Flaschenhals Harvard-Architektur (getrennter Befehls- und Datenspeicher) Instruction memory Data memory CPU VT: Befehle und Daten können gleichzeitig geholt werden NT: Speicher weniger flexibel nutzbar Speicherverschränkung (Memory Interleaving) Einteilung des Speichers in mehrere Module, aus denen gleichzeitig gelesen bzw geschrieben werden kann Verschränkung der unteren Adressbits erlaubt gleichzeitigen Zugriff auf konsekutive Elemente in Modulen 0, 1, 2 m Beschleunigung des Speicherzugriffs (2) Blockschaltbild eines verschränkten Speichers: n - m Address in module m Module Decoder 0 2 m -1 Module 2 m -1 Module 1 Module 0 Interleaving-Faktor: 2 m 22

12 Module 0 Module 2 m - 1 n - m high-order bits 2 m OUT Beschleunigung des Speicherzugriffs (3) Zeitdiagramm Data buffer Data buffer Multiplexer n m - m low high-order Bits bits Access 1 Access 2 Access 1 Access 2 M 0 M 1 M 2 m 1 0 Transfer data of access 1 M Single-word bus Bei entsprechend schnellem Bus und Zugriff auf konsekutive Speicherzellen (z B Vektoren) erscheint der Speicher um den Interleaving-Faktor schneller Typische Interleaving- Faktoren: 4 64 Interleaving oft kombiniert mit dem Blockzugriff von Cache-Speichern Time 0 t 2t 23 Cache-Speicher (1) Lokalitätsprinzip: Lokalität ist der Umstand, dass die innerhalb eines kurzen Zeitintervalls eintretenden Speicherreferenzen die Tendenz aufweisen, sich nur auf einen kleinen Teil des gesamten Speicherraums zu beziehen (10/90) Regel: zu 90% der Programmlaufzeit wird auf 10% des Speicherbereichs eines Prozesses zugegriffen Cache: ein schneller Zwischenspeicher zwischen CPU und Hauptspeicher; um ein Vielfaches schneller als Hauptspeicher durch engere Anbindung an Verarbeitungseinheiten und durch bessere Technologie wesentlich kleiner als Hauptspeicher 24

13 Cache-Speicher (1) Prinzip (Cache für physikalische Adressen): Platzierung des Caches im Speicherpfad Treffer (Cache Hit): Auslesen bzw Einschreiben der Daten kein Treffer (Miss): Nachladen aus Hauptspeicher 25 Meist Einteilung in Blöcke (Linien) à mehreren Worten (Cache Lines), d h Aufteilung der Adressen in Linienadresse (Tag) und Adresse innerhalb der Linie Adresse:: MSB Cache-Speicher (2) Tag Bereich für Platzierung bzgl Cache-Teilbereiche Adresse innerh Linie LSB Reale Linienadresse (Requested Tag) wird mittels assoziativem Speicher mit Tags der Linien im Cache verglichen Tag 0 Tag memory Requested tag Tag 1 Line 0 Line 1 Data memory Tag N Line N Miss Data 26

14 Cache-Speicher (3) Aufgrund der Lokalität (räumlich und zeitlich) von Programmen sehr hohe Trefferraten (95-98 %) Oft Kombination mit verschränktem Speicher (stets Transfer ganzer Blöcke) Heute meist ausgefeilte Cache-Hierarchien, zum Beispiel: Level 1-Cache (on chip): Level 2-Cache (extern o on chip): (64128 KByte) (512 KByte8 MByte) Level 1-Caches oft in Daten- und Befehlscaches getrennt (Split-Caches, Harvard-Architektur) Teilweise auch Level 3-Caches Caches konnten im physikalischen Adressraum (hinter der MMU) oder im logischen Adressraum (vor der MMU) angeordnet sein 27 Ablauf eines Speicherzugriffs Real address Search cache tag memory Cache hit NO YES Update line status Get line from cache Send real address to main memory Select cache entry for replacement Receive line Select requested bytes Store line in cache Output to CPU 28

15 Platzierungsstrategien Wo im Cache ist welcher Teil der Hauptspeicherdaten (Cache Linie) unterzubringen? Ort ist nicht fest vorgegeben, da die Hauptspeicherdaten zusammen mit ihrer Adresse im Cache abgelegt werden Voll-assoziativer Cache Dennoch ist Ortsvorgabe/ bzw Einschränkung der möglichen Orte sinnvoll: Direkt abgebildeter Cache Mengenassoziativer Cache 29 Voll-assoziativer Cache (fully associative) Platzierungsstrategien (Placement Policies) (Beispiel: 1 MByte Hauptspeicher, 16 KByte Cache) Tag Cache Data Line 0 Line 1 Line 1023 Main memory Line 0 Line 1 Line Line Jede Cache-Linie kann jede beliebige Linie aus dem Hauptspeicher aufnehmen Da Reihenfolge der Linien im Cache beliebig, ist ein Assoziativspeicher für die Tags erforderlich Hohe Trefferrate, aber hoher Aufwand: entweder zusätzlicher Zeitbedarf durch assoziative Suche oder hohe Anzahl von Komparatoren 30

16 Direkt abgebildeter Cache (direct mapped) Tag Cache Data Line 0 Line 1 Line 1022 Line 1023 Main memory Line 0 Line 1 Line 2 Line 1023 Line 1024 Line 1025 Line Line Line Line Jeder Cache-Eintrag i kann nur Linien mit Adressen A aufnehmen, für die gilt A mod M = i ; (Restklassen-Einteilung) M: Anzahl Linien pro Cache Kein assoziativer Speicher erforderlich: Mittels Adressteil Line wird der zugehörige Eintrag im Cache direkt ausgewählt Stimmt Tag überein, so liegt ein Treffer (Hit) vor Vorteile: Leicht implementierbar Aufwandsarmer Zugriff, da keine assoziative Suche erforderlich ist Nachteil: Geringe Trefferraten wenn Speicherzellen aus gleicher Restklasse benötigt werden 31 Mengen-assoziativer Cache (set-associative) Cache Main memory Set 255 Set 0 Tag Data Line 0 Line 1 Line 2 Line 3 Line 4 Line 1022 Line 1022 Line 1022 Line 1023 Line 0 Line 255 Line 256 Line Line Cache wird in S Mengen eingeteilt Wie bei direkter Abbildung Zuordnung der Adressen A mit A mod S = i zu Menge i Da L = M/S Linien pro Menge vorhanden, assoziative Suche mittels Tag, ob gewünschte Linie im Cache liegt Spezialfälle: S = 1: voll-assoziativer Cache L = 1: direkt abgebildeter Cache M: Anzahl Linien pro Cache A: Adresse Line Guter Kompromiss, in der Praxis häufig eingesetzt 32

17 Cache Ersetzungsstrategien Ersetzungsstrategien (Replacement Policies) Bei (voll-/mengen-)assoziativen Caches muss entschieden werden, welche Cache-Linie beim Einlagern einer neuen Linie ausgelagert wird: Häufigste Strategien: - Random: Auszulagernde Linie wird zufällig ausgewählt - LRU (Least Recently Used): Diejenige Linie wird ausgelagert, die am längsten nicht referenziert worden ist LRU ist schwieriger zu implementieren (zusätzlicher Zähler je Cache Linie) In einer Studie wurde festgestellt Dass bei einem 2-fach assoziativen Cache die Hit Rate nur 11 mal höher ist als für Random Für große Caches und damit kleine Miss Rate ist der Unterschied nur noch gering 33 Cache Rückspeicherstrategien Behandlung von Schreibzugriffen: Write-Through: Rückspeichern bei jedem Schreiben auf den Cache (Konsistenz bleibt erhalten!) Write-Back (Copy Back):Rückspeichern nur bei Ersetzen einer Cache-Linie (zeitweise Inkonsistenz zwischen Cache und Hauptspeicher) Vorteile von Write-Back: - Prozessor kann mit Cache-Rate schreiben (bei Write Hit), nicht nur mit Hauptspeicher-Rate - Mehrfaches Schreiben in die gleiche Linie erfordert nur einmal das Rückschreiben in den Hauptspeicher - Beim Rückspeichern der Linie kann von Techniken zur Erhöhung der Speicherbandbreite wie zb Speicherverschränkung gemacht werden 34

18 Cache Rückspeicherstrategien Vorteile von Write-Through: - Write-Through ist einfacher zu implementieren Zur Erhöhung der Geschwindigkeit kann ein Write Buffer eingesetzt werden, d h das langsame Speichern in den Hauptspeicher wird von einem Puffer aus abgewickelt, während der Prozessor nach einem Write Hit bereits weiterläuft - Konsistenz mit Hauptspeicher ist vorteilhaft, wenn auch andere Einheiten (z B I/O-Einheiten, andere Prozessoren) auf den Hauptspeicher zugreifen Multiprozessoren und Cache-Konsistenz/Kohärenz 35 Implementierung: Direkt abgebildeter Cache Direkt-abgebildeter Cache von 64 KB mit 16-Byte-Linien (Adress- und Wortlänge 32 Bit, Byteadressierung) Address (showing bit positions) Byte offset Hit Tag 16 Index 12 2 Block offset Data V 16 bits Tag 128 bits Data 4K entries = Mux 32 36

19 Implementierung: Direkt abgebildeter Cache Funktionsweise des direkt-abgebildeten Caches: - Valid Flag (V) zeigt an, ob die Cache-Linie gültig ist - Index-Feld (12 Bit) adressiert direkt die Cache-Linie - Ausgelesenes Tag wird mit Tag-Feld der Adresse (obere 16 Bit) verglichen (bei Gleichheit: Cache Hit) Gewünschtes Wort innerhalb der Linie wird anhand des Block-Offsets mit einem Multiplexer (Mux) ausgewählt 37 Implementierung: Mengen-assoziativer Cache 4-fach assoziativer Cache von 4 KB mit 1-Wort-Linien (Adress- und Wortlänge 32 Bit, Byteadressierung) Index V Tag = Data 22 Address V Tag Data V Tag Data V Tag = = = 8 22 Data 32 L=4 Linien je Satz: deshalb 4-Wege assoziativ, oder 4- fach assoziativ S=256 Sätze (Sets, Mengen): Dann auch als 256- Mengen-assoziativ bezeichnet 4-to-1 M ultiplexer Hit Data 38

20 Implementierung: Mengen-assoziativer Cache Funktionsweise des 4-fach-assoziativen Caches: - Valid-Flag zur Anzeige einer gültigen Cache-Linie - Set-Feld (8 Bit) adressiert parallel alle 4 Linien innerhalb der Menge - Die 4 ausgelesenen Tags werden parallel mit dem Tag-Feld der Adresse (22 Bit) verglichen (bei Gleichheit Cache Hit) - Bei Cache Hit wird die gefundene Cache Linie mittels eines 4-zu-1-Multiplexers ausgewählt (alternative Implementierung über Chip Select der Speicherchips) Langsamer als direkt-abgebildeter Cache durch Tag-Vergleich vor Auswahl der Linie 39 Geschwindigkeitsgewinn durch Caches Effektive Zugriffszeit mit Cache T s H T 1 H T1 T2 T1 H T2 1 1 T s: System-Zugriffszeit (mit Cache) T 1 : Cache-Zugriffszeit T 2 : Hauptspeicher-Zugriffszeit H: Cache-Trefferrate (Hit ratio) Zugriffseffizienz des Cache E c T T 1 s T 1 T H 1 H T T2 1 r 1 H 2 T 1 1 mit r T 2 T 1 40

21 Cache-Zugriffseffizienz Cache-Zugriffseffizienz als Funktion der Trefferrate H bei verschiedenen relativen Cache-Geschwindigkeiten r T 2 T 1 41 Virtueller Speicher (1) Grundprinzip der Umsetzung der virtuellen Adresse (VA) zu einer physikalischen Adresse (PA) VA msb Seiten-Nr Adressbereiche Offset lsb Seitentabelle physikalischer Speicher Kachel-Nr PA Kachel 42

22 Virtueller Speicher (2) Grundprinzip wird um Eingabe des Prozess-Id erweitert Damit entstehen unter verschiedenen Prozessen unterschiedliche physikalische Adressen für gleiche virtuelle Adressen Prozeß -ID VA msb Seiten-Nr Adressbereiche Seitentabelle für PID Kachel-Nr Offset lsb physikalischer Speicher PA Kachel 43 Virtueller Speicher (3) Typischerweise wird eine mehrstufige Umsetzung durch kaskadierte Seitentabellen vorgenommen VA msb Tabellen-Nr Adressbereiche Seiten-Nr Offset lsb 1 Stufe Tab-Nr 2 Stufe Kachel-Nr physikalischer Speicher PA Kachel Vorteil: Für nicht benutzte Speicherbereiche können Tabellen auf 2 Stufe fehlen Damit weniger Speicheraufwand für Verwaltung 44

23 Beschleunigungstechniken für den Prozessor Verschiedene Techniken: Befehlsphasenpipelining Befehlspipelining VLIW SIMD 45 Befehlsphasenpipelinig (1) Zeitlich überlappte Ausführung von Befehlshol- und verschiedenen Ausführungsphasen: Instr Fetch (IF), Instr Decode (ID), Operand Fetch (OF), Execute (E), Store (S) Sequentiell I 3 I 2 I 1 3 Befehle in 15 Takten, 5 Takte je Befehl (CPI=5) IF ID OF EX S IF ID OF EX S IF ID OF EX S Befehlsphasenpipelining 3 Befehle in 7 Takten, 23 Takte je Befehl, 1 Takt je Befehl wenn Pipeline gleichmäßig gefüllt I 3 I 2 I 1 IF ID OF EX S IF ID OF EX S IF ID OF EX S Ziel: CPI=1 (CPI: Clocks per Instruction) 46

24 Befehlsphasenpipelinig (2) Pipelines in Universalprozessoren jedoch meist nur ungenügend gefüllt Grund: Pipeline-Konflikte Datenabhängigkeiten: Bsp: add R1,R2 ; R1=R1+R2 mul R1,R3 ; R1 = R1*R3; mul add IF ID OF EX S IF ID OF EX S Steuerflussabhängigkeiten: cmp R4,R5 bne ende add R1,R2 ende: add bne cmp IF ID OF EX S IF ID OF EX S IF ID OF EX S Ausweg: Befehlsumordnung im Compiler, Spekulative Befehlsausführung 47 Superskalarität (1) Superskalar, wenn Befehlsphasen-Pipeline mit mehreren Funktionseinheiten für die Ausführung der Kernaktivitäten kombiniert ist und dynamische Zuweisung von Befehlen an die Funktionseinheiten erfolgt Instruction Fetch Instruction Decode and Rename Instruction Window Issue Execution Execution Retire and Write Back In Order Out of Order In Order Quelle: TUngerer, U Brinkschulte Mikrocontroller und Mikroprozessoren, Springer Verlag

25 Superskalarität (2) Befehlshole-Stufe lädt Befehle aus dem Code-Cache, je Takt werden mindestens so viele Befehle geholt, wie den Ausführungseinheiten zugewiesen werden können Ggf wird Sprungvorhersage benutzt, um zu entscheiden, welche Befehle zu holen sind Ein Befehlsholepuffer entkoppelt Befehlsholestufe von der Decodierstufe Die Bandbreite der Dekodierstufe entspricht meist der maximalen Zuordnungsbandbreite Operanden und Resultatregister werden umbenannt, dh die in den Befehlen angegebenen Register werden auf die physikalisch vorhandenen Register abgebildet Befehlsfenster: Befehlsmenge mit umbenannten Registern und frei von Steuerflussabhängigkeiten 49 Superskalarität (3) Im Befehlsfenster müssen nur noch Datenabhängigkeiten und Strukturkonflikte aufgelöst werden Issue: Zuweisung wartender Befehle an Verarbeitungseinheiten (Reihenfolge der Befehle im Originalprogramm wird im Rückordnungspuffer abgelegt) Zuweisung der Befehle in Umordnungspuffern vor den Ausführungseinheiten, Befehle warten dort solange, bis alle Operanden verfügbar sind (Datenflussprinzip) Danach: Befehlsvervollständigung und Rückordnung der Befehle Befehlsresultate werden gültig gemacht, sofern diese von keiner Spekulation mehr abhängen 50

26 RISC (1) RISC: Reduced Instruction Set Computer Design-Philosophie wenige einfache Befehle, anstatt vieler verschiedenartiger Befehle Befehle haben dann gleiche Länge Einfachere und schnellere Realisierung einer superskalaren Pipeline Lade- und Speicher-Befehle: Rest der Befehle arbeitet auf Registern Großer Satz an Universalregistern Viele innovative Befehlssatzarchitekturen sind RISC- Architekturen, zb DLX, MIPS Dennoch hoher Anteil von CISC Architekturen, durch x86- Vorherrschaft 51 RISC (2) Vergleich CISC - RISC: summe = a; summe = summe + b; summe = summe + c; summe = summe + d; x86 CISC mov eax,[a] add eax,[b] add eax,[c] add eax,[d] mov [s],eax MIPS RISC load R1,[a] load R2,[b] add R1,R1,R2 load R2, [c] add R1,R1,R2 load R2, [d] add R1,R1,R2 store R1, [s] 52

27 VLIW VLIW-Very Long Instruction Word Breites Befehlsformat, das mehrere unabhängige Befehle kodiert, die parallel auf den Funktionseinheiten des Prozessors ausgeführt werden Bündelung der Befehle erfolgt durch Compiler Original-VLIW ist starr bzgl Anzahl und Art der Befehle Im wesentlichen bei Signalprozessoren und Multimediaprozessoren eingesetzt, typischerweise mit RISC-Konzept gekoppelt EPIC-Technik (Explicitly Parallel Instruction Computing) hat sich aus Konzepten von VLIW entwickelt 53 EPIC (1/4) Explicitly Parallel Instruction Computing: Explizite Spezifikation des Parallelismus im Maschinencode (wie VLIW, jedoch weniger starr) Bedingte Ausführung von Befehlen (Prediction) Spekulative Ausführung von Ladeoperationen (Data Speculation) Gruppierung von Befehlen zur parallelen Ausführung durch Zusammenwirken von Compiler und Hardware In IA-64 Architektur implementiert (Intel/HP) 54

28 EPIC (2/4) IA 64 Befehlsformat (41 Bit) Opcode Register1 Register2 Register3 Predicate 14 Bits 7 Bits 7 Bits 7 Bits 6 Bits IA 64 Befehle werden von Compiler in sogenannte Bundles gepackt Befehl 1 41 Bits Befehl 2 41 Bits 128 Bits Befehl 3 41 Bits Template 5 Bits Template zeigt an, ob Befehle gleichzeitig ausgeführt werden dürfen, oder ob benachbarte Bundles parallel ausgeführt werden können 55 Beispiel Itanium: Anstoßen der Befehle zur Ausführung Bundle 1 Slot 0 Slot 1 Slot 2 Bundle 2 Slot 0 Slot 1 Slot 2 Dynamische Zuordnung zur Laufzeit (Unterschied zu reinem VLIW) EPIC (3/4) Funktionseinheiten Mem0 Mem1 Integer0 Integer1 FPU0 FPU1 FPU2 Br0 Br1 Br2 Es können bis zu sechs Befehle je Takt zur Ausführung angestoßen werden 56

29 EPIC (4/4) Skalierbarkeit: Bei IA64 dürfen n Mengen von jeweils drei Befehlen gebündelt werden Itanium: n=2, dh 6 Befehle Bundle-Codierung mit Raum für breitere EPIC-Realisierungen Der Code wird dichter, dh mehr Befehle werden in einer betrachteten Anzahl von Zyklen decodiert und ausgeführt Schwierigkeiten: Sprünge verhindern ausreichende Füllung der Bundles Wartezeiten auf Load-Operationen würden mehr Verluste bringen 57 EPIC Bedingte Befehlsausführung Beispiel (aus W Karl: Rechnerarchitektur): if (R1==R2) R9 = R10 R11; else R5= R6 + R7; Bedingte Befehlsfolge: cmpeq p1,p2 = r1, r2;; (p1) sub r9 = r10, r11 (p2) add r5 = r6, r7 Jeder Befehl hat ein Predicate-Feld (6Bit) zur Angabe des Predicate-Registers (zb P0 bis P63 vorhanden) Befehl wird ausgeführt, ohne das Ergebnis des Vergleichs zu kennen (Elimination von Sprüngen) In Phase Befehlsvervollständigung werden nur Ergebnisse jener Befehle zurück geschrieben, deren Prädikat zutrifft 58

30 EPIC Spekulatives Laden Vorziehen von Ladeoperationen Spekulation, um für Unterbrechungen korrekte Programmausführung zu erhalten bei einem Überschreiben der Speicherzelle aktuelle Inhalte nachzuladen Instr A Instr B Branch Store Ld8 r1=[r2] Instr (benutzt r1) Ladeoperation kann normalerweise nicht vor (einige) Store-Befehle und nicht vor Sprungbefehle gezogen werden Ausweg: Spekulatives Laden Ld8a r1=[r2] Instr A Instr B Branch Store chka Instr (benutzt r1) 59 SIMD Single Instruction Multiple Data (Klassifikation nach Flynn), dh ein Steuerwerk und mehrere Operationswerke, welche die gleichen Befehel durch mehrere Operationswerke parallel auf verschiedenen Daten ausführen Heute ist SIMD-Prinzip als Erweiterung in Standardprozessoren enthalten Nutzung breiter Register, Datenpfade (64/128 Bit) für parallele Speicherung, Verknüpfung und Transport kurzer Datentypen (8/16/32 Bit) Beispiele: Sun VIS Instruction Set (siehe SAD-Unterstützung) Intel MMX, Intel SSE (Streaming SIMD Extensions) Athlon 3D/NOW AltiVec (Motorola, PowerPC) 60

31 MMX: SIMD-Erweiterung für Pentium Prozessoren Spezielle Befehle für Multimedia- und Grafik-Algorithmen (z B MPEG-Kompression) Auch in RISC-Prozessoren zu finden (z B VIS beim Ultra Sparc) Konzept: Ein einzelner Befehl bearbeitet mehrere Daten in einem 64-Bit- Register gleichzeitig (z B 8 Byte oder 4 Worte à 16 Bit) MMX-Datentypen Es entsteht SIMD-Parallelarbeit, die vor allem für Multimedia-Anwendungen (8-Bit-Pixel, 16 Bit-Voice-Samples) gut genutzt werden kann 61 MMX-Befehlssatz Register: 8 FP-Register (64 oder 80 Bit) Insgesamt 57 Befehle Geschwindigkeitssteigerung von % für typische Multimedia- Anwendungen 62

32 SSE (SIMD Streaming Extension) SSE-Register 70 zusätzliche Befehle für Multimedia-Anwendungen Eigener Satz von 8 Registern à 128 Bit, eigene Funktionseinheit SIMD-Operationen auch für Gleitkomma-Operanden Prefetch-Instruktionen (Memory Streaming) Leistungssteigerung bei MultimediaMark 99 von 29% gegenüber Pentium bei gleicher Taktfrequenz Weiterentwicklung für Pentium 4 zu SSE 2 (114 neue Befehle) 63 MMX Varianten der Arithmetik Arithmetik wahlweise im Wraparound-Modus: Unter- bzw Überläufe werden abgeschnitten und nur die niederwertigen (dargestellten) Bits abgebildet F000h a2 a1 a h b2 b1 b0 2000h a2+b2 a1+b1 a0+b0 Saturations-Modus: Kein Überlauf oder Unterlauf, stattdessen Abbildung auf kleinste bzw größte Werte Sinnvoll zb bei Berechung einer Darstellungsfarbe F000h a2 a1 a h b2 b1 b0 FFFFh a2+b2 a1+b1 a0+b0 64

33 Anwendungsbeispiel Anwendungsbeispiel Sum of absolute Differences (SAD), eine zeitkritische Operation bei der Videokompression: SAD( dx, dy) y N 0 n y x N 1 m x 0 I K ( m, n) I K 1 ( m dx, n dy) Manipulation n,m Lade jeweils 8 aufeinanderfolgende Werte Absolute Differenzen für die 8 Werte Lade I K (m,n) bis I K (m+7,n) nach mm0 Lade I K-1 (m+dx,n+dy) bis I K-1 (m+dx+7,n+dy) nach mm1 MOVQ mm2, mm0 ; mm2 <-mm0 PSUBUSB mm0, mm1 ; mm0 <- mm0 - mm1 PSUBUSB mm1, mm2 ; mm1 <- mm1 mm2 POR mm0, mm1 MOVQ [esi], mm0 ADD esi, 8 Summierung der absoluten Differenzen j n,m-bereich durchlaufen? n 65 Leistungszuwachs Dokumentierter Leistungszuwachs durch MMX: Gewinn bei Übergang von skalarem C-Code zu MMX-Code RGB YUV Umwandlung: >10 Inverse DCT 2D 8x8: 35 Absolute Differences: 5 Matrix-Vektor-Multiplikation: 146 Geschwindigkeitsgewinn größer 8 ua durch Multiply-Add-Befehl Code wird von Prozessorherstellern (Intel, AMD) als so genannte Application Notes veröffentlicht 66

34 MMX, SSE - Weiterentwicklung SSE2: 2x64-Bit FloatingPoint, Zwischenergebnisse nur 64 Bit anstatt der 80 Bit bei 8087, schneller aber geringere Genauigkeit SSE3: horizontale Operationen arithmetische Operationen über Subwörter innerhalb eines Registers SSE4: Integer 2x32-zu-64 Bit Multiplikation ohne Überlauf, mehrfache Multiplikation und Aufsummieren (Skalarprodukt), MPSADBW-Befehl: Summe acht absoluter 8-Bit-Differenzen (SSE41) hardwareseitige CRC-32-Prüfsummenbildung (SSE 42), Stringverarbeitung (SSE 42) Angekündigt: AVX (Advanced Vector Extensions) mit 256 Bit SIMD-Mode 67 SIMD-Programmierung Möglichkeiten: Maschinensprache Inline-Assembling Nutzung von Bibliotheken, zb Small Matrix Library für SSE Compiler unterstützen teilweise SIMD-Erweiterungen Intel C++ Compiler ab Version 6: SIMD-Datentypen und Makros für MMX, SSE und SSE2 Vektorisierer für einfache Schleifen GNU C-Compiler: SIMD-Datentypen und Makros für MMX, SSE und 3DNow 68

35 x86 Architektur (1) Betrachtet ausgehend vom äußeren Erscheinungsbild: Registersatz: Anzahl der Register, Freiheiten bzw Beschränkungen bei deren Verwendung Befehlssatz: Befehlsliste und evtl verschiedene Varianten der Befehle, wenn unterschiedliche Adressierungsarten zugelassen sind Alles andere betrifft die Implementierung und Realisierung 69 Intel 80x86-Familie DX 80486DX Pentium 80386SX 80486SX Verbesserung der Implementierung der Architektur von 12 CPI beim 8086 auf 15-3 CPI beim Pentium (CPI = Cycles Per Instruction) x86 Architektur (2) Co-Proz Busbreite (Bit) Daten/Adress / /24 16/24 (SX) 32/32 (DX) 32/32 64/32 Große Bedeutung durch Einsatz in IBM-kompatiblen PCs Aufgrund der hohen Stückzahlen Mainstream der derzeitigen Rechnerentwicklung CISC-Prozessoren aus historischen Gründen binär abwärtskompatibel zum Urahnen 8086 Stetige Verbesserung der Technologie (Taktfrequenz von 477 bis 10 MHz beim 8086/8088 auf über 3 GHz beim Pentium) 70

36 Instruction Set Architecture (Intel IA-32) 8 x 32-Bit-Register mit 16-Bit- Registern des 8086 in unteren beiden Bytes 8 x 80-Bit-Gleitkommaregister (internes IEEE-Format) 6 x 16-Bit-Segmentregister (8086: 4): Codesegment CS, Stacksegment SS, 4 Datensegmente DS, ES, FS, GS 32-Bit-Befehlszähler, 32-Bit- Flagregister (8086: je 16 Bit) Diverse Zusatzregister z B für Kontrolle und Ausnahmebehandlung 71 IA-32 Datentypen CISC-Befehlsformat (variable Länge) Adressierungsarten - unmittelbar - Register indirekt - direkt - indiziert - Register 72

37 IA-32 Befehlssatz ohne Gleitkommabefehle Typischer CISC-Befehlssatz 73 IA-32 Befehlssatz ohne Gleitkommabefehle 74

38 Mikroarchitektur Pentium 4 Umsetzung der IA-32 CISC-Befehle in 1 bis 4 Ops (interne RISC-Befehle) durch Decoder Ausführung in supersklarer RISC- Architektur Trace Execution Cache (TEC) für Ops mit eigener Sprungvorhersage, 3 Ops pro Takt wie PentiumIII Verbesserte Sprungvorhersage für x86- Befehle mit größerem BTB 20-stufige I-Pipe, Taktraten bis über 3 GHz 13 Funktionseinheiten, davon max 6 gleichzeitig aktivierbar 8 KB Datencache (klein, aber schnell); Hardware-Prefetching mit Quad Pumped Speicherschnittstelle (3,2 GByte/s) Befehlssätze (MMX, SSE, SSE2) Optional: Hyperthreading (SMT) 75 Hyperthreading Intels Implementierung von SMT: 2-fach Hyper-Threading für den P4, auch für Atom CPUs, Verhält sich für das Betriebssystem wie zwei logische Prozessoren, d h Multiprozessor-Software ist ohne Änderung lauffähig P4-Pipeline mit SMT Pipeline-Register (Queues) und einige Pipelinestufen verdoppelt, die meisten Stufen werden abwechselnd von beiden Threads genutzt Verdoppelung der Register durch Register- Renaming implementiert Nur 5% zusätzliche Chipfläche Konflikte beim Nutzen der gemeinsamen Caches (Cache Aliase) können Leistung einschränken 76

39 x86 Architektur (2) Allgemeine Register AX Akkumulator-Register, Ziel und Quelle für Rechenoperationen Teilung in hohes Byte (AH) und niedriges Byte (AL) BX - Basis-Register für Anfangsadressen, Teilung in hohes Byte (BH) und niedriges Byte (BL) CX Count Register, Teilung in hohes Byte (CH) und niedriges Byte (CL), allgemein verwendbar, spezielle Bedeutung bei Schleifen DX - Daten-Register, Teilung in hohes Byte (DH) und niedriges Byte (DL) RAX (bei x86-64) EAX EAX AH AX AH AX AL AL 64 Bit 32 Bit 16 Bit 8 Bit 77 x86 Architektur (3) Pointer-Register SP Stack-Pointer: zur Adressierung des Stacks verwendet BP Base-Pointer: zur Adressierung des Stacks verwendet IP Instruction-Pointer: Offset des nächsten Befehls Index-Register SI Source-Index: Unterstützung von Adressierungen esi Quelle (eng: source) für Stringoperationen DI Destination-Index: Unterstützung von Adressierungen edi Ziel (eng: destination) für Stringoperationen Segment-Register CS Code-Segment: zeigt auf aktuelles Codesegment DS Daten-Segment: zeigt auf aktuelles Datensegment SS Stack-Segment: zeigt auf aktuelles Stapelsegment ES Extra-Segment: zeigt auf weiteres Datensegment 78

40 x86 Architektur (4) Statusflags CF Carry-Flag Übertragflag AF Auxiliary Carry-Flag Hilfsübertragflag ZF Zero-Flag Nullflag SF Sign-Flag Vorzeichenflag PF Parity-Flag Paritätsflag OF Overflow-Flag Überlaufflag Kontrollflags TF Trap-Flag Einzelschrittflag IF Interrupt Enable-Flag Interruptflag 79 x86 Assembler-Programmierung (1) Die C-Anweisung summe = a + b + c + d; würde beim 80x86 Assembler so aussehen: mov eax,[a] add eax,[b] add eax,[c] add eax,[d] mov [s], eax Mit eax ist das 32 Bit breite AX Register gemeint Alle Operationen beziehen sich damit auf 32 Bit Verarbeitungsbreite 80

41 x86 Assembler-Programmierung (2) Einfache if-then-else Konstrukte müssen in der Assembler- Sprache in Compare und einen bedingten Sprung umgewandelt werden if (a == 4711) {} else { } Im x86 Assembler sieht das dann so aus: cmp eax,4711 jne ungleich gleich: jmp weiter ungleich: weiter: 81 x86 Assembler-Programmierung (3) Einfache Zählschleifen werden von einem x86 Prozessor besser unterstützt Das folgende C-Programm for (i=0; i<100; i++) { summe = summe + a; } sieht im 80x86 Assembler so aus: mov ecx,100 schleife: add eax,[a] loop schleife Der Loop-Befehl dekrementiert implizit das ecx Register und führt den Sprung nur aus, wenn der Inhalt des ecx Registers anschließend nicht 0 ist 82

42 x86 Assembler-Programmierung (4) Speicherzugriff Meistens reichen die Register nicht aus, um ein Problem zu lösen In diesem Fall muss auf den Hauptspeicher des Computers zugegriffen werden, der erheblich mehr Information speichern kann Für den Assemblerpogrammierer sieht der Hauptspeicher wie ein riesiges Array von Registern aus, die je nach Wunsch 8, 16 oder 32 Bits "breit" sind (je nach Datentyp) Die kleinste adressierbare Einheit ist ein Byte (= 8 Bits) Um auf einen bestimmten Eintrag des Arrays "Hauptspeicher" zugreifen zu können, muss der Programmierer die Adresse des Eintrages kennen Das erste Byte des Hauptspeichers bekommt dabei die Adresse 0, das zweite die Adresse 1 usw 83 x86 Assembler-Programmierung (5) In einem Assemblerprogramm können Variablen angelegt werden, indem einer Speicheradresse ein Label zugeordnet und dabei Speicherplatz in der gewünschten Größe reserviert wird [SECTION data] gruss: db 'hello, world' unglueck: dw 13 million: dd [SECTION text] mov ax,[million] db define byte, dw define word (2 Bytes), dd define double word 84

43 x86 Assembler-Programmierung (6) Stack Nicht immer will man sich ein neues Label ausdenken, nur um kurzfristig mal den Wert eines Registers zu speichern, beispielsweise, weil man das Register für eine bestimmte Anweisung benötigt, den alten Wert aber nicht verlieren möchte In diesem Fall wünscht man sich sowas wie einen Ablagehaufen Den bekommt man mit dem Stack Der Stack ist eigentlich nichts weiter als ein Stück des Hauptspeichers, nur dss dort nicht mit festen Adressen gearbeitet wird, sondern die zu sichernden Daten einfach immer oben drauf geschrieben (push) bzw von oben heruntergeholt werden (pop) Der Zugriff ist also ganz einfach, vorausgesetzt man erinnert sich daran, in welcher Reihenfolge die Daten auf den Stapel gelegt wurden Ein spezielles Register, der Stackpointer esp zeigt stets auf das oberste Element des Stacks Da push und pop immer nur 32 Bits auf einmal transferieren können, ist der Stack in der folgenden Abbildung vier Bytes breit dargestellt 85 x86 Assembler-Programmierung (7) Adressierungsarten Die meisten Befehle des x86 können ihre Operanden wahlweise aus Registern, aus dem Speicher oder unmittelbar einer Konstante entnehmen Beim mov Befehl sind (u a) folgende Formen möglich, wobei der erste Operand stets das Ziel und der zweite stets die Quelle der Kopieraktion angeben: Registeradressierung: Der Wert eines Registers wird in ein anderes übertragen mov ebx,edi 86

44 x86 Assembler-Programmierung (8) Unmittelbare Adressierung: Die Konstante wird in das Register übertragen mov ebx,1000 Direkte Adressierung: Der Wert der an der angegebenen Speicherstelle steht, wird in das Register übertragen mov ebx,[1000] Register-Indirekte Adressierung: Der Wert, der an der Speicherstelle steht, die durch das zweite Register bezeichnet wird, wird in das erste Register übertragen mov ebx,[eax] 87 x86 Assembler-Programmierung (9) Basis-Register Adressierung: Der Wert, der an der Speicherstelle steht, die sich durch die Summe des Inhalts des zweiten Registers und der Konstanten ergibt, wird in das erste Register übertragen mov eax,[10+esi] 88

45 Assembler-Einbindung in C (1) In einem C-Programm kann jede Anweisung durch einen Block von Assembler-Befehlen durch folgende Syntax ersetzt werden: _asm { <Folge von Assembler-Befehlen> } ; Jeder Assemblerbefehl muss durch Semikolon abgeschlossen sein Die in den Assembler-Befehlen vorkommenden Hauptspeicheroperanden können Bezeichnungen des C-Programms sein Die interne Darstellung und vor allem die Länge der Operanden muss gemäß der C-Deklaration so sein, dass sie kompatibel zum angewandten Befehl ist Damit kann ein Datenaustausch zwischen den Assembler- und den C-Passagen erfolgen 89 Beispiel: Assembler-Einbindung in C (2) mov buf,cx; Mit cx ist das counter-register (16 Bit) bezeichnet, folglich muss die angenommene C-Variable buf auch als eine vorzeichenlose Variable mit 16 Bit deklariert sein, dh unsigned short buf; Soll dagegen das 32-Bit-counter-Register adressiert werden (ecx): mov buf,ecx; so ist buf folgendermaßen zu deklarieren: unsigned int buf; Wird dies nicht beachtet, treten beim kompilieren Fehler auf Da der C-Compiler einen Inline-Assembler benutzt, sind nicht alle Codes, wie bei einem eigenständigen Assembler zugelassen 90

46 Beispiel: #include <stdioh> void main() { unsigned short erg; unsigned short eingabe = 2; unsigned char z; unsigned int buf; Assembler-Einbindung in C (3) } _asm { //xor cx,cx; // cx=0 mov cx, eingabe; inc cx; // cx++ inc cx; // cx++ shl cx,3; // *8 mov erg,cx; // erg=cx mov bl,102; // bl='f mov z,bl; // z=bl }; printf("\n erg=%u z=%c \n",erg,z); 91

Implementierung: Direkt abgebildeter Cache

Implementierung: Direkt abgebildeter Cache Implementierung: Direkt abgebildeter Cache Direkt-abgebildeter Cache von 64 KB mit 16-Byte-Linien (Adress- und Wortlänge 32 Bit, Byteadressierung) Address (showing bit positions) 31 30 29 28..... 19 18

Mehr

10. Rechnerarchitektur und Assemblerprogrammierung

10. Rechnerarchitektur und Assemblerprogrammierung 10 Rechnerarchitektur und Assemblerprogrammierung Inhalt: Schichtenmodell Konvertierung zwischen Schichten Neue Funktionen in Hardware oder Software? Rechnerarchitektur Assemblersprache und Einbindung

Mehr

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung

7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung 7a. Rechnerarchitektur und Grundzüge der Assemblerprogrammierung Inhalt: Schichtenmodell x86-architektur und x86-assemblerprogrammierung Assemblersprache und Einbindung in C 1 Schichtenmodell Strukturierung

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

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

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

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

10. Rechnerarchitektur und Assemblerprogrammierung

10. Rechnerarchitektur und Assemblerprogrammierung 10 Rechnerarchitektur und Assemblerprogrammierung Inhalt: Schichtenmodell Konvertierung zwischen Schichten Neue Funktionen in Hardware oder Software? Rechnerarchitektur Assemblersprache und Einbindung

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

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

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

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

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

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

Umsetzung in aktuellen Prozessoren

Umsetzung in aktuellen Prozessoren Kapitel 8: Umsetzung in aktuellen Prozessoren 4 Realisierung elementarer Funktionen Reihenentwicklung Konvergenzverfahren 5 Unkonventionelle Zahlensysteme redundante Zahlensysteme Restklassen-Zahlensysteme

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

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

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

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

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

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

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

CISC ( Complex Instruction Set Computer ) mächtige Instruktionssätze zur Unterstützung von Hochsprachenkonstrukten

CISC ( Complex Instruction Set Computer ) mächtige Instruktionssätze zur Unterstützung von Hochsprachenkonstrukten Hochleistungs-CPUs 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 in hardware

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

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

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

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

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

Einführung in die Programmierung mit C++

Einführung in die Programmierung mit C++ Seite 1 Einführung in die Programmierung mit C Teil IV - Weiterführende Themen 16. SIMD Programmierung Was bedeutet SIMD Seite SIMD Single-Instruction, Multiple-Data, also eine Instruktion, mehrere Daten

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

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

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse Kapitel 11 Rechnerarchitektur 11.1 Der von-neumann-rechner Wir haben uns bisher mehr auf die logischen Bausteine konzentriert. Wir geben jetzt ein Rechnermodell an, das der physikalischen Wirklichkeit

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

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

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

Echtzeit-Multitasking

Echtzeit-Multitasking Technische Informatik Klaus-Dieter Thies Echtzeit-Multitasking Memory Management und System Design im Protected Mode der x86/pentium-architektur. Shaker Verlag Aachen 2002 Die Deutsche Bibliothek - CIP-Einheitsaufnahme

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

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

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

Tutorium Rechnerorganisation

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

Mehr

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems

TIn 1: Feedback Laboratories. Lecture 4 Data transfer. Question: What is the IP? Institut für Embedded Systems. Institut für Embedded Systems Mitglied der Zürcher Fachhochschule TIn 1: Lecture 4 Data transfer Feedback Laboratories Question: What is the IP? Why do we NEED an IP? Lecture 3: Lernziele Moving data, the why s and wherefores Moving

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

Echtzeit Videoverarbeitung

Echtzeit Videoverarbeitung Hardwareplattformen für Echtzeit Videoverarbeitung Herbert Thoma Seite 1 Gliederung Echtzeitanforderungen Prozessorarchitekturen Grundlagen Pipelining Parallele Befehlsausführung Systemkomponenten Speicher

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Philipp Grasl PROZESSOREN

Philipp Grasl PROZESSOREN 1 PROZESSOREN INHALTSVERZEICHNIS Definition/Verwendung Prozessor Historische Entwicklung Prozessor Aufbau Prozessor Funktionsweise Prozessor Steuerung/Maschinenbefehle Prozessorkern Prozessortakt 2 DEFINITION

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

Mehr

Grundlagen der Rechnerarchitektur

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

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

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

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

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

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

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100

Mehr

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:

Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: 1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address

Mehr

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

Mehr

Assembler - Einführung 1. Teil. Vorstellung der wichtigsten Grundbegriffe und Grundkenntnisse sowie der wichtigsten Hardwarekomponenten

Assembler - Einführung 1. Teil. Vorstellung der wichtigsten Grundbegriffe und Grundkenntnisse sowie der wichtigsten Hardwarekomponenten Assembler - Einführung 1 Teil Vorstellung der wichtigsten Grundbegriffe und Grundkenntnisse sowie der wichtigsten Hardwarekomponenten 1 Einleitung Wenn man durchs Internet surft kann man den Eindruck gewinnen,

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

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

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen 4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen Ein Rechner besteht aus den folgenden Bestandteilen: Rechenwerk Rechenoperationen wie z.b. Addition, Multiplikation logische Verknüpfungen

Mehr

Technische Informatik 2 Adressierungsarten

Technische Informatik 2 Adressierungsarten Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine

Mehr

Übung zu Einführung in die Informatik # 10

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

Mehr

Die Sandy-Bridge Architektur

Die Sandy-Bridge Architektur Fakultät Informatik - Institut für Technische Informatik - Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Die Sandy-Bridge Architektur René Arnold Dresden, 12. Juli 2011 0. Gliederung 1.

Mehr

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

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

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Tutorübung

Mehr

Übung 1 - Betriebssysteme I

Übung 1 - Betriebssysteme I Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits

Mehr

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de

moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de moderne Prozessoren Jan Krüger jkrueger@techfak.uni-bielefeld.de Übersicht FachChinesisch SPARC - UltraSparc III/IV PowerPC - PowerPC 970(G5) X86 - Pentium4(Xeon), Itanium, (Pentium M) X86 - AthlonXP/MP,

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

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

3. Rechnerarchitektur

3. Rechnerarchitektur ISS: EDV-Grundlagen 1. Einleitung und Geschichte der EDV 2. Daten und Codierung 3. Rechnerarchitektur 4. Programmierung und Softwareentwicklung 5. Betriebssyteme 6. Internet und Internet-Dienste 3. Rechnerarchitektur

Mehr

Rechnergrundlagen SS 2007. 11. Vorlesung

Rechnergrundlagen SS 2007. 11. Vorlesung Rechnergrundlagen SS 2007 11. Vorlesung Inhalt Evaluation der Lehre (Auswertung) Synchroner/asynchroner Systembus Kontrollfluss/Datenfluss RISC vs. CISC Speicherhierarchie Cache Lesen Schreiben Überschreiben

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

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

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

Computergrundlagen Geschichte des Computers

Computergrundlagen Geschichte des Computers Computergrundlagen Geschichte des Computers Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 1641: Rechenmaschine von B. Pascal B. Pascal, 1632-1662 mechanische Rechenmaschine

Mehr

Hardware Praktikum 2008

Hardware Praktikum 2008 HaPra 2008 - Versuchsreihe 5 - ALU Hardware Praktikum 2008 Prof. Dr. H.-J. Wunderlich Dipl.-Inf. M. Imhof Dipl.-Inf. S. Holst Agenda Die HaPra-CPU Eine kleine Übersicht VHDL Projekt-Organisation Entwurf

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

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

Mehr

CISC-RISC-EPIC. eine Zwangs-Evolution?! Jörg Spilling - DECUS Frankfurter Treffen Seite: 1

CISC-RISC-EPIC. eine Zwangs-Evolution?! Jörg Spilling - DECUS Frankfurter Treffen Seite: 1 CISC-RISC-EPIC eine Zwangs-Evolution?! Jörg Spilling - DECUS Frankfurter Treffen 2008 www.equicon.de Seite: 1 Heutiges Programm: CISC-RISC-EPIC - Begriffserklärung von Neumann Rechnerarchitektur Evolution

Mehr

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

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft Prozeß: drei häufigste Zustände Prozeß: anatomische Betrachtung jeder Prozeß verfügt über seinen eigenen Adreßraum Sourcecode enthält Anweisungen und Variablen Compiler überträgt in Assembler bzw. Binärcode

Mehr

Ein- Ausgabeeinheiten

Ein- Ausgabeeinheiten Kapitel 5 - Ein- Ausgabeeinheiten Seite 121 Kapitel 5 Ein- Ausgabeeinheiten Am gemeinsamen Bus einer CPU hängt neben dem Hauptspeicher die Peripherie des Rechners: d. h. sein Massenspeicher und die Ein-

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

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

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines

Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Random Access Machine (RAM) Berechenbarkeit und Komplexität Random Access Machines Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University,

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

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE

DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE D - CA - IV - AA - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Vorlesung 4 DATEN UND BEFEHLSFORMATE, ADDRESSIERUNGSARTEN UND MASCHINEN- PROGRAMMIERUNGSKONZEPTE Sommersemester 2003 Leitung:

Mehr

Karlsruher Institut für Technologie

Karlsruher Institut für Technologie Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt

Mehr

Technische Informatik 2 Maschinenprogrammierungskonzepte

Technische Informatik 2 Maschinenprogrammierungskonzepte Technische Informatik 2 Maschinenprogrammierungskonzepte Prof Dr Miroslaw Malek Sommersemester 2005 wwwinformatikhu-berlinde/rok/ca Thema heute Ausführung von Befehlen Ein-/Ausgabeprogrammierung Architekturen

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

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

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

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011 Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste

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

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

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Heute nur MIPS-Praxis (4 Aufgaben)

Heute nur MIPS-Praxis (4 Aufgaben) Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen

Mehr