Re:

auswendig aufgeschrieben:

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"ahler
Datenspeicher
Registersatz
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x Bit Shifter

Funktionsdekodierer: +++ (a) Schon gekl"art
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"ahler
- 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"ahlerrelativ: Jump
3.) Befehlsz"ahlerindirekt: Jump Register

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

1.) Befehlsz"ahlerrelativ: Das Ziel wird errechnet, indem man den aktuellen Befehlsz"ahler + einem festen Wert ausrechnet und dahin springt

PC_neu = PC_alt + (I << 2)

2.) Befehlsz"ahlerindirekt: Der Wert als Befehlsz"ahler wird ersetzt

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


1.) Befehl holen
2.) Befehl dekodieren/Befehlausf"uhren

Pipelining

Zustandselemente
1.) Befehlsspeicher
2.) Befehlsz"ahler
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"uhren
5.) Operanden in Architekturregister zur"uckschreiben

1.) IF - Instruction Fetch - Befehlsbereitstellungsphasen
2.) ID - Instruction Decode / Register Fetch: Befehlsdekodierphase - Operandenbereitstellungsphase
3.) EX - Execute Address Calculation - Ausf"uhrungsphase
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