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

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

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

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

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

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

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

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

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

Parallel Architectures

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

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

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

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

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

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

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

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

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

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

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

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

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

Caches for Parallel Architectures. (Coherence)

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

Caches for Parallel Architectures

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

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

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

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

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

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

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

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

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

Parallel Architectures

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

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

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

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

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

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

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

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

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

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

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

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

Οργάνωση Ιεραρχίας Μνήμης - Caches

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

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

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

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

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

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

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

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

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

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

Τεχνολογίες Κύριας Μνήμης

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

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

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Προχωρηµένα Θέµατα Αρχιτεκτονικής Η/Υ. Storage Systems.. Λιούπης

Ασκήσεις Caches

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

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

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

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

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

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

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

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

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

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

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

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Ιεραρχία μνήμης: προχωρημένα θέματα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

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

Transcript:

Συνάφεια Κρυφής (Λανθάνουσας) Μνήµης- -Συνέπεια Μνήµης (Cache Coherence-Memory Consistency) για Πολυεπεξεργαστές Μοιραζόµενης Μνήµης (Shared Memory Multiprocessors) 1

Shared Memory Multiprocessors Η κύρια µνήµη προσπελαύνεται µε τον ίδιο τρόπο και ταχύτητα από όλους τους επεξεργαστές Κάθε επεξεργαστής έχει το δικό του χώρο φυσικών διευθύνσεων κρυφής µνήµης (cache memory) Έχουν κυριαρχήσει στην αγορά συστηµάτων εξυπηρετητών (servers) Είναι ιδιαίτερα πλεονεκτικοί ως I/O (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 $ Interconnection network $ Mem $ Mem $ Mem Mem Interconnection network (c) Dancehall (d) Distributed-memory 3

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

Συνάφεια Κρυφής µνήµης (Cache memory Coherence) Αλλά οι τοπικές µονάδες κρυφής µνήµης για κάθε επεξεργαστή δηµιουργούν πρόβληµα: Αντίγραφα µιας µεταβλητής µπορεί να υπάρχουν σε πολλές µονάδες κρυφής µνήµης Μια λειτουργία εγγραφής από κάποιον επεξεργαστή µπορεί να µην είναι ορατή από τους άλλους Θα εξακολουθούν να προσπελαύνουν την παλιά τιµή που υπάρχει στις τοπικές µονάδες κρυφής µνήµης Πρόβληµα Συνάφειας Κρυφής Μνήµης (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

Από την Αρχιτεκτονική Υπολογιστών Memory blocks vs Cache lines Πόσες λέξεις σε ένα cache-line? Write-back Write-through Write allocate Write-no-allocate write/read miss/hit..θα τα δούµε στο κεφάλαιο «Ιεραρχία Μνήµης»! (Προηγµένα Θέµατα Οργάνωσης Υπολογιστών) 10

Ιεραρχία µνήµης Part of The On-chip CPU Datapath 16-256 Registers One or more levels (Static RAM): Level 1: On-chip 16-64K Level 2: On or Off-chip 128-512K Level 3: Off-chip 128K-8M Dynamic RAM (DRAM) 16M-16G Registers Cache Main Memory Όσο αποµακρυνόµαστε από τη CPU : Μικρότερο κόστος/bit Μεγαλύτερη χωρητικότητα Μεγαλύτερος χρόνος πρόσβασης-καθυστέρηση Χαµηλότερος ρυθµός εξόδου Interface: SCSI, RAID, IDE, 1394 4G-100G Magnetic Disc Optical Disk or Magnetic Tape 11

Μηχανισµοί εγγραφής σε memory block Σε περίπτωση write-hit, γνωστοποιείται η αλλαγή στην κύρια µνήµη ; ναι: write-through όχι: write-back σε περίπτωση miss, τοποθετείται το memory block στην cache; ναι: write-allocate (συνήθως µε write-back) όχι: write-no-allocate (συνήθως µε write-through) 12

Write-Back & Write-Through (σε περίπτωση write-hit) write-back : ενηµέρωση της µνήµης µόνο κατά την αποµάκρυνση του block από την cache οι εγγραφές πραγµατοποιούνται µε την ταχύτητα της cache dirty bit κατά την τροποποίηση αντικατάσταση των clean block χωρίς ενηµέρωση της µνήµης Χαµηλό ποσοστό misses Πολλές εγγραφές σε µία ενηµέρωση write-through : ενηµέρωση της µνήµης σε κάθε εγγραφή το κατώτερο ιεραρχικά επίπεδο περιέχει τα εγκυρότερα δεδοµένα εύκολη υλοποίηση αυξηµένη µετακίνηση δεδοµένων προς τη µνήµη συχνά χρησιµοποιείται ένας write buffer για αποφυγή καθυστερήσεων όσο ενηµερώνεται η µνήµη 13

Write-Allocate & write-no no-allocate (στη περίπτωση write-miss) Write-allocate: το block φορτώνεται από τη µνήµη στη cache και στη συνέχεια µεταβάλλουµε τα δεδοµένα του (χωρίς να ενηµερώσουµε τα κατώτερα (πιο κοντινά στη κεντρική µνήµη) επίπεδα µνήµης) write-no-allocate: οι µετατροπές των δεδοµένων γίνεται απευθείας στα χαµηλότερα επίπεδα της ιεραρχίας µνήµης (χωρίς να εµπλακεί η cache) Allocate a cache line to store the memory block! 14

Read hit / misses read hit : ανάγνωση των δεδοµένων από την cache read miss : µεταφορά ολόκληρου του block που περιέχει τα δεδοµένα που αναζητάµε στην cache και στη συνέχεια όπως στο read hit 15

Write hit / misses Write-back & Write-allocate write hit: εγγραφή των δεδοµένων στην cache (µόνο). Η κύρια µνήµη ενηµερώνεται µόνο όταν αποµακρυνθεί το block από την cache και το block είναι dirty write miss: το block µεταφέρεται στην cache (στη σωστή θέση) και στη συνέχεια όπως στο write hit 16

Write hit / misses Write-through & No-write-allocate write hit : εγγραφή των νέων δεδοµένων στην cache και ενηµέρωση της κύρια µνήµης write miss : η εγγραφή γίνεται µόνο στην κύρια µνήµη, ενώ δεν εµπλέκεται καθόλου η cache 17

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Καθορισµός Σειράς-Γενικά Μια λειτουργία µνήµης Μ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 36

Καθορισµός Σειράς-Γενικά Οι εγγραφές καθορίζουν µια µερική σειριοποίηση εν περιορίζει τη σειριοποίηση των εγγραφών, αν και ο διάδροµος σειριοποιεί επίσης κάποιες 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 37

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

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

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

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

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

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

Ακολουθιακή Συνέπεια 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] 44

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

Παράδειγµα Ακολουθιακής Συνέπειας Αυτό που µετράει είναι η σειρά που φαίνεται ότι εκτελούνται οι εντολές, όχι που πραγµατικά εκτελούνται P 1 P 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, που οδηγεί σε άτοπο 46

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ιάγραµµα Μετάβασης Καταστάσεων 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 PrRd/ BusRd(S) BusRdX/Flush I 65

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

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

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

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