lb, lbu lh, lhu lw ld* la* li* sb sh sw sd* add, addi, addiu sub mult, multu div, divu and andi or ori xor xori not*, rem*, abs*, neg* Datenbwegegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Systemsteuerbefehle Synchronisationsbefehle Programmsteuerbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Register- Speicherarchitektur Speicher- Speicherarchitektur Stack- und Kellerarchitektur Akkumulatorarchitektur Little-Endian Big-Endian Einzelbit Ganzzahl Gleitkomma Multimedia 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 Unmittelbare Addressierung Registeraddressierung Absolute Addressierung Direkte Addressierung Indirekte Addressierung Indirekte Addressierung mit Autoinkrement/Dekrement Indirekte Addressierung mit Verschiebung Indiziete Addressierung Indizierte Addressierung mit Verschiebun g 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 Lesedaten-1 Lesedaten-2 Schreibedaten Leseregister-1 Leseregister-2 Schreiberegister WE Datenspeicher Addresse Lesedaten Schreiedaten WE ALU - Ergebnis - Null AND: - PCsrc Befehlsspeicher - Lesedaten - Leseaddresse 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-Op r-typ 000 000 1 1 0 0 0 0 10 Verzweigungsbefehle 1.) Bedingt 2.) Unbedingt Absolut: Branch Befehlsz"ahlerrelativ: Jump Befehlsz"ahlerindirekt: Jump Register eq - equal ne - not equal gt - greater than ge - greater than equal lt - less than le - less than equal PC_neu = PC_alt + (i << 2) PC_neu = PC_alt \& 0xf000 0000 | (i << 2) j, b, jr jal jalr beq, bne beqz, bnez blt, ble bltz, blez bgt, bge bgtz, bgez 1.) Befehl holen 2.) Befehl dekodieren 3.) Operanden der ALU bereitstsellen 4.) Operation in der ALU ausf"uhren 5.) Operanden in Architekturregister zur"uckschreiben IF - Instruction Fetch ID - Instruction Decode / Register Fetch EX - Execute Address Calculation MEM - Memory Access WB - Write Back 1.) Datenkonflikte 2.) Steuerflusskonflikte 3.) Struktur und Ressourcenkonflikte 1.) In Order Issue In Order Completion 2.) Out Of Order Issue Out Of Order Completion 1.) Statisch 1.1.) Predict Always Not Taken 1.2.) "" Taken 1.3.) Backward Taken, forward Not Taken 2.) Dynamisch 2.1.) T, NT 2.2.) Strongly, Weakly T, NT