lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
and
andi
or
ori
xor
xori
not
rem*
neg*
abs*
add
addiu
addu
sub
mult
multu
div
divu
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Lade- und Speicherarchitektur
Speicher-Speichar-Architektur
Register-Speicher-Architektur
Akkumulatorarchitektur
Stack und Kellerarchitektur
8087, Intel, atam 862 atmel
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
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 Addresssierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
1.) RegDst
2.) RegWrite
3.) Branch
4.) ALU-Src
5.) ALU-Op
6.) MemToReg
7.) MemWrite
1.) Befehlsdekodierer
2.) Funktionsdekodierer
3.) ALU
4.) Registersatz
5.) Datenspeicher
6.) Befehlsspeicher
7.) Befehlszähler
8.) Vorzeichenerweiterungseinheit
9.) 1 x AND
10.) 2 x Addierer
11.) 1 x 2 Bit Shifter
12.) 4 x MUX
Funktionsdekodierer
1.) Func
2.) ALU-Op
3.) ALU-Operatition
Datenspeicher
1.) Lese-Register-1
2.) Lese-Register-2
3.) Schreiberegister
4.) Lese-Daten-1
5.) Lese-Daten-2
6.) Schreibedaten
7.) WE
Befehlsspeicher
1.) Lese-Daten
2.) Addresse
ALU:
- ALUSrc
ALU:
- ALU-Ergebnis
- Null
Befehlszähler
- 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 Reg-Dst Reg-Write Branch ALU-Src MemToReg MemToWrite ALU-Op
r-Typ 000 000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
1.) Absolut
2.) Befehlszählerrelativ
3.) Befehlszählerindirekt
branch, jump, jump register
eq - equal
ne - not equal
ge - greater then equal
lt - less than
le - less than equal
gt - greater than
jal: jump and link
beq, bne
beqz*, bnez*
bgt, bge
blt, ble
bgtz, bgez*
bltz*, blez*
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.) Statisches Scheduling: In Order Issue in order compleation - VLIW - Prozessor
2.) Dynamisches: Out Of Order Issue Out of order completion: OOE-Prozessor
1.) Statische Sprungvorhersage
1.1) Predict always taken
1.2) Predict backward taken, forward not taken
1.3.) Predict not taken
2.) Dynamisch: ein oder zwei Bit Prädiktor
2.1.) Taken, Not Taken
2.2.) Strongly Taken, weakly Taken, weakly not taken, strongly not taken