lb, lbu: Laden eines Bytes lh, lhu: Laden eines Halbwortes lw: Laden eines Wortes ld*: Laden eines Doppelwortes la*: Laden einer Addresse li*: Laden eines Immidiate Wertes sb: Speichern eines Bytes sh: Speichern eines Halbwortes sw: Speichern eines Wortes sd*: Speichern eines Doppelwortes addi, addu, addiu sub mult, multu div, divu and, andi xor, xori or, ori nor rem*, abs*, neg*, not* Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade und Speicherarchitektur Register- Speicherarchitektur Speicher- Speicherarchitektur Stack- und Kellerarchitektur Akkumulatorarchitektur Stackarchitektur: 8087 - Intel, ATAM862 Atmel Einzelbit Ganzzahl Gleitkomma Multimedia signed unsigned packed unpacked BCD ASCII Byte Halbwort Wort Doppelwort Nibble Byte Halbwort Wort Doppelwort Quadwort Tenbyte Little-Endian Big-Endian Gleitkomma: 32: Einfach 64: Doppelt 80: Erweitert f = (-1)\^s * 1.m * 2\^(e-b) Registeraddressierung Unmittelbare Addressierung ++++ Direkte und Absolute Addresserierung Registerindirekte Addressierung Registerindirekte Addressierung mit Autoinkrement/Dekrement Registerindirekte Addressierung mit Verschiebung/Displacement Indizierte Addressierung Indizierte Addressierung mit Verschiebung Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer MemToReg MemWrite Branch ALU-Src ALU-Op RegDst RegWrite Funktionsdekodierer +++ (a) Befehlsdekodierer ALU Befehlsspeicher Befehlsz"ahler Datenspeicher Registersatz Vorzeichenerweiterungseinheit 4 x MUX 1 x AND 2 x Addierer 1 x Bit Shifter Funktionsdekodierer: +++ (a) Schon gekl"art 1.) Func 2.) ALU-Op 3.) ALU-Operanden +++ heisst das Operanden oder Operation? Operanden macht Sinn, weil entschieden was an die ALU kommt Befehlsdekodier: 1.) MemToReg 2.) MemWrite 3.) Branch 4.) ALU-Src 5.) ALU-Op 6.) RegDst 7.) RegWrite ALU: 1.) ALU-Ergebnis 2.) Null Datenspeicher: - Lese-Daten - Schreibedaten - Addresse - WE Registersatz: - Lese-Daten-1 ++++ (Daten, Register???) - Lese-Daten-2 - Lese-Register-1 - Lese-Register-2 - Schreidaten - Schreibe-Register - WE Befehlsz"ahler - PC (t) - PC (t+1) Befehlsspeicher: - Lesedaten - Leseaddresse Func ALU-Op ALU-Operanden +++ Operanden oder Operation??? 00 x 010 - add x1 x 110 - sub 1x 100 000 - add 010 - add OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation ?? Operanden r-typ 000 000 1 1 0 0 0 0 10 Sprungbefehle 1.) Bedingt 2.) Unbedingt +++ Genau angucken 1.) Absolut: Branch 2.) Befehlsz"ahlerrelativ: Jump 3.) Befehlsz"ahlerindirekt: Jump Register - eq - ne - lt - le - gt - ge 1.) Befehlsz"ahlerrelativ: Das Ziel wird errechnet, indem man den aktuellen Befehlsz"ahler + einem festen Wert ausrechnet und dahin springt PC_neu = PC_alt + (I << 2) 2.) Befehlsz"ahlerindirekt: Der Wert als Befehlsz"ahler wird ersetzt PC_neu = PC_alt \& 0xf000 0000 | (I << 2) 1.) Befehl holen 2.) Befehl dekodieren/Befehlausf"uhren Pipelining Zustandselemente 1.) Befehlsspeicher 2.) Befehlsz"ahler 3.) Registersatz 4.) Datenspeicher Pipeline - Pipeline-Phase - Pipeline-Stufe ** - Pipeline-Segmente ** 1.) Befehl holen 2.) Befehl dekodieren 3.) Operanden der ALU bereitstellen 4.) Operation in der ALU ausf"uhren 5.) Operanden in Architekturregister zur"uckschreiben 1.) IF - Instruction Fetch - Befehlsbereitstellungsphasen 2.) ID - Instruction Decode / Register Fetch: Befehlsdekodierphase - Operandenbereitstellungsphase 3.) EX - Execute Address Calculation - Ausf"uhrungsphase 4.) MEM - Memory Access - Speicherzugriffsphase 5.) WB - Write Back - Resultatspeicherphase 1.) Statisches Scheduling - In Order Issue In Order Completion - VLIW - Prozessor - Very Long Instruction Word 2.) Dyanmisch: Out Of Order Issue Out Of Order Completion - OOE - Prozessor 1.) Statische Sprungvorhersage: 1.1.) Predict Always Not Taken 1.2.) Predict Always Taken 1.3.) Predict Backward Taken, forward Not Taken 2.) Dynamische Sprungvorhersage 2.1.) Predict Taken, Predict Not Taken 2.2.) Predict Strongly Taken, Strongly Not Taken, Weakly Taken, Weakly Not Taken