/media/sda-magnetic/david/Dok-15-2023-11-27/informatik/vhdl-2023-12-09/auswendig0045.txt


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
rem*, abs*, neg*, not*

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

Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat

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

8087, Intel, ATAM862 Atmel

Little-Endian, Big-Endian

Einzelbit
Ganzzahl
Gleitkomma
Multimedia

byte
wort
halbwort
doppelwort

signed
unsigned
packed
unpacked
bcd
ascii

ieee-754-std
f = (-1)^s * 1.m * 2^(e-b)
32: einfach
64: doppelt
80: erweitert

Absolute Addressierung
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte 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
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter

Befehlsdekodierer
- MemToReg
- MemWrite
- Branch
- ALU-Src
- ALU-Op
- RegDst
- RegWrite

Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation

AND
- PCSrc

ALU
- Ergebnis
- Null

Registersatz
- Lese-daten-1
- Lese-Daten-2
- Schreibedaten
- Leseregister-1
- Leseregister-2
- Schreiberegister
- WE

Datenspeicher
- Addresse
- Lesedaten
- Schreibedaten
- WE

Befehlsspeicher
- Lesedaten
- Leseaddresse

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

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

                OpCode      RegDst      RegWrite    Branch  ALU-Src     MemToReg    MemWrite    ALU-Operation
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

1.) Absolut = Branch
2.) Befehlszählerrelativ = Jump
3.) Befehlszählerindirekt = Jump Register

jal: Jump and Link speichern zusätzlich der Addresse die dem Sprungbefehl folgt

PC = PC_alt + (i << 2)
PC = PC_alt & 0xf000 0000 | (i << 2)

Pipeline-Prinzip
Pipeline-Stufe
Pipeline-Register
Pipeline-Konflikte

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
2.) ID = Instruction Decode / Register Fetch
3.) EX = Execute / Address Calculation
4.) MEM = Memory Access
5.) WB = Write Back

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

1.) Statisches Scheduling: In Order Issue In Order Completion: VLIW Prozessor
2.) Dynamisch: Out Of Order Issue Òut Of Order Completion: OOE-Prozessor

1.) Statische Sprungvorhersage durch die Hardware
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken forward Not Taken
2.) Dynamisch
2.1.) Ein Bit Prädiktor: Taken -> Not Taken
2.2.) Strongly/Weakly Taken/Not Taken