Συνάφεια Κρυφής Μνήµης σε Επεκτάσιµα Μηχανήµατα
Συστήµατα µε Κοινή ή Κατανεµηµένη Μνήµη Σύστηµα µοιραζόµενης µνήµης 1 n $ $ Bus Mem I/O devices 1 n Σύστηµα κατανεµηµένης µνήµης Mem $ Mem $ Interconnection network
Σύστηµα µε Συνάφεια Κρυφής Μνήµης: Πρέπει να παρέχει ένα σύνολο καταστάσεων, και διάγραµµα µετάβασης καταστάσεων Υλοποίηση πρωτοκόλλου συνάφειας 1. Εύρεση πληροφοριών για την κατάσταση του block στις άλλες κρυφές µνήµες 2. Εντοπισµός αντιγράφων 3. Επικοινωνία µε τους κατόχους των αντιγράφων (Ακύρωση/Ενηµέρωση)
Συνάφεια σε Σύστηµα µε διάδροµο Όλα γίνονται µε broadcast στο διάδροµο Θα µπορούσε να δουλέψει και σε επεκτάσιµα δίκτυα; broadcast σε όλους τους επεξεργαστής και ο καθένας να αποκριθεί Απλό στην αντίληψη, αλλά το broadcast δεν είναι αποδοτικό για πολλούς επεξεργαστές (p) Επεκτάσιµη Συνάφεια: Μπορεί να έχει τις ίδιες καταστάσεις και το ίδιο διάγραµµα µετάβασης καταστάσεων, Αλλά διαφορετικούς µηχανισµούς υλοποίησης του πρωτοκόλλου
Μία Προσέγγιση: Ιεραρχικό Snooping ιεύρυνση προσέγγισης snooping µε ιεραρχία από µέσα διασύνδεσης έντρο από διαδρόµους ή rings Οι επεξεργαστές βρίσκονται στα φύλλα της ιεραρχίας Οι γονείς και τα παιδιά συνδέονται µε αµφίδροµα snoopy interfaces Κατασκοπεύουν και τους δύο διαδρόµους και διαδίδουν τα κατάλληλα transactions Η κύρια µνήµη µπορεί να είναι κεντρική στη ρίζα, ή κατανεµηµένη στα φύλλα Ο χειρισµός είναι όµοιος µε το διάδροµο, αλλά δεν γίνεται πλήρες broadcast Ο επεξεργαστής στέλνει σήµα «αναζήτησης στο διάδροµό του ιαδίδεται πάνω και κάτω στην ιεραρχία, ανάλογα µε τα αποτελέσµατα της κατασκόπευσης
Μία Προσέγγιση: Ιεραρχικό Snooping Προβλήµατα: Μεγάλη καθυστέρηση λόγω πολλών επιπέδων Bottleneck του εύρους ζώνης στη ρίζα εν είναι σήµερα δηµοφιλές
Επεκτάσιµη Προσέγγιση: Κατάλογοι Κάθε block µνήµης έχει συνδεδεµένες πληροφορίες καταλόγου Γνωρίζει ποιες κρυφές µνήµες έχουν αντίγραφα και σε ποια κατάσταση Σε κάθε miss, πρέπει να βρεθεί η καταχώρηση του καταλόγου, και αν είναι απαραίτητο να γίνει επικοινωνία µε τους κόµβους που έχουν αντίγραφα Στα επεκτάσιµα δίκτυα, η επικοινωνία µε τον κατάλογο και τους κατόχους αντιγράφων γίνεται µε network transactions Υπάρχουν πολλές εναλλακτικές λύσεις για την οργάνωση των πληροφοριών καταλόγου
Βασική Λειτουργία του Καταλόγου k επεξεργαστές Με κάθε block στη µνήµη: k presence-bits, 1 dirtybit 1 n ache ache Directory Memory omm. ssist Directory Memory omm ssist Scalable Interconnection Network
Βασική Λειτουργία του Καταλόγου Ανάγνωση στην κύρια µνήµη από τον επεξεργαστή i: If dirty-bit OFF then { read from main memory; turn p[i] ON; } Ιf dirty-bit ON then { recall line from dirty proc (cache state to shared); update memory; turn dirty-bit OFF; turn p[i] ON; supply recalled data to i;} Εγγραφή στην κύρια µνήµη από τον επεξεργαστή i: If dirty-bit OFF then { supply data to i; send invalidations to all caches that have the block; turn dirty-bit ON; turn p[i] ON;... }...
Βασικές Transactions Καταλόγου Requestor 3. Read req. to owner 4a. Data Reply 1. Read request to directory 2. Reply with owner identity 4b. Revision message to directory Directorynode for block Requestor 1. RdEx request to directory 2. Reply with sharers identity 3a. 3b. Inval. req. Inval. req. to sharer to sharer 4a. 4b. Inval. ack Inval. ack Directorynode Node with dirtycopy (a) Read miss to a block in dirty state Sharer Sharer (b) Write miss to a block with o tw sharers
Συνδυασµός: Ιεραρχία δύο επιπέδων B1 B1 B1 B1 Main Mem Snooping dapter Snooping dapter Main Mem Dir. Main Mem ssist ssist Main Mem Dir. B2 Network (a) Snooping-snooping (b) Snooping-directory Network1 Network1 Network1 Network1 Directory adapter Directory adapter Dir/Snoopy adapter Dir/Snoopy adapter Network2 (c) Directory-directory Bus (or Ring) (d) Directory-snooping
Οργάνωση Καταλόγου Σχήµατα καταλόγου Κεντρικό Κατανεµηµένο Πώς βρίσκουµε τις πληροφορίες καταλόγου Επίπεδο Ιεραρχικό Πώς εντοπίζουµε τα αντίγραφα Βάσει της µνήµης Βάσει της κρυφής µνήµης
Πώς βρίσκουµε τις πληροφορίες καταλόγου; Κεντρική Μνήµη και Κατάλογος Εύκολο, αλλά όχι επεκτάσιµο Κατανεµηµένη µνήµη και κατάλογος Επίπεδα σχήµατα Κατάλογος κατανεµηµένος µαζί µε τη µνήµη Η θέση βρίσκεται βάσει της διεύθυνσης (hashing) Ιεραρχικά σχήµατα
Πώς αποθηκεύεται η θέση των αντιγράφων Σχήµατα βάσει της µνήµης Όλες οι πληροφορίες για τα αντίγραφα αποθηκεύονται στην κύρια µνήµη µαζί µε το block Σχήµατα βάσει της κρυφής µνήµης Οι πληροφορίες για τα αντίγραφα είναι κατανεµηµένες στα ίδια τα αντίγραφα Κάθε αντίγραφο δείχνει το επόµενο Scalable oherent Interface (SI: IEEE standard)
Επίπεδα σχήµατα βάσει της µνήµης Οι πληροφορίες για τα αντίγραφα βρίσκονται µαζί µε το block M Απόδοση - Επεκτασιµότητα Κίνηση για µια εγγραφή: ανάλογη του αριθµού των αντιγράφων Καθυστέρηση: µπορεί να ξεκινήσει τις ακυρώσεις των αντιγράφων παράλληλα
Επίπεδα σχήµατα βάσει της µνήµης Κόστος αποθήκευσης M Απλούστερη αναπαράσταση: full bit vector, δηλ. ένα presence bit για κάθε κόµβο Το κόστος αποθήκευσης δεν είναι επεκτάσιµο συναρτήσει του. 64-byte σε κάθε γραµµή σηµαίνει 64 κόµβοι: 12.7% επιπλέον αποθηκευτικός χώρος 256 κόµβοι: 50% 1024 nodes: 200% για M blocks στην κύρια µνήµη, ο ζητούµενος επιπλέον αποθηκευτικός χώρος είναι ανάλογος του *M
Μείωση του κόστους αποθήκευσης Βελτιστοποίηση σχηµάτων µε full bit vectors Αύξηση του µεγέθους των block Χρήση πολυ-επεξεργαστικών κόµβων Εξακολουθεί να είναι ανάλογο του *M 256-επεξεργαστές 4 ανά κόµβο 128B block 6.25% επιπλέον χώρος Μείωση «πλάτους» Ρ Μείωση «ύψους» Μ M
Μείωση του κόστους αποθήκευσης Παρατηρήσεις για το «πλάτος» : Τα περισσότερα blocks αντιγράφονται σε λίγους µόνο κόµβους εν χρειάζεται ένα bit ανά κόµβο, αλλά λίγα πεδία που να έχουν δείκτες στους κόµβους που µοιράζονται τη διεύθυνση αυτή =1024 10 bit ανά δείκτη, µε χρήση 100 δεικτών γλιτώνουµε χώρο Παρατηρήσεις για το «ύψος»: # blocks στην κύρια µνήµη >> # blocks στην κρυφή µνήµη Τα περισσότερα πεδία του καταλόγου δεν χρησιµοποιούνται Οργάνωση καταλόγου σαν κρυφή µνήµη, αντί να έχουµε ένα πεδίο για κάθε block µνήµης
Μείωση του κόστους αποθήκευσης
Επίπεδα σχήµατα βάσει της κρυφής µνήµης Πώς δουλεύει: Ο οικείος κόµβος έχει µόνο ένα δείκτη σε έναν κάτοχο αντιγράφου Κάθε κάτοχος αντιγράφου έχει έναν δείκτη στον επόµενο Για ανάγνωση, πρόσθεσε τον εαυτό σου στην κορυφή της λίστας Για εγγραφή, διάδωσε µια αλυσίδα ακυρώσεων στη λίστα Scalable oherent Interface (SI) IEEE Standard ιπλά συνδεδεµένη λίστα Main Memory (Home) Node 0 Node 1 Node 2 ache ache ache
Επίπεδα σχήµατα βάσει της κρυφής µνήµης
Εισαγωγή πρώτου στοιχείου στη λίστα
Εισαγωγή επόµενου στοιχείου
Αφαίρεση στοιχείου από τη λίστα
Επεκτασιµότητα (ache-based) Κίνηση δικτύου για εγγραφή: ανάλογη του αριθµού των κατόχων αντιγράφου Καθυστέρηση για εγγραφή: ανάλογη του αριθµού των κατόχων αντιγράφου!!! Κόστος αποθήκευσης: αρκετά καλό Πολύ πολύπλοκο!!!