[Advcomparch] Ερώτηση σχετικά με 4η άσκηση - B.2
Konstantinos Nikas
knikas at cslab.ece.ntua.gr
Tue Jun 28 22:14:19 EEST 2011
Καλησπέρα,
On 06/28/2011 09:39 PM, ΒΥΡΩΝΑΣ ΔΟΚΙΜΑΚΗΣ wrote:
> Καλησπέρα,
>
> Θα ήθελα να ρωτήσω τι γίνεται όταν 2 εντολές που αφορούν την ίδια θέση
> μνήμης, εκτελούνται παράλληλα στους p1, p2. Δηλαδή αν έχω μια αναδιάταξη
> εντολών μνήμης, τέτοια ώστε οι εντολές r2=Z και Z=3 να βρίσκονται
> απέναντι, ξέρουμε ποιο θα είναι το αποτέλεσμα? ο r2 για ποια τιμή του Ζ
> θα ενημερωθεί?
>
> Υποθέτω, με βάση τα του cache coherence, ότι είναι θέμα "τύχης" και έχει
> να κάνει με το ποιος θα πάρει πρώτος πρόσβαση στο διάδρομο αλλά τότε
> καταλήγω στο ότι η παραπάνω κατάσταση έχει απροσδιόριστο αποτέλεσμα για
> την τιμή του r2.
>
Ακριβώς, το αποτέλεσμα εξαρτάται από το ποιος θα πάρει πρώτος πρόσβαση
στο διάδρομο. Το οποίο είναι ακόμα πιο πολύπλοκο αν δεν έχουμε διάδρομο,
αλλά ένα άλλο interconnection network.
Ακριβώς για αυτο το λόγο, αν ο προγραμματιστής θέλει να είναι σίγουρος
ότι διαβάζει κάποια συγκεκριμένη τιμή, θα πρέπει να φροντίσει για την
κατάλληλη υλοποίηση σχημάτων συγχρονισμού λαμβάνοντας υπόψη βέβαια και
το consistency model του συστήματος.
Όσον αφορά την άσκηση, δεν νομίζω ότι υπάρχει κάποια απροσδιοριστία. Αν
ο r2=Z εκτελεστεί πριν το Ζ=3 (δηλ. πάρει πρώτος τον διάδρομο) τότε θα
πάρει την τιμή 0 (αφού όλες οι μεταβλητές είναι αρχικοποιημένες στο 0),
διαφορετικά την τιμή 3.
Κ.
--
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