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
rem*
not*
neg*
abs*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Lade- und Speicherarchitektur
Register-Speicherarchitektur
Speicher-Speicherarchitektur
Akkumulatorarchitektur
Stack und Kellerarchitektur
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Intel 8087, atam862, Atmel
Byte
Halbwort
Wort
Doppelwort
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
Direktwertaddressierung
Direkte Addressierung
Registeraddressierung
Indirekte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addresssierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-SRC
ALU-OP
RegDst
RegWrite
Befehlsdekodierer
Funktionsdekodierer
Registersatz
ALU
Datenspeicher
Befehlsspeicher
Befehlsregister
Vorzeichenerweiterungseinheit
1 x AND
2 x Addierer
1 x 2 Bit Shifter
4 x MUX
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
Datenspspeicher:
- Addresse
- Lese-Daten
- Schreibedaten
- WE
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- WE
AND:
- ALUSrc
ALU:
- Ergebnis
- NULL
Befehlsspeicher:
- Addresse
- Lesedaten
Befehlszähler
- PC (t)
- PC (t+1)
Func ALU-OP ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100000 - add 010 - add
OP-Code Reg-Dst Reg-Write Branch ALU-Src MemToReg MemWrite ALU-Operation
R-Typ 000 000 1 1 0 0 0 0 10
1.) Bedingte Sprungbefehle
2.) Unbedingte
1.) Absolut: Branch
2.) Befehlszählerrelativ: Jump
3.) Befehlszählerindirekte: Jump Register
eq equal
ne not equal
ge greater than equal
gt greater tahn
lt less than
le less than equal
b*, j, jr
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 0000 | (i << 2)
1.) Befehl
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
Pipelinekonflikte
1.) Steuerflusskonflikte
2.) Datenkonflikte
3.) System und Ressourcenkonflikte
1.) Statisches Scheduling - VLIW - Very Long Instruction Word
2.) Dynamisches Scheduling
1.) In Order Issue in Order Completion
2.) Out Of Order Issue out of order completion
1.) Statische Sprungvorhersage
1.1.) Predict always taken
1.2.) Predict always not taken
1.3.) Predict backward taken forward not taken
2.) Ein oder Zweibitprädiktor
2.1.) Taken, Not Taken
2.2.) Strongly Taken, Weakly Taken, Weakly not Taken, Strongly Not Taken
Monosan
Monsan
Sterisan
Sensolan
Vitessa additiv
Penta-Sol
Sonett
1.) H mit KC
2.) N mit NL
1.) N mit NL
2.) H mit KC
3.) H mit KC und Tuck
4.) N mit NL