/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/old-cs-2-01/informatik2/lex-yacc-bash-etc/new00001.txt


rsync
updatedb
tree
tre-a

fflush
perror
strerror
printf
scanf
fprintf
fscanf
rewind
fseek
ftell
fopen
flcose
getc
fgetc
putc
fputc
getch
sscanf
sprintf
gets
fgets
puts
fputs
read
write
clrerr
remove
fgetpos
fsetpos

Pipeline
Pipeline-Hemmnis = Pipeline-Hazard
Pipelinstufe = Pipeline-Segment 
Pipeline-Maschinentakt
Durchsatz einer Pipeline 


1. Befehl bereitstellen
2. Befehl dekodieren 
3. Operanden 
4. ALU
5. Result zurückschreiben/Speicherzugriff

DLX-Pipeline:
1. IF - Instruction-Fetch = Befehlsbereitsstellungsphase
2. ID - Instruction Decode/Register Fetch = Befehlsdekodierphase
3. EX - Execute/Adress Calculation = Ausführungsphase
4. MEM - Memory Acces = Speicherzugriffsphase
5. WB - Write Back = Resultatspeicherphase

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

Datenkonflikte:
1. Echte Datenabhängikeit - Lese-Nach-Schreib-Konflikte - Read auf Write = RAW
2. Gegenabhängigkeit - Schreibe nach Lese-Konflikte - Write after Read = WAR
3. Ausgabeabhängikgigkeit - Schreibe-nach-Schreibe: WAW

Lösung:
- Durch den Compiler - statische Befehlsanordnung
- Erkennung durch Hardware - Pipeline Interlocking - Pipeline-Stalling - Anhalten der Pipeline 

Dynamische Sprungvorhersage

BTAC - Branch Target Adresss Cache
BTB - Branch Target Buffer

- Branch Target Adress
- Branch Adress 

Einfachste Sprungvorhersagen:
- Predict Always not taken 
- Predict always taken
- predict forward taken, backward not taken 

- Ein-Bit-Prädiktor
1. Genommen - T - Taken 
2. Nicht genommen - NT - Not-Taken 

- Zwei-Bit-Prädiktor
1. Predict strongly taken 
2. Predict weakly taken 
3. Predict weakly not taken 
4. Predict strongly not taken