lb, lbu: Laden eines Bytes lh, lhu: Laden eines Halbwortes lw: Laden eines Wortes ld*: Laden eines Doppelwort la*: Laden einer Addresse li*: Laden eines immidiate Wertes sb: Speichern eines Bytes sh: Speichern eines Halbwortes sw: Speichern eines Wortes sd*: Speichern eines Doppelwortes add, addiu, addi sub mult, multu div, divu and, andi or, ori xor, xori nor rem*, abs*, neg*, not* Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiadressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Speicher-Speicherarchitektur Register-Speicherarchitektur Stack- und Kellerarchitektur Akkumulatorarchitektur Stackarchitektur: 8087 - Intel, ATAM, 862 Atmel Little-Endian Big-Endian Byte, Halbwort, Wort, Doppelwort signed, unsigned, packed, unpacked, bcd, ascii Einzelbit, Ganzzahl, gleitkomma, Multimedia ieee-754-std, f = (-1)\^s * 1.m * 2\^(e-b) 32: Einfach 64: Doppelt 80: Erweitert Registeraddressierung Unmittelbare Addressierung Absolute Addressierung Direkte Addressierung Indrirekte Addressierung Indirekte Addressierung mit Autoinkrement/Dekrement Indirekte Addressierung mit Verschiebung Indizierte Addressierung Indizierte Addressierung mit Verschiebung Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer RegDst RegWrite MemToReg MemWrite Branch ALU-Src Befehlsdekodierer Funktionsdekodierer Registersatz ALU Datenspeicher Befehlsspeicher Befehlsz"ahler 1 x AND 4 x MUX 1 x Addierer 1 x 2 Bit Shifter Registersatz - Lese-Daten-1 - Lese-Daten-2 - Schreibedaten - Lese-Register-1 - Lese-Register-2 - Schreiberegister - WE Datenspeicher - Addresse - Lesedaten - Schreibedaten - WE Befehlsspeicher - Leseaddresse - Lesedaten Befehlsz"ahler - PC (t) - PC (t+1) Funktionsdekodierer - Func - ALU-Op - ALU-Operation ALU: - Ergebnis - Null AND - PCSrc 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 1.) Bedingt 2.) Unbedingt 1.) Absolut: Branch 2.) Befehlsz"ahlerrelativ: Jump 3.) Befehlsz"ahlerindirekt: Jump Register - eq - equal - ne - not equal - gt - greater than - ge - greater than equal - lt - less than - le - less than equal Fall 1: Der im Befehlswort kodierte Befehlsz"ahler wird ersetzt: PC_neu = PC_alt + (I << 2) Fall 2 PC_neu = PC_alt \& 0xf000 0000 | (I << 2) j, b*, jr jal jalr beqz*, bnez* beq, bne bgt*, bge* bgtz, bgez blt*, ble* bltz, blez 1.) Befehl holen 2.) Befehl dekodieren 3.) Operanden der ALU bereit stellen 4.) Operation in der ALU ausf"uhren 5.) Ergebnis in Architekturregister zur"uckschreiben 1.) IF - Instruction Fetch - Befehlsbereitstellungsphase 2.) ID - instruction decode / register fetch - Befehlsdekodierphase - Operadenbereitstellungsphase 3.) EX - Execute Address Calculation - Ausf"uhrungsphase 4.) MEM - Memory Access - Speicherzugriffsphase 5.) WB - Write Back - Resultatspeicherphase Pipeline-Segment Pipeline-Stufe Pipeline-Register Zustandselemente - Datenspeicher - Befehlsspeicher - Befehlsz"ahler - Registersatz 1.) Datenkonflikte 2.) Steuerflusskonflikte 3.) Struktur und Ressourcenkonflikte 1.) In Order Issue In Order Completion - VLIW- Prozessor 2.) Out of order issue out of Order Completion Sprungvorhersage 1.) Statisch 1.1.) Predict Always Not Taken 1.2.) Predict Always Taken 1.3.) Predict Backward Taken, forward not Taken 2.) Dynamisch: 1 und 2 Bit Pr"adiktor 2.1.) Taken, Not Taken 2.2.) Strongly, weakly, weakly not, strongly not