Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

1 Shared Memory Multiprocessors Πολυεπεξεργαστές Μοιραζόμενης Μνήμης.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "1 Shared Memory Multiprocessors Πολυεπεξεργαστές Μοιραζόμενης Μνήμης."— Μεταγράφημα παρουσίασης:

1 1 Shared Memory Multiprocessors Πολυεπεξεργαστές Μοιραζόμενης Μνήμης

2 2 Shared Memory Multiprocessors  Η κύρια μνήμη προσπελαύνεται με τον ίδιο τρόπο και ταχύτητα από όλους τους επεξεργαστές  Κάθε επεξεργαστής έχει το δικό του χώρο φυσικών διευθύνσεων κρυφής μνήμης (cache memory)  Έχουν κυριαρχήσει στην αγορά συστημάτων εξυπηρετητών (servers)  Είναι ιδιαίτερα πλεονεκτικοί ως throughput servers και για παράλληλα προγράμματα  Υποστηρίζουν μηχανισμούς προσπέλασης δεδομένων φαινομενικά όμοιους με τα μονο-επεξεργαστικά συστήματα (reads and writes)

3 3 Τρόποι επέκτασης του συστήματος μνήμης

4 4 Κρυφή μνήμη Ο ρόλος της κρυφής μνήμης: Μειώνει το μέσο χρόνο πρόσβασης των δεδομένων Μειώνει τη ζήτηση εύρους ζώνης στο μοιραζόμενο μέσο διασύνδεσης

5 5 Συνάφεια Κρυφής μνήμης Αλλά οι τοπικές μονάδες κρυφής μνήμης για κάθε επεξεργαστή δημιουργούν πρόβλημα: Αντίγραφα μιας μεταβλητής μπορεί να υπάρχουν σε πολλές μονάδες κρυφής μνήμης Μια λειτουργία εγγραφής από κάποιον επεξεργαστή μπορεί να μην είναι ορατή από τους άλλους Θα εξακολουθούν να προσπελαύνουν την παλιά τιμή που υπάρχει στις τοπικές μονάδες κρυφής μνήμης  Πρόβλημα Συνάφειας Κρυφής Μνήμης (Cache Coherence) Χρειάζεται να διασφαλιστεί η ορατότητα των τελευταίων αλλαγών

6 6 Στίγμα: Κεντρική Μνήμη με διάδρομο Μοιραζόμενη Κρυφή Μνήμη + Low-latency sharing and prefetching across processors + Μοιραζόμενα σύνολα εργασίας + Δεν υπάρχει πρόβλημα συνάφειας - Ανάγκη μεγάλου εύρους ζώνης - Αυξημένη καθυστέρηση είτε σε cache hit είτε σε cache miss λόγω του διαδρόμου και του μεγέθους της κρυφής μνήμης 1980 - 1990: Συνέδεε ζεύγη επεξεργαστών σε μια πλακέτα (Encore, Sequent) Σήμερα: Για πολυεπεξεργαστές στο ίδιο chip (για συστήματα κόμβων μικρής κλίμακας) Συνέπεια Όχι πλέον δημοφιλής λύση: Όλα είναι το ίδιο μακριά

7 7 Στίγμα: Κεντρική Μνήμη με διάδρομο Κατανεμημένη Μνήμη Πιο δημοφιλής τεχνική για κατασκευή επεκτάσιμων συστημάτων (θα συζητηθεί στη συνέχεια)

8 8 Περίγραμμα Παρουσίασης Συνάφεια (Coherence) και Συνέπεια (Consistency) Μνήμης Πρωτόκολλο Συνάφειας Κρυφής Μνήμης με Κατασκοπεία Ποσοτική αποτίμηση Πρωτοκόλλων Συνάφειας Κρυφής Μνήμης Συγχρονισμός

9 9 Σύστημα με Συνάφεια μνήμης: Γενική Ιδέα Η λειτουργία ανάγνωσης μιας θέσης μνήμης πρέπει να επιστρέφει την τιμή που γράφτηκε τελευταία (από οποιαδήποτε διεργασία) Εύκολο σε μονο-επεξεργαστικά συστήματα Θα θέλαμε να ισχύει το ίδιο όταν οι διεργασίες τρέχουν σε διαφορετικούς επεξεργαστές Αλλά το πρόβλημα της συνάφειας μνήμης είναι πολύ πιο δύσκολο σε συστήματα πολυεπεξεργαστών

10 10 Παράδειγμα Προβλήματος Συνάφειας Κρυφής Μνήμης  Οι επεξεργαστές βλέπουν διαφορετική τιμή για τη μεταβλητή u μετά τη λειτουργία 3  Με τις write back caches, η τιμή που γράφεται πίσω στη μνήμη εξαρτάται από το ποια cache και πότε διώχνει ή αντιγράφει δεδομένα  Απαράδεκτο, αλλά συμβαίνει συχνά!

11 11 Παράδειγμα Προβλήματος Συνάφειας Κρυφής Μνήμης Παρόμοια προβλήματα αντιμετωπίζουμε ακόμη και σε μονο- επεξεργαστικά συστήματα, όπου πρόσβαση στη μνήμη έχουν  Οι λειτουργίες εισόδου / εξόδου (I/O operations)  Οι συσκευές άμεσης προσπέλασης της μνήμης (DMA devices)

12 12 Προβλήματα με τη γενική ιδέα Υπενθύμιση: Η τιμή που επιστρέφεται από μια λειτουργία ανάγνωσης πρέπει να είναι η τελευταία που γράφτηκε Αλλά η «τελευταία» δεν έχει οριστεί επαρκώς Ακόμη και στην περίπτωση σειριακού προγράμματος, η τελευταία ορίζεται σύμφωνα με τη σειρά που επιβάλλεται από το πρόγραμμα, όχι από το χρόνο Στην περίπτωση παράλληλου προγράμματος, η σειρά του προγράμματος ορίζεται εντός της διεργασίας Πρέπει να οριστεί και μια σειρά που να αφορά όλες τις διεργασίες

13 13 Εξειδίκευση της Γενικής Ιδέας Έστω ότι υπάρχει μία μόνο μοιραζόμενη μνήμη και καθόλου μονάδες κρυφής μνήμης  Κάθε λειτουργία ανάγνωσης και εγγραφής σε μια θέση μνήμης προσπελαύνει την ίδια φυσική θέση Η μνήμη επιβάλλει μια καθολική σειρά στις λειτουργίες σε αυτή τη θέση  Οι λειτουργίες στη θέση αυτή από έναν επεξεργαστή γίνονται με τη σειρά που επιβάλλει το πρόγραμμα  Η σειρά των λειτουργιών από διαφορετικούς επεξεργαστές είναι μια παρεμβολή που διατηρεί τις σειρές που επιβάλλονται από τα ανεξάρτητα προγράμματα «Τελευταία» τώρα σημαίνει την πιο πρόσφατη σε μια υποθετική ακολουθιακή σειρά που ικανοποιεί τις παραπάνω ιδιότητες

14 14 Εξειδίκευση της Γενικής Ιδέας Για να είναι συνεπής η ακολουθιακή σειρά, πρέπει οι επεξεργαστές να βλέπουν τις εγγραφές στην ίδια θέση μνήμης με την ίδια σειρά Η καθολική σειρά δεν κατασκευάζεται ποτέ σε πραγματικά συστήματα Αλλά τα προγράμματα πρέπει να συμπεριφέρονται σαν να υπήρχε αυτή η καθολική σειρά

15 15 Ορισμός της Συνάφειας Μνήμης (Coherence)  Αποτελέσματα ενός προγράμματος: Οι τιμές που επιστρέφονται από τις λειτουργίες ανάγνωσης  Ένα σύστημα μνήμης είναι συναφές αν τα αποτελέσματα κάθε εκτέλεσης ενός προγράμματος είναι τέτοια ώστε σε κάθε θέση μπορούμε να κατασκευάσουμε μια υποθετική ακολουθιακή σειρά όλων των λειτουργιών στη συγκεκριμένη θέση, που είναι συνεπής με τα αποτελέσματα της εκτέλεσης και στην οποία: 1. Οι λειτουργίες που καλούνται από κάθε διεργασία συμβαίνουν με τη σειρά στην οποία κλήθηκαν από τη διεργασία αυτή 2. Η τιμή που επιστρέφεται από μια λειτουργία ανάγνωσης είναι η τιμή της τελευταίας εγγραφής στη συγκεκριμένη θέση σύμφωνα με την καθολική σειρά

16 16 Ορισμός της Συνάφειας Μνήμης (Coherence)  Απαραίτητα χαρακτηριστικά: Διάδοση εγγραφών: Η τιμή που γράφεται πρέπει να γίνεται αμέσως ορατή στους άλλους Σειριοποίηση εγγραφών: Οι εγγραφές σε μια θέση φαίνονται στην ίδια σειρά για όλους Αν εγώ βλέπω στην εγγραφή w1 πριν από την w2, δεν πρέπει εσύ να βλέπεις την w2 πριν από την w1 Δεν χρειάζεται όμοια σειριοποίηση των λειτουργιών ανάγνωσης, αφού οι λειτουργίες ανάγνωσης δεν είναι ορατές από τους υπόλοιπους

17 17 Συνάφεια Κρυφής Μνήμης με τη χρήση Διαδρόμου Στηρίζεται σε δυο βασικά χαρακτηριστικά των μονο-επεξεργαστικών συστημάτων 1. Bus transactions 2. Διάγραμμα μετάβασης καταστάσεων στην κρυφή μνήμη

18 18 Συνάφεια Κρυφής Μνήμης με τη χρήση Διαδρόμου 1. Bus transaction σε έναν επεξεργαστή: Τρεις φάσεις: διαιτησία, εντολή/διεύθυνση, μεταφορά δεδομένων Όλες οι συσκευές παρακολουθούν τις διευθύνσεις, μία είναι υπεύθυνη 2. Καταστάσεις κρυφής μνήμης για έναν επεξεργαστή: Ουσιαστικά, κάθε block είναι μια μηχανή πεπερασμένων καταστάσεων Write-through, write no-allocate έχουν δύο καταστάσεις: έγκυρη, άκυρη Writeback caches έχουν μία επιπλέον κατάσταση: τροποποιημένη

19 19 Συνάφεια Κρυφής Μνήμης με τη χρήση Διαδρόμου Οι πολυεπεξεργαστές επεκτείνουν και τα δύο αυτά χαρακτηριστικά για να υλοποιήσουν τη συνάφεια κρυφής μνήμης

20 20 Κατασκοπευτική Συνάφεια Μνήμης Βασική Ιδέα:  Οι transactions στο διάδρομο είναι ορατές σε όλους τους επεξεργαστές  Οι επεξεργαστές ή οι αντιπρόσωποί τους μπορούν να κατασκοπεύουν το διάδρομο και να παίρνουν τα ανάλογα μέτρα (π.χ. Αλλαγή κατάστασης)

21 21 Κατασκοπευτική Συνάφεια Μνήμης Υλοποίηση Πρωτοκόλλου 1. 1. Ο ελεγκτής της κρυφής μνήμης τώρα δέχεται είσοδο από δύο πλευρές:  Αιτήσεις από τον επεξεργαστή  Αιτήσεις / αποκρίσεις διαδρόμου από τον κατάσκοπο 2. 2. Σε κάθε περίπτωση, αναλαμβάνει ή όχι δράση  Ενημερώνει μια κατάσταση  αποκρίνεται με δεδομένα  παράγει νέες bus transactions 3. 3. Η συνάφεια βασίζεται στο μέγεθος του block της κρυφής μνήμης  Όπως η κατανομή στην κρυφή μνήμη και η μεταφορά από και προς την κρυφή μνήμη

22 22 Συνάφεια με Write-through Caches  Βασικές επεκτάσεις από τους μονο-επεξεργαστές: 1. κατασκοπεία 2. ακύρωση / ενημέρωση κρυφής μνήμης Δεν υπάρχουν νέες καταστάσεις ή bus transactions στην περίπτωση αυτή Πρωτόκολλα που στηρίζονται στην ακύρωση ή στην ενημέρωση

23 23 Συνάφεια με Write-through Caches  Διάδοση εγγραφών: Ακόμη και στην περίπτωση ακύρωσης, οι επόμενες αναγνώσεις θα δουν την καινούρια τιμή Η ακύρωση προκαλεί miss στην επόμενη προσπέλαση και συνεπώς ενημέρωση της μνήμης

24 24 Write-through Διάγραμμα Μετάβασης Καταστάσεων  Σε κάθε κρυφή μνήμη υπάρχουν δύο καταστάσεις ανά block, όπως στους μονο-επεξεργαστές  Hardware bits κατάστασης συνδέονται μόνο με τα blocks που υπάρχουν στη μνήμη Τα υπόλοιπα blocks θεωρούνται σε άκυρη κατάσταση στη συγκεκριμένη κρυφή μνήμη

25 25 Write-through Διάγραμμα Μετάβασης Καταστάσεων  Οι εγγραφές ακυρώνουν όλα τα άλλα αντίγραφα σε κρυφές μνήμες (όχι τοπική αλλαγή κατάστασης) Μπορούν ταυτόχρονα να υπάρχουν πολλοί αναγνώστες ενός block, αλλά μια εγγραφή τους ακυρώνει

26 26 Είναι Συναφές; Κατασκευάζεται καθολική σειρά που ικανοποιεί τη τη σειρά του προγράμματος και τη σειριοποίηση των εγγραφών; 1. Υποθέτουμε ατομικές bus transactions και λειτουργίες μνήμης 2. Όλες οι εγγραφές περνούν από το διάδρομο  Οι εγγραφές σειριοποιούνται σύμφωνα με τη σειρά που εμφανίζονται στο διάδρομο  Οι ακυρώσεις εφαρμόζονται στις κρυφές μνήμες με τη σειρά που καθορίζει ο διάδρομος Πώς παρεμβάλλουμε τις αναγνώσεις στη σειρά αυτή;

27 27 Σειριοποίηση αναγνώσεων Read misses: εμφανίζονται στο διάδρομο και βλέπουν την τελευταία εγγραφή σύμφωνα με τη σειρά που καθορίζει ο διάδρομος Read hits: δεν εμφανίζονται στο διάδρομο  Αλλά η τιμή που διαβάζεται τοποθετήθηκε στην κρυφή μνήμη από Την πιο πρόσφατη εγγραφή από αυτόν τον επεξεργαστή, ή Την πιο πρόσφατη read miss από αυτόν τον επεξεργαστή  Και οι δύο αυτές transactions εμφανίζονται στο διάδρομο  Άρα οι reads hits βλέπουν τις τιμές με τη σειρά που καθορίζει ο διάδρομος

28 28 Καθορισμός Σειράς Γενικά  Μια λειτουργία μνήμης Μ2 ακολουθεί μια λειτουργία μνήμης Μ1 αν οι λειτουργίες καλούνται από τον ίδιο επεξεργαστή και η Μ2 έπεται της Μ1 στη σειρά του προγράμματος.  Μια ανάγνωση έπεται μιας εγγραφής W αν η ανάγνωση παράγει bus transaction που έπεται του bus transaction της W.  Μια εγγραφή έπεται μια ανάγνωσης ή εγγραφής M αν η M παράγει bus xaction και η xaction για την εγγραφή έπεται αυτήν της M.  Μια εγγραφή έπεται μιας ανάγνωσης αν η εγγραφή δεν παράγει bus xaction και δεν σειριοποιείται σε σχέση με τη εγγραφή από μια άλλη bus xaction.

29 29 Καθορισμός Σειράς Γενικά  Οι εγγραφές καθορίζουν μια μερική σειριοποίηση  Δεν περιορίζει τη σειριοποίηση των εγγραφών, αν και ο διάδρομος σειριοποιεί επίσης κάποιες read misses Κάθε διάταξη των αναγνώσεων μεταξύ των εγγραφών είναι ικανοποιητική, αρκεί να διατηρεί τη σειρά που ορίζεται από το πρόγραμμα

30 30 Πρόβλημα με Write-Through  Απαίτηση υψηλού εύρους ζώνης  Οι Write-back κρύβουν τις περισσότερες εγγραφές από το διάδρομο ως cache hits

31 31 Συνέπεια Μνήμης Οι εγγραφές σε μια θέση είναι ορατές από όλους με την ίδια σειρά Αλλά πότε γίνεται ορατή μια εγγραφή;  Πώς να καθορίσουμε τη σχετική σειριοποίηση μια εγγραφής και μιας ανάγνωσης από διαφορετικούς επεξεργαστές; Με συγχρονισμό των γεγονότων, χρησιμοποιώντας περισσότερες από μια θέσεις P 1 P 2 /*Υποθέστε ότι η αρχική τιμή της μεταβλητής Α είναι 0*/ A = 1;while (flag == 0); /*spin idly*/ flag = 1;print A;

32 32 Συνέπεια Μνήμης  Η συνάφεια δεν εγγυάται τη γενική ιδέα  Μερικές φορές περιμένουμε να διατηρείται η σειρά των προσπελάσεων σε διαφορετικές θέσεις μνήμης από έναν δεδομένο επεξεργαστή  Η έννοια της συνάφειας δεν βοηθάει: αναφέρεται σε μία μόνο θέση

33 33 Παράδειγμα  Όποια και αν είναι η γενική ιδέα, χρειαζόμαστε ένα μοντέλο σειριοποίησης Για διαφορετικές θέσεις μνήμης Ώστε οι προγραμματιστές να καθορίζουν τα δυνατά αποτελέσματα με βάση τη λογική  Χρειαζόμαστε ένα μοντέλο συνέπειας της μνήμης P 1 P 2 /*Assume initial values of A and B are 0*/ (1a) A = 1;(2a) print B; (1b) B = 2;(2b) print A;

34 34 Μοντέλο Συνέπειας Μνήμης Περιορίζει τις πιθανές διατάξεις με τις οποίες οι λειτουργίες μνήμης (από κάθε διεργασία) μπορούν να εμφανιστούν η μία σε σχέση με την άλλη Χωρίς αυτήν, δεν μπορούμε να πούμε τίποτα για το αποτέλεσμα της εκτέλεσης ενός προγράμματος SAS Συνέπειες για τους προγραμματιστές και τους σχεδιαστές συστήματος: Ο προγραμματιστής με βάση τη λογική αποφασίζει για την ορθότητα και τα πιθανά αποτελέσματα Ο σχεδιαστής συστήματος πρέπει να περιορίσει πόσο μπορούν να αναδιατάσσονται οι προσπελάσεις από τον compiler ή το hardware

35 35 Ακολουθιακή Συνέπεια  Σαν να μην υπήρχαν κρυφές μνήμες, μία μόνο μνήμη  Καθολική διάταξη επιτυγχάνεται παρεμβάλλοντας μεταξύ τους τις προσπελάσεις από διαφορετικές διεργασίες  Διατηρεί τη διάταξη του προγράμματος, και οι λειτουργίες της μνήμης, από όλες τις διεργασίες, εμφανίζονται να [καλούνται, εκτελούνται, ολοκληρώνονται] ατομικά σε σχέση με τις άλλες  Διατηρείται η διαίσθηση του προγραμματιστή

36 36 Ακολουθιακή Συνέπεια “A multiprocessor is sequentially consistent if the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program.” [Lamport, 1979]

37 37 Τι είναι η διάταξη του προγράμματος; Διαισθητικά, η σειρά με την οποία εμφανίζονται οι λειτουργίες στον πηγαίο κώδικα Όχι όμως ίδια με τη σειρά που εμφανίζεται στο hardware από τον compiler Άρα, τι είναι η διάταξη του προγράμματος; Εξαρτάται από το ποιο επίπεδο και ποιος κάνει τη συσχέτιση  Υποθέτουμε τη σειρά, όπως την βλέπει ο προγραμματιστής

38 38 Παράδειγμα Ακολουθιακής Συνέπειας  Πιθανά αποτελέσματα για (A,B): (0,0), (1,0), (1,2);  Αδύνατον υποθέτοντας ακολουθιακή συνέπεια: (0,2) Γνωρίζουμε ότι 1a->1b και 2a->2b από τη διάταξη του προγράμματος A = 0 προϋποθέτει 2b->1a, άρα 2a->1b B = 2 προϋποθέτει 1b->2a, που οδηγεί σε άτοπο Αυτό που μετράει είναι η σειρά που φαίνεται ότι εκτελούνται οι εντολές, όχι που πραγματικά εκτελούνται P 1 P 2 /*Υποθέστε ότι οι αρχικές τιμές των Α,Β είναι 0*/ (1a) A = 1;(2a) print B; (1b) B = 2;(2b) print A;

39 39 Υλοποίηση Ακολουθιακή Συνέπειας Δύο είδη απαιτήσεων:  Σειρά του προγράμματος Οι λειτουργίες της μνήμης που καλούνται από μια διεργασία πρέπει να γίνονται ορατές (στους άλλους, αλλά και στην ίδια) με τη σειρά που υπαγορεύει το πρόγραμμα  Ατομικότητα Στην καθολική σειρά, μια λειτουργία μνήμης πρέπει να φαίνεται ότι ολοκληρώνεται ως προς τις άλλες διεργασίες πριν κληθεί η επόμενη

40 40 Ατομικότητα εγγραφών Ατομικότητα εγγραφών: Η θέση στην καθολική σειρά στην οποία μια εγγραφή εμφανίζεται πρέπει να είναι η ίδια για όλες τις διεργασίες Τίποτα από αυτά που κάνει μια διεργασία αφού έχει δει την καινούρια τιμή που παράχθηκε από μια εγγραφή W δεν πρέπει να γίνεται ορατό στις άλλες διεργασίες πριν δουν την W Άρα, επεκτείνεται η σειριοποίηση των εγγραφών στις εγγραφές από πολλαπλές διεργασίες

41 41 Ορισμοί Η σειρά του προγράμματος κάθε διεργασίας επιβάλλει μια μερική διάταξη στο σύνολο των λειτουργιών Παρεμβάλλοντας μεταξύ τους αυτές τις μερικές διατάξεις, προκύπτει μια καθολική σειρά για όλες τις διεργασίες Περισσότερες από μία καθολικές σειρές μπορεί να είναι ακολουθιακά συνεπείς

42 42 Ορισμοί Ακολουθιακά συνεπής Εκτέλεση: Η εκτέλεση ενός προγράμματος είναι ακολουθιακά συνεπής αν τα αποτελέσματα που παράγονται είναι όμοια με αυτά που θα μπορούσα να παραχθούν από μία πιθανή καθολική σειρά Ακολουθιακά συνεπές Σύστημα: Ένα σύστημα είναι ακολουθιακά συνεπές αν κάθε πιθανή εκτέλεση σε αυτό είναι μια ακολουθιακά συνεπής εκτέλεση

43 43 Ικανές Συνθήκες για Ακολουθιακή Συνέπεια  Κάθε διεργασία καλεί λειτουργίες της μνήμης με τη σειρά του προγράμματος  Αφού κληθεί μια λειτουργία εγγραφή, η καλούσα διεργασία περιμένει να ολοκληρωθεί η εγγραφή πριν καλέσει την επόμενη λειτουργία  Αφού κληθεί μια λειτουργία ανάγνωσης, η καλούσα διεργασία περιμένει να ολοκληρωθεί η ανάγνωση, καθώς και η εγγραφή της οποίας η τιμή επιστρέφεται, πριν καλέσει την επόμενη λειτουργία (παρέχει ατομικότητα των εγγραφών) Ικανές, όχι αναγκαίες συνθήκες Οι compilers δεν πρέπει να αναδιατάσσουν το πρόγραμμα για να έχουμε ακολουθιακή συνέπεια, αλλά το κάνουν! Ακόμα και αν καλούνται με τη σειρά, το hardware μπορεί να τις αναδιατάσσει για καλύτερη απόδοση  Οι ικανές συνθήκες είναι πολύ περιοριστικές για να επιτευχθεί υψηλή απόδοση

44 44 Πώς χειριζόμαστε τη σειριοποίηση Υποθέστε, προς το παρόν, ότι ο compiler δεν αναδιατάσσει Το hardware χρειάζεται μηχανισμούς για να: Ανιχνεύσει την ολοκλήρωση των εγγραφών Εξασφαλίσει την ατομικότητα των εγγραφών Για όλα τα πρωτόκολλα και τις υλοποιήσεις θα δούμε: Πώς ικανοποιούν τη συνάφεια, ιδιαίτερα τη σειριοποίηση των εγγραφών Πώς ικανοποιούν τις ικανές συνθήκες για ακολουθιακή συνέπεια Πώς εξασφαλίζουν την ακολουθιακή συνέπεια, όχι μέσω των ικανών συνθηκών Θα δούμε ότι ο κεντρικός διάδρομος διασύνδεσης τα κάνει ευκολότερα

45 45 Ακολουθιακή Συνέπεια σε Write-Through Παράδειγμα Παρέχει ακολουθιακή συνέπεια, όχι μόνο συνάφεια Επέκταση των επιχειρημάτων που χρησιμοποιούνται για τη συνάφεια  Οι εγγραφές και οι read misses σε όλες τις θέσεις σειριοποιούνται πάνω στο διάδρομο  Αν μια ανάγνωση παίρνει τιμή από μια εγγραφή W, η W σίγουρα έχει ολοκληρωθεί Αφού προκάλεσε bus transaction  Όταν η εγγραφή W πραγματοποιείται ως προς τους άλλους επεξεργαστές, όλες οι προηγούμενες εγγραφές έχουν ολοκληρωθεί σύμφωνα με τη διάταξη που επιβάλλει ο διάδρομος

46 46 Σχεδίαση για Κατασκοπευτικά Πρωτόκολλα Δεν χρειάζεται να αλλάξουμε επεξεργαστή, κύρια μνήμη, κρυφή μνήμη … Επεκτείνουμε τον ελεγκτή της κρυφής μνήμης και εκμεταλλευόμαστε το διάδρομο (παρέχει σειριοποίηση) Επικεντρωνόμαστε στα πρωτόκολλα για write-back caches Η τροποποιημένη κατάσταση δείχνει αποκλειστική ιδιοκτησία Αποκλειστικότητα: Η μόνη κρυφή μνήμη με έγκυρο αντίγραφο (μπορεί να έχει και η κύρια μνήμη) Ιδιοκτήτης: υπεύθυνος να παρέχει το block αν ζητηθεί Σχεδίαση Πρωτόκολλα με ακύρωση ή με ενημέρωση Ορισμός καταστάσεων

47 47 Πρωτόκολλα με ακύρωση Αποκλειστικότητα σημαίνει ότι μπορεί να τροποποιεί χωρίς να ειδοποιεί κανέναν  Δηλ. χωρίς bus transaction  Πρέπει πρώτα να αποκτήσει την αποκλειστικότητα του block πριν γράψει σε αυτό  Ακόμη και αν βρίσκεται σε έγκυρη κατάσταση, χρειάζεται transaction, άρα έχουμε write miss Αποθήκευση σε μη τροποποιημένα δεδομένα προκαλεί μια read- exclusive bus transaction  Ειδοποιεί τους άλλους για την επερχόμενη εγγραφή, αποκτά την αποκλειστική ιδιοκτησία  Μία μόνο RdX μπορεί να επιτύχει τη φορά για ένα block: σειριοποιούνται στο διάδρομο

48 48 Πρωτόκολλα με ενημέρωση Μια λειτουργία εγγραφής ενημερώνει τις τιμές στις άλλες κρυφές μνήμες Πλεονεκτήματα  Μειωμένη καθυστέρηση για τους άλλους επεξεργαστές στην επόμενη προσπέλαση  Μία μόνο bus transaction ενημερώνει όλες τις κρυφές μνήμες Επίσης, μόνο η συγκεκριμένη λέξη μεταφέρεται, όχι όλο το block Μειονεκτήματα  Πολλαπλές εγγραφές από τον ίδιο επεξεργαστή προκαλούν πολλές ενημερώσεις

49 49 Ακύρωση - Ενημέρωση  Ένα block, που γράφεται από έναν επεξεργαστή, διαβάζεται από άλλους πριν ξαναγραφεί; Ακύρωση:  Ναι  Οι αναγνώστες θα έχουν miss   Όχι  πολλές εγγραφές χωρίς επιπλέον κίνηση Και εκκαθάριση των αντιγράφων που δεν θα ξαναχρησιμοποιηθούν Ενημέρωση:  Ναι  Οι αναγνώστες δεν θα χάσουν αν είχαν αντίγραφα Με μία μόνο bus transaction ενημερώνονται όλα τα αντίγραφα  Όχι  Πολλές άχρηστες ενημερώσεις, ακόμα και σε νεκρά αντίγραφα   Πρέπει να εξετάσουμε τη συμπεριφορά των προγραμμάτων και την πολυπλοκότητα του hardware

50 50 MSI Writeback Πρωτόκολλο με Ακύρωση Καταστάσεις:  Άκυρη - Invalid (I)  Μοιραζόμενη - Shared (S): (για ένα ή περισσότερους)  Τροποποιημένη - Modified (M): (μόνο ένας) Γεγονότα επεξεργαστών:  PrRd (ανάγνωση)  PrWr (εγγραφή) Bus Transactions:  BusRd: Ζητά αντίγραφο χωρίς σκοπό να το τροποποιήσει  BusRdX: Ζητά αντίγραφο με σκοπό να το τροποποιήσει  BusWB: Ενημερώνει τη μνήμη Δραστηριότητες: Ενημέρωση κατάστασης, Εκτέλεση bus transaction, Τοποθέτηση τιμής στο διάδρομο

51 51 Διάγραμμα Μετάβασης Καταστάσεων

52 52 Παράδειγμα Ενέργεια στον επεξεργαστή Κατάσταση Ρ1 Κατάσταση Ρ2 Κατάσταση Ρ3 Ενέργεια στο διάδρομο Τα δεδομένα παρέχονται από Ρ1 διαβάζει uS--- BusRd Κύρια Μνήμη Ρ3 διαβάζει uS---SBusRd Κύρια Μνήμη Ρ3 γράφει uI---MBusRdX Κύρια Μνήμη Ρ1 διαβάζει uS---SBusRd Κρυφή Μνήμη Ρ3 Ρ2 διαβάζει uSSSBusRd Κύρια Μνήμη

53 53 Συνάφεια στο Πρωτόκολλο MSI Η διάδοση των εγγραφών είναι προφανής Η σειριοποίηση των εγγραφών;  Όλες οι εγγραφές που εμφανίζονται στο διάδρομο (BusRdX) διατάσσονται από αυτόν  Οι αναγνώσεις που εμφανίζονται στο διάδρομο διατάσσονται ως προς αυτές  Για τις εγγραφές που δεν εμφανίζονται στο διάδρομο: Μια ακολουθία τέτοιων εγγραφών μεταξύ δύο bus xactions για το ίδιο block πρέπει να προέρχονται από τον ίδιο επεξεργαστή P Στη σειριοποίηση, η ακολουθία εμφανίζεται μεταξύ αυτών των δύο bus xactions Οι αναγνώσεις από τον Ρ θα τις βλέπουν με τη σειρά αυτή ως προς τις άλλες bus xactions Οι αναγνώσεις από άλλους επεξεργαστές διαχωρίζονται από την ακολουθία με μία bus xaction, η οποία τις τοποθετεί σε σειρά ως προς τις εγγραφές Άρα οι αναγνώσεις από όλους τους επεξεργαστές βλέπουν τις εγγραφές με την ίδια σειρά

54 54 Ακολουθιακή Συνέπεια στο Πρωτόκολλο MSI  Ο διάδρομος επιβάλλει καθολική σειρά στις bus xactions για όλες τις θέσεις  Ανάμεσα στις xactions, οι επεξεργαστές διαβάζουν / γράφουν τοπικά με τη σειρά του προγράμματος  Άρα κάθε εκτέλεση ορίζει μια φυσική μερική διάταξη Η M j έπεται της M i αν (I) έπεται στη σειρά του προγράμματος στον ίδιο επεξεργαστή, (ΙΙ) η M j δημιουργεί bus xaction που έπεται της λειτουργίας μνήμης M i  Σε ένα τμήμα ανάμεσα σε δύο bus transactions, κάθε παρεμβολή των λειτουργιών διαφορετικών επεξεργαστών δίνει συνεπή καθολική σειρά  Σε ένα τέτοιο τμήμα, οι εγγραφές είναι ορατές στον επεξεργαστή P σειριοποιημένες ως εξής: Writes from other processors by the previous bus xaction P issued Writes from P by program order

55 55 MESI - Πρωτόκολλο με Ακύρωση Πρόβλημα πρωτοκόλλου MSI  Ανάγνωση και τροποποίηση δεδομένων με 2 bus xactions, ακόμη και αν κανείς δεν τα μοιράζεται Π.χ. Σε ένα σειριακό πρόγραμμα BusRd (I->S) ακολουθούμενο από BusRdX ή BusUpgr (S->M)

56 56 MESI - Πρωτόκολλο με Ακύρωση Προσθέτουμε τη κατάσταση αποκλειστικότητας (exclusive): γράφεται τοπικά χωρίς xaction, αλλά δεν τροποποιείται  Καταστάσεις: Άκυρη - invalid Αποκλειστική - exclusive (μόνο αυτή η κρυφή μνήμη έχει αντίγραφο, όχι τροποποιημένο) Μοιραζόμενη - shared (δύο ή περισσότερες κρυφές μνήμες μπορούν να έχουν αντίγραφο) Τροποποιημένη – modified  Μετάβαση I -> E στο σήμα PrRd αν κανείς δεν έχει αντίγραφο Χρειάζεται σήμα “shared” στο διάδρομο ως απάντηση στο BusRd

57 57 Διάγραμμα Μετάβασης Καταστάσεων MESI

58 58 Παράδειγμα Ενέργεια στον επεξεργαστή Κατάσταση Ρ1 Κατάσταση Ρ2 Κατάσταση Ρ3 Ενέργεια στο διάδρομο Τα δεδομένα παρέχονται από Ρ1 διαβάζει uΕ--- BusRd Κύρια Μνήμη Ρ1 γράφει uΜ--- Ρ3 διαβάζει uS---SBusRd Κρυφή Μνήμη Ρ1 Ρ3 γράφει uI---MBusRdX Κύρια Μνήμη Ρ1 διαβάζει uS---SBusRd Κρυφή Μνήμη Ρ3 Ρ2 διαβάζει uSSSBusRd Κύρια Μνήμη

59 59 Dragon Write-back Πρωτόκολλο με Ενημέρωση 4 καταστάσεις  Αποκλειστική - Exclusive (E): Την έχουμε εγώ και η μνήμη  Μοιραζόμενη καθαρή - Shared clean (Sc): Εγώ, άλλοι και ίσως η μνήμη, Δεν είμαι ιδιοκτήτης  Μοιραζόμενη τροποποιημένη - Shared modified (Sm): Εγώ και άλλοι, αλλά όχι η μνήμη, Είμαι ο ιδιοκτήτης Οι Sm και Sc μπορούν να συνυπάρχουν δε διαφορετικές κρυφές μνήμες, με μία μόνο Sm  Τροποποιημένη ή βρώμικη - Dirty (D): Εγώ και κανένας άλλος Δεν υπάρχει άκυρη κατάσταση Νέα γεγονότα επεξεργαστών: PrRdMiss, PrWrMiss Νέα bus transaction: BusUpd

60 60 Dragon Διάγραμμα Μετάβασης Καταστάσεων E Sc Sm M PrWr/— PrRd/— PrRdMiss/BusRd(S) PrWr/— PrWrMiss/(BusRd(S); BusUpd) PrWrMiss/BusRd(S) PrWr/BusUpd(S) PrWr/BusUpd(S) BusRd/— BusRd/Flush PrRd/— BusUpd/Update BusRd/Flush PrWr/BusUpd(S) PrWr/BusUpd(S)

61 61 Παράδειγμα Ενέργεια στον επεξεργαστή Κατάσταση Ρ1 Κατάσταση Ρ2 Κατάσταση Ρ3 Ενέργεια στο διάδρομο Τα δεδομένα παρέχονται από Ρ1 διαβάζει uΕ--- BusRd Κύρια Μνήμη Ρ3 διαβάζει uSc---ScBusRd Κύρια Μνήμη Ρ3 γράφει uSc---SmBusUpd Κρυφή Μνήμη Ρ3 Ρ1 διαβάζει uSc---Sm--- Ρ2 διαβάζει uSc SmBusRd Κρυφή Μνήμη Ρ3


Κατέβασμα ppt "1 Shared Memory Multiprocessors Πολυεπεξεργαστές Μοιραζόμενης Μνήμης."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google