[Advcomparch] Απορία επί του Tomasulo / Double Load στο ίδιο block
Εμμανουήλ Βλατάκης-Γκαραγκού
Εμμανουήλ Βλατάκης-Γκαραγκού
Tue Jul 7 17:37:31 EEST 2015
>
> Ειδικότερα με απασχολεί η superscalar περίπτωση και η pipeline διαχείριση
> των Load & Stores
>
> *SCENARIO*
>
> Ας πούμε ότι είμαστε σε απλή non-superscalar αρχιτεκτονική και θέλουμε να
> εκτελέσουμε τις ακόλουθες δύο εντολές με αλγόριθμο Tomasulo:
>
> ld r1, 0 (address)
> ld r2, 1 (address)
> Ας υποθέσουμε ότι:
> 1) το cache block χωραει από [address+0]...[address+7]
> 2) το block δεν βρίσκεται στην cache, συνεπώς έχουμε miss.
> 5) Hit time = 2, Miss time = 5
>
> A)
> Υποθέτω ότι αν είναι non-pipelined το function unit που χρησιμοποιεί το
> load τότε αναγκαστικά θα τρέξει μόνο η πρώτη εντολή το EXECUTE και θα κάνει
> miss ενώ η δεύτερη θα περιμένει και στην συνέχεια θα κάνει hit
>
> B)
> Αν τώρα υποθέσουμε ότι είναι pipelined το function unit , η ερώτηση μου
> είναι τότε η πρώτη και πάλι θα δει miss, και θα διαρκέσει από το 2ο εως
> τον 7ο γύρο αλλά η δεύτερη δεν θα δει επίσης το block να βρίσκεται στην
> cache και εκείνη θα κάνει και εκείνη miss ή στις caches υπάρχει κάποιο
> πρωτόκολλο στην περίπτωση που προσπαθήσεις να κάνεις read κάτι που
> βρίσκεται σε διαδικασία μεταφοράς?
>
> Γιατί αν παράδειγμα :
> από το 2ο εως το 7ο τρέχει η 1η load
> από το 3ο εως το 8ο τρέχει 2η load
> Αρχίζω να αναρωτιέμαι διάφορα πράγματα για το consistency της
> διαδικασίας...
>
> Γ)
> Επίσης σε περίπτωση που έχουμε superscalar αρχιτεκτονική και έχουμε ας
> πούμε δύο cdb,
> γράφουν ταυτόχρονα στην cache?
>
> Δ)
> Τέλος κάτι ίσως προφανέστερο των παραπάνω.
> Αν έχουμε 2- superscalar αρχιτεκτονική π.χ και έχουμε δύο data bus, αλλά η
> μνήμη μας παρέχει ένα port, τότε υποθέτω ότι έχουμε bottleneck και θα
> αναγκαστεί η μία εκ των δύο load ακόμα και αν είναι για ανεξάρτητα block να
> περιμένει σωστά?
>
> Ευχαριστώ πολύ προκαταβολικά
> Μανόλης.
>
+) Επίσης ένα πάλι παράδοξο σενάριο είναι να έχουμε:
ld/st r1, 0 ( address )
ld/st r2, 0 ( address' )
1) να βρίσκεται το block της address στην cache
2) το block της address και της address' στην cache συμπίπτουν
Από απορία τι συμβαίνει δεδομένου ότι το hit time στο πρώτο είναι 2 ή 3 και
το miss time στο r2 είναι 5.
Καθώς μεταφέρεται κάτι από τον επεξεργαστή στην cache ταυτόχρονα
μεταφέρεται και από την μνήμη στην cache?
Πάλι το consistency μου φαίνεται περίεργο.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cslab.ece.ntua.gr/pipermail/advcomparch/attachments/20150707/bf799fd8/attachment.htm>
More information about the Advcomparch
mailing list