[Advcomparch] Απορίες πάνω στα θέματα της εαρινής του 2013
Konstantinos Nikas
knikas at cslab.ece.ntua.gr
Mon Sep 8 14:44:15 EEST 2014
Καλησπέρα,
>
> Στο θέμα 2ο της εαρινής του 2013 όταν δυο επεξεργαστές έχουν το ίδιο block
> σε κατάσταση shared και το ζητήσει ένας τρίτος, κατάσταση που συμβαίνει για
> την πρόσβαση P3: read 0x00000000, τότε υποθέτουμε ότι ένας από τους άλλους
> δυο θα στείλει το block στον P3?
Η εκφώνηση είναι σαφής και ορίζει ότι το πρωτόκολλο χρησιμοποιεί
cache-to-cache transfers.
> Κι αν ναι, αυτός που θα το στείλει επιλέγεται στην τύχη?
Στη συγκεκριμένη περίπτωση ναι (ή ότι άλλο θέλετε να υποθέσετε).
> Επίσης, στην ίδια περίπτωση θα έχουμε μεταφορά προς τη
> μνήμη?
Εφόσον η κύρια μνήμη είναι updated, για ποιό λόγο να ενημερωθεί ξανά;
> Όταν κάνουμε miss τότε θέλουμε 8 κύκλους για να φέρουμε το δεδομένο στη
> μνήμη. Μέσα σε αυτούς τους 8 κύκλους θεωρούμε ότι γίνεται και η ανάγνωση του
> δεδομένου από τον επεξεργαστή ή, όπως λέγαμε και στο 5ο εξάμηνο,
> ξαναεκτελείται η εντολή μετά την μεταφορά και κάνει hit, οπότε θέλουμε
> συνολικά 8+1 κύκλους?
Στο συγκεκριμένο θέμα θεωρούμε ότι οι 2 κύκλοι του BusRdX/BusRd
περιέχουν και το access (το οποίο οδηγεί σε miss και άρα σε bus
transaction). Είναι αλήθεια ότι δεν ήταν πολύ καλά ορισμένο και δόθηκε
διευκρίνιση. Σε άλλα θέματα, η περιγραφή είναι καλύτερη.
Επομένως το miss παίρνει τουλάχιστον 2 κύκλους. Η συνολική διάρκεια
εξαρτάται από το τι πρέπει να κάνεις με δεδομένα κτλ.
> Όταν δυο διαφορετικά blocks της μνήμης μας κάνουν map στο ίδιο
> cache-line τότε το ένα δεν μπορεί να ακυρώσει το άλλο, ε?
Νομίζω ότι σε αυτό δεν χρειάζεται να απαντήσω.
Κ.
--
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
More information about the Advcomparch
mailing list