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 not, rem, abs, neg Datenbewegungsbefehle Arithmetisch Logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Systemsteuerbefehle Synchronisationsbefehle Programmsteuerbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Speicher- Speicherarchitektur Register- Speicherarchitektur Akkumulator-Architektur Stack - und Kellerarchitektur Intel 8087, ATAM 862 Atmel Little-Endian: Falsch rum Big-Endian: richtig rum 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 Bit: Einfach 64 Bit: Doppelt 80 Bit: Erweitert Registeraddressierung Unmittelbare Addressierung/Absolute Addressierung Direktwertaddresiserung Registeraddressierung Registeraddressierung mit Autoinkrement/Dekrement Registerindirkete Addressierung mit Verschiebung Indizierte Addressierung Indizierate Addressierung mit Verschiebung Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer Befehlsdekodierer 1.) MemToReg 2.) MemWrite 3.) Branch 4.) ALU-Src 5.) ALU-Op 6.) RegDst 7.) RegWrite Befehlsdekodierer Funktionsdekodierer Registersatz ALU Datenspeicher Befehlsspeicher Befehlsz"ahler 4 x MUX 1 x AND 2 x Addierer 1 x 2 Bit Shifter Befehlsdekodierer 1.) MemToReg 2.) MemWrite 3.) Branch 4.) ALU-Src 5.) ALU-Op 6.) RegDst 7.) RegWrite Registersatz 1.) Lese-Daten-1 2.) Lese-Daten-2 3.) Schreibedaten 4.) Lese-Register-1 5.) Lese-Register-2 6.) Schreiberegister 7.) WE RegWrite Datenspeicher - Lesedaten - Schreibedaten - Addresse - WE - MemWrite Befehlsspeicher - Lesedaten - Addresse Befehlsz"ahler - PC (t) - PC (t+1) ALU: - Ergebnis - Null AND: - PCSrc Funktionsdekodierer - Func - ALU-Op - ALU-Operation Func ALU-Op ALU-Operation 00 x 010 - add 01 x 110 - sub 10 100 000 - add 010 - add 11 n/a xx 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 1.) Absolut = Branch 2.) Befehlsz"ahlerrelativ = Jump 3.) Befehlsz"ahlerindirekt = Jump Register JAL - Jump and Link eq - equal ne - not equal gt - greater than ge - greater than equal lt - less than le - less then 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 Zustandselemente 1.) Befehlsspeicher 2.) Befehlsz"ahler 3.) Datensspeicher 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 IF - Instruction Fetch ID - Instruction Decode / Register Fetch EX - Execute / Address Calculation MEM - Memory Access WB - Write Back 1.) In Order Issue In Order Completion 2.) Out Of Order Issue Out Of Order Completion 1.) Statische Sprungvorhersage 1.1.) Predict Always Not Taken 1.2.) Predict Always Taken 1.3.) Predict Backward Taken, forward Not Taken 2.) Dynamisch 2.1.) Taken, not Taken 2.2.) Strongly/Weakly Taken Not Taken