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 \& 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