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 Mulimediabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade und Speicherarchitektur Speicher- Speicharchitektur Register- Speicherarchitektur Stack und Kellerarchitektur Akkumulatorarchitektur Big-Endian-Format Little-Endian-Format Einzelbit Ganzzahl Gleitkomma Multimedia signed unsigned packed unpacked bcd ascii byte halbwort wort doppelwort ieee-754-std f = (-1)\^s * 1.m * 2\^(e-b) 32: Einfach 64: Doppelt 80: Erweitert Absolute Addressierung Unmittelbare Addressierung Registeraddressierung Direkte Addressierung Indirekte Addressierung Indirekte Addressierung mit Verschiebung Indirekte Addressierung mit Autoinkrement/Dekrement Indizierte Addressierung Indizierte Addressiernug mit Verschiebung Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer Befehlsdekodierer MemToReg MemWrite Branch ALU-Src ALU-Op RegDst RegWrite Funktionsdekodierer Func ALU-Op ALU-Operation ALU Ergebnis NULL AND PCSrc Registersatz Leseregister-1 Leseregister-2 Schreiberegister Lese-Daten-1 Lese-Daten-2 Schreibedaten WE Datenspeicher Addresse Lesedaten Schreibedaten WE Befehlsspeicher Leseaddresse Lesedaten Befehlsz"ahler PC (t) PC (t+1) 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 Verzweigungsbefehle 1.) Bedingt 2.) Unbedingt eq - equal ne - not equal gt - greater than ge - greater than equal lt - less than le - less then equal Absolut: Branch Befehlsz"ahlerrelativ: Jump Befehlsz"ahlerindirekt: Jump Register JAL: Jump and link - speichern zus"atzlich die Addresse, die dem Sprungbefehl folgt PC_neu = PC_alt + (i << 2) PC_neu = PC_alt \& 0xf000 0000 | (i << 2) Zustandselemente - Befehlsspeicher - Befehlsz"ahler - Registersatz - Datenspeicher Pipeline-Stufe Pipeline-Segment Pipeline-Register Pipeline-Prinzip 1.) Befehl holen 2.) Befehl dekodieren 3.) Operanden der ALU bereitstellen 4.) Operation in der ALU ausf"uhren 5.) Operanden in Architekturregister zur"uckschreiben IF Instruction Fetch - Befehlsholephase ID Instruction Decode/Register Fetch - Befehlsdekodier und Operandenbereitstellungsphase EX Execute Address Calculation Ausf"uhrungsphase MEM Memory Access - Speicherzugriffsphase WB Write Back - Resultatspeicherphase 1.) In Order Issue In Order Completion 2.) Out Of Order Issue Out Of Order Completion 1.) Datenkonflikte 2.) Steuerflusskonflikte 3.) Struktur- und Ressourcenkonflikte 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.) ein Bit Pr"adiktor - Taken/Not Taken 2.2.) Strongly/Weakly T/NT