lbu, lb
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
add
addi
addiu
sub
mult
multu
div
divu
and
andi
or
ori
xor
xori
neg*
rem*
abs*
not*
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
Akkumulator-Architektur
Stack und Kellerarchitektur
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
signed
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
Direktwertaddressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirete Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-OP
Reg-Dst
Reg-Wrte
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Programmspeicher
Programmzähler
Vorzeichenerweiterungseinheit
- 1 x AND
- 2 x Addierer
- 1 x 2 Bit Shifter
- 4 x Multiplexer
Funktionsdekodierer
1.) Func
2.) ALU-OP
3.) ALU-Operation
Registersatz:
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- WE
Datenspeicher:
- Addresse
- Schreibedaten
- WE
- Lesedaten
Programmspeicher:
- Addresse
- Lesedaten
Befehlszähler
- PC (t)
- PC (t+1)
Func ALU-OP ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100000 010 - add
OP-Code Reg-Dst Reg-Write ALU-Src Branch MemoToReg MemToWrite ALU-Operation
r-typ 000000 1 1 0 0 0 0 10
1.) Bedingt
2.) Unbedingt
1.) Absolut
2.) Befehlszählerrelativ
3.) Befehlszählerindirekt
JAL: Jump and Link
j, jr, b*
jal, jalr
eq
ne
ge
gt
le
lt
beq, bne
blt, ble
bgt, bge
beqz*, bnez*
bltz*, blez*
bgtz*, bgez*
PC_neu = PC_alt + (I << 2)
PC_neu = PC_alt & 0xf000 0000 | (I << 2)
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
Befehl holen
Befehl dekodierern
Operanden der ALU bereitstellen
Operation in der ALU ausführen
Operanden in Architekturregister zurückschreiben
IF - Instruction FETCH
ID - Instruction Decode/Register Fetch
EX - Execute Address Calculation
MEM - Memory Access
WB - Write Back
1. Statisches Scheduling: VLIW - Very Long Instruction Word: In Order Issue in Order Completion
2. Dynamisches Scheduling: Out Of Order Out Of Order Completion
1. Statische Sprungvorhersage:
- Predict Always Taken
- Predic Alway not taken
- Predict forward taken, backward no Taken
2. Dynamisch: 1 und 2 Bit Prädiktor
- Taken, Not Taken
- Strongly Taken, Weakly Taken, Strongly Not Taken, Weakly Not Taken