lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
add
addi
addiu
sub
div
divu
mult
multu
and
andi
or
ori
xor
xori
not
rem*
abs*
neg*
Datenbewegungsbefehle
Arithmetisch Logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Multimediabefehle
Gleitkommabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade- und Speicherarchitektur
Speicher-Speicher-Architektur
Register-Speicher-Architektur
Akumulator-Architektur
Stack-Architektur
8087, Intel, atm862 atmel: Stack
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelworte
signed
unsigned
packed
unpacked
BCD
ASCII
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Autodekrement/Inkrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit:
1. Befehlsdekodierer
2. Funktionsdekodierer
RegDst
RegWrite
Branch
ALU-SRC
ALU-OP
MemToReg
MemWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlszähler
Befehlsregister
Vorzeichenerweiterungseinheit
1 x AND
2 x Addierer
1 x 2-Bit-Shifter
4 x Multiplexer
ALU:
- Func
- ALU-OP
- ALU-Operation
Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- WE
Befehlsspeicher:
- Addresse
- Lesedaten
Befehlszähler
- PC (t)
- PC (t+1)
Func ALU-Op ALU-Operation
00 x 010 add
x1 x 110 sub
1x 100 000 add 010 add
Op-Code RegDst RegWrite ALU-Src Branch MemToReg MemWrite OP-Code
r-Typ 000 000 1 1 0 0 0 0 10
1. Bedingt
2. Unbedingt
1. Absolut
2. Befehlszählerrelativ
3. Befehlszählerrelativ mit Register
JAL
eq equal
ne not equal
gt greater than
ge greater than equal
lt less than
le less than equal
absolut: branch
Befehlszählerrelativ: jump
j, jr
jal, jalr
b*
beq, bne
beqz, bnez
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
PC_neu = PC_alt + (I << 2)
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
1. Befehl holen
2. Befehl Dekodieren
3. Operanden in der ALU bereitstellen
4. Operation in der ALU ausführen
5. Resultat in Architekturregister zurückschreiben
IF, ID, EX, MEM, WB
IF: Instruction Fetch
ID: Instruction Decode / Register Fetch
EX: Execute Address Calculation
MEM: Memory Access
WB: Write Back
Pipeline-Konflikte
1. Datenkonflikte
2. Steuerflusskonflikte
3. Struktur und Ressourcenkonflikte
1. Statisches Scheduling
2. Dynamisches Scheduling
Statisch: In-order issue in order completion
VLIW-Prozessor
Dynamisch: Out-of-order issue out of order completion
ooe-Prozessor
Sprungvorhersage
1. Statisch
2. Dynamisch
statisch:
predict always taken
predict always not taken
predict backward taken forward not taken
ein- und zwei-Bit-Prädiktor
Taken, Not Taken
Strongly Taken, Weakly Taken, weakly not taken, strongly not taken