lb, lbu lh, lhu lw ld* la* li* sb sh sw sd* move add, addiu ,addi sub, subi mult, multu div, divu and, andi or, ori xor, xori rem, not, abs, neg Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Multimediabefehle Gleitkommabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Register- Speicherarchitektur Speicher- Speicherarchitektur Stack- und Kellerarchitektur Akkumulatorarchitektur 8087, Intel, ATAM 862, Atmel Little-Endian, Big-Endian Byte Halbwort Wort Doppelwort Einzelbit Ganzzahl Gleitkomma Multimedia 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 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 ALU Registersatz Datenspeicher Befehlsspeicher Befehlsz"ahler Vorzeichenerweiterungseinheit 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 Funktionsdekodierer 1.) Func 2.) ALU-Op 3.) ALU-Operation Registersatz 1.) Lese-Daten-1 2.) Lese-Daten-2 3.) Schreibedaten 4.) Lese-Register-1 5.) Lese-Register-2 6.) Schreiberegister 7.) WE Datenspeicher 1.) WE 2.) Lesedaten 3.) Schreibedaten 4.) Addresse Befehlsz"ahler 1.) PC (t) 2.) PC (t+1) Befehlsspeicher 1.) Addresse 2.) Lesedaten ALU-Op Func ALU-Operation 00 x 010 - add 01 x 110 - sub 10 100 000 - add 010 - add 11 x x 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 eq - equal ne - not equal gt - greater than ge - greater than equal lt - less than le - less than equal absolut: Branch Befehlsz"ahlerrelativ: Jump Befehlsz"ahlerindirekte: Jump Register JAL: Jump and Link: Speichern zus"atzlich die Addresse die dem Sprungbefehl folgt 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) 1.) Befehl holen 2.) Befehl dekodieren 3.) Operanden der ALU bereitstellen 4.) Operation in der ALU ausf"uhren 5.) Operandnen in Architekturregister zur"uckschreiben IF - Instruction Fetch ID - Instruction Decode / Register Fetch EX - Executue Address Calculation MEM - Memory Acess WB - Write Back 1.) Datenkonlikte 2.) Steuerflusskonflikte 3.) Struktur und Ressourcenkonflikte 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