Auswendig
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
not*
rem*
neg*
abs*
Datenbewegungsbefehle
arithmatisch logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Multimediabefehle
Gleitkommabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Lade- und Speicherarchitektur
Speicher-Speicher-Architektur
Register-Speicher-Architektur
Akkumulator-Architektur
Stack-Architektur
Stack-Architektur: 8087 Intel, ATM862 Atmel
Byte
Halbwort
Wort
Doppelwort
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
BCD
ASCII
signed
unsigned
packed
unpacked
IEEE-754-Std
f = (-1)^s*1.m*2^(e-b)
little-Format
big-Endian-Format
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
RegDst
RegWrite
MemToReg
MemWrite
Branch
ALU-Src
ALU-OP
Befehlsdekodierer
Funktionsdekodierer
ALU
Datenspeicher
Befehlsregister
Befehlszähler
Registersatz
Vorzeichenerweiterungseinheit
1 x AND
4 x MUX
2 x Addierer
1 x Bit Shifter
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
AND:
ALSRc
ALU:
Func
ALU
ALU-Operation
Befehlsregister:
- Lesedaten
- Schreibedaten
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 Reg-Dst Reg-Write Branch ALU-Src MemToReg MemWrite ALU-Op
r-Typ 000 000 1 1 0 0 0 0 10
Bedingte Sprünge
Unbedingte Sprünge
Absolut
Befehlszählerrelativ
Befehlszählerrelativ mit Speicherung des nächsten Befehlsaddresse in $ra
branch: absolut
jump: Befehlszählerrelativ
jal: Mit Speicherung der nächsten Addresse
eq
ne
gt
ge
lt
le
beq, bne
bgt, bge
blt, ble
beqz, bnez
bgtz, bgez
bltz, blez
j
b
jal
jr
jalr
PC_neu = PC_alt + (I << 2)
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
Pipeline-Prinzip, Pipeline-Stufe, Pipelineregister ...
1. Befehl holen
2. Befehl dekodieren
Befehls holen
Befehl dekodierer
Operanden der ALU bereitststellen
Befehl in der ALU ausführen
Operanden ins Ziel zurückschreiben
IF - Instruction Fetch
ID - Instruction Decode Register Fetch
EX - Execute Address Calcualtion
MEM - Memory Access
WB - Write Back
Datenkonflikte
Steuerflusskonflikte
Struktur- und Ressourcen-Konflikte
VLIW - Very Long Instruction Word
Statisches Scheduling, Dynamisch
BTC - Branch Target Cache
Dynmisch: Out-Of-Order Issue Out-Of-Order Completion OOE - Prozessor
Statisch: In-Order Issue In-Order Completion
Statisch:
- Predict Always Take
- Predict Backward Taken
- Predict Backward Taken forward not Taken
Dynmisch: Ein und Zwei-Bit-Prädiktor
1. Taken
2. Not Taken
Zwei-Bit
1. Predict Strongly Taken
2. Predict Weakle Taken
3. Predict Weakly Not Taken
4. Predict Strongly Not Taken