U ̈bung8 RAWiSe18/19 Aufgabe 1 (Speedup durch Pipelining)
(1) Wie gross ist der maximale Speedup einer 10-stufigen Pipeline gegenu ̈ber einer Mehrzyklenimplementierung desselben Instruktionssatzes? Berechnen Sie den Speed- up sowohl fu ̈r den Fall, dass die Mehrzyklenimplementierung einen CPI von 10 auf- weist, als auch fu ̈r den Fall, dass der durchschnittliche CPI 5,2 ist.
(2) Wieviele Instruktionen muss eine 6-stufige Pipeline mindestens abarbeiten, damit der Speedup gegenu ̈ber einer Architektur ohne Pipelining, die fu ̈r alle Instruktionen 6 Taktschritte beno ̈tigt, 5,9 betra ̈gt?
Aufgabe 2 (Speedup bei inhomogenen Verzo ̈gerungszeiten)
Die einzelnen Datenpfadelemente in einer Einzyklenimplementierung haben die Verzo ̈ge- rungszeiten τi, i : 1…k. Nun wird Pipelining eingefu ̈hrt, und die k Datenpfadelemen- te werden durch Pipelineregister getrennt. Bestimmen Sie den Speedup gegenu ̈ber der Einzyklenimplementierung in Abha ̈ngigkeit von τi,k und n, der Anzahl abgearbeiteter Instruktionen. Die Verzo ̈gerungszeiten der Pipelineregister ko ̈nnen dabei vernachla ̈ssigt werden.
Wie gross kann der Speedup fu ̈r k = 4, τi = {50, 100, 200, 50}[ps] maximal werden? Aufgabe 3 (Graphische Darstellungen des Pipelining)
Folgende Codesequenz wird auf der 5-stufigen MIPS-Pipeline ausgefu ̈hrt:
add $4, $2, $3
sw $5, 4($2)
sw $6, 8($2)
Abbildung 1 zeigt die graphische Darstellung der Pipelinebelegung. Stellen Sie fu ̈r jeden Taktschritt fest, welche Instruktion in welcher Pipelinestufe bearbeitet wird und wel- che Elemente des Datenpfads verwendet werden. Zeichnen Sie diese Elemente in den Pipelining-Datenpfad (auf den Zusatzbla ̈ttern) ein. Kennzeichnen Sie bei sequentiellen Elementen durch Schraffieren der rechten oder linken Ha ̈lfte, ob sie gelesen oder geschrie- ben werden.
Abbildung 1: Pipelinebelegung
Seite 1 / 3
add $4,$2,$3
sw $5,4($2) add $4,$2,$3