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 Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Gleitkommabefehle Multimediabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Speicher- Speicherarchitektur Register- Speicherarchitektur Akkumulatorarchitektur Stack- und Kellerarchitektur 8087, Intel, ATAM 862, Atmel Einzelbit Ganzzahl Gleitkomma Multimedia signed unsigned packed unpacked bcd ascii Byte Halbwort Wort Doppelwort Big-Endian Little-Endian ieee-754-std f = (-1)^s * 1.m * 2^(e-b) Unmittelbare Addressierung Registeraddressierung Direkte Addressierung Indirekte Addressierung Indirekte Addressierung mit Autoinkrement/Dekrement Indirekte Addressierung mit Verschiebung Indizierte Addressierung Indizierte Addressierung mit Verschiebung Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer Befehlsdekodierer Funktionsdekodierer ALU Registersatz Datenspeicher Befehlsspeicher Befehlszähler 1 x AND 2 x Addierer 1 x Bit Shifter 4 x MUX 1 x Vorzeichenerweiterungseinheit MemToReg MemWrite Branch ALU-Src ALU-Op RegDst RegWrite Funktionsdekodierer 1.) Func 2.) ALU-Op 3.) ALU-Operation ALU: - Ergebnis - Null AND: - PCSrc Datenspeicher - Lese-Daten - Schreibedaten - Addresse - WE Registersatz - Lese-Daten-1 - Lese-Daten-2 - Schreibedaten - Lese-Register-1 - Lese-Register-2 - Schreiberegister - WE Befehlsspeicher - Lesedaten - Addresse Befehlszähler - PC (t) - PC (t+1) 1.) Bedingt 2.) Unbedingt 1.) Absolut: Branch 2.) Befehlszählerraltiv: Jump 3.) Befehlszählerindirekt: Jump Register JAL: Jump and Link - eq - equal - ne - not equal - ge - greater than equal - gt - greater than - lt - less than equal - le - less than 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ühren 5.) Operanden in Architekturregister zurückschreiben 1.) IF = Instruction Fetch 2.) ID = Instruction Decode / Register Fetch 3.) EX = Execute Address Calculation 4.) MEM = Memory Access 5.) WB = Write Back 1.) Datenkonflikt 2.) Steuerflusskonflikt 3.) Struktur- und Ressourcenkonflikt 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.) 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