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

rem*, abs*, neg*, not*

and, andi
or, ori
xor, xori

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

Nulladdressformat
Einaddressformat
Zweiaddressformat
Dreiaddressformat

Little-Endian
Big-Endian

Einzelbit
Ganzzahl
Gleitkomma
Multimedia

Byte
Halbwort
Wort
Doppelwort

singned
unsigned
packed
unpacked
bcd
ascii

ieee-754-std

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

32: Einfache Genauigkeit
64: Doppelte Genauigkeit
80: Erweitertete

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

Intel 8087 - ATAM 862 Atmel

Registeraddressierung
Unmittelbare Addressierung
Direktwertaddressierung
Direkte Addressierung
Register Indirekte Addressierung
Registerindirekte Addressierung mit Autoinkrement/Dekrement
Registerindirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung

Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer

OpCode
RegDst
RegWrite
Branch
ALU-Src
ALU-Op
Mem-ToReg
MemWrite

MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite

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

Funktionsdekodierer
1.) ALU-Op
2.) Func
3.) ALU-Operanden

Datenspeicher:
- Lesedaten
- Schreibedaten
- Addresse
- WE

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

ALU:
- ALU-Ergebnis
- Null

AND:
- PCSrc

Befehlsdekodierer
- Lesedaten
- Addresse

Befehlsz"ahler
- PC (t)
- PC (t+1)

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

        OpCode      RegDst      RegWrite    Branch      ALU-Src     MemToReg    MemWrite     ALU-Operanden
r-type  000 000     1           1           0           0           0           0            10


Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt

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

Absolut: Branch
Befehlsz"ahlerrelativ: Jump
Befehlsz"ahlerindirekt: Jump Register

JAL: Jump and Link: Speichern zus"atzlich die Addresse des Befehls die dem Sprungbefehl folgt

j, b*, jr
jal
jalr
beqz*, bnez*
beq, bne
bgtz, bgez
bltz, blez
bgtz, bgez
blt, ble
bgt, bge

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

Pipeline Prinzip
Pipeline Stufe
Pipeline Register

1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausf"uhren
5.) Operanden in Architekturregister zur"uckschreiben

IF - Instruction Fetch
ID - Instruction Decode/Register Fetch
EX - Execute Address, address calculation
MEM - Memory Access
WB - Write Back

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

1.) In Order Issue in Order Completion
2.) Out Of Order Issue Out Of Order Completion

VLIW - Very Long Instruction Word

1.) Statische Sprungvorhersage
1.1.) Predict Always Taken
1.2.) Predict Always Not Taken
1.3.) Predict Backward Taken forward not Taken
2.) Dynamisch
2.1.) Ein Bit Pr"adiktor: Taken, Not Taken
2.2.) Zwei Bit: Predict Strongly Taken, weakly Taken, Strongly Not Taken, weakly not taken