lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
and
andi
or
ori
xor
xori
add
addi
addiu
sub
mult
multu
div
divu
abs*
neg*
rem*
mod*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Lade und Speicherarchitektur
Register-Speicherarchitektur
Speicher-Speicherarchitektur
Akkumulator-Architektur
Stack und Kellerarchitektur
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
8087, Intel, Atam862, Atmel
Einzelbit
Ganzzahl
Ǵleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
signed
unsigned
packed
unpacked
bcd
ascii
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 Addressirung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
RegDst
RegWrite
Branch
ALU-Src
ALU-Op
MemToReg
MemWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
1 x AND
2 x Addierer
1 x 2 Bit Shifter
4 x MUX
1.) Func
2.) ALU-Op
3.) ALU-Operation
Datenspeicher:
1.) Lese-Register-1
2.) Lese-Register-2
3.) Schreiberegister
4.) Lese-Daten-1
5.) Lese-Daten-2
6.) Schreibedaten
7.) WE
Datenspeicher
1.) Lesedaten
2.) Schreibedaten
3.) WE
4.) Addrsse
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 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation
r-typ 000 000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
1.) Absolut: branch
2.) Befehlszählerralativ: jump
3.) Befehlszählerindirekte: jump register
eq - equl
ne - not equal
le - less than equal
lt - less than
ge - greater than equal
gt - greater than
j, b*, jr
jal, jalr
beq, bne
blt, ble
bgt, bge
beqz*, bnez*
bltz, blez
bgtz, bgez
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 Architakturregister 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 Completion - VLIW - Prozessor
2.) Dynamisches Scheduling: Out Of Order Issue Out Of Order Completion - OOE - Prozessor
1.) Statische Sprungvorhersage
1.1.) Predict always taken
1.2.) Predict always not taken
1.3.) Predict backward Taken / Forward not taken
2.) Ein und zwei Bit-Prädiktor (dynamisch)
2.1.) Predict Taken, Not Taken
2.2.) Predict Strongly Taken, weakly taken, weakly not taken, strongly not taken