Here you can ask questions and find or give answers to organizational, academic and other questions about studying computer science.

1.1k questions

1.2k answers

1.6k comments

533 users

0 votes
Hallo,

ich habe 2 Fragen zu dem Kapitel Pipelining

Im Übungsblatt 2 Aufgabe 3a, da werden die RAW-Konflikte (2,3) und (4,5) erkannt in der von Ihnen veröffentlichten Lösung. Warum ist dann die Transition von 5 zu 2 m Loop kein RAW-Konflikt? Also ich dachte da gibt es ein Konflikt und somit werden insgesamt 2*50 + 2*50 + 3*50 = 350 Stalls benötigt.

Zweite Frage, auf Seite 136 Kapitel Pipeline, zu der Formel für runtime pipelined processor. Wofür stehen die alpha und beta hier? Also ich habe nicht verstanden, was mit (alpha*p + beta) hier gemeint ist.

Herzlichen Dank im Voraus.

Hossam Zaki
in * TF "Emb. Sys. and Rob." by (240 points)

1 Answer

0 votes

Es geht um das folgende Programm: 

    1:      mov $7,50 
    2: loop: addi $1,$1,2 
    3:      addi $2,$1,0 
    4:      subi $7,$7,1 
    5:      bnz $7,loop

Die Aufgabe lautete "How many additional cycles are needed due to stalling (RAW conflicts)?"; es wurde also nur nach den zusätzlichen Schritten gefragt, die durch RAW-Konflikte verursacht werden. Aber natürlich müssen auch hinter dem Sprungbefehl nop-Befehle eingefügt werden, damit der Sprung richtig gemacht wird. Wenn Sie das Programm im Simulator laufen lassen, so werden Sie folgende Ausführung sehen:

           mov $7,50 
     loop: addi $1,$1,2 
           nop
           nop
           addi $2,$1,0 
           subi $7,$7,1 
           nop
           nop
           bnz $7,loop
           nop
           nop
           nop
     loop: addi $1,$1,2 

Zur zweiten Frage zu Seite 136: Die Laufzeit n(p) des Programms mit p Pipelinestufen wurde hier als linear Funktion angenommen, so dass man hier n(p) = alpha*p+beta angenommen hat (mit irgendwelchen Konstanten alpha und beta, die diese linear Funktion bestimmen). Die weitere Analyse zeigt dann, dass mit wachsendem p, die Zahl der Schritte so stark zunimmt, dass auch die Reduktion der Zykluszeit dies nicht wieder wett machen kann. Also führen längere Pipelines nach einer optimalen Pipelinelänge wieder zu reduzierter Performance.

by (166k points)
Noch zu der ersten Frage:
Ja, warum ist die Antwort 200 und nicht 350 denn? Hinter dem Sprungbefehl stehen 3 nops wegen RAW-Konflikt
2*50 + 2*50 + 3*50 = 350 zusätzliche Stalls aufgrund von RAW-Konflikte
Wie schon oben erwähnt, die Aufgabe fragte nach RAW-Konflikten. Die NOPs nach dem Sprungbefehl sind durch Kontrollkonflikte und nicht durch RAW-Konflikte verursacht worden.

Related questions

Imprint | Privacy Policy
...