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

Σχετικά έγγραφα
Συνάφεια Κρυφής (Λανθάνουσας) Μνήµης- -Συνέπεια Μνήµης (Cache Coherence-Memory Consistency)

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

Πολυπύρηνοι επεξεργαστές Multicore processors

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ. ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Δρασίδης Γεώργιος

Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές

Parallel Architectures

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

8/3/2016 Οργάνωση κοινόχρηστης μνήμης (ΙΙ) Η λειτουργία της μνήμης

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Caches for Parallel Architectures. (Coherence)

Caches for Parallel Architectures

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές, 2ο μέρος

Σειρά Ασκήσεων 13: Συνοχή (Coherence) Κρυφών Μνημών, Προχωρημένοι Επεξεργαστές (Out-of-Order, Superscalar, Multithreading, Multicores)

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Parallel Architectures

Οργάνωση Υπολογιστών (IΙI)

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Εισαγωγή Θέματα H/W. Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης. Κατανεμημένα Συστήματα (Ε) Εισαγωγή: Θέματα H/W 1

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Αρχιτεκτονική Υπολογιστών

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Αρχιτεκτονική υπολογιστών

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συνοχή κρυφής μνήμης σε πολυπύρηνα/πολυεπεξεργαστικά συστήματα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Εικονική Μνήμη (Virtual Μemory)

Υ- 07 Παράλληλα Συστήματα Συνοχή κρυφής μνήμης με σύστημα καταλόγων

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

Πολυεπεξεργαστές Κοινής Μνήμης & Multi-cores. Κεφάλαιο ΙΙ

Πολυεπεξεργαστές Κοινόχρηστης Μνήμης & Multi-cores. Κεφάλαιο ΙΙ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Διάλεξη 13: Κατανεμημένη Κοινόχρηστη Μνήμη. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Συνέπεια μνήμης σε πολυπύρηνα/πολυεπεξεργαστικά συστήματα

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Μemory)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Αρχιτεκτονική υπολογιστών

5. Παράλληλα Συστήματα: Εισαγωγή

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Parallel Architectures

Parallel Architectures

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Η ιεραρχία της μνήμης

Πανεπιστήµιο Θεσσαλίας

Ιδιοκτησία Αντικειµένου

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Εικονική Μνήμη (virtual memory)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ

Επιτεύγµατα των Λ.Σ.

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

Ασκήσεις Caches

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Processor-Memory (DRAM) ιαφορά επίδοσης

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

Processor-Memory (DRAM) Διαφορά επίδοσης

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Δημήτρης Ντόντος (AM: 976)

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Κεντρική Μονάδα Επεξεργασίας

Έλεγχος Ταυτοχρονισμού

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Είδη των Cache Misses: 3C s

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

Transcript:

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

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

Τρόποι επέκτασης του συστήµατος µνήµης P 1 P n Switch P 1 P n (Interleaved) First-level $ $ $ Bus (Interleaved) Main memory Mem I/O devices (a) Shared cache (b) Bus-based shared memory P 1 P n P 1 P n $ $ $ $ Mem Mem Interconnection network Mem Mem Interconnection network (c) Dancehall (d) Distributed-memory 3

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

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

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

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

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

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

Παράδειγµα Προβλήµατος Συνάφειας Κρυφής Μνήµης P 1 P 2 P 3 u =? u =? u = 7 $ 4 $ 5 $ 3 u:5 u:5 1 I/O devices u:5 2 Memory Οι επεξεργαστές βλέπουν διαφορετική τιµή για τη µεταβλητή uµετά τη λειτουργία 3 Με τις write back caches, η τιµή που γράφεται πίσω στη µνήµη εξαρτάται από το ποια cache και πότε διώχνει ή αντιγράφει δεδοµένα Απαράδεκτο, αλλά συµβαίνει συχνά! 10

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

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

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

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

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

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

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

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

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

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

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

Συνάφεια µε Write-through Caches P 1 Bus snoop P n $ $ Mem I/O devices Cache-memory transaction Βασικές επεκτάσεις από τους µονο-επεξεργαστές: 1. κατασκοπεία 2. ακύρωση / ενηµέρωση κρυφής µνήµης εν υπάρχουν νέες καταστάσεις ή bus transactions στην περίπτωση αυτή Πρωτόκολλα που στηρίζονται στην ακύρωση ή στην ενηµέρωση 22

Συνάφεια µε Write-through Caches P 1 Bus snoop P n $ $ Mem I/O devices Cache-memory transaction ιάδοση εγγραφών: Ακόµη και στην περίπτωση ακύρωσης, οι επόµενες αναγνώσεις θα δουν την καινούρια τιµή Η ακύρωση προκαλεί miss στην επόµενη προσπέλαση και συνεπώς ενηµέρωση της µνήµης 23

Write-through ιάγραµµα Μετάβασης Καταστάσεων PrRd/ PrWr/BusWr V PrRd/BusRd BusWr/ I PrWr/BusWr Processor-initiated transactions Bus-snooper-initiated transactions Σε κάθε κρυφή µνήµη υπάρχουν δύο καταστάσεις ανά block, όπως στους µονο-επεξεργαστές Hardware bits κατάστασης συνδέονται µόνο µε τα blocks που υπάρχουν στη µνήµη Τα υπόλοιπα blocks θεωρούνται σε άκυρη κατάσταση στη συγκεκριµένη κρυφή µνήµη 24

Write-through ιάγραµµα Μετάβασης Καταστάσεων PrRd/ PrWr/BusWr V PrRd/BusRd BusWr/ I PrWr/BusWr Processor-initiated transactions Bus-snooper-initiated transactions Οι εγγραφές ακυρώνουν όλα τα άλλα αντίγραφα σε κρυφές µνήµες (όχι τοπική αλλαγή κατάστασης) Μπορούν ταυτόχρονα να υπάρχουν πολλοί αναγνώστες ενός block, αλλά µια εγγραφή τους ακυρώνει 25

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

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

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

Καθορισµός Σειράς Γενικά Οι εγγραφές καθορίζουν µια µερική σειριοποίηση εν περιορίζει τη σειριοποίηση των εγγραφών, αν και ο διάδροµος σειριοποιεί επίσης κάποιες read misses Κάθε διάταξη των αναγνώσεων µεταξύ των εγγραφών είναι ικανοποιητική, αρκεί να διατηρεί τη σειρά που ορίζεται από το πρόγραµµα P 0 : R R R W R R P 1 : R R R R R W P 2 : R R R R R R 29

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

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

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

Παράδειγµα 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; Όποια και αν είναι η γενική ιδέα, χρειαζόµαστε ένα µοντέλο σειριοποίησης Για διαφορετικές θέσεις µνήµης Ώστε οι προγραµµατιστές να καθορίζουν τα δυνατά αποτελέσµατα µε βάση τη λογική Χρειαζόµαστε ένα µοντέλο συνέπειας της µνήµης 33

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

Ακολουθιακή Συνέπεια Processors issuing memory references as per program order P 1 P 2 P n The switch is randomly set after each memory reference Memory Σαν να µην υπήρχαν κρυφές µνήµες, µία µόνο µνήµη Καθολική διάταξη επιτυγχάνεται παρεµβάλλοντας µεταξύ τους τις προσπελάσεις από διαφορετικές διεργασίες ιατηρεί τη διάταξη του προγράµµατος, και οι λειτουργίες της µνήµης, από όλες τις διεργασίες, εµφανίζονται να [καλούνται, εκτελούνται, ολοκληρώνονται] ατοµικά σε σχέση µε τις άλλες ιατηρείται η διαίσθηση του προγραµµατιστή 35

Ακολουθιακή Συνέπεια Processors issuing memory references as per program order P 1 P 2 P n The switch is randomly set after each memory reference Memory 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] 36

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

Παράδειγµα Ακολουθιακής Συνέπειας Αυτό που µετράει είναι η σειρά που φαίνεται ότι εκτελούνται οι εντολές, όχι που πραγµατικά εκτελούνται P1 P2 /*Υποθέστε ότι οι αρχικές τιµές των Α,Β είναι 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, που οδηγεί σε άτοπο 38

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

Ατοµικότητα εγγραφών Ατοµικότητα εγγραφών: Η θέση στην καθολική σειρά στην οποία µια εγγραφή εµφανίζεται πρέπει να είναι η ίδια για όλες τις διεργασίες Τίποτα από αυτά που κάνει µια διεργασία αφού έχει δει την καινούρια τιµή που παράχθηκε από µια εγγραφή W δεν πρέπει να γίνεται ορατό στις άλλες διεργασίες πριν δουν την W Άρα, επεκτείνεται η σειριοποίηση των εγγραφών στις εγγραφές από πολλαπλές διεργασίες P 1 P 2 P 3 A=1; while (A==0); B=1; while (B==0); print A; 40

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

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

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

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

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

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

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

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

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

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

ιάγραµµα Μετάβασης Καταστάσεων PrRd/ PrWr/ M BusRd/Flush PrWr/BusRdX S BusRdX/Flush BusRdX/ PrRd/BusRd PrWr/BusRdX PrRd/ BusRd/ I 51

Ενέργεια στον επεξεργαστή Ρ1 διαβάζει u Ρ3 διαβάζει u Ρ3 γράφει u Ρ1 διαβάζει u Ρ2 διαβάζει u Κατάσταση Ρ1 S S I S S Παράδειγµα Κατάσταση Ρ2 Κατάσταση Ρ3 --- --- --- S --- M --- S S S Ενέργεια στο διάδροµο BusRd BusRd BusRdX BusRd BusRd Τα δεδοµένα παρέχονται από Κύρια Μνήµη Κύρια Μνήµη Κύρια Μνήµη Κρυφή Μνήµη Ρ3 Κύρια Μνήµη 52

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

Ακολουθιακή Συνέπεια στο Πρωτόκολλο 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 54

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

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

ιάγραµµα Μετάβασης Καταστάσεων MESI PrRd PrWr/ M BusRd/Flush BusRdX/Flush PrWr/ PrWr/BusRdX E PrWr/BusRdX PrRd/ BusRd/ Flush BusRdX/Flush S PrRd/ BusRd (S) PrRd/ BusRd/Flush BusRdX/Flush PrRd/ BusRd(S) I 57

Ενέργεια στον επεξεργαστή Ρ1 διαβάζει u Ρ1 γράφει u Ρ3 διαβάζει u Ρ3 γράφει u Ρ1 διαβάζει u Ρ2 διαβάζει u Κατάσταση Ρ1 Ε Μ S I S S Παράδειγµα Κατάσταση Ρ2 Κατάσταση Ρ3 --- --- --- --- --- S --- M --- S S S Ενέργεια στο διάδροµο BusRd --- BusRd BusRdX BusRd BusRd Τα δεδοµένα παρέχονται από Κύρια Μνήµη --- Κρυφή Μνήµη Ρ1 Κύρια Μνήµη Κρυφή Μνήµη Ρ3 Κύρια Μνήµη 58

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

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

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