Pipelining Aufgabe?
Keine weiteren Angaben sind in der Aufgabe vorhanden. n ist die Anzahl der Befehle.
k ist die Anzahl der Pipeline-Stufen. Setzte ich dies in die Formel ein und löse auf
(15 * k) / (15 + k - 1) = 5 (Speedup) so kommt für k = 7 heraus.
Die Pipeline hat somit 7 Stufen.
Das Ergebnis soll aber 5 Stufen sein?
2 Antworten
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
10k=70 sieht in der Tat eher nach 7 Stages aus.
![](https://images.gutefrage.net/media/user/LUKEars/1688884434588_nmmslarge__286_19_475_475_15d0473a58ff40db30b377787d357510.jpg?v=1688884435000)
also „Beschleunigung um Faktor“ und „Speedup“ soll wohl das Gleiche sein... also:
, wobei n für „Anzahl der Befehle“ und k für „Stufen der Pipeline“ stehen mag... oder umgekehrt... wegen Kommtativität der Punkt und Plus Operation...
also: nach k aufgelöst... und n einsetzen... und fertig... oder?
Also ich komme dann auf 7 Stufen... komisch...
hab wohl was falsch verstanden... oder die „Lösung“ ist gar keine....
![](https://images.gutefrage.net/media/user/LUKEars/1688884434588_nmmslarge__286_19_475_475_15d0473a58ff40db30b377787d357510.jpg?v=1688884435000)
aber 5 Stufen könnte na klar auch hinkommen... man hat ja „immer“ 5 Befehle gleichzeitig drin... allerdings geht das nur für n gegen unendlich... komisch...
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
In der Aufgabe steht halt nichts dabei. Die Formel habe ich hinzugefügt, da ich es so gemäß dieser berechnet hätte.
![](https://images.gutefrage.net/media/user/LUKEars/1688884434588_nmmslarge__286_19_475_475_15d0473a58ff40db30b377787d357510.jpg?v=1688884435000)
dann stellen wir uns mal ganz dumm... die Pipeline sei also leer... und es stehen 15 MOV-Befehle zur Ausführung an, deren Eingabeparameter bereits alle bereitstehen, und die paarweise verschiedene Zielregister habeni... ohne Pipeline dauert das 15 Takte...
Stufe#1 #2 #3 #4 #5
Takt#1: Cmd#1
Takt#2: Cmd#2 #1
Takt#3: Cmd#3 #2 #1
das sieht total falsch aus für mich.... aber auch mit 7 Stufen wird es nicht in 3 Takten fertig...
Mit 5-fachem Hyperthreading wird es auch nix, weil ja die ALU unbeteiligt ist...
Mit 5 Cores wird es in 3 Takten fertig... aber das wäre dann schwachsinnig, weil die Register dan iwi zufällig sind...
das ist ne blöde Aufgabe...
![](https://images.gutefrage.net/media/user/LUKEars/1688884434588_nmmslarge__286_19_475_475_15d0473a58ff40db30b377787d357510.jpg?v=1688884435000)
So wird es vllt was:
Stufe#1 #2 #3 #4 #5
Takt#0: Cmd#5 #4 #3 #2 #1
Takt#1: Cmd#6 #5 #4 #3 #2
Takt#2: Cmd#7 #6 #5 #4 #3
Takt#3: Cmd#8 #7 #6 #5 #4
Takt#4: Cmd#9 #8 #7 #6 #5
Also 5 Pipeline Takte und 4 Befehle purzeln hinten raus... und 1 CPU Takt sind dann wohl 5 Pipeline Takte...
aber wie man da die 15 Befehle durchkriegen soll, weiß ich nicht...
Hätte ich auch gesagt. Komisch!