10. Rechnerarchitektur und Assemblerprogrammierung

Größe: px
Ab Seite anzeigen:

Download "10. Rechnerarchitektur und Assemblerprogrammierung"

Transkript

1 10 Rechnerarchitektur und Assemblerprogrammierung Inhalt: Schichtenmodell Konvertierung zwischen Schichten Neue Funktionen in Hardware oder Software? Rechnerarchitektur 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 Assembler zu kompliziert 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 oben entspricht daher eher einem Assemblerprogramm: 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 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) L3: Hybride Schicht: Einige Befehle von L3 (z B ADD) sind identisch mit L2 Dazu kommen Betriebssystemaufrufe (system calls) wie open(), write(),gettimeofday() etc, die von L3 interpretiert werden L2: Die Mikroarchitekur auf Schicht L1 interpretiert die Maschinensprache (per Mikroprogramm oder festverdrahtet) L1: Die Mikro-Operation bzw Steuerungen des Leitwerks werden durch die digitalen Schaltkreise aus Schicht L0 interpretiert ( Hardware-Interpreter ) 8

5 Konvertierung zwischen Schichten (4) Level 5 Level 4 Level 3 Problem-oriented language Translation (compiler) Assembly language Translation (assembler) Operating system machine Schichtenmodell kann auch als eine Hierarchie immer abstrakter virtueller Maschinen aufgefasst werden L5: Höhere Programmiersprache wird durch Compilation oder Interpretation auf die Schnittstelle zu L4 konvertiert L5 stellt eine virtuelle Maschine dar Level 2 Partial interpretation (operating system) Instruction set architecture Interpretation (microprogram) or direct execution L4 stellt eine virtuelle Maschine dar, die dem Benutzer als Schnittstelle Assemblerbefehle plus Systemaufrufe anbietet Level 1 Level 0 Microarchitecture Interpretation (Hardware) Digital logic L4: Assembler auf Schicht L4 übersetzt ein Assemblerprogramm in die erweiterte Maschinensprache (incl 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 Implementierung verborgen) 10

6 Funktionen in Hardware oder Software? 11 Funktionen in Hardware oder Software? Hardware (Entwicklung eines Mikroprozessors): schnell, aber unflexibel, teuerer Software: leicht änderbar, langsamer, 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 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) 13 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 14

8 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: 15 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 16

9 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 17 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 18

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

11 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 21 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 22

12 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 23 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 24

13 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 25 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 26

14 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 27 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 28

15 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 29 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 30

16 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 31 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 32

17 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 33 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 34

18 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 35 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 36

19 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 37 Virtueller Speicher (1) Grundprinzip der Umsetzung der virtuellen Adresse (VA) zu einer physikalischen Adresse (PA) VA msb Seiten-Nr Adressbereiche Offset lsb Seitentabelle Kachel-Nr PA Kachel 38

20 Virtueller Speicher (2) Grundprinzip wird um Eingabe des Prozess-Id erweitert Damit entstehen unter verschiedenen Prozessen unterschiedliche phys Adressen für gleiche virt Adressen Typischerweise wird eine mehrstufige Umsetzung durch kaskadierte Seitentabellen vorgenommen Siehe Illustrationen als Tafelbild 39 Zusammenspiel von Caches und virtuellem Speicher Caches für physikalische Adressen: Cache sequentiell hinter der MMU im Speicherzugriffspfad Logische (virtuelle) Adresse A wird erst in physikalische Adresse (Real Adress RA) übersetzt, dann diese im Cache gesucht Cache Hit CPU VA MMU RA Memory 40

21 Zusammenspiel von Caches und virtuellem Speicher Parallel zur MMU: Während die oberen Bits der virtuellen Adresse VBA (z B Seiten-Nummern) in die physikalische RBA (z B Kachel-Nummern) durch die MMU umgesetzt werden, werden aus dem Cache mittels der niederwertigen Bits die zugehörigen Linien ausgelesen (Anzahl = Größe der assoziativen Menge bzw eindeutig bei direkt abgebildetem Cache) Zur Entscheidung, ob ein Treffer vorliegt, muss noch die im Cache-Tag enthaltene RBA mit der von der MMU verglichen werden CPU VA VBA RBA MMU Vorteil: Adressräume mehrerer Memory Prozesse können gleichzeitig im Cache liegen (inkl gemeinsamer Compare OK Speicherbereiche) Nachteil: Physikalische Adresse muss von MMU vorliegen D Cache RBA Line of data Beispiel: L1-Cache des Motorola 41 TLB TLB: Translation Lookaside Buffer zur Umsetzung der logischen in die physikalische Adresse Assoziativspeicher in der MMU oft umgesetzte Adressen werden einem Cache-artigen Speicher entnommen Nicht gefundene Adressen sind über Seitentabellen nachzuschlagen Virtuelle Adresse Bild: Zusammenwirken der MMU mit dem Cache, Tags werden entsprechend einer physikalischen Adresse gewertet TLB Mengenauswahl Tags Hit / Miss? Wortauswahl innerhalb Cache-Linie Line Select Line 0 Line 1 64 Data (Instructions) 42

22 Zusammenspiel von Caches und virtuellem Speicher Caches für logische Adressen Cache kann auch im virtuellen Adressraum vor der MMU angeordnet sein CPU VA Cache MMU RA Memory Vorteil: Keine Verzögerung durch MMU, daher besonders für On-Chip- L1-Caches geeignet Nachteil: Bei Prozessen mit eigenen virtuellen Adressräumen entspricht die gleiche logische Adresse i Allg mehreren physikalischen Adressen Der Cache ist deshalb nach jedem Prozess-wechsel komplett zu löschen (Cache Flush/Kaltstart nach Prozess-wechsel) oder es ist ein zusätzliches Tag mit Prozess-Id (Linien mehrerer Prozesse gleichzeitig im Cache/Speicheraufwand) zu verwalten 43 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 44

23 Cache-Zugriffseffizienz Cache-Zugriffseffizienz als Funktion der Trefferrate H bei verschiedenen relativen Cache-Geschwindigkeiten r T 2 T 1 45 Beschleunigungstechniken für den Prozessor Verschiedene Techniken: Befehlsphasenpipelining Befehlspipelining VLIW SIMD 46

24 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 Befehlsphasenpipelining 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 IF ID OF EX S IF ID OF EX S Ziel: CPI=1 (CPI: Clocks per Instruction) IF ID OF EX S 3 Befehle in 7 Takten, 23 Takte je Befehl, 1 Takt je Befehl wenn Pipeline gleichmäßig gefüllt 47 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 48

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

26 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 51 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 52

27 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] 53 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 54

28 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) 55 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 56

29 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 57 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 58

30 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 59 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) 60

31 SIMD Single Instruction Multiple Data (Klassifikation nach Flynn), dh ein Leitwerk und mehrere Operationswerke, die gleichen Befehl 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) 61 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 62

32 MMX-Befehlssatz Register: 8 FP-Register (64 oder 80 Bit) Insgesamt 57 Befehle Geschwindigkeitssteigerung von % für typische Multimedia- Anwendungen 63 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) 64

33 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 65 x86 Architektur (2) 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) 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) 66

34 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 67 IA-32 Datentypen CISC-Befehlsformat (variable Länge) Adressierungsarten - unmittelbar - Register indirekt - direkt - indiziert - Register 68

35 IA-32 Befehlssatz ohne Gleitkommabefehle Typischer CISC-Befehlssatz 69 IA-32 Befehlssatz ohne Gleitkommabefehle 70

36 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) 71 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 72

37 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 73 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 74

38 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 75 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 76

39 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: 77 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 78

40 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 79 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 80

41 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 81 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 82

42 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] 83 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] 84

43 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 85 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 86

44 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); 87

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

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

MMX Varianten der Arithmetik

MMX Varianten der Arithmetik 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 a0 + + + + 3000h

Mehr

7b. Rechnerarchitektur

7b. Rechnerarchitektur 7b. Rechnerarchitektur Inhalt: Schichtenmodell Rechnerarchitektur und Techniken innerhalb der Mikroprozessoren 1 Schichtenmodell Schnittstelle zu Level 2 entspricht einer Rechnerarchitektur Schicht Level

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

12. Rechnerarchitektur und Assemblerprogrammierung

12. Rechnerarchitektur und Assemblerprogrammierung 12 Rechnerarchitektur und Assemblerprogrammierung Inhalt: Schichtenmodell Rechnerarchitektur und Techniken innerhalb der Mikroprozessoren x86-architektur und x86-assemblerprogrammierung Assemblersprache

Mehr

1. Grundlagen der Informatik Organisation und Architektur von Rechnern

1. Grundlagen der Informatik Organisation und Architektur von Rechnern 1. Grundlagen der Informatik Organisation und Architektur von Rechnern Inhalt Grundlagen digitaler Systeme Boolesche Algebra / Aussagenlogik Organisation und Architektur von Rechnern Algorithmen, Darstellung

Mehr

1. Grundlagen der Informatik

1. Grundlagen der Informatik 1. Grundlagen der Informatik Inhalt Organisation und Architektur von Rechnern Boolesche Algebra / Aussagenlogik Zahlensysteme und interne Informationsdarstellung Algorithmen, Darstellung von Algorithmen,

Mehr

1. Grundlagen der Informatik Organisation und Architektur von Rechnern

1. Grundlagen der Informatik Organisation und Architektur von Rechnern 1. Grundlagen der Informatik Organisation und Architektur von Rechnern Inhalt Algorithmen, Darstellung mit Struktogrammen und Programmablaufplänen Boolesche Algebra / Aussagenlogik Grundlagen digitaler

Mehr

Der Intel 8086 Reto Gurtner 2005

Der Intel 8086 Reto Gurtner 2005 Der Intel 8086 Reto Gurtner 2005 1 1. DIE INTERNEN REGISTER... 3 1.1 ALLGEMEINE REGISTER AX, BX, CX UND DX... 3 DAS AX-REGISTER... 4 DAS BX-REGISTER... 4 DAS CX-REGISTER... 5 DAS DX-REGISTER... 5 1.2 DIE

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

JR - RA - SS02 Kap

JR - RA - SS02 Kap 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining 3.5 Superskalare Befehlsausführung JR - RA - SS02 Kap.

Mehr

JR - RA - SS02 Kap

JR - RA - SS02 Kap 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining 3.5 Superskalare Befehlsausführung JR - RA - SS02 Kap.

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

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

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

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

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

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

Mehr

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

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

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

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

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

ERA-Zentralübung Maschinenprogrammierung

ERA-Zentralübung Maschinenprogrammierung ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 27.10.2017 Arithmetik mit 80386 Inhalt Rechenmodell Register Befehle Beispiele 80386-Rechenmodell Typisches Zwei-Address-Format Ziel :=

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

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

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

Mehr

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg Assembler Dr.-Ing. Volkmar Sieh Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2017/2018 V. Sieh Assembler (WS16/17) 1 15 Einleitung

Mehr

H. Intel x86 CPU. Höhere Informatik. Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe

H. Intel x86 CPU. Höhere Informatik. Systemprogrammierung: - Betriebssystemkonzepte, Ein- & Ausgabe H. Intel x86 CPU Historische Entwicklung des x86 Registersatzes. Complex Instruction Set Computer (CISC), Deskriptoren & Adressierung, Cacheausstattung. Höhere Informatik Systemprogrammierung: - Betriebssystemkonzepte,

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

ERA-Zentralübung Maschinenprogrammierung

ERA-Zentralübung Maschinenprogrammierung ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 17.11.2017 Inhalt Aufgabe 3.1 Aufgabe 3.2 Aufgabe 3.3 Logische Operationen Schiebebefehle Weitere Befehle Registerübersicht Aufgabe 3.1

Mehr

RO-Tutorien 15 und 16

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

Mehr

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

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

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 13. Vorlesung Inhalt Cache Lesen Schreiben Überschreiben Memory Management Unit (MMU) Translation Lookaside Buffer (TLB) Klausurvorbereitung Inhalte der Klausur Rechnergrundlagen

Mehr

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

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

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 4. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Aufgabe

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

Virtueller Speicher und Memory Management

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

Mehr

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

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

Klausur Mikroprozessortechnik

Klausur Mikroprozessortechnik 1 Prof. Dr. K. Wüst WS 2001 FH Gießen Friedberg, FB MNI Studiengang Informatik Nachname: Vorname: Matrikelnummer: Klausur Mikroprozessortechnik 14.9.2001 Punkteverteilung Aufgabe Punkte erreicht 1 3 2

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 26 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 26/5/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

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

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

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

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 27 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 27/5/3 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

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

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

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

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

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 4. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2012/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik

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

Kapitel 11 RISC-Rechner

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

Mehr

Betriebssystembau (BSB)

Betriebssystembau (BSB) Betriebssystembau (BSB) 4. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2015/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik

Mehr

MikroController und Mikroprozessoren

MikroController und Mikroprozessoren Uwe Brinkschulte Theo Ungerer MikroController und Mikroprozessoren Mit 205 Abbildungen und 39 Tabellen Springer Inhaltsverzeichnis 1 Grundlagen 1 1.1 Mikroprozessoren, MikroController, Signalprozessoren

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

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

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

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

Rechnernetze und Organisation

Rechnernetze und Organisation Pentium 1 Übersicht Motivation Architektur Instruktions-Set Adressierungsarten Geschichte Verbesserung und Erweiterungen 2 Motivation Verständnis von Prozessoren: Warum Pentium statt kleiner CPU? Pentium

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation Framework für Assignment A2 1 Übersicht Framework für Assignment A2 WH: Aufgabenstellung Klassen und Methoden Getting started Erste Instruktion aus Testdaten dekodieren 2 Aufgabenstellung Instruction-Set

Mehr

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009 Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009 Die beigefügte Lösung ist ein Vorschlag. Für Korrektheit, Vollständigkeit und Verständlichkeit wird keine Verantwortung übernommen.

Mehr

DIGITALE SCHALTUNGEN II

DIGITALE SCHALTUNGEN II DIGITALE SCHALTUNGEN II 3. Sequentielle Schaltkreise 3.1 Vergleich kombinatorische sequentielle Schaltkreise 3.2 Binäre Speicherelemente 3.2.1 RS Flipflop 3.2.2 Getaktetes RS Flipflop 3.2.3 D Flipflop

Mehr

Rechnerorganisation. H.-D. Wuttke `

Rechnerorganisation. H.-D. Wuttke ` 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

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

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

Mehr

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

Instruktionssatz-Architektur

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

Mehr

Wie groß ist die Page Table?

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

Mehr

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

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

Mehr

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

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

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Teil 1 Kapitel 2 Rechner im Überblick 2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise Frank Schmiedle Technische Informatik I 2.1 Rechnersichten Modellierung eines Rechners Zusammenspiel

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

Mikroprozessortechnik Grundlagen 1

Mikroprozessortechnik Grundlagen 1 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Rechnernetze und Organisation

Rechnernetze und Organisation RISC 1 Übersicht Motivation RISC-Merkmale RISC-Instruktionsformat Pipelining Sparc, MIPS, Arm, PowerPC 2 Motivation Warum RISC Compiler nutzen komplexe CISC-Instruktionen kaum Nur 80% der Instruktionen

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

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005 Mikroprozessoren Aufbau und Funktionsweise Christian Richter Ausgewählte Themen der Multimediakommunikation SS 2005 Christian Richter (TU-Berlin) Mikroprozessoren AT MMK 2005 1 / 22 Gliederung Was ist

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

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

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

Datenpfad einer einfachen MIPS CPU

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

Mehr

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7) J. Zhang zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme

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

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

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

Speicher. Speicher. Speicherhierarchie. Speicher. Interessante Zahlen:

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

Mehr

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

Übung zu Betriebssysteme

Übung zu Betriebssysteme Übung zu Betriebssysteme Threadumschaltung 6. & 8. Dezember 2017 Andreas Ziegler Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte Systeme

Mehr

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

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

Mehr

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

Mehr

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

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

Mehr

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14

Betriebssysteme BS-S SS Hans-Georg Eßer. Foliensatz S: Speicherverwaltung. Dipl.-Math., Dipl.-Inform. v1.0, 2015/04/14 BS-S Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz S: Speicherverwaltung v1.0, 2015/04/14 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie S-1 Übersicht: BS Praxis und BS

Mehr