Pipelining, was ist das? (Klassische 5 Stufen)
Das Beispiel ld 4(%esp), %eax
durch die Pipeline schieben, was passiert in jedem Schritt
Kann man auch mehr Pipeline-Stufen einbauen? (klar, sogar noetig bei hoeherem Takt)
Kann man auch Stufen zusammenfassen? (klar, z.B. IF/ID)
Hatte erwaehnt, dass gerade MEM lange dauert ⇒ Warum?
Was passiert wenn aufeinanderfolgende Befehle erst aus dem Speicher lesen und dann das Ergebnis verwendet wird? Forwarding, evtl. Bubbles einfuegen ⇒ Hazards
Was kann man als Programmierer dagegen tun? (Befehle umsortieren)
Was kann man noch tun um Abhaengigkeiten aufzuloesen? ⇒ Register Renaming und ein bisschen Superskalaritaet
Wie viele Registerbaenke braucht man denn dann dafuer?
Woher weisz man dann in welches Register eine Execution-Unit schreiben soll?