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