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 abs* neg rem not Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Programmsteuerbefehle Gleitkommabefehle Multimediabefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Speicher-Speicherarchitektur Register-Speicherarchitektur Akkumulator-Architektur Stack und Kellerarchitektur Stackarchitektur: 8087, Intel, atm862, atmel 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) 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 Registeresatz Datenspeicher Befehlsspeicher Befehszähler Vorzeichenerweiterungseinheit 1 x AND 2 x Addierer 1 x 2-Bit-Shifter 4 x Multiplexer ALU: - Null - Func - ALU-OP Datenspeicher - Addresse - Lesedaten - Schreibedaten - WE Registersatz - Lese-Register-1 - Lese-Register-2 - Lese-Daten-1 - Lese-Daten-2 - Schreiberegister - Schreibedaten - WE Befehlszähler - PC (t) - PC (t+1) Befehlspeicher: - Addresse - Schreibedaten AND: - PCSrc Func ALU-Op ALU-Operation 00 x 010 add x1 x 110 sub 1x 1000000 010 add r-typ 000 000 1 1 0 0 0 0 10 1. Bedingte Sprungbefehle 2. Unbedingte Sprungbefehle 1. Absolut 2. Befehlszählerrelativ 3. Befehlszählerindirekt Absolut: Branch Befehlszählerrelativ: JUMP JUMP AND LINK j, jr jal, jalr b eq equal ne not equal le less than equal lt less than ge greater than equal gt greater than beq, bne bge, bgt bgtz, bgez blt, ble bltz, blez 1. Befehl holen 2. Befehl dekodieren 3. Operanden der ALU bereitstellen 4. Operation in der ALU ausführen 5. Ergebnis in Architekturregister zurückschreiben IF, ID, EX, MEM, WB IF: Instruction Fetch ID: Instruction Decode Register Fetch EX: Execute MEM: Memory Access WB: Write Back 1. Datenkonflikt 2. Steuerflusskonflikt 3. Struktur und Ressourcenkonflikte 1. Statisches Scheduling: In-Order issue in order completion 2. Dynamisches Scheduling: Out-of-order issue out of order completion VLIW: Very Long Intruction Word Statische Sprungvorhersage: - Predict Alway Taken - Predict Always Not Taken - Predict Backward Taken forward not Taken T: Taken NT: Not Taken Predict Strongly Taken Predict Weakly Taken Predict Strongly Not Taken Predict Weakly Not Taken