/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/die-staending-wiederholenden-eigenen-uebunge-im-ws23.24/000008.txt


lb, lbu: Laden eines Bytes
lh, lhu: Laden eines Halbwortes
lw: Laden eines Wortes
ld*: Laden eines Doppelwortes
la*: Laden einer Addresse
li*: Laden eines Immidiate Wertes
sb: Speichern eines Bytes
sh: Speichern eines Halbwortes
sw: Speichern eines Wortes
sd*: Speichern eines Doppelwortes 

add, addi, addiu 
sub
mult, multu
div, divu 

and, andi
or, ori
xor, xori
nor 

neg*, abs*, not, rem*

Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Programmsteuerbefehle

Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher-Speicherarchitektur
Stack- und Kellerarchitektur
Akkumulatorarchitektur

Intel, 8087, ATAM862, Atmel 

Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat

Einzelbit
Ganzzahl
Gleitkomma 
Multimedia 

signed
unsigned
packed
unpacked
BCD
ASCII

Byte 
Halbwort 
Wort 
Doppelwort 

Little-Endian 
Big-Endian 

ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: Einfach 
64: Doppelt 
80: Erweitert 

Registeraddressierung
Unmittelbare Addressierung 
Direkte oder absolute Addressierung
Registerindirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung

Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer

MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite

Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz 
Datenspeicher
Befehlsspeicher 
Befehlszähler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND 
2 x Addierer 
1 x 2 Bit Shifter

Funktionsdekodierer:
- ALU-Op
- Func
- ALU-Operanden 

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

ALU:
- ALU-Ergebnis
- Null 

AND: 
- PCSrc

Datenspeicher: 
- Lesedaten 
- Schreibedaten 
- Addresse 
- WE 

Befehlsspeicher: 
- Leseaddresse
- Lesedatendaten 

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

ALU-Op          Func            ALU-Operanden 
00              x               010 - add
x1              x               110 - sub 
1x              100 000 - add   010 - add 

            OpCode      RegWrite    RegDst      Branch  ALU-Src     MemToReg    MemWrite    ALU-Op
r-typ       000 000     1           1           0       0           0           0           10

Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt

eq - equal
ne - not equal 
gt - greater than 
ge - greater than equal 
lt - less than 
le - less than equal 

Absolut: Branch 
Befehlszählerrelativ: Jump 
Befehlszählerindirekt: Jump Register 

J: J Jump 
JAL: Jump And Link 

Fall 1: Befehlszählerrelativ: Der Befehlszähler wird zur nachfolgendenden Addresse des aktuellen Befehlszähler addiert 
Fall 2: Befehlszählerindirekt: der Befehlszähler wird durch die Sprungaddresse ersetzt:

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

Jump and Link, zusätzlich zum Sprung wird die zum aktuellen Befehl Nachfolgende Addresse PC+4 in einem Register gespeichert

j, b*, jr: Befehlszählerrelativ, Absolut, Befehlszählerindirekte Addressierung
jal: Jump And Link: Befehlszählerrelativ
jalr: Jump and link, Befehlszählerindirekt
beqz*, bnez*
beq, bne 
bgtz, bgez 
bgt*, bge*
bltz, blez
blt, ble 

1.) Befehl holen 
2.) Befehl dekodieren 
3.) Operanden der ALU bereitstellen 
4.) Operation in der ALU ausführen 
5.) Operanden in Architekturregister zurückschreiben 

Datenpfad
Pipeline-Prinzip
Pipeline-Phase
Pipelinie-Register 

IF: Instruction Fetch - Befehlsbereitsstellungsphase 
ID: Instruction Decode Register Fetch - Befehlsdekodier und Operandenbereitsstellungsphase 
EX: Execute Address Calculation
MEM: Memory Access: Speicherzugriffsphase 
WB: Write Back

1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte

1.) Statische Sprungvorhersage
2.) Dynamisch 

1.) In Order Issue In Order Completion - VLIW-Prozessor
2.) Out Of Order Execution Out Of Order Completion: Out Of Order Execution OOE-Prozessor

1.) Statisch 
1.1.) Predict Always Not Taken 
1.2.) Predict Always Taken 
1.3.) Predict Backward Taken, forward not Taken 
2.) Dynamisch
2.1.) Taken -> Not Taken, Not Taken -> Taken 
2.2.) Predict Strongly Taken, Predict Weakly Taken, Predict Weakly Not Taken, Predict Strongly Not Taken