lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
addi
addu
addiu
sub
mult
multu
div
divu
and
andi
or
ori
xor
xori
rem*
neg*
mod
not
and
andi
or
ori
Datenbewegungsbefehle
Arithmetisch-Logische-Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Multimediabefehle
Gleitkommabefehle
Systemsteuerbefehle
synchronisationbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Byte
Halbwort
Wort
Doppelwort
Little-Endian
Big-Endian
Einzelbit
Gannzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
Lade- und Speicherarchitektur
Speicher-Speicher-Architektur
Register-Speicher-Architektur
Akkumulator-Architektur
Stack-Architektur
Stack: 8087 Intel, atm 862 atmel
ieee-754-std
f = (-1)^s*1.m*2^(e-b)
Direktwertaddressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Verschiebung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit:
1. Befehlsdekodierer
2. Funktionsdekodierer
MemToReg
MemWrite
ALUSrc
ALUOP
Branch
RegDst
RegWrt
ALU:
- ALU-Src
- ALU-Op
- ALU-Operation
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2-Bit-Shifter
Datenspeicher:
- Lesedaten
- Schreibedaten
- WE
- Addresse
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
ALU:
- ALU-Ergebnis
- NULL
- PCSrc
AND:
- PCSrc
Befehlszähler
- PC (t)
- PC (t+1)
Befehlsspeicher
- Leseaddresse
- Lesedaten
Func ALU-OP ALU-Operation
00 x 010 add
x1 x 110 sub
1x 100000 - add 010 add
OP-Code RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation
r-typ 000000 1 1 0 0 0 0 10
Verzweigungsbefehle
1. Bedingt
2. Unbedingt
1. Absolut
2. Befehlsrelativ
3. Befehlszählerindirekt
branch
jump
jump register
jump and link
jump register and link
j, jr, b*
jal, jalr
eq equal
ne not equal
ge greater than equal
gt greater than
le less than
lt less than equal
beq, bne
bgt, bge
blt, ble
beqz, bnez
bgtz, bgez
bltz, blez
Pipeline
Pipeline-Konflikt
- Datenkonflikt
- Steuerflusskonflikt
- Struktur und Ressourcen-Konflikt
1. Befehl holen
2. Befehl dekodieren
3. Operanden bereitstellen
4. Befehl ausführen
5. Resultat zurückschreiben
IF - Instruction Fetch
ID - Instruction Decode/Register Fetch
EX - Execute Address Calculation
MEM - Memory Access
WB - Write Back
1. Scheduling
1. Statisch: Durch den Compiler, VLIW - Very Long Instructio Word
1.1. In Order Issue In Order Completion
1.2. VLIW-Prozessor IEO-Prozessor
2. Dynamisch
2.1. Out-of Order Out-Of-Order Completation
2.2. OOE-Prozessor
Sprungvorhersage, dynamisches Scheduling
1. Statisch
2. Dynamisch
Statisch
1. Predict Always Taken
2. Predict Always Not Taken
3. Predict backward taken, backward not taken
Dynamisch
1. Ein oder zwei Bit-Prädictor
Predict taken, Predict Not Taken
Predict Strongly Taken, Predict Weakly Taken, Predict Strongly Not Taken, Weakly Not Taken