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* Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Systemsteuerbefehle Synchronisationsbefehle Programmsteuerbefehle Dreiaddressformat Zweiaddressformat einaddressformat Nulladdressformat Lade- und Speicherarchitektur Speicher-Speicherarchitektur Register-Speicherarchitektur Stack- und kellerarchitektur Akkumulatorarchitektur Little-Endian Big-Endian signed unsigned packed unpacked bcd ascii byte halbwort wort doppelwort einzelbit ganzzahl Gleitkomma multimedia ieee-754-std f = (-1)\^s*1.m*2\^(e-b) 32: einfach 64: doppelt 80: erweitert Unmittelbare Addressierung Absolute Addressierung Register Addressierung Direkte Addressierung Indirekte Addressierung Indirekte Addressierung mit Verschiebung Indirekte Addressierung mit Autoinkrement/Dekrement 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 Registersatz: Lesedaten-1 Lesedaten-2 Schreibedaten Lese-Register-1 Lese-Regiter-2 Schreiberegister WE Datenspeicher Lesedaten Schreibedaten WE Addresse ALU: - ALU-Ergebnis - Null AND: PC-Src Funktionsdekodierer Func ALU-Op ALU-Operation Befehlsdekodierer MemToReg MemWrite Branch ALU-Src Reg-Dst Reg-Write Befehlsspeicher - Leseaddresse - Lesedaten Befehlsz"ahler - PC (t) - PC (t+1) ALU-Op Func ALU-Operation 00 x 010 - add x1 x 110 - sub 1x 100 000 - add 010 - add op-code regdst regwrite branch alu-src memtoreg memwrite mal-op r-typ 000 000 1 1 0 0 0 0 10 Verzweigungsbefehle 1.) Bedingt 2.) Unbedingt Absolute Befehlsz"ahlrelativ Befehlsz"ahlerindirekte jal: jump and link: Speichern zus"atzlich die Addresse, die dem Sprungbefehl folgt j: jump jr: jump register eq - equal ne - not equl gt - greater than ge - greter than equal lt - less than le - less than equal j, b*, jr jal jalr beq, bne beqz*, bnez* blt*, ble* bltz, blez bgt*, bge* bgtz, bgez PC = PC_alt + (I << 2) PC = PC_alt \& 0xf000 0000 | (I << 2) Datenkonflikte Steuerflusskonflikte Struktur und Ressourcenkonflikte Zustandselemente Befehlsz"ahler Befehlsspeicher Registersatz Datenspeicher Befehl holen Befehl dekodieren Operanden der ALU bereit stellen Operation in der ALU ausf"uhren Operanden in Architekturregister zur"uckschreiben 1.) IF - Instruction Fetch - Befehls Hole Phase 2.) ID - Instruction Decode / Register Fetch - Befehlsdekodier und 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 2.) Dynamisches Scheduling: Out Of Order Issue Of Order Completion: OOE-Prozessor 1.) Statische Sprungvorhersage 1.1.) Predict Always Not Taken 1.2.) Predict Always Taken 1.3.) Predict Backward Taken forwar not taken 2.) Dnyamisch 2.1.) Ein bit pr"adiktor: Taken not taken 2.2.) Strongly weakly T/NT