[Advcomparch] Ερώτηση σχετικά με λάθος στο branch prediction

Konstantinos Nikas knikas at cslab.ece.ntua.gr
Sat May 25 12:30:45 EEST 2013


Καλημέρα,

γιατί να κάνεις flush τις caches; Όταν έχεις ένα branch misprediction
πρέπει να κάνεις τα εξής:

1. Να γυρίσεις στο σωστό architectural state. Αν χρησιμοποιείς ROB όπως
είδαμε και στο μάθημα δε χρειάζεται να κάνεις απολύτως τίποτα, μιας και το
in order commit σου εγγυάται το state σου είναι οκ.

2. Να σταματήσεις να εκτελείς αχρείαστες εντολές. Για αυτό το λόγο και
κάνεις flush το pipeline, προκειμένου να απελευθερωθούν τα διάφορα
components και να χρησιμοποιηθούν από τις σωστές εντολές χωρίς καθυστέρηση.
Τις caches γιατί όμως να τις κάνεις flush? Κατά την εκτέλεση του
 mispredicted path, έχεις φέρει στην χειρότερη περίπτωση κάποια "αχρείαστα"
loads, τα οποία σίγουρα είναι πολύ λιγότερα από τον συνολικό αριθμό των
blocks που θα χάσεις κάνοντας flush.

Κ.

2013/5/23 Spyridon Mastorakis <el09195 at mail.ntua.gr>

> Καλησπέρα σας.
>
> Έχω μια ερώτηση που αφορά την περίπτωση που κάνουμε λάθος στο branch
> prediction, οπότε και
> χρειάζεται να κάνουμε flush το pipeline.
>
> Στην περίπτωση αυτή , εκτός από το pipeline , θα κάνουμε flush και τις
> caches. Σωστά?
> Υπάρχει, κάποιο άλλο unit που θα πρέπει να γίνει flush στην περίπτωση αυτή?
>
> Σας ευχαριστώ πολύ εκ' των προτέρων για την απάντηση.
> Σπύρος Μαστοράκης.
>
> _______________________________________________
> Advcomparch mailing list
> Advcomparch at lists.cslab.ece.ntua.gr
> http://lists.cslab.ece.ntua.gr/mailman/listinfo/advcomparch
>
>


-- 
Dr. Konstantinos Nikas
Computing Systems Laboratory
School of Electrical and Computer Engineering
National Technical University of Athens

Tel: +30-210-7724159
e-mail: knikas at cslab.ece.ntua.gr
http://www.cslab.ece.ntua.gr/~knikas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cslab.ece.ntua.gr/pipermail/advcomparch/attachments/20130525/e2c5c327/attachment.htm>


More information about the Advcomparch mailing list