/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/die-staending-wiederholenden-eigenen-uebunge-im-ws23.24/000010.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

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

and, andi 
xor, xori
or, ori
nor 

rem*, abs*, neg*, not*

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

Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat

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

Stackarchitektur: 8087 - Intel, ATAM862 Atmel 

Einzelbit
Ganzzahl
Gleitkomma 
Multimedia 

signed
unsigned
packed
unpacked
BCD 
ASCII 

Byte 
Halbwort 
Wort 
Doppelwort 

Nibble 
Byte 
Halbwort 
Wort 
Doppelwort
Quadwort
Tenbyte 

Little-Endian 
Big-Endian 

Gleitkomma:
32: Einfach 
64: Doppelt
80: Erweitert

f = (-1)^s * 1.m * 2^(e-b)

Registeraddressierung
Unmittelbare Addressierung ++++
Direkte und Absolute Addresserierung
Registerindirekte Addressierung 
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung/Displacement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung 

Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer

MemToReg
MemWrite
Branch 
ALU-Src
ALU-Op
RegDst
RegWrite 

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

Funktionsdekodierer: +++ (a) Schon geklärt
1.) Func
2.) ALU-Op
3.) ALU-Operanden +++ heisst das Operanden oder Operation? Operanden macht Sinn, weil entschieden was an die ALU kommt

Befehlsdekodier:
1.) MemToReg
2.) MemWrite 
3.) Branch 
4.) ALU-Src
5.) ALU-Op 
6.) RegDst 
7.) RegWrite 

ALU:
1.) ALU-Ergebnis 
2.) Null 

Datenspeicher: 
- Lese-Daten 
- Schreibedaten 
- Addresse 
- WE 

Registersatz:
- Lese-Daten-1 ++++ (Daten, Register???)
- Lese-Daten-2
- Lese-Register-1
- Lese-Register-2
- Schreidaten
- Schreibe-Register
- WE

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

Befehlsspeicher:
- Lesedaten
- Leseaddresse 

Func        ALU-Op          ALU-Operanden +++ Operanden oder Operation???
00          x               010 - add 
x1          x               110 - sub 
1x          100 000 - add   010 - add 


            OpCode      RegDst  RegWrite    Branch      ALU-Src     MemToReg    MemWrite    ALU-Operation ?? Operanden
r-typ       000 000     1       1           0           0           0           0           10

Sprungbefehle
1.) Bedingt 
2.) Unbedingt 


+++ Genau angucken 
1.) Absolut: Branch 
2.) Befehlszählerrelativ: Jump 
3.) Befehlszählerindirekt: Jump Register 

- eq 
- ne 
- lt
- le
- gt
- ge

1.) Befehlszählerrelativ: Das Ziel wird errechnet, indem man den aktuellen Befehlszähler + einem festen Wert ausrechnet und dahin springt

PC_neu = PC_alt + (I << 2)

2.) Befehlszählerindirekt: Der Wert als Befehlszähler wird ersetzt 

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


1.) Befehl holen 
2.) Befehl dekodieren/Befehlausführen 

Pipelining

Zustandselemente
1.) Befehlsspeicher
2.) Befehlszähler
3.) Registersatz
4.) Datenspeicher 

Pipeline
- Pipeline-Phase 
- Pipeline-Stufe **
- Pipeline-Segmente **

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

1.) IF - Instruction Fetch - Befehlsbereitstellungsphasen 
2.) ID - Instruction Decode / Register Fetch: Befehlsdekodierphase - Operandenbereitstellungsphase 
3.) EX - Execute Address Calculation - Ausführungsphase
4.) MEM - Memory Access - Speicherzugriffsphase 
5.) WB - Write Back - Resultatspeicherphase 

1.) Statisches Scheduling - In Order Issue In Order Completion - VLIW - Prozessor - Very Long Instruction Word 
2.) Dyanmisch: Out Of Order Issue Out Of Order Completion - OOE - Prozessor 

1.) Statische Sprungvorhersage: 
1.1.) Predict Always Not Taken 
1.2.) Predict Always Taken 
1.3.) Predict Backward Taken, forward Not Taken 
2.) Dynamische Sprungvorhersage
2.1.) Predict Taken, Predict Not Taken 
2.2.) Predict Strongly Taken, Strongly Not Taken, Weakly Taken, Weakly Not Taken