Ανάλυση επίδοσης μηχανισμών TLB prefetching για σύγχρονες και απαιτητικές σε μνήμη εφαρμογές
Διπλωματική Εργασία


Περιγραφή

Εισαγωγή

Η εικονική μνήμη (virtual memory) αποτελεί ένα επίπεδο αφαιρετικότητας (abstraction layer) ανάμεσα (α) στην ”απεριόριστα” μεγάλη εικονική μνήμη, την οποία ”βλέπουν” και νομίζουν πως χρησιμοποιούν οι διεργασίες και (β) την περιορισμένη φυσική μνήμη (physical memory) του υπολογιστικού συστήματος, την οποία το λειτουργικό σύστημα διαχειρίζεται και αναθέτει στις τρέχουσες διεργασίες. Συνεπώς, κατά την εκτέλεση κάθε εντολής μνήμης από τον επεξεργαστή απαιτείται μια μετάφραση διεύθυνσης (address translation) από την εικονική μνήμη στην φυσική μνήμη. Οι επεξεργαστές υποστηρίζουν την μετάφραση διευθύνσεων που απαιτεί η εικονική μνήμη μέσω του Translation Lookaside Buffer (TLB). Ο TLB είναι μία μικρή εξειδικευμένη κρυφή μνήμη, υλοποιημένη στο υλικό (hardware), όπου αποθηκεύονται οι πιο πρόσφατες μεταφράσεις διευθύνσεων. Ο επεξεργαστής προσπελάζει τον TLB κατά την εκτέλεση κάθε εντολής μνήμης. Στην περίπτωση που βρεθεί η ζητούμενη μετάφραση διέυθυνσης (TLB hit), ο TLB επιστρέφει στον επεξεργαστή την ζητούμενη φυσική διεύθυνση και ο επεξεργαστής εν συνεχεία προσπελάζει την ιεραρχία της μνήμης για να διαβάσει/γράψει τα ζητούμενα δεδομένα. Στην περίπτωση όμως που δεν βρεθεί η ζητούμενη μετάφραση διέυθυνσης (TLB miss), η εκτέλεση της εντολής μνήμης καθυστερεί μέχρι να ανακτηθεί η ζητούμενη μετάφραση διεύθυνσης. Συνεπώς, η επίδοση του TLB επηρεάζει την συνολική επίδοση ενός υπολογιστικού συστήματος, και ζητούμενο για την βελτίωση της επίδοσης του TLB είναι η μεγιστοποίση των επιτυχημένων προσπελάσεων (TLB hits).

Σκοπός

Ένας από τους τρόπους βελτίωσης της επίδοσης του TLB που έχει προταθεί στην βιβλιογραφία είναι αυτός του ”TLB prefetching”. Η ιδέα βασίζεται στην πρόβλεψη των μελλοντικών μεταφράσεων διευθύνσεων οι οποίες διαβάζονται από την μνήμη και αποθηκεύονται εγκαίρως στον TLB, έτσι ώστε όταν ο επεξεργαστής χρειαστεί τις μεταφράσεις αυτές να μην πληρώσει το κόστος επίδοσης των misses. Στόχος αυτής της διπλωματικής εργασίας είναι η εξέταση, υλοποίηση, και ανάλυση επίδοσης διάφορων μηχανισμών για TLB prefetching που έχουν προταθεί στην βιβλιογραφία. Πιο συγκεκριμένα, οι διάφοροι μηχανισμοί θα υλοποιηθούν και θα αξιολογηθούν συνδυάζοντας πειράματα σε πραγματικό μηχάνημα (με την χρήση performance counters) και πειράματα σε περιβάλλον προσομοίωσης (που στηρίζεται σε επέκταση του Linux kernel). Τέλος, η επίδοση των μηχανισμών θα μελετηθεί εκτελώντας σύγχρονα μετροπρογράμματα (benchmarks) που είναι απαιτητικά σε μνήμη και τα οποία συνήθως επηρρεάζονται περισσότερο από την επίδοση του TLB.

Επικοικωνία

  • Βασίλης Καρακώστας, vkarakos@cslab.ece.ntua.gr
  • Γεώργιος Γκούμας, goumas@cslab.ece.ntua.gr
  • Κωστής Νίκας, knikas@cslab.ece.ntua.gr