[Advcomparch] Απορία στο Weak Ordering

Nikos Anastopoulos anastop at cslab.ece.ntua.gr
Sat Jun 18 17:23:35 EEST 2011


Καλησπέρα,

On 06/18/2011 03:58 PM, Alexandros Dagklis wrote:
> Καλησπέρα,
> 
> έχω μια απορία πάνω στο weak ordering μοντέλο για consistency. Από τις
> διαφάνειες (memory consistency διαφάνεια19), μου δημιουργήθηκε η
> εντύπωση πως οποιαδήποτε load/store εντολή μπορεί να αναδιαταχθεί με
> οποιαδήποτε άλλη load/store εντολή εκτός κι αν υπάρχουν SYNCH tags.
> Μάλλον όμως οι περιορισμοί είναι κάπως πιο αυστηροί, σωστά; 

Γενικά, όλα τα relaxed memory models (είτε τα πιο αυστηρά είτε τα
λιγότερο αυστηρά) λειτουργούν με την υπόθεση ότι η σημασιολογία και οι
εξαρτήσεις δεδομένων στο εσωτερικό μιας διεργασίας, βλέποντάς την δηλ.
σαν ένα ανεξάρτητο σειριακό πρόγραμμα, δεν παραβιάζονται.
Πράγμα το οποίο σημαίνει ότι τα οποιαδήποτε reorderings που μπορούν να
γίνουν στα πλαίσια κάποιου relaxed μοντέλου, θα πρέπει να αφορούν
διαφορετικές θέσεις μνήμης, και να σέβονται τα (true) data dependences.
(Και προφανώς, να σέβονται τα όποια memory fences έχει εισάγει ο
προγραμματιστής).

Επειδή στις
> ασκήσεις επί των εννοιών του memory coherence και consistency στην
> τελευταία διαφάνεια λέει πως το να συμβεί M[R8]=0 απαιτεί την ακολουθία
> εντολών 2b ‐> 2c ‐> 2a , η οποία παραβιάζει το WO. Γιατί;

Υπό αυτήν την έννοια, η ακολουθία 2b -> 2c -> 2a παραβιάζει το WO (αλλά
και οποιοδήποτε άλλο relaxed μοντέλο) επειδή παραβιάζεται εξάρτηση RAW
μεταξύ των 2a, 2c.
Ομοίως, η πιθανή εκτέλεση 2c -> 2b πάλι θα αποτελούσε παραβίαση, αφού η
αναδιάταξη αφορά την ίδια θέση μνήμης.

Ν.



More information about the Advcomparch mailing list