[Advcomparch] control dependence στον Tomasulo

Nikos Anastopoulos anastop at cslab.ece.ntua.gr
Sun Jun 14 14:02:44 EEST 2009


ΑΛΕΞΑΝΔΡΟΣ ΚΟΝΤΑΡΙΝΗΣ wrote:
> Καλημέρα,
>
> στην διαφάνεια 8/46 του dynamic scheduling με speculation λέει:
> ...κατά το ooo execution εκτελούμε εντολές οι οποίες εξαρτώνται από το 
> αποτέλεσμα της εντολής διακλάδωσης. Αν η πρόβλεψη δεν επαληθευθεί, θα 
> πρέπει να κάνουμε rollback στο σημείο όπου κάναμε την πρόβλεψη, διότι 
> οι εντολές στο λανθασμένο predicted path έχουν ήδη εκτελεστεί...Λύση: 
> in-order completion
> (κατόπιν εισάγεται η έννοια του ROB κτλ)
>
> Το ερώτημα μου είναι το εξής:
> Με δεδομένο ότι ΔΕΝ έχουμε speculation, ROB, commit στάδιο κτλ (όπως 
> δηλ στο πρώτο ερώτημα της άσκησης) δεν είμαστε υποχρεωμένοι να ΜΗΝ 
> προχωρήσουμε σε execution εντολής που ανήκει σε επόμενο basic block? 
> Δηλ, δεν πρέπει πρώτα να γίνει resolve η branch εντολή και μετά να 
> γίνει execute η επόμενη εντολή? Ή τουλάχιστον να μην κάνει η επόμενη 
> εντολή write result προτού επαληθευθεί ότι το branch prediction ήταν 
> το σωστό.
> (βλ. σελ 105 της 4ης έκδοσης του βιβλίου στα αγγλικά)
>

Σίγουρα, αυτοί οι δύο μηχανισμοί θα έλυναν την περίπτωση των λάθος 
προβλέψεων στα branches, στην περίπτωση δηλαδή όπου επέτρεπες στον απλό 
Tomasulo να έχεις πρόβλεψη branches και εκτέλεση των εντολών πάνω στην 
προβλεφθείσα κατεύθυνση. Τι θα έκανες όμως με τα exceptions/interrupts, 
που θα έρχονταν σε σημεία της εκτέλεσης όπου οι registers έχουν 
ανανεωθεί εκτός της σειράς του προγράμματος? Εκεί θα εξακολουθούσες να 
έχεις πρόβλημα (διότι θα έκανες restore αργότερα το πρόγραμμά σου με 
λάθος state), ανεξάρτητα με το τι μέτρα θα έπαιρνες για τα control 
dependences. Εκεί που θέλω να καταλήξω είναι ότι ο απλός Tomasulo σε 
αυτές τις περιπτώσεις είναι προβληματικός. Όλοι οι επεξεργαστές "γενικού 
σκοπού" επιβάλλεται να έχουν κάποιο μηχανισμό που να γνωστοποιεί "προς 
τα έξω" (στο software) την ανανέωση της κατάστασής του με τη σωστή σειρά 
προγράμματος. Ο ROB είναι ένας τέτοιος.

Οπότε, η περίπτωση που αναφέρεις στην περσινή άσκηση όντως θα είχε 
πρόβλημα σε λάθος prediction.


N.




More information about the Advcomparch mailing list