lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
and
andi
or
ori
xor
xori
not
rem*
abs*
neg*
add
addi
addiu
sub
mult
multu
div
divu
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Gleitkommabefehle
Multimediabefehle
8087-Intel, Atam 862 Atmel
Lade- und Speichararchitektur
Register-Speicherarchitektur
Speicher-Speicherarchitektur
Akkumulator-Architektur
Stack und Kellerarchitektur
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
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)
little-endian-format
big-endian-format
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
- Befehlsdekodierer
- Funktionsdekodierer
- ALU
- Registersatz
- Datenspeicher
- Befehlsspeicher
- Befehlszähler
- Vorzeichenerweiterungseinheit
- 4 x MUX
- 1 x AND
- 2 x addierer
- 1 x 2 Bit Shifter
Funktionsdekodierer
1.) Func
2.) ALU-Op
3.) ALU-Operation
ALU
1.) Ergebnis
2.) Null
Datenspeicher
1.) Lese-Register-1
2.) Lese-Register-2
3.) Schreiberegister
4.) WE
5.) Schreibedaten
6.) Lese-Daten-1
7.) Lese-Daten-2
Datenspeicher:
1.) Addresse
2.) Lesedaten
3.) Schreibedaten
4.) WE
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
OpCode 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
2.) Befehlszählerrelativ
3.) Befehlszählerindirekt
1.) Branch
2.) Jump
3.) Jump Register
JAL - Jump and Link
eq - equal
ne - not equal
ge - greater than equal
gt - greater than
le - less than equal
lt - less than
j, jr, b*
jal, jalr
beq, bne
bgt, bge
blt, ble
beqz*, bnez*
bgtz, bgez
bltz, blez
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt & 0xf000 000 | (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 Completti
2.) Dynamisch: Out Of Order Out Of Order Completion
1.) Always taken
2.) Always not taken
3.) Backward taken, forward not takn
4.) T, NT
5.) Strongly Taken, ...