[Advcomparch] Απορία επί του Tomasulo / Double Load στο ίδιο block

Εμμανουήλ Βλατάκης-Γκαραγκού Εμμανουήλ Βλατάκης-Γκαραγκού
Tue Jul 7 18:07:28 EEST 2015


+) Επίσης υπάρχει και το αντίστροφο παράδοξο σενάριο είναι να έχουμε:

ld/st r1, 0 ( address )
ld/st r2, 0 ( address' )

1) να βρίσκεται το block της address' στην cache
2) το block της address και της address' στην cache συμπίπτουν
Τι συμβαίνει δεδομένου ότι το miss time στο πρώτο είναι 6 και το hit time
στο r2 είναι 2?
Mε την διαπίστωση του miss Θα σβηστεί στον πρώτο χρόνο  ότι υπάρχει στην
cache ?

Καθώς μεταφέρεται κάτι από τον επεξεργαστή στην cache ταυτόχρονα
μεταφέρεται και από την μνήμη στην cache?
Πάλι το consistency μου φαίνεται περίεργο.
___________________________________________________
Μάλιστα ένας συνάδελφος μου επισήμανε το εξής φευγαλέο σενάριο:

ld/st r1, 0 ( address )
ld/st r2, 0 ( address' )

1) να βρίσκεται το block της address' στην cache σε LRU
2) Ας πούμε fully associative cache
Τι συμβαίνει δεδομένου ότι το miss time στο πρώτο είναι 6 και το hit time
στο r2 είναι 2?
Mε την διαπίστωση του miss, θα σβηστεί στον πρώτο χρόνο  ότι υπάρχει στην
cache ?
Γιατί π.χ αν δεν σβηστούν και προλάβει να διαβάσει το r2 ότι θέλει, το LRU
θα μετακινηθεί και άρα τα δεδομένα της address θα έπρεπε αλλού να
αποθηκευτούν
________________________________________________________________________


Ζητούμε συγγνώμη για αυτό το spamming με αυτά τα ακραία σενάρια, αλλά
ομολογώ ότι όταν δίνεις περισσότερες ελευθερίες στο σύστημα και
παραλληλισμούς superscalar ή pipeline μου φαίνονται κάποια πράγματα
αμφίσημα.
Να σας επισημάνω δε ότι όλες αυτές οι σκέψεις προκύψαν από λύσεις θεμάτων
του tomasulo που φαινόντουσαν ότι κρύβανε κάποιες τέτοιες  παραδοχές.

Ευχαριστούμε εκ των προτέρων για τον χρόνο σας

Μ.


Στις 7 Ιουλίου 2015 - 5:37 μ.μ., ο χρήστης Εμμανουήλ Βλατάκης-Γκαραγκούνης <
tetraktida42 at gmail.com> έγραψε:

> Ειδικότερα με απασχολεί η 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/8cfce69f/attachment-0001.htm>


More information about the Advcomparch mailing list