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

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

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

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

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

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

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

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

Ενότητα 2: Η κρυφή µνήµη και η λειτουργία της

ΑΣΚΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΓΙΑ ΤΗ ΘΕΩΡΙΑ

Θέματα Μεταγλωττιστών

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

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

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

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

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

Διάλεξη 18: Πρόβλημα Βυζαντινών Στρατηγών. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

Θέματα Μεταγλωττιστών

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Ψευδοκώδικας. November 7, 2011

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

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

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

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 9 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

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

9. Συστολικές Συστοιχίες Επεξεργαστών

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

Προγραμματισμός ΙI (Θ)

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Τυχαιοκρατικοί Αλγόριθμοι

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ΘΕΜΑ 2. (2,5 µονάδες) Θεωρήστε τρεις κρυφές µνήµες των 512 πλαισίων µε 8 λέξεις ανά πλαίσιο και οργανώσεις αντίστοιχα:

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

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

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Μια Ανασκόπηση στην Οργάνωση Η/Υ. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

Επεξεργασία Ερωτήσεων

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

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

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

Επεξεργασία Ερωτήσεων

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

Εισαγωγή στη Σχεδίαση Λογισμικού

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

AΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (5 ο εξάμηνο) ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (ΦΘΙΝΟΠΩΡΟ 2007) ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 2 ΩΡΕΣ 30 ΛΕΠΤΑ

ΘΕΜΑ Α. Λύση: 1. Σωστό, 2. Λάθος, 3. Σωστό, 4. Λάθος, 5. Λάθος. Ποια η διαφορά μεταξύ διερμηνευτή και μεταγλωττιστή; Απάντηση:

Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής. Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 3 ο ΜΕΔ απλού κύκλου

Transcript:

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων μεταξύ της κρυφής μνήμης δεδομένων L και της κρυφής μνήμης L. Μελετήστε την επίδραση της κρυφής μνήμης θυμάτων στην απόδοση του συστήματος μνήμης, τόσο ποιοτικά, όσο και ποσοτικά. Για την ποσοτική προσέγγιση, υποθέστε ότι η αξιολόγηση του συστήματος μνήμης γίνεται πάνω σε κάποια εφαρμογή, όπου η κρυφή μνήμη δεδομένων L εμφανίζει ποσοστό επιτυχίας 90% και η κρυφή μνήμη θυμάτων εμφανίζει ποσοστό επιτυχίας 50%. Ο χρόνος προσπέλασης σε επιτυχία για την L είναι cc, ο μέσος χρόνος προσπέλασης για την L είναι 0cc, ενώ ο χρόνος προσπέλασης της μνήμης θυμάτων είναι 3cc. Για απλούστευση θεωρήστε ότι μια αποτυχημένη προσπέλαση αυξάνει το χρόνο προσπέλασης σε επιτυχία κατά το μέσο χρόνο προσπέλασης του επόμενου επιπέδου. Απάντηση Η κρυφή μνήμη θυμάτων (victim cache) τοποθετείται ανάμεσα σε δύο επίπεδα της ιεραρχίας μνήμης, ώστε να συγκρατεί τα πρόσφατα εκδιωχθέντα μπλοκ του ενός, καθώς στέλνονται στο άλλο, και να προσφέρει μια ευκαιρία σύντομης ανάκτησης σε περίπτωση που κάποιο από αυτά ξαναζητηθεί. Η κρυφή μνήμη θυμάτων δεν έχει απεικόνιση διεύθυνσης, υλοποιείται δηλαδή ως πλήρως συσχετιστική μνήμη. Έτσι, τα πρώτα μπλοκ που διώχνονται από το μικρότερο από τα δύο επίπεδα θα καταλάβουν θέσεις της μνήμης θυμάτων, και όταν αυτή γεμίσει, τα επόμενα μπλοκ θα αντικαθιστούν τα προηγούμενα, με βάση κάποιον αλγόριθμο σαν τον LRU ή τον FIFO. Με κάθε αποτυχία στην κρυφή μνήμη που βρίσκεται πριν τη μνήμη θυμάτων, πρώτα ελέγχεται η μνήμη θυμάτων, ώστε αν το ζητούμενο μπλοκ βρίσκεται εκεί, να ανακτηθεί άμεσα, χωρίς να γίνει προσπέλαση στη μνήμη του επόμενου επιπέδου. Φυσικά, αν το μπλοκ δε βρίσκεται στη μνήμη θυμάτων, είτε γιατί δεν πέρασε ποτέ από αυτήν, είτε γιατί αντικαταστάθηκε σε κάποια προηγούμενη αποτυχία, θα γίνει αναγκαστικά προσπέλαση του επόμενου επιπέδου. Η επίδραση της κρυφής μνήμης θυμάτων στην απόδοση ενός συστήματος μνήμης εξαρτάται από το ποσοστό επιτυχίας της, ιδιαίτερα σε σχέση με το ποσοστό επιτυχίας της κρυφής μνήμης που προηγείται, αλλά και από την επικάλυψη που έχει η προσπέλασή της με την επικάλυψη των δύο γειτονικών επιπέδων του συστήματος μνήμης. Γενικά, μπορούμε να περιμένουμε θετική επίδραση, επειδή με βάση την αρχή της τοπικότητας αναφορών, υπάρχει σημαντική πιθανότητα ένα μπλοκ που αντικαταστάθηκε από την κρυφή μνήμη πριν τη μνήμη θυμάτων να ξαναζητηθεί σύντομα, και πριν αυτό αντικατασταθεί από την τελευταία. Μάλιστα, αν η χρόνος προσπέλασης της κρυφής μνήμης θυμάτων καλύπτεται πλήρως από το χρόνο προσπέλασης της μνήμης του προηγούμενου ή του επόμενου επιπέδου, τότε όσο μικρή και αν είναι αυτή η πιθανότητα, θα υπάρχει πάντα βελτίωση στην απόδοση του συστήματος μνήμης, αφού στη χειρότερη περίπτωση κάθε αποτυχία στην πρώτη κρυφή μνήμη θα οδηγεί σε προσπέλαση της δεύτερης, η οποία όμως θα γίνεται χωρίς καθυστέρηση, κι επομένως θα παρέχει απόδοση ίση με αυτή ενός συστήματος χωρίς μνήμη θυμάτων. Αν όμως ο χρόνος προσπέλασης της μνήμης θυμάτων δεν καλύπτεται από τις προσπελάσεις των δύο επιπέδων του συστήματος μνήμης, κάτι που θα μπορούσε να είναι επιθυμητό, ώστε από τη μια να μην αυξάνεται η κατανάλωση ενέργειας και από την άλλη η διασύνδεση με τη μνήμη επόμενου επιπέδου να μην απασχολείται

άσκοπα και να μπορεί να διατίθεται για άλλες προσπελάσεις, τότε ένα ιδιαίτερα χαμηλό ποσοστό επιτυχίας στη μνήμη θυμάτων θα μπορούσε να οδηγήσει σε μείωση στην απόδοση του συστήματος μνήμης αντί για αύξηση. Ποιοι όμως είναι οι παράγοντες που ρυθμίζουν το ποσοστό επιτυχίας στην κρυφή μνήμη θυμάτων; Φυσικά, όπως προαναφέραμε, η τοπικότητα αναφορών αυξάνει αυτό το ποσοστό. Αυτός όμως ο παράγοντας εξαρτάται από την εφαρμογή, και σίγουρα υπάρχουν εφαρμογές, όπου είτε η τοπικότητα αναφορών είναι πολύ μικρή στο χώρο, είτε οι αναφορές επαναλαμβάνονται υπερβολικά αραιά. Για παράδειγμα, μια εφαρμογή που χειρίζεται μεγάλους πίνακες με μέτριο βαθμό πλήρωσης δεδομένων είναι πιθανό να εμφανίζει και τα δύο αυτά συμπτώματα. Το μέγεθος της κρυφής μνήμης θυμάτων είναι σίγουρα ένας σημαντικός παράγοντας ρύθμισης του ποσοστού επιτυχίας της, ιδιαίτερα εφ όσον αυτή υλοποιείται ως πλήρους συσχέτισης κι επομένως δεν εμφανίζει αποτυχίες από συγκρούσεις απεικόνισης. Για σταθερό μέγεθος μνήμης θυμάτων, η οργάνωση της κρυφής μνήμης που προηγείται ίσως να είναι ο πιο καθοριστικός παράγοντας ρύθμισης του ποσοστού επιτυχίας της μνήμης θυμάτων, ανεξάρτητα από την ε- φαρμογή. Πιο συγκεκριμένα, μια κρυφή μνήμη άμεσης απεικόνισης έχει γενικά χαμηλότερη απόδοση σε αποθήκευση δεδομένων από μια συνολοσυσχετιστική κρυφή μνήμη, επειδή η δεύτερη παρέχει περισσότερες ευκαιρίες αποθήκευσης σε μπλοκ που έχουν την ίδια διεύθυνση συνόλου από ό,τι η πρώτη. Η ύπαρξη πολλαπλών ταυτόχρονα ενεργών περιοχών μνήμης είναι περισσότερο συνηθισμένη σε δεδομένα από ό,τι σε εντολές, εκτός εάν ο επεξεργαστής υποστηρίζει πολλαπλές ροές ελέγχου, κι έτσι μια κρυφή μνήμη άμεσης απεικόνισης θα αντικαθιστά τα μπλοκ της πιο συχνά από ό,τι μια συνολοσυσχετιστική κρυφή μνήμη. Έτσι, για τον ίδιο χώρο αποθήκευσης, μια μνήμη θυμάτων για δεδομένα θα γεμίζει γρηγορότερα με μια κρυφή μνήμη άμεσης απεικόνισης, και θα έχει επομένως συχνότερες αντικαταστάσεις, δηλαδή χαμηλότερο ποσοστό επιτυχίας. Αντίθετα, με μια συνολοσυσχετιστική κρυφή μνήμη, τα μπλοκ που θα καταλήγουν στη μνήμη θυμάτων θα είναι γενικά αυτά που δε θα χωρούν στα σύνολα της πρώτης, κάτι που θα συμβαίνει όταν οι ταυτόχρονα ενεργές περιοχές μνήμης είναι περισσότερες από το βαθμό συσχέτισης της μνήμης. Με κατάλληλο βαθμό συσχέτισης, συνήθως όχι μεγαλύτερο από 4, αυτό θα συμβαίνει ιδιαίτερα σπάνια, κι έτσι η μνήμη θυμάτων θα διατηρεί τα δεδομένα για μεγαλύτερο χρονικό διάστημα, κι έτσι θα έχει υψηλότερο ποσοστό επιτυχίας. Από την άλλη μεριά, τέλος, για αποθήκευση εντολών, δε θα πρέπει να αναμένεται διαφορά στην απόδοση μιας κρυφής μνήμης άμεσης απεικόνισης από μια συνολοσυσχετιστική, εκτός αν υποστηρίζονται πολλαπλές ροές ελέγχου, οπότε η συμπεριφορά τείνει να μοιάζει με αυτή της αποθήκευσης δεδομένων. Πάντως, αν ασχοληθούμε με το σχετικό ποσοστό επιτυχίας μεταξύ της κρυφής μνήμης θυμάτων και της κρυφής μνήμης που προηγείται, μια καλύτερη συμπεριφορά συνολοσυσχετιστικής κρυφής μνήμης ίσως να οδηγεί σε μικρότερη βελτίωση στην απόδοση, από ό,τι για μια μνήμη άμεσης απεικόνισης. Μ άλλα λόγια, μια κρυφή μνήμη άμεσης απεικόνισης με μια σχετικά μεγάλη κρυφή μνήμη θυμάτων μπορεί να παρουσιάσει δραματική βελτίωση στην απόδοση του συστήματος μνήμης, ενώ μια συνολοσυσχετιστική κρυφή μνήμη που ήδη έχει υψηλά ποσοστά επιτυχίας πιθανό να μην παρουσιάσει τέτοια βελτίωση, όσο μεγάλη κι αν είναι η κρυφή μνήμη θυμάτων που συνδέεται μ αυτήν. Ας δούμε τώρα πόση είναι η βελτίωση στην απόδοση του δεδομένου συστήματος μνήμης με την παρουσία της κρυφής μνήμης θυμάτων. Έστω τ ο χρόνος προσπέλασης της κρυφής μνήμης L, τ ο χρόνος προσπέλασης της μνήμης θυμάτων και Τ ο μέσος χρόνος προσπέλασης της κρυφής μνήμης L, συμπεριλαμβανομένων όλων των προσπελάσεων στα επόμενα επίπεδα του συστήματος μνήμης. Έστω ακόμα p το ποσοστό επιτυχίας της μνήμης L και p το ποσοστό επιτυχίας της μνήμης θυμάτων. Έτσι, αν Τ χ είναι ο μέσος χρόνος προσπέλασης της μνήμης χωρίς κρυφή μνήμη θυμάτων, τότε ο χρόνος αυτός θα είναι: T p T Στη συγκεκριμένη άσκηση θα υποθέσουμε ότι η προσπέλαση της κρυφής μνήμης θυμάτων επικαλύπτεται με την προσπέλαση της L, αλλά δεν επικαλύπτεται με την προσπέλαση της L. Μ άλλα λόγια, κάθε προσπέλαση που γίνεται στην κρυφή μνήμη L πηγαίνει παράλληλα και

3 στη μνήμη θυμάτων, αλλά η προσπέλαση της L δεν ξεκινάει πριν ελεγχθεί και η τελευταία. Με τ τ ο μέσος χρόνος προσπέλασης της μνήμης με κρυφή μνήμη θυμάτων Τ μ θα είναι: T p p p T όπου ο όρος που ακολουθεί το χρόνο προσπέλασης της L είναι ο πρόσθετος χρόνος προσπέλασης της μνήμης θυμάτων, ο οποίος προστίθεται σε κάθε αποτυχία στην L άρα με πιθανότητα ( - p ), και ο τελευταίος όρος είναι ο μέσος χρόνος προσπέλασης της L, που προστίθεται σε κάθε αποτυχία της L που αποτυγχάνει και στη μνήμη θυμάτων άρα με πιθανότητα ίση με το γινόμενο ( - p) ( - p ). Η βελτίωση στο μέσο χρόνο προσπέλασης της μνήμης Sp θα είναι ο λόγος των δύο χρόνων: T p T Sp T p p p T Μπορούμε να δούμε ότι όσο αυξάνει ο χρόνος τ, αυξάνει ο δεύτερος όρος του χρόνου Τ μ, κι επομένως η βελτίωση στην απόδοση του συστήματος μνήμης μειώνεται. Έτσι, η οριακή τιμή του χρόνου τ για την οποία παύει να υπάρχει βελτίωση θα προκύπτει ως εξής: Sp p T p p p T p p T p p T Ισοδύναμα, η οριακή τιμή του ποσοστού p για την οποία παύει να υπάρχει βελτίωση θα δίνεται από τη σχέση: p T Όταν τ τ, οπότε η προσπέλαση της μνήμης θυμάτων καλύπτεται πλήρως από την προσπέλαση της L, ο χρόνος T μ θα είναι: T p p T οπότε η βελτίωση Sp θα γίνεται: T p T Sp T p p T όπου διαπιστώνουμε ότι πάντα Sp. Η μέγιστη βελτίωση εμφανίζεται όταν τ τ και p, και θα είναι: T Spmax p Για τις τιμές που μας δίνονται η βελτίωση θα είναι: cc 0. 0cc Sp.9 cc 0.cc 0.5 0. 0cc p pt p p T Με διαφορετικές υποθέσεις στην επικάλυψη των προσπελάσεων στις τρεις μνήμες θα προέκυπταν διαφορετικά συμπεράσματα, χρησιμοποιώντας όμως παρόμοια λογική με την παραπάνω. Ειδικότερα, χωρίς επικάλυψη στις προσπελάσεις της μνήμης θυμάτων και της L, στο χρόνο T μ θα προσθέταμε όλο το χρόνο τ, αντί της διαφοράς τ - τ, ενώ με επικάλυψη στις προσπελάσεις της μνήμης θυμάτων και της L, ο χρόνος προσπέλασης της μνήμης θυμάτων θα συμμετείχε μόνο σε περίπτωση επιτυχίας στην προσπέλασή της, αφού σε άλλη περίπτωση καλύπτεται από το χρόνο προσπέλασης της L. Άσκηση : Θεωρήστε ένα σύστημα συμμετρικού πολυεπεξεργαστή, στο οποίο θέλουμε να υλοποιήσουμε συγχρονισμό με βάση την αδιάσπαστη λειτουργία compare&swap, η οποία συγκρίνει το περιεχόμενο

4 μιας διεύθυνσης μνήμης με το περιεχόμενο ενός καταχωρητή γενικού σκοπού, και σε περίπτωση ισότητας, το ανταλλάσσει με το περιεχόμενο ενός δεύτερου καταχωρητή γενικού σκοπού. Αν ο πολυεπεξεργαστής είναι βασισμένος σε επεξεργαστές αρχιτεκτονικής MIPS, να γράψετε μια συνάρτηση σε συμβολική γλώσσα MIPS που να υλοποιεί τη λειτουργία compare&swap με τη βοήθεια των εντολών LL και SC. Απάντηση Ένα από τα σημαντικότερα θέματα παράλληλης επεξεργασίας είναι ο συγχρονισμός μεταξύ των κωδίκων που εκτελούνται παράλληλα. Ο συγχρονισμός αυτός επιτυγχάνεται με κατάλληλη υποστήριξη από το υλικό, με τη μορφή λειτουργιών που ενεργούν ατομικά ή αδιάσπαστα. Τέτοιες λειτουργίες επιτρέπουν σε ένα κέντρο επεξεργασίας να ελέγχει και να τροποποιεί κάποια θέση μνήμης σε μια ενιαία λειτουργία, χωρίς δηλαδή να υπάρχει ο κίνδυνος μεταξύ του ελέγχου και της τροποποίησης να έχει μεσολαβήσει επέμβαση δηλαδή προσπάθεια εγγραφής κάποιου άλλου κέντρου επεξεργασίας. Οι αδιάσπαστες λειτουργίες χρησιμοποιούνται τυπικά για απόκτηση κλειδιών σε υλοποίηση φραγμάτων (barriers) ή αμοιβαία αποκλειστικής εκτέλεσης κρίσιμου κώδικα (mutual exclusion). Η εξασφάλιση της ατομικότητας γίνεται από το υλικό, συνήθως με έναν από δύο τρόπους: είτε μέσα στην ίδια εντολή μέσω συνεργασίας του επεξεργαστή με το μέσο διασύνδεσης, είτε με ζεύγος εντολών που εξομοιώνει την ατομικότητα μέσα στον επεξεργαστή. Στην πρώτη περίπτωση, το μέσο διασύνδεσης πρέπει να εμποδίζει άλλες λειτουργίες να ενεργούν στη διεύθυνση μνήμης όπου ενεργεί η αδιάσπαστη λειτουργία, πιθανά με πλήρη αποκλεισμό του μέσου από άλλους επεξεργαστές μέχρι την ολοκλήρωση της λειτουργίας. Για την υ- λοποίηση με αυτόν τον τρόπο απαιτείται συνεργασία και του μηχανισμού συνοχής της κρυφής μνήμης, κάτι που αυξάνει την πολυπλοκότητα του πρωτοκόλλου συνοχής. Ο πλήρης αποκλεισμός του μέσου διασύνδεσης διευκολύνει την υλοποίηση του μηχανισμού συνοχής, αλλά βέβαια έχει ως αποτέλεσμα μεγαλύτερους χρόνους προσπέλασης μνήμης όταν εκκρεμούν λειτουργίες συγχρονισμού. Στη δεύτερη περίπτωση, η ατομικότητα δεν εξασφαλίζεται από το μέσο διασύνδεσης, το οποίο έτσι δεν επιβαρύνεται με τέτοιες λειτουργίες, όμως ο επεξεργαστής πρέπει να παρουσιάζει στον κώδικα μια συμπεριφορά που να είναι ισοδύναμη με αυτή των πραγματικά αδιάσπαστων λειτουργιών. Εφ όσον το μέσο διασύνδεσης δε συμμετέχει, δεν μπορεί να εξασφαλιστεί ότι κάποιος άλλος επεξεργαστής δε θα προσπαθήσει να τροποποιήσει τη θέση μνήμης όπου εκκρεμεί μια τέτοια λειτουργία, κι επομένως ο επεξεργαστής που εξέδωσε τη λειτουργία πρέπει να παρακολουθεί, ώστε να την ακυρώσει αν υπάρξει μεσολάβηση από άλλον επεξεργαστή. Ο μηχανισμός παρακολούθησης υλοποιείται συνήθως με δύο εντολές, μία που εκδίδει τη λειτουργία, και μία που ελέγχει την ολοκλήρωσή της. Τα συστήματα πολυεπεξεργασίας που βασίζονται στην αρχιτεκτονική MIPS υλοποιούν τη δεύτερη από τις πιο πάνω τεχνικές για ατομικές λειτουργίες, με το ζεύγος εντολών LL και SC. Η πρώτη εντολή διαβάζει τη θέση μνήμης, σηματοδοτώντας την έναρξη της αδιάσπαστης λειτουργίας, ενώ η δεύτερη την τροποποιεί, ολοκληρώνοντας την αδιάσπαστη λειτουργία, με την προϋπόθεση ότι δεν έχει μεσολαβήσει άλλη προσπάθεια εγγραφής στην ίδια θέση. Αν έχει συμβεί κάτι τέτοιο, η εντολή SC επιστρέφει τιμή 0, υποδεικνύοντας την αποτυχία του συστήματος στην προσπάθεια εκτέλεσης των δύο εντολών ως μία αδιάσπαστη λειτουργία. Διαφορετικά, μη μηδενική τιμή επιστροφής σημαίνει ότι η λειτουργία είχε επιτυχία, ότι δηλαδή δεν υπήρξε επέμβαση άλλου επεξεργαστή μεταξύ της εκτέλεσης των δύο εντολών. Τυπικά, κάποια εντολή διακλάδωσης ελέγχει το αποτέλεσμα της SC, και οδηγεί σε επανάληψη της προσπάθειας, αν η τιμή επιστροφής είναι 0. Μια υλοποίηση της λειτουργίας compare&swap με τη βοήθεια του ζεύγους εντολών LL και SC, υποθέτοντας ότι αρχικά η διεύθυνση μνήμης λαμβάνεται από τον καταχωρητή $4, η τιμή προς σύγκριση από τον καταχωρητή $5 και η τιμή προς ανταλλαγή από τον καταχωρητή $6, είναι η ακόλουθη:

5 CSwp: ll $8,0($4) bne $8,$5,Cswp or $7,$6,$0 sc $7,0($4) beq $7,$0,CSwp όπου: Η πρώτη εντολή διαβάζει τη θέση μνήμης όπου θέλουμε να εκτελέσουμε την αδιάσπαστη λειτουργία. Η δεύτερη εντολή συγκρίνει την τιμή που διαβάζεται με το περιεχόμενο του καταχωρητή $5, και επανεκκινεί τη λειτουργία αν οι τιμές είναι διαφορετικές. Η τρίτη εντολή αντιγράφει την τιμή προς αποθήκευση από τον καταχωρητή $6 σε κάποιον άλλο καταχωρητή έστω τον $7, επειδή η εντολή αποθήκευσης SC αλλάζει τον καταχωρητή που περιέχει την τιμή προς αποθήκευση. Η τέταρτη εντολή ολοκληρώνει τη λειτουργία με εγγραφή στη μνήμη του περιεχομένου του καταχωρητή $7. Τέλος, η πέμπτη εντολή εξετάζει το αποτέλεσμα της προηγούμενης, και αν είναι 0, επιστρέφει τον έλεγχο στην πρώτη εντολή. Παρατηρήστε ότι πιθανή εκτέλεση άλματος στην πρώτη από τις δύο εντολές διακλάδωσης α- φήνει την αδιάσπαστη λειτουργία ημιτελή. Αυτό δε μας ενοχλεί, αφού η επόμενη εκτέλεση της εντολής LL θα ξεκινήσει άλλη τέτοια λειτουργία. Αν για παράδειγμα, ο παραπάνω κώδικας είναι μέρος ενός βρόχου αναμονής κάποιου κλειδιού, όσο το κλειδί δεν είναι ελεύθερο, η τιμή που διαβάζεται από τη μνήμη θα οδηγεί σε επιστροφή στην εντολή LL. Μόλις το κλειδί απελευθερωθεί, θα γίνει προσπάθεια εκτέλεσης της SC, και αν αυτή αποτύχει, επειδή κάποιος άλλος επεξεργαστής πρόλαβε και πήρε το κλειδί, τότε θα επιστρέψουμε και πάλι στην εντολή LL, διαφορετικά θα συνεχίσουμε με τον κώδικα που ακολουθεί. Ο παραπάνω κώδικας θα πρέπει να συμπληρωθεί με κάποιον κώδικα καθυστέρησης, ώστε να εξασφαλιστεί ότι δε θα συμβεί αδιέξοδο στην ταυτόχρονη προσπάθεια πολλών επεξεργαστών να εκτελέσουν εντολή SC στην ίδια θέση μνήμης. Ο κώδικας αυτός θα πρέπει να εισάγει διαφορετική καθυστέρηση σε κάθε επεξεργαστή, ώστε αυτός με τη μικρότερη καθυστέρηση να προλάβει να ολοκληρώσει την αδιάσπαστη λειτουργία πριν την επέμβαση κάποιου άλλου. Έ- νας καλός μηχανισμός καθυστέρησης είναι ο μηχανισμός της εκθετικής υπαναχώρησης που περιγράφεται στο βιβλίο, και δε θα επαναλάβουμε εδώ. Ο μηχανισμός αυτός αυξάνει δυναμικά με εκθετικό τρόπο το χρόνο καθυστέρησης σε κάθε αποτυχία της εντολής SC, κι έτσι δίνεται η ευκαιρία σε ανταγωνιστές να διεκδικήσουν την ολοκλήρωση της δικής τους αδιάσπαστης λειτουργίας.