lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
mult
multu
div
divu
add
addiu
addu
sub
and
andi
or
ori
xor
xori
not
rem*
abs*
neg*
Transportbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Multimediabefehle
Gleitkommabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Lade- und Speicherarchitektur
Register-Speicherarchitektur
Speicher-Speicherarchitektur
Akkumulator-Architektur
Stack- und Kellerarchitektur
8087, Intel, Atam 862, Atmel
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
byte
halbwort
wort
doppelwort
big-endian
little-endian
f = (-1)^s * 1.m * 2^(e-b)
ieee-754-std
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
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Funktionsdekodierer
1.) Func
2.) ALU-Op
3.) ALU-Operation
Funktionsdekodierer
Befehlsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
1 x AND
2 x Addierer
1 x 2 Bit Shifter
4 x MUX
Registersatz
1.) Lese-Daten-1
2.) Lese-Daten-2
3.) Schreibedaten
4.) WE
5.) Lese-Register-1
6.) Lese-Register-2
7.) Schreiberegister
Datenspeicher
1.) Addresse
2.) WE
3.) Lesedaten
4.) Schreibedaten
Befehlsspeicher
1.) Addresse
2.) Lesedaten
Befehlszähler
1.) PC (t)
2.) PC (t+1)
Func ALU-Op ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - Add
Operationscode RegDst RegWrite ALU-Src Branch MemToReg MemWrite ALU-Op
r-Typ 000 000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
1.) Absolut: branch
2.) Befehlszählerrelativ: Jump
3.) Befehlszählerindirekt: Jump Register
eq - equal
ne - not equal
ge - greater than equal
gt - greater than
le - less than equal
lt - less than
jump and link
j, b*, jr
jal, jalr
beq, bne
beqz*, bnez*
bge, bgt
bgez, bgtz
ble*, blt*
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 Calcualtion
4.) MEM = Memory Access
5.) WB = Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur- und Ressourcenkonflikte
1.) VLIW = Very Long Instruction Word
1.) Statisches Scheduling: In Order Issue In Order Completion = VLIW-Prozessor
2.) Dynamisches Scheduling: Out Of Order Issue Out Of Order Completion = OOE-Prozessor
1.) Predict Always not taken
2.) Predict Always taken
3.) Predict Backward Taken, Forward not taken
4.) Ein-Bit-Prädiktor: Taken, Not Taken
5.) Strongly Taken, weakly taken, strongly not taken, weakly not taken.