1 / 61

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

Shared Memory Multiprocessors Πολυεπεξεργαστές Μοιραζόμενης Μνήμης. Shared Memory Multiprocessors. Η κύρια μνήμη προσπελαύνεται μ ε τ ο ν ίδιο τρόπο και ταχύτητα από όλο υ ς τους επεξεργαστές Κάθε επεξεργαστής έχει το δικό του χώρο φυσικών διευθύνσεων κρυφής μνήμης ( cache memory)

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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. Τι είναι η διάταξη του προγράμματος; • Διαισθητικά, η σειρά με την οποία εμφανίζονται οι λειτουργίες στον πηγαίο κώδικα • Όχι όμως ίδια με τη σειρά που εμφανίζεται στο hardwareαπό τον compiler • Άρα, τι είναι η διάταξη του προγράμματος; • Εξαρτάται από το ποιο επίπεδο και ποιος κάνει τη συσχέτιση • Υποθέτουμε τη σειρά, όπως την βλέπει ο προγραμματιστής

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related