Μελέτη τεχνικών χαρτογράφησης των τμημάτων της κύριας μνήμης σε γραμμές ενδιάμεσης μνήμης Γεωργία Τοπουζάκη AEM 1658 Επιβλέπων Καθηγητής Δρ. Σπυρίδων Α. Καζαρλής
Σκοπός της εργασίας Μελετά την κρυφή μνήμη Μελέτη των τεχνικών χαρτογράφησης Σύγκριση των τεχνικών χαρτογράφησης Δημιουργία εφαρμογής που παρουσιάζει την λειτουργία της κρυφής μνήμης (CACHE) και των τεχνικών χαρτογράφησης
Τι είναι η μνήμη CACHE Μικρής χωρητικότητας στατική μνήμη Βρίσκεται μέσα ή κοντά στον επεξεργαστή Εμφανίστηκε μετά το 1980 4η γενιά των υπολογιστών
Για ποιους λόγους χρησιμοποιείται Αποθηκεύονται τα δεδομένα ή οι εντολές που χρησιμοποιούνται συχνότερα από τον επεξεργαστή Ελαχιστοποιεί τον χρόνο αδράνειας του επεξεργαστή Βελτιώνει την ταχύτητα ενός υπολογιστικού συστήματος
Ποια είναι τα πλεονεκτήματά της Μικρό χρόνο προσπέλασης Αύξηση της ταχύτητας του υπολογιστή Ελαχιστοποίηση του χρόνου αδράνειας του επεξεργαστή
Ποια είναι τα μειονεκτήματα της Μεγαλύτερο κόστος από την κύρια μνήμη ανά bit Απαιτεί πολλά τρανζίστορ ανά bit, άρα χρειάζεται αρκετό χώρο μέσα στο chip
Που βρίσκεται η μνήμη CACHE L1 CACHE L2 CACHE
Τι είναι η μνήμη RAM Μνήμη Τυχαίας Προσπέλασης (Random Access Memory) Δυναμική μνήμη ανάγνωσης και εγγραφής Πτητική μνήμη Έχει μεγαλύτερο χρόνο προσπέλασης από την cache
Χρονική και Χωρική Τοπικότητα Κανονικότητες που έχουν βρεθεί κατά την προσπέλαση της μνήμης από τον επεξεργαστή. Αν ένα πρόγραμμα έχει προσπελάσει στο παρελθόν κάποιες διευθύνσεις μνήμης, οι οποίες απέχουν μεταξύ τους, τότε υπάρχει μεγάλη πιθανότητα να αναφερθεί στο άμεσο μέλλον στην ίδια διεύθυνση (βρόχος). Όταν ένα πρόγραμμα προσπελάσει μια διεύθυνση μνήμης k, τότε υπάρχει μεγάλη πιθανότητα να αναφερθεί στο άμεσο μέλλον σε γειτονικές διευθύνσεις k+1, k-1 (οι εντολές εκτελούνται σειριακά από τον επεξεργαστή ή πίνακες).
Πως εκμεταλλεύεται η μνήμη CACHE τις Τοπικότητες
Εγγραφή και Αντικατάσταση Επανεγγραφή (write back): Τα δεδομένα εγγράφονται μόνο στη γραμμή της κρυφής μνήμης. Διεγγραφή (write throught): Τα δεδομένα εγγράφονται στη γραμμή της κρυφής μνήμης καθώς και στην αντίστοιχη ιδεατή γραμμή της κύριας μνήμης. Λιγότερο πρόσφατα χρησιμοποιημένη (LRU - Least Recently Used): Αντικαθίσταται η γραμμή με τον μικρότερο χρόνο τελευταίας προσπέλασης (time). Πρώτη Μέσα Πρώτη Έξω (FIFO - First In First Out): Αντικαθίσταται η γραμμή που είναι στην cache το μεγαλύτερο χρονικό διάστημα (time).
Χαρτογράφηση Μνήμης Η cache περιέχει αντίγραφα των τμημάτων της κύριας μνήμης που χρησιμοποιούνται συχνότερα από τον επεξεργαστή Με την χρήση ενός αλγορίθμου μεταφοράς δεδομένων, έχουμε ως αποτέλεσμα μία ταχύτατη μνήμη
Τεχνικές Χαρτογράφησης Άμεση Πλήρως Συσχετιστική Σύνολο-συσχετιστική Ν-Δρόμων
Άμεση Χαρτογράφηση CACHE RAM A/A Valid Bit Tag Dirty Bit Data 3 1 3 ή 7 24..31 ή 56..63 2 2 ή 6 16..23 ή 48..55 1 ή 5 8..15 ή 40..47 0 ή 4 0..7 ή 32..39 63 62 61 … 3 2 1 Κάθε ιδεατή γραμμή της κύριας μνήμης μπορεί να αντιστοιχηθεί μόνο σε μια συγκεκριμένη γραμμή της κρυφής μνήμης.
Τύποι για αντιστοίχηση (Διεύθυνση μνήμης RAM που ζητείται από τον επεξεργαστή) DIV (Χωρητικότητα γραμμής της cache)=ιδεατή γραμμή RAM (Ιδεατή γραμμή RAM) MOD (Πλήθος γραμμών της cache)=Γραμμή της cache Έστω ότι ο επεξεργαστής ζητάει την διεύθυνση μνήμης 10. Έχουμε: 10 DIV 8=1 και 1 MOD 4=1.
Σύγκρουση κρυφής μνήμης-Cache Collision Σε μία κρυφή μνήμη Άμεσης χαρτογράφησης , πολλές ιδεατές γραμμές της RAM, μπορεί να αντιστοιχούν σε συγκεκριμένη γραμμή της cache. Έστω ότι ένα πρόγραμμα προσπελαύνει διαδοχικά κάποιες θέσεις μνήμης (θέσεις μνήμης 7 ή 32), αυτές οι γραμμές δεν θα βρίσκονται ποτέ ταυτόχρονα στην cache αφού αντιστοιχούν στην ίδια γραμμή της κρυφής μνήμης. Έτσι απαιτούνται συνεχείς προσπελάσεις στην RAM και συχνές αντικαταστάσεις της γραμμής της cache. Σε αυτήν την περίπτωση η cache έχει χαμηλή απόδοση και επιβαρύνει το σύστημα.
Πλεονεκτήματα-Μειονεκτήματα Άμεσης Χαρτογράφησης Πολύ καλά οργανωμένη Η διεύθυνση μνήμης που ζητάει ο επεξεργαστής μπορεί να εντοπιστεί πολύ γρήγορα αν υπάρχει στην κρυφή μνήμη ή όχι Δυνατότητα εμφάνισης Cache Collision Χαμηλή απόδοσή
Πλήρως Συσχετιστική CACHE RAM A/A Valid Bit Tag Dirty Bit Time Data 3 1 5 4 40..47 2 0..7 24..31 7 56..63 63 62 61 … 3 2 1 Κάθε ιδεατή γραμμή της κύριας μνήμης μπορεί να αντιστοιχηθεί σε οποιαδήποτε γραμμή της κρυφής μνήμης.
Πλεονεκτήματα-Μειονεκτήματα Πλήρως Συσχετιστικής Δεν υπάρχει δυνατότητα εμφάνισης Cache Collision Η διαπίστωση αν η διεύθυνση μνήμης που ζητάει ο επεξεργαστής υπάρχει στην κρυφή μνήμη ή όχι, είναι χρονοβόρα λειτουργία
Σύνολο-συσχετιστική Ν-Δρόμων Σύνολο-συσχετιστική 2-δρόμων Σύνολο 0 Σύνολο 1 A/A Valid Bit Tag Dirty Bit Time Data 3 1 7 8 56..63 2 16..23 5 40..47 0..7 A/A Valid Bit Tag Dirty Bit Time Data 3 1 4 24..31 2 6 48..55 7 8..15 32..39 Μια ιδεατή γραμμή της κύριας μνήμης αντιστοιχίζεται σε μία συγκεκριμένη γραμμή της κρυφής μνήμης αλλά στη συνέχεια μπορεί να τοποθετηθεί σε οποιοδήποτε από τα σύνολα που περιέχει η γραμμή αυτή.
Τύποι για αντιστοίχηση (Διεύθυνση μνήμης RAM που ζητείται από τον επεξεργαστή) DIV (Χωρητικότητα γραμμής της cache)=ιδεατή γραμμή RAM (Ιδεατή γραμμή RAM) MOD (Πλήθος γραμμών της cache)=Γραμμή της cache Έστω ότι ο επεξεργαστής ζητάει την διεύθυνση μνήμης 5. Έχουμε: 5 DIV 8=0 και 0 MOD 4=0.
Πλεονεκτήματα-Μειονεκτήματα Σύνολο-συσχετιστικής Ν-Δρόμων Συνδυάζει τα πλεονεκτήματα των δύο προηγούμενων τεχνικών χαρτογράφησης. Όταν είναι 8-Δρόμων, τότε 8 διαφορετικές ιδεατές γραμμές της RAM, που ανήκουν σε συγκεκριμένη γραμμή της cache, μπορούν να βρίσκονται στην μνήμη cache ταυτόχρονα. Μέχρι 8 σύνολα δεν υπάρχει δυνατότητα εμφάνισης Cache Collision αλλά η διαπίστωση αν η διεύθυνση μνήμης που ζητάει ο επεξεργαστής υπάρχει στην κρυφή μνήμη ή όχι, είναι χρονοβόρα λειτουργία.
Γειτονικές και τυχαίες τιμές Τα προγράμματα είναι εκτέλεση εντολών γλώσσας μηχανής. Αποτελούνται από bytes που διαβάζονται με την σειρά αλλά κατά την εκτέλεση των εντολών διαβάζονται και δεδομένα που βρίσκονται σε απομακρυσμένες θέσεις μνήμης. Οι προσπελάσεις της μνήμης είναι ένα «μείγμα» από γειτονικές και τυχαίες προσπελάσεις τιμών.
Hit ratio-Ποσοστό επιτυχίας Πείραμα 1ο Hit ratio-Ποσοστό επιτυχίας Γειτονιά-Τυχαιότητα Άμεση Πλήρως συσχετιστική Σύνολο-συσχετιστική 25%-75% 57,4 59,8 58,6 75%-25% 80,2 81,2 81 50%-50% 65,6 70,6 70 100% γειτονιά 98 98,4 97,6 100% τυχαιότητα 48 50,8 50 500 επαναλήψεις, 32 Bytes RAM, 4 Γραμμές CACHE με 4 Bytes Χωρητικότητα, Σύνολο-συσχετιστική 1 Σύνολο Hit Ratio=Επιτυχημένες προσπελάσεις στην cache/σύνολο προσπελάσεων
Συμπεράσματα 1ου Πειράματος Όταν ο επεξεργαστής ζητάει μεγάλα ποσοστά γειτονικών τιμών το ποσοστό επιτυχίας αυξάνεται. Η Πλήρως συσχετιστική χαρτογράφηση έχει καλύτερα αποτελέσματα από την Άμεση αλλά αυτό δεν ισχύει στην θεωρία γιατί η Πλήρως συσχετιστική έχει τα πλεονεκτήματα της Άμεσης ως μειονεκτήματα και αντίστροφα.
Hit ratio-Ποσοστό επιτυχίας RAM – Γραμμές CACHE – Byres/ Γραμμή Πείραμα 2ο Χωρητικότητες Hit ratio-Ποσοστό επιτυχίας RAM – Γραμμές CACHE – Byres/ Γραμμή Άμεση Πλήρως συσχετιστική Σύνολο-συσχετιστική 1024-4-2 57,2 57,8 57,6 1024-4-8 72,6 72,4 69,8 1024-4-16 74,6 76,6 71,4 1024-8-2 54 61 50,2 1024-8-4 70,2 74 69 1024-8-16 74,8 72,2 1024-16-2 56,8 58,8 56 1024-16-4 74,2 74,4 70,8 1024-16-16 75 81,2 77,4 500 επαναλήψεις, 75% γειτονιά – 25% τυχαιότητα, Σύνολο-συσχετιστική 1 Σύνολο Hit Ratio=Επιτυχημένες προσπελάσεις στην cache/σύνολο προσπελάσεων
Συμπεράσματα 2ου Πειράματος Όσο αυξάνεται η χωρητικότητα γραμμής της cache,τόσο αυξάνεται το ποσοστό επιτυχίας. Ουσιαστικά στηριζόμαστε στην χωρική τοπικότητα(αύξηση γραμμής). Η Πλήρως συσχετιστική χαρτογράφηση έχει καλύτερα αποτελέσματα από την Άμεση αλλά αυτό δεν ισχύει στην θεωρία γιατί η Πλήρως συσχετιστική έχει τα πλεονεκτήματα της Άμεσης ως μειονεκτήματα και αντίστροφα.
Hit ratio-Ποσοστό επιτυχίας RAM – Γραμμές CACHE – Byres/ Γραμμή Πείραμα 3ο Χωρητικότητες Hit ratio-Ποσοστό επιτυχίας RAM – Γραμμές CACHE – Byres/ Γραμμή 2-Δρόμων 4-Δρόμων 8-Δρόμων 1024-2-4 68 67,8 66,6 1024-2-8 73,4 72,6 76,2 1024-4-4 66,2 68,2 73 1024-4-8 75 78,2 1024-8-2 56,6 54,4 57,4 1024-8-4 67,4 79,6 1024-8-8 73,8 74,6 500 επαναλήψεις, 75% γειτονιά – 25% τυχαιότητα Hit Ratio=Επιτυχημένες προσπελάσεις στην cache/σύνολο προσπελάσεων
Συμπεράσματα 3ου Πειράματος Όσο αυξάνεται η χωρητικότητα γραμμής της cache,τόσο αυξάνεται το ποσοστό επιτυχίας. Ουσιαστικά στηριζόμαστε στην χωρική τοπικότητα(αύξηση γραμμής). Καλύτερη απόδοση έχει η Σύνολο-συσχετιστική χαρτογράφηση 8-Δρόμων γιατί 8 διαφορετικές ιδεατές γραμμές της RAM, που ανήκουν σε συγκεκριμένη γραμμή της cache, μπορούν να βρίσκονται στην μνήμη cache ταυτόχρονα.
Hit ratio-Ποσοστό επιτυχίας RAM – Γραμμές CACHE – Byres/ Γραμμή Πείραμα 4ο Χωρητικότητες Hit ratio-Ποσοστό επιτυχίας RAM – Γραμμές CACHE – Byres/ Γραμμή Άμεση Πλήρως συσχετιστική Σύνολο-συσχετιστική 2 - Δρόμων 4 - Δρόμων 8 - Δρόμων 1024-16-16 78,4 76 81,4 88,6 1024-32-8 73,8 76,6 79,2 81,8 83,4 1024-8-32 79,8 85,2 93,8 93,6 1024-64-4 68,4 70,2 73,4 72,4 74 1024-4-64 80,6 82 85 96,8 97 500 επαναλήψεις, 75% γειτονιά – 25% τυχαιότητα Hit Ratio=Επιτυχημένες προσπελάσεις στην cache/σύνολο προσπελάσεων
Συμπεράσματα 4ου Πειράματος Όσο αυξάνεται η χωρητικότητα γραμμής της cache,τόσο αυξάνεται το ποσοστό επιτυχίας. Ουσιαστικά στηριζόμαστε στην χωρική τοπικότητα(αύξηση γραμμής). Η καλύτερη τεχνική χαρτογράφησης είναι η Σύνολο-συσχετιστική 8-Δρόμων γιατί 8 διαφορετικές ιδεατές γραμμές της RAM, που ανήκουν σε συγκεκριμένη γραμμή της cache, μπορούν να βρίσκονται στην μνήμη cache ταυτόχρονα.
Συμπεράσματα Υλοποιήσαμε και μελετήσαμε τις τρεις τεχνικές χαρτογράφησης. Έγιναν αρκετές δοκιμές και συγκρίσεις των τεχνικών αυτών και τα αποτελέσματα των πειραμάτων επιβεβαιώνουν την θεωρία. Το λογισμικό που υλοποιήσαμε, μπορεί να χρησιμοποιηθεί και για περεταίρω πειράματα στο μέλλον από τους σπουδαστές ή τους καθηγητές.
Μελλοντικές Επεκτάσεις Το λογισμικό που υλοποιήσαμε, να λαμβάνει υπόψη του τον παράγοντα «χρόνο» σε κάθε προσπέλαση. Έτσι θα μπορεί να συγκρίνει τις τεχνικές χαρτογράφησης με βάση αυτόν τον παράγοντα.
Βιβλιογραφία Αρχιτεκτονική υπολογιστών, Δρ. Σπυρίδων Α. Καζαρλής, Σέρρες 2004 Η Αρχιτεκτονική των Υπολογιστών Μια Δομημένη Προσέγγιση, Andrew S. Tanenbaum, 4η έκδοση, Εκδόσεις Κλειδάριθμος, ©2000 Οργάνωση & Αρχιτεκτονική Υπολογιστών, Williams Stallings, 6η έκδοση, Εκδόσεις Τζιόλα, ©2003 Αρχιτεκτονική Υπολογιστών Οικογένεια Επεξεργαστών 80x86, Ιωάννης Ν. Έλληνας, ©2007 Λειτουργικά Συστήματα Αρχές Σχεδίασης, Williams Stallings, 6η έκδοση, Εκδόσεις Τζιόλα, ©2009 http://cgi.di.uoa.gr/~k15/kef5en2.pdf http://dide.flo.sch.gr/Plinet/HistoryComputers.html http://38gym-athin.att.sch.gr/pages/pc/history_of_pc.htm#Εισαγωγή http://architecture.di.uoa.gr/51Chapter5.html http://el.wikipedia.org/wiki/Μνήμη_υπολογιστή http://architecture.di.uoa.gr/k5en26.html http://architecture.di.uoa.gr/k5en13.html http://architecture.di.uoa.gr/k5en21.html