lb, lbu lh, lhu lw ld* la* li* sb sh sw sd* move add, addi, addiu sub mult, multu div, divu and, andi or, ori xor, xori rem*, abs*, neg*, not* Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Speicher- Speicherarchitektur Register- Speicherarchitektur Stack und Kellerachitektur Akkumulatorarchitektur ATAM862, Atmel, Intel 8087 Einzelbit Ganzzahl Gleitkomma Multimedia Little-Endian Big-Endian Byte Halbwort Wort Doppelwort signed unsigned packed unpacked bcd ascii ieee-754-std f = (-1)\^s * 1.m * 2\^(e-b) 32: Einfach 64: Doppelt 80: Erweitert Registeraddressierung Unmittelbare Addressierung Direkte Addressierung Absolute Addressierung Indirekte Addressierung Indirekte Addressierung mit Autoinkrement/Dekrement Indirekte Addressierung mit Verschiebung Indizierte Addressierung Indizierte Addressierung mit Verschiebung Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer MemToReg MemWrite Branch ALU-Src ALU-Op RegDst RegWrite Befehlsdekodierer Funktionsdekodierer Registersatz ALU Datenspeicher Befehlsspeicher Befehlsz"ahler Vorzeichenerweiterungseinheit 4 x MUX 1 x AND 2 x Addierer 1 x 2 Bit Shifter Befehlsdekodierer - MemToReg - MemWrite - Branch - ALU-Src - ALU-Op - RegDst - RegWrite Funktionsdekodierer - Func - ALU-Op - ALU-Operation Registersatz - Lese-Daten-1 - Lese-Daten-2 - Schreibedaten - Lese-Register-1 - Lese-Register-2 - Schreiberegister - WE Datenspeicher - Lesedaten - Schreibedaten - Addresse - WE ALU: - Ergebnis - Null AND - PCSrc Befehlsspeicher - Addresse - Lesedaten Befehlsz"ahler - PC (t) - PC (t+1) Func ALU-Op ALU-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 r-typ 000 000 1 1 0 0 0 0 10 Verzweigungsbefehle 1.) Bedingt 2.) Unbedingt eq - equal ne - not equal lt - less than le - less than equal gt - greater than ge - greater than equal jal - jump and link: Speichern zus"atzlich der Addresse, die dem sprungbefehle folgt 1.) Absolute = Branch 2.) Befehlsz"ahlerrelativ = Jump 3.) Befehlsz"ahlerindirekte = Jump Register j, b*, jr jal jalr beq, bne beqz, bnez blt, ble bltz, blez bgt, bge bgtz, bgez PC_neu = PC_alt + (i << 2) PC_neu = PC_alt \& 0xf000 0000 | (i << 2) Zustandselemente 1.) Befehlsregister 2.) Befehlsz"ahler 3.) Datenspeicher 4.) Registersatz 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 2.) ID = Instruction Decode / Register Fetch 3.) EX = Execute / Address Calculation 4.) MEM = Memory Access 5.) WB = Write Back 1.) Datenkonflikte 2.) Steuerflusskonflikte 3.) Struktur und Ressourcenkoflikte 1.) In Order Issue In Order Completion 2.) Out Of Order Issue Out Of Order Completion 1.) Predict Always Not Taken 2.) Predict Always Taken 3.) Predict Backward Taken, forward not taken 1.) Taken / Not Taken 2.) Strongly/Weakly T/NT