/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/old-cs-2-01/2021-11-20-learn/auswendig0004.txt


lb, lbu
lh, lhu
lw
ld*
li*
la*
sb
sh
sw
sd*
add
addi
addiu
sub
mult
multu
div
divu
rem*
abs*
not
xor
xori
and
andi
or
ori


Datenbewegungsbefehle/Transportbefehle
Arithmetische/Logische Befehle
Schiebe und Rotationsbefehle
Programmsteuerbefehle
Multimediabefehle
Gleitkommabefehle
Systemsteuerbefehle
Synchronisationsbefehle

Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat

Lade- und Speicherarchitektur
Speicher-Speicher-Architektur
Register-Speicher-Architektur
Stackarchitektur
Akkumulatorarchitektur

Stackarchitektur: 8087, Intel, ATM862, Atmel

Einzelbit
Ganzzahl
Gleitkomma 
Multimedia 

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/Autodekrement
Indirekte Addressierung mit Verschiebung (Displacement)
Indizierte Addressierung
Indizierte ADdressierung mit Verschiebung

Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer

MemToReg
MemWrite
Branch
ALUSrc
ALUOp
RegDst
RegWrite 

Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlszähler
Vorzeichenerweiterungseinheit
1 x AND 
2 x ADDierer
1 x 2 Bit-Shift
4 x Multiplexer

Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse 
- WE

Registersatz
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten 
- WE

AND:
- ALUSrc

ALU:
- Func
- ALU-Op
- ALU-Operation 

Befehlszähler:
- PC (t)
- PC (t+1)

Befehlsspeicher
- Lesedaten
- Schreibedaten 


Func        ALU-OP              ALU-Operation
00          x                   010 - add
1X          x                   110 - sub
X1          100 000 - add       010 - add 


            OPCode          MemToReg    MemWrite    Branch      ALU-Src     RegDst  RegWrite        ALU-Operation
R-Typ       000000          1           1           0           0           0       0               10 


jump mit Register: j
jump ohne Register: jr

jump and link: jal
jump and link mit Register: jalr

branch

branch: Absolut
jump: Befehlszähler Relativ 

Jump and link: Die Adresse des nächstes Befehls wir in $ra gespeicher

eq: equal
ne: not equal
ge: greater than equal
gt: greater than 
le: less then equal
lt: less then 

j, b*, ja
jalr
jal 
beq, bne
bgt, bge 
blt, ble 
beqz*, bnez*
bgtz*, bgez*
bltz*, blez*

PC_neu = PC_alt + (I << 2)
PC_neu = PC_alt & 0xf000 0000 | (I << 2)

Pipelinestufe, Pipelinregister, Pipelinsegment 

1. Befehl holen
2. Befehl dekodieren 
3. Operanden Bereitstellen
4. Befehl ausführen 
5. Zurückschreiben 

IF, ID, EX, MEM, WB

IF: Instruction Fetch 
ID: Instruction Decode/Register Fetch 
EX: Execute Address Calcualation 
MEM: Memory Access
WB: Write Back 

Pipeline-Konflikte
- Datenkonflikte
- Steuerflusskonflikt
- Struktur- und Ressourcen-Konflikte

Durch die Hardware: Out-Of-Order Issue Out-Of-Order Completion, OOE-Prozessor
Durch die Software: VLIW-Prozessor: In-Order Issue in-order completion 

Statische Sprungvorhersage
- Predict Always taken
- Predict Always not taken 
- Predict Backward Taken forward not taken 


Dynamische Sprungvorhersage 
- ein und zwei Bit Prädiktor 

Taken, Not Taken 
Predict Strongly Taken, Predict Weakly Taken, Predict Weakly Not Taken, Predict Strongy Not Taken