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

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

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

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

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

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές

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

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

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

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

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

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

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

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

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

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

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

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

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Λειτουργικά Συστήματα (ΗΥ321)

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

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

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

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

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

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

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

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Ασκήσεις Caches

Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή

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

Ασκήσεις Caches

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

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

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

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

Δρομολόγηση (Routing)

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

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ321)

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

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

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

Οργάνωση Υπολογιστών

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

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

Δροµολόγηση (Routing)

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

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

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

Πρωτόκολλα Διαδικτύου

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

Εκτέλεση προγράμματος

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

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

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

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

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

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Λειτουργίες CNC-DNC. Επισκόπηση λειτουργιών CNC Επισκόπηση λειτουργιών DNC Επικοινωνίες. Λειτουργίες CNC-DNC. Γ.Βοσνιάκος-ΕΡΓΑΛΕΙΟΜΗΧΑΝΕΣ

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

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

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

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 5. Μεγάλη και γρήγορη: Αξιοποίηση της ιεραρχίας της µνήµης

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

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Λειτουργικά Συστήματα (Λ/Σ)

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

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Β. Διάρθρωση. Αναγκαιότητα της διευθυνσιοδότησης. Ευάγγελος Παπαπέτρου

2 η Σειρά Ασκήσεων Data Link Layer

Δίκτυα Υπολογιστών I

Transcript:

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

Γιατί όχι snooping Το snooping στηρίζεται σε εκπομπή σε όλους (broadcast) πρέπει όλοι οι ελεγκτές κρυφής μνήμης να μπορούν να δούν «ταυτόχρονα» κάθε αίτηση προσπέλασης μνήμης των υπόλοιπων επεξεργαστών Δουλεύει καλά μόνο σε δίκτυο διασύνδεσης τύπου bus Αλλά το bus δεν μπορεί να εξυπηρετήσει πολλούς πυρήνες/επεξεργαστές για παρόμοιους λόγους που το ethernet δεν χρησιμοποιεί πλέον busses αλλά switches/hubs Παράλληλα Συστήματα 2011-2012 2

Εκπομπή σε άλλα δίκτυα Μπορεί να γίνει είτε απευθείας: π.χ. κάθε κόμβος μεταδίδει το μήνυμα σε όλες τις εξόδους του είτε με πολλαπλά μυνήματα προς όλους Η εκπομπή σε όλους δεν είναι αποδοτική όταν οι πυρήνες είναι πολλοί σχετικά λίγοι από αυτούς μοιράζονται τα ίδια δεδομένα ταυτόχρονα Η εκπομπή έχει κόστος ανάλωση ενέργειας ανάλωση bandwidth Παράλληλα Συστήματα 2011-2012 3

Πρωτόκολλο συνοχής Ορίζει καταστάσεις, μεταβάσεις καταστάσεων, μηνύματα και πράξεις Τι χρειάζεται να κάνει Να αποφασίσει πότε να επικαλεσθεί το πρωτόκολλο Σε περίπτωση αστοχίας της τοπικής cache Να μάθει για την κατάσταση της γραμμής σε άλλες caches (ή να την έχει αποθηκεύσει) για να καθορίσει τί πράξη θα κάνει η πληροφορία συνήθως δεν είναι ακριβής Να βρεί τα άλλα αντίγραφα Να επικοινωνίσει με τις caches που έχουν αντίγραφα για να τα ακυρώσει ή να αλλάξει την κατάστασή τους Παράλληλα Συστήματα 2011-2012 4

Συνοχή με καταλόγους Δύο τρόποι να βρεθεί ποιός έχει αντίγραφο ρωτώντας όλους (broadcast) κρατώντας κατάλογο (directory) Για κάθε γραμμή, ο κατάλογος περιέχει πληροφορίες: για την κατάσταση της γραμμής για τις θέσεις των αντιγράφων Λίγο αργότερα θα δούμε: πού βρίσκεται ο κατάλογος; πώς είναι οργανωμένος τί ακριβώς πληροφορίες κρατάει και πώς διατηρείται ενημερωμένος Παράλληλα Συστήματα 2011-2012 5

Δίκτυα: σειρά παράδοσης Το bus είναι ένα totally ordered δίκτυο όλα τα μηνύματα παραδίδονται σε όλους τους προορισμούς με την ίδια σειρά Δίκτυα μεγάλων συστημάτων, γενικά δεν έχουν αυτή την ιδιότητα point- to- point ordering - μόνο μηνύματα από τον ίδιο αποστολέα προς τον ίδιο παραλήπτη είναι σίγουρο ότι παραδίδονται σε σειρά unordered καμία εξασφάλιση για τη σειρά μετάδοσης Σε κάποιες περιπτώσεις του πρωτόκολλου συνοχής, η σειρά έχει σημασία Παράλληλα Συστήματα 2011-2012 6

Read miss P C CA Requestor Memory/Dir 3 4a Data Reply 2 1 Read request to owner P C CA Read request to directory Response with owner identity Memory/Dir Directory Node for block 4b P C CA Memory/Dir Revision message to directory (Data Reply) Node with dirty copy Παράλληλα Συστήματα 2011-2012 7

Write miss Invalidation request to sharer 3a P C CA 4a Invalidation Acknowledgement Requestor Memory/Dir 2 1 4b ReadEx request to directory Response with Sharer s identity Invalidation Acknowledgement Directory Node for block P C CA Memory/Dir P C CA Memory/Dir 3b Invalidation request to sharer P C CA Memory/Dir Node with shared copy Node with shared copy Παράλληλα Συστήματα 2011-2012 8

Οργάνωση καταλόγων fixed for each cache line similar to info for shared caches Παράλληλα Συστήματα 2011-2012 9

Οργάνωση καταλόγου Ο κατάλογος πρέπει να περιέχει καταχωρήσεις για όλες τις γραμμές του συστήματος; μόνο γραμμές που βρίσκονται σε ιδιωτικές cache μόνο κοινόχρηστες γραμμές (αν μπορούμε να τις γνωρίζουμε) Ο αριθμός κοινόχρηστων γραμμών δεν είναι γνωστός πρέπει το σύστημα να υποστηρίζει τη χειρότερη περίπτωση: όλες οι γραμμές όλων των cache είναι κοινόχρηστες Ο πλήρης κατάλογος είναι πολύ μεγάλος δεν είναι πρακτικό να βρίσκεται συγκεντρωμένος σε ένα σημείο Η πιο συνηθισμένη υλοποίηση είναι flat, memory based μέρος της διεύθυνσης καθορίζει σε ποιό κομμάτι (slice) του καταλόγου βρίσκεται η αντίστοιχη καταχώρηση για τη γραμμή Παράλληλα Συστήματα 2011-2012 10

«Υψος» καταλόγου Μικρότερος κατάλογος από τη χειρότερη περίπτωση; Μπορούμε να κάνουμε caching στον κατάλογο παρόμοια με το πίνακα σελίδων του Λ.Σ. και το TLB υπάρχει τοπικότητα στις αναφορές Χρειάζεται μόνο 1 επίπεδο ιεραρχίας Αντικατάσταση καταχώρησης καταλόγου: αν υπάρχουν αντίγραφα της γραμμής στις caches των πυρήνων, πρέπει να ακυρωθούν (και αν είναι modified να γραφτούν στη μνήμη) Αλλα χαρακτηριστικά δεν μοιράζονται οι καταχωρήσεις καταλόγου (η θέση εξαρτάται από τη διεύθυνση) δεν υπάρχει θέμα coherence η cache καταλόγου δέχεται αιτήματα από όλους τους πυρήνες Παράλληλα Συστήματα 2011-2012 11

Οργάνωση Chip MulzProcessors Source: Ferdman et al, Cuckoo directory Η μοιραζόνενη cache μπορεί να είναι κατανεμημένη ανά κόμβο/ψηφίδα (zle) σε χωριστά zles ειδικές για cache Τα κομμάτια καταλόγου (slice) μπορεί να μη βρίσκονται σε κάθε zle Παράλληλα Συστήματα 2011-2012 12

Συνδιασμός καταλόγου με LLC tags Για inclusive, κοινόχρηστες LLCs μπορεί να συνδιαστεί η πληροφορία καταλόγου με τα tags λέγεται in- cache directory Φαίνεται η πιο λογική, ίσως, λύση αφού η LLC πρέπει να προσπελαστεί, γιατί να μην περιέχει και την πληροφορία του καταλόγου Προβλήματα: δεν είναι γενική λύση δουλεύει μόνο για την παραπάνω κατηγορία μπορεί να έχει μεγάλο κόστος: απαιτούνται επιπλέον bits σε κάθε γραμμή της LLC, και το σύνολο των θέσεων γραμμών που περιέχει συνήθως είναι πολύ περισσότερο από το άθροισμα των γραμμών όλων των LLC- 1 Παράλληλα Συστήματα 2011-2012 13

Αντίγραφα LLC- 1 tags Κάθε slice του καταλόγου περιέχει τα αντίγραφα των tags όλων των ιδιωτικών caches του προηγούμενου επιπέδου (LLC- 1) που αντιστοιχούν στο slice υποθέτουμε inclusive ιδιωτικές ιεραρχίες cache Η αντιστοίχιση γίνεται χρησιμοποιώντας κάποια από τα bit διεύθυνσης π.χ. τα 2 τελευταία του index για 4 slices η αντιστοίχιση σε κομμάτια της LLC cache, αν είναι κοινόχρηστη, μπορεί να είναι διαφορετική Η πληροφορία των θέσεων αντιγράφων εξορύσεται από τη σύγκριση με τα αντίγραφα όλων των tags Παράλληλα Συστήματα 2011-2012 14

Αξιολόγηση duplicate tags dir Ο χώρος (αριθμός bits) που απαιτείται για τον κατάλογο είναι σχετικά μικρός Κάθε slice πρέπει να έχει μεγάλη associazvity number of processors x LLC- 1 associazvity γιατί κάθε LLC- 1 cache μπορεί να έχει διαφορετική γραμμή σε κάθε θέση του set του Η associazvity εξαρτάται από τον αριθμό των πυρήνων το ίδιο zle δεν μπορεί να χρησιμοποιηθεί σε διαφορετικά Ο.Κ. Μεγάλη associazvity υλοποιείται δύσκολα, με μεγάλο κόστος, μπορεί να είναι αργή η προσπέλαση έχει μεγάλη κατανάλωση ενέργειας Παράλληλα Συστήματα 2011-2012 15

Παράδειγμα κόστους καταλόγου Σύνθεση συστήματος: 16 πυρήνες, 48b διευθύνσεις, 64 byte γραμμές cache και για τα δύο επίπεδα $ Κατανεμημένος κατάλογος σε 16 zles L1 $: 2- way, 64KB ανά πυρήνα L2 $: κοινόχρηστη, κατανεμημένη, 16- way, 1MB ανά πυρήνα/zle Πόσο χώρο σε bits χρειάζεται ένα slice καταλόγου για τις μεθόδους in- cache, duplicate- tag; Παράλληλα Συστήματα 2011-2012 16

Σποραδικοί (sparse) κατάλογοι Χρησιμοποιούν λίγα από τα bits που αντιστοιχούν στο τμήμα διεύθυνσης του tag της γραμμής για index μικραίνει η απαιτούμενη associazvity Χάνεται η 1- προς- 1 αντιστοιχία μεταξύ γραμμών cache και καταχωρήσεων καταλόγου Χρειάζεται ρητή αποθήκευση της πληροφορίας θέσεων αντιγράφων Η ανομοιόμορφη κατανομή των καταχωρήσεων καταλόγου προκαλεί συγκρούσεις αντικατάσταση χρήσιμων καταχωρήσεων προκαλεί ακύρωση γραμμών cache χωρίς να απαιτείται από το πρόγραμμα Περισσότερες θέσεις (overprovisioning) στον κατάλογο για να περιοριστούν οι συγκρούσεις Παράλληλα Συστήματα 2011-2012 17

Πληροφορίες καταλόγου Κατάσταση γραμμής: π.χ. exclusive/modified, shared, invalid, Θέσεις αντιγράφων. Επιλογές: αντίγραφα tags διάνυσμα: ένα bit ανά πυρήνα περιοριμένοι δείκτες: ένας αριθμός από log 2 (P) bit δείκτες στους αριθμούς/κωδικούς πυρήνων που έχουν αντίγραφα χρειάζεται τρόπο χειρισμού περισότερων αντιγράφων Παράλληλα Συστήματα 2011-2012 18

Κλιμάκωση (scaling) καταλόγου Ο κατάλογος πρέπει να κλιμακώνεται σύμφωνα με τις διαστάσεις του συστήματος αριθμός πυρήνων Από άποψη υλικού, πόσο χώρο σε bits καταλαμβάνει ο κατάλογος σχετικά λίγοι πυρήνες μοιράζονται σε κάθε στιγμή δεδομένα μεγαλύτερες γραμμές cache απαιτούν λιγότερες καταχωρήσεις καταλόγου ή πιο χονδρική πληροφορία ανά καταχώρηση (συνδιασμός πληροφορίας για πολλές γραμμές) Από άποψη ταχύτητας πόσα μηνύματα χρειάζονται για κάθε miss; πόσα από αυτά είναι στο κρίσιμο μονοπάτι; Παράλληλα Συστήματα 2011-2012 19

Βελτιώσεις πρωτόκολλου Αρχική σχεδίαση (strict request- reply) 5 μηνύματα, 4 στο crizcal path Προώθηση παρέμβασης (intervenzon forwarding) 4 μηνύματα, όλα στο crizcal path Παράλληλα Συστήματα 2011-2012 20

Προώθηση απάντησης Reply forwarding 4 μηνύματα, 3 στο crizcal path 3- message miss Παράλληλα Συστήματα 2011-2012 21

Ορθότητα πρωτοκόλλου Σωστές αλλαγές καταστάσεων, ακύρωση, αντικατάσταση γραμμών αυτονόητο, αλλά δύσκολο λόγω πολυπλοκότητας Διατήρηση ορθής σειράς πράξεων μνήμης σύμφωνα με τα πρωτόκολλα συνοχής και συνέπειας Εξασφάλιση από deadlock, livelock, starvazon Δύο κύρια προβλήματα: δεν υπάρχει μία οντότητα που «βλέπει» όλες τις πράξεις για να τις βάλει σε σειρά πολλά μηνύματα μπορεί να κατευθύνονται προς ένα κόμβο Παράλληλα Συστήματα 2011-2012 22

Προβλήματα σειράς εγγραφής Απαίτηση του coherence: Ολοι οι πυρήνες πρέπει να «βλέπουν» εγγραφές σε μία γραμμή με την ίδια σειρά το home directory μπορεί να εξασφαλίσει τη σειρά; Παράδειγμα: γραμμή modified, δύο διαφορετικοί πυρήνες ζητούν read- exclusive το home απαντάει με τον κόμβο που έχει τη γραμμή η σειρά των αιτήσεων στον κόμβο δεν είναι σίγουρο ότι θα είναι η ίδια με τη σειρά αιτήσεων στον κάτοχο ακόμα και αν το δίκτυο διατηρεί σειρά point- to- point Παράλληλα Συστήματα 2011-2012 23

Σειρά με busy states Μέχρι να ολοκληρωθεί μία πράξη η γραμμή είναι σε κατάσταση busy/pending Νέα αιτήματα που φτάνουν στο home απορίπτονται (Nack) και πρέπει να ξαναγίνουν περιμένουν, buffer at home Το home πρέπει να ενημερώνεται για την ολοκλήρωση της πράξης χρειάζεται μεγάλο χώρο αποθήκευσης προωθούνται στον κάτοχο η σειρά καθορίζεται είται από το home είτε από τον κάτοχο αν ο κάτοχος αλλάξει, ο προηγούμενος απορίπτει αιτήματα Παράλληλα Συστήματα 2011-2012 24

Το πρόβλημα παραμένει! Δεν αρκεί η σειρά που καθορίζει το home ή ο κάτοχος ξέρουν πότε το δικό τους μέρος της δουλειάς τελείωσε, αλλά όχι πότε όλοι οι πυρήνες έχουν ενημερωθεί 1. P1 read, 2. P2 read- exclusive. περιμένει το (1) 3. Reply to P1 (καθυστερεί στο δίκτυο) 4. ακύρωση λόγω (2). ξεπερνάει το 3 5. Επιβεβαίωση ακύρωσης 6. απάντηση στο (2) το (3) φτάνει στο P1 και γράφει πάνω από την ακυρωμένη γραμμή Παράλληλα Συστήματα 2011-2012 25

Απαιτήσεις σειράς εγγραφής Local serialisazon: Αν υπάρχει (τοπικό) αίτημα για μια γραμμή σε εξέλιξη, δεν πρέπει να επιτραπεί καμία πρόσβαση στη γραμμή μέχρι να ολοκληρωθεί το αρχικό αίτημα Προσπελάσεις σε άλλες γραμμές πρέπει να επιτρέπονται αλλιώς υπάρχει περίπτωση deadlock Παράλληλα Συστήματα 2011-2012 26

Επιπτώσεις μοντέλου consistency Είδαμε ότι το μοντέλο sequenzal consistency είναι πολύ περιοριστικό αλλά κάποιες φορές θέλουμε να το επιβάλουμε προσωρινά χρησιμοποιώντας memory fences Τι χρειάζεται από ένα σύστημα καταλόγου ένα memory- fence πότε έχει ολοκληρωθεί μια εγγραφή; Είδαμε ότι οι εντολές εγγραφής παίρνουν επιβεβαίωση από το σύστημα μνήμης Ενα memfence περιμένει την επιβεβαίωση πριν επιτρέψει άλλες προσπελάσεις μνήμης Παράλληλα Συστήματα 2011-2012 27

write complezon Μια εγγραφή δεν ολοκληρώθηκε όταν φτάνει στο home Εστω δύο εγγραφές από τον ίδιο πυρήνα σε Χ, Υ (με αυτή τη σειρά) Αν το home (του Χ) επιβεβαιώσει την εγγραφή Χ όταν την παραλάβει δεν είναι σίγουρο ότι όλα τα αντίγραφα έχουν ακυρωθεί Η επόμενη εγγραφή στο Υ μπορεί να εμφανιστεί σε άλλους πυρήνες πρίν από αυτή στο Χ Η εγγραφή ολοκληρώνεται όταν οι επιβεβαιώσεις από όλα τα αντίγραφα παραδοθούν Παράλληλα Συστήματα 2011-2012 28

write atomicity Πρόβλημα: ο P2 μπορεί να γράψει το Β και η νέα τιμή να φτάσει τον P3, πριν η νέα τιμή του Α φτάσει στον P3 Ο κάτοχος του Α (P1 cache) πρέπει να μην επιτρέπει αναγνώσεις της γραμμής μέχρι να έχουν έρθει όλες οι επιβεβαιώσεις ακύρωσης από τα αντίγραφα Παράλληλα Συστήματα 2011-2012 29

Αλλα προβλήματα Deadlock συνήθως πρόβλημα με χώρο σε buffers Livelock σπάνιο φαινόμενο Οι λεπτομέρειες είναι σημαντικές π.χ. έξώση (αντικατάσταση) γραμμής ταυτόχρονα με πρόσβαση σε αυτή από άλλο πυρήνα δείτε τον κώδικα του sniper, που είναι αρκετά απλουστευμένος ήδη! Παράλληλα Συστήματα 2011-2012 30

Αξιολόγηση επιδόσεων Οι κατάλογοι δουλεύουν καλά αν ο αριθμός των ακυρώσεων είναι μικρός για κάθε εγγραφή και συμβαίνουν αρκετά συχνά ώστε η εκπομπή να είναι ασύμφορη Ορισμοί: invalidazng writes εγγραφές που απαιτούν ακυρώσεις άλλων αντιγράφων το τοπικό αντίγραφο δεν ακυρώνεται Συχνότητα ακυρώσεων (invalidazon frequency) Κατανομή αριθμού ακυρώσεων (invalidazon size distribuzon) Παράλληλα Συστήματα 2011-2012 31

Μοτίβα μοιράσματος δεδομένων Μόνο ανάγνωση (read- only) δεν υπάρχουν invalidazng writes Παραγωγός- καταναλωτής (producer- consumer) Ενας πυρήνας γράφει, μετά ένας ή περισσότεροι διαβάζουν invalidazon size είναι συχνά 1, όλοι ή αρκετοί Αποδημητικά (migratory) ένας πυρήνας γράφει και μετά διαβάζει τα δεδομένα invalidazon size είναι 1, ακύρωση του προηγούμενου Ακανόνιστα (irregular) π.χ. task queues invalidazon size συνήθως είναι μικρό Παράλληλα Συστήματα 2011-2012 32

Αποτελέσματα Παράλληλα Συστήματα 2011-2012 33