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


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