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
Lade- und Speicherarchitektur
Register-Speicherarchitektur
Speicher-Speicherarchitektur
Akkumulator-Architektur
Stack und Kellerarchitektur
8087, Intel, atam862, atmel
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
signed
unsigned
packed
unpacked
bcd
ascii
f = (-1)^s * 1.m * 2^(e-b)
ieee-754-std
Direktwertaddressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Verschiebung
Indirekte Addressierund mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
RegDst
RegWrite
Branch
ALU-Src
ALU-OP
MemToReg
MemWrite
Funktionsdekodierer
1.) Func
2.) ALU-Op
3.) ALU-Operation
Funktionsdekodierer
Befehlsdekodierer
Registersatz
ALU
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
1 x AND
2 x Addierer
1 x 2 Bit Shifter
4 x MUX
Register-Satz:
1.) Lese-Regiser-1
2.) Lese-Register-2
3.) Schreiberegister
4.) Lesedaten-1
5.) Lesedaten-2
6.) Schreibedatein
7.) WE
Datenspeicher
1.) Schreibedaten
2.) Lesedaten
3.) WE
4.) Addresse
ALU:
1.) ALU-Ergebnis
2.) NULL
AND:
- PCSrc
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 Reg-Dst Reg-Write ALU-Src Branch MemToReg MemWrite ALU-Operation
r-typ 000 000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
1.) Absolut: Branc
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
b*, j, jr
jal, jalr
beq, bne
bgt, bge
blt, ble
bgtz, bgez
bltz, blez
beqz, bnez
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
IF - Instruction Fetch
ID - Instruction Decode / Register Fetch
EX - Execute Address Calculation
MEM - Memory Access
WB - Write Back
1.) Datenkonflikt
2.) Steuerflusskonflikt
3.) Struktur und Ressourcenkonflikt
1.) Statisches Scheduling: in order issue in order comletion
2.) Dynamisches Scheduling: Out of Order issue out of order completion
1.) Dynamisch
1.1.) Statisches Sprungvorhersage:
1.1.1.) Predict always taken
1.1.2.) Predict always not taken
1.1.3.) Predict backward taken, forward not taken
1.2.) Dynamisch: Ein und Zweibitprädictor
1.2.1.) Taken, Not Taken
1.2.2.) Strongly Taken, Weakly Taken, Strongly Not Taken, Weakly Not Taken
1.) N - NL - MW
2.) H - KC - MW
3.) H - KC - TUCK - MW
4.) N - NL - MW
1.) N - NL - MW
2.) H - KC - MW
3.) H - KC - TUCK - MW
4.) Reihe: 158: MW
5.) Reihe: 159: MW
6.) N - NL - MW