[CALU] Re: Blockdiagramm

  • From: Günther Wimpassinger <e0525147@xxxxxxxxxxxxxxxxxxxx>
  • To: calu-ss2010-tuwien@xxxxxxxxxxxxx
  • Date: Sun, 2 May 2010 16:04:21 +0200

Zitat von Elshuber Martin <e9825286@xxxxxxxxxxxxxxxxxxxx>:

Ich hab das 2.te diagramm mal erweitert und 2 forwarding stufen eingebaut.

1) das alu ergebnis kann als eingabe für die nächste op (ra,rb,rx) dienen
    das ist möglich da das predikat schon in dieser stufe bekannt
ist, (es wird vom WB weitergeleitet)
2) das wb.ergebnis kann als eingabe für das rx, im WB dienen

pred r1>r2, p1
add r2,r2,r2 (p1)  // kein stall notwendig, forwarding des predikats
in die EX stufe
xor r3,r2,r1          // kein stall notwendig (predikat von add schon
bekannt, forwarding möglich)
ld r1,r3+5
add r2,r1,r2         // stall 1 cycle in der EX stufe
ld r1,r3+5
st r1,r3+5           // kein stall nötig r1 (rx)  kann von WB nach WB
weitergeleitet werden

meiner meinung nach sollte man das forwarding schon implementieren
warum?
1) natürlich performance
2) wir brauchen sowieso hardware um data hazards zu erkennen. ob man
dann noch eine multiplexer leitung dazubaut oder nicht ist meiner
ansicht nach schon fast egal

was emint ihr?

Interessant wär es schon. Ich hab mir das zwar noch nicht im Detail
überlegt, aber muss beim Forwrding nicht auch das Predicate
berücksichtigen. Ich befürchte nur, dass es sich zeitlich nicht ausgehen wird.

ldc r0,1
ldc r1,2
predset r0=r1, p1
add r0,r0,5   (p2)   ;do not store t
st  r10,r0           ;don't use alu forwarding result of register r0

Was ich meine ist folgendes:
In der EX Stufe, musst man anhand des (möglicherweise geforwardeten)
Predicates entscheiden, ob man das Ergebnis der WB Stufe nimmt oder den
Wert aus ID.
In der ID Stufe gibt es das dann zwei mal, einmal Forwarding von EX und
einmal Forwrding von WB.

Ich kann diese Fälle im moment nicht im Blockdiagramm sehen, aber es
sind schon heftig viele Leitungen drinnen.

Im Diagramm steht:
wp-sel für write predicate select
- wobei mux't du npreds (#bits?) mit 16bit/15bit vom Stack
wp-en für write predicate enable
- übernehme die neuen predicate Werte
wb_sel für write back select
- schreibe ins register file entweder sram, stack oder alu-val

Fragen:
alu_val in WB-Stufe
-ist bits 16..0 absichtlich oder sollte es 15..0 heissen, weil wir p0
nicht speichern müssen.




Other related posts: