Εικονική Μνήμη (virtual memory)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Advertisements

Indexing.
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (2).
Οργάνωση και Αρχιτεκτονική Υπολογιστών Διάδρομοι Μεταφοράς Δεδομένων
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκτάριος Κοζύρης
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Cache Optimisations.
Processor-Memory (DRAM) Διαφορά επίδοσης
Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη.
Είδη των Cache Misses: 3C’s 1 Compulsory: 1 Compulsory: Συμβαίνουν κατά την πρώτη πρόσβαση σε ένα block. Το block πρέπει να κληθεί από χαμηλότερα επίπεδα.
Ασκήσεις Caches
© GfK 2012 | Title of presentation | DD. Month
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Συστήματα Μνήμης – Βασικές Αρχές Cache.
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Βάσεις Δεδομένων II Διαχείριση Δοσοληψιών Πάνος Βασιλειάδης Σεπτέμβρης 2002
13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών – Κέρκυρα Οκτωβρίου 2004 Το σύστημα COINE για την προβολή της πολιτιστικής κληρονομιάς και την υποστήριξη.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Οργάνωση και Αρχιτεκτονική Υπολογιστών Βασικές αρχές Αρχιτεκτονικής
Ο ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
© Θέματα Φεβρουαρίου © Θέμα 1ο (30%): Έστω η παρακάτω ακολουθία εντολών που χρησιμοποιείται για την αντιγραφή.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Διαχείριση Συναλλαγών Πάνος Βασιλειάδης Μάρτιος 2014
Σχεδιασμός της Ιεραρχίας Μνήμης (1) Pedro Trancoso Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”
© Είδη των Cache Misses: 3C’s 1 Compulsory: 1 Compulsory: Συμβαίνουν κατά την πρώτη πρόσβαση σε ένα block. Το block πρέπει να κληθεί.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -- Δ. Σερπάνος 1 Κεφάλαιο 5.
Αρχιτεκτονική Υπολογιστών ΙΕΡΑΡΧΙΕΣ ΜΝΗΜΗΣ. Αρχιτεκτονική Υπολογιστών ΤΟΠΙΚΟΤΗΤΑ Χρονική Τοπικότητα (Temporal Locality) –μια λέξη μνήμης που χρησιμοποιήθηκε.
1 Διαχείριση Μνήμης Γενικά Εναλλαγή (Swapping) Συμπαγής Εκχώρηση (Contiguous Allocation) Σελιδοποίηση (Paging) Κατάτμηση (Segmentation) Κατάτμηση με Σελιδοποίηση.
Αρχιτεκτονική Υπολογιστών Ενότητα # 3: Ιεραρχία Μνήμης Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Διαφάνειες διδασκαλίας του πρωτότυπου βιβλίου μεταφρασμένες στα ελληνικά (μετάφραση, επιμέλεια: Δημήτρης Γκιζόπουλος, Πανεπιστήμιο Αθηνών) Οργάνωση και.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αρχιτεκτονική Η/Υ ΙΙ Ενότητα #3: Σελιδοποίηση – Κατάτμηση στην Κύρια Μνήμη Νικόλαος Χ. Πετρέλλης Σχολή Τεχνολογικών.
1 Λειτουργικά Συστήματα Ενότητα 9 : Ιδεατή Μνήμη 1/2 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Διαχείριση Πόρων (1/10) Εισαγωγή στην Πληροφορκή 1 Στα πρώτα χρόνια των υπολογιστών, όπου μόνο ένα πρόγραμμα είχε τη δυνατότητα να βρίσκεται στην κύρια.
Εικονική Μνήμη (virtual memory)
Θέμα Πτυχιακής Εργασίας
Θεωρήστε το λογικό χώρο διευθύνσεων που αποτελείται από 8 σελίδες των 1024 λέξεων (word) η καθεμία, που απεικονίζεται σε φυσική μνήμη 32 πλαισίων. Πόσα.
Καθηγητής Σταύρος Α. Κουμπιάς
Είδη των Cache Misses: 3C’s
Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,
Morgan Kaufmann Publishers
Είδη των Cache Misses: 3C’s
Είδη των Cache Misses: 3C’s
Είδη των Cache Misses: 3C’s
Είδη των Cache Misses: 3C’s
Είδη των Cache Misses: 3C’s
Διδάσκοντας: Κ. Χαλάτσης
Μεταγράφημα παρουσίασης:

Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται από τα ενεργά τμήματα των προγραμμάτων – working sets) Πρέπει να εξασφαλίσουμε προστασία μεταξύ των προγραμμάτων cslab@ntua 2013-2014

Εικονική Μνήμη (virtual memory) Την ώρα του compile, δεν γνωρίζουμε ποια προγράμματα θα μοιράζονται τη μνήμη Δυναμική εκτέλεση προγραμμάτων Θέλουμε κάθε πρόγραμμα να νομίζει ότι έχει τη δική του μνήμη Θέλουμε κάθε πρόγραμμα να νομίζει ότι έχει απεριόριστη μνήμη (μεγαλύτερη από τη RAM) cslab@ntua 2013-2014

Εικονική Μνήμη (virtual memory) Κύρια μνήμη (DRAM) Μαζική αποθήκευση (συνήθως μαγνητικοί δίσκοι) Η κύρια μνήμη διαιρείται σε blocks κατανεμημένες σε διαφορετικές τρέχουσες διεργασίες του συστήματος: Βlocks καθορισμένου μεγέθους: Pages (μέγεθος 4k έως 64k bytes). Βlocks μεταβλητού μεγέθους : Segments (μέγεθος το πολύ 216 μέχρι 232) Σε δεδομένο χρόνο, για κάθε τρέχουσα διεργασία, ένα κομμάτι των δεδομένων ή του κώδικα φορτώνεται στην κύρια μνήμη ενώ το υπόλοιπο είναι διαθέσιμο μόνο στους μαγνητικούς δίσκους. Ένα block κώδικα ή δεδομένων που χρειάζεται για την εκτέλεση μιας διεργασίας αλλά δεν υπάρχει στη κύρια μνήμη έχει ως αποτέλεσμα ένα page fault (address fault) και το block πρέπει να φορτωθεί στην κύρια μνήμη από το δίσκο ή τον χειριστή του λειτουργικού συστήματος (OS handler). Ένα πρόγραμμα μπορεί να εκτελεστεί σε οποιαδήποτε θέση της κύριας μνήμης ή του δίσκου χρησιμοποιώντας έναν μηχανισμό επανατοποθέτησης ο οποίος να ελέγχεται από το λειτουργικό σύστημα που να αντιστοιχεί τις διευθύνσεις από τον χώρο των virtual addresses (logical program address) στο χώρο των physical addresses (κύρια μνήμη, δίσκος). cslab@ntua 2013-2014

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη υλοποιεί μετάφραση του χώρου διευθύνσεων ενός προγράμματος σε φυσικές διευθύνσεις Διαδικασία μετάφρασης ενισχύει την προστασία (Εικονική μνήμη μοιάζει με την cache) cslab@ntua 2013-2014

Τι βλέπει η εφαρμογή.... Εικονικές Διευθύνσεις 4GB cslab@ntua 2013-2014

Μετάφραση των Virtual Addresses P h y s i c a l m e o r D k t g V d 1 b u p n cslab@ntua 2013-2014

Τι συμβαίνει στην πραγματικότητα!! Εικονικές Διευθύνσεις Φυσικές Διευθύνσεις Μετάφραση Διευθύνσεων other process other process 1GB RAM Διευθύνσεις Δίσκου 500GB DISK 4GB cslab@ntua 2013-2014

Εικονική Μνήμη Διεύθυνση χωρίζεται σε δύο τμήματα αριθμός εικονικής σελίδας (virtual page number) σχετική απόσταση σελίδας (page offset) Εικονική Διεύθυνση 31 30 29 28 27 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Virtual Page Number Page Offset προσδιορίζει μέγεθος σελίδας π.χ. 4KB cslab@ntua 2013-2014

Μετάφραση Σελίδων 220 virtual pages Εικονική Διεύθυνση 4GB virtual space 31 30 29 28 27 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Virtual Page Number Page Offset 4KB page size Translation Physical Page Number Page Offset 29 28 14 13 12 11 10 9 8 7 6 5 4 3 2 1 218 physical pages Φυσική Διεύθυνση 1GB physical space (RAM) cslab@ntua 2013-2014

Πλεονεκτήματα Έχουμε την ψευδαίσθηση ότι διαθέτουμε περισσότερη φυσική κύρια μνήμη Επιτρέπει την επανατοποθέτηση των προγραμμάτων Προστατεύει από παράτυπη πρόσβαση στη μνήμη 3 2 1 9 8 5 4 7 P a g e o f s t V i r u l p n m b d h y c T cslab@ntua 2013-2014

Σχεδιαστικές Επιλογές Υψηλό κόστος αστοχίας – σφάλμα σελίδας (page fault) Περιεχόμενα στο δίσκο (100.000 φορές πιο αργός) Σχεδιαστικές αποφάσεις για αποφυγή αστοχιών «Μεγάλες» σελίδες (4KB – 16KB) Fully associative τοποθέτηση σελίδων στη μνήμη Σφάλματα αντιμετωπίζονται με λογισμικό – πιο έξυπνοι αλγόριθμοι επιλογής/τοποθέτησης σελίδων Μόνο write-back (γιατί όχι write through;) cslab@ntua 2013-2014

Σχεδιαστικά Λάθη Συνήθως virtual address είναι μεγαλύτερη από physical address π.χ. 4GB virtual space vs 1GB physical space (RAM) Τι γίνεται όταν μέγεθος διεύθυνσης επεξεργαστή είναι μικρό σε σχέση με τις τεχνολογίες μνημών; π.χ. μπορώ πολύ φτηνά να αγοράσω 8GB RAM, αλλά κυκλοφορούν μόνο 32bit υπολογιστές cslab@ntua 2013-2014

Σχεδιαστικά Λάθη Με 32bit υπολογιστή μπορούμε θεωρητικά να προσπελάσουμε 4GB και στην πράξη γύρω στα 3 – 3,5GB βλ. memory mapped devices βλ. OS kernel address space περισσότερα στα Λειτουργικά Συστήματα – ΡΟΗ Υ cslab@ntua 2013-2014

Μετάφραση Σελίδων – Πίνακας Σελίδων Virtual Page Number Page Offset 31 30 29 28 27 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Physical Page Number Page Table Register 20b 18b Valid Αν Valid μηδέν, η σελίδα δεν βρίσκεται στη μνήμη cslab@ntua 2013-2014

Μετάφραση Σελίδων – Πίνακας Σελίδων Virtual Page Number 1 Valid Physical Page Number or Disk address 4KB Physical Memory RAM Disk Swap Space cslab@ntua 2013-2014

Μετάφραση Virtual -> Physical Addresses Οι Physical θέσεις των blocks A, B, C Συνεχόμενος χώρος των virtual addresses ενός προγράμματος cslab@ntua 2013-2014

Εικονική Μνήμη Αν φυσική μνήμη γεμάτη (σύνολο προγραμμάτων μπορεί μεγαλύτερο από φυσική μνήμη), γίνεται αντικατάσταση Σελίδα dirty γράφεται στο δίσκο (swap space) Νέα σελίδα έρχεται στη φυσική μνήμη Πρόγραμμα συνεχίζει εκτέλεση Αλγόριθμος αντικατάστασης LRU (μας θυμίζει τίποτα;) σε software-operating system cslab@ntua 2013-2014

Μέγεθος Πίνακα Σελίδων Virtual Page Number Page Offset 31 30 29 28 27 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Physical Page Number Page Table Register 20b 18b Valid 220 x 4B = 4MB Θεωρούμε ότι κάθε καταχώρηση έχει μέγεθος 4 bytes cslab@ntua 2013-2014

Μέγεθος Πίνακα Σελίδων Virtual Page Number Page Offset 31 30 29 28 27 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Physical Page Number Page Table Register 20b 18b Valid 220 x 4B = 4MB Θεωρούμε ότι κάθε καταχώρηση έχει μέγεθος 4 bytes Δηλ. για κάθε πρόγραμμα που εκτελείται, ξοδεύουμε 4MB φυσικής μνήμης για πίνακα σελίδων!!! cslab@ntua 2013-2014

Page Table Χρειάζονται 2 προσπελάσεις μνήμης: στο page table o f s t V i r u l p n m b d h y c I 2 1 8 3 9 7 5 4 Χρειάζονται 2 προσπελάσεις μνήμης: στο page table στο αντικείμενο cslab@ntua 2013-2014

Αντιστοίχιση των Virtual Addresses σε Physical Addresses μέσω ενός πίνακα σελίδων (Page Table) cslab@ntua 2013-2014

Hierarchical Page Tables Multilevel Paging Κατάτμηση του χώρου διευθύνσεων σε πολλαπλά page tables Two-level, three-level, etc Τα τμήματα του πίνακα σελίδων που δεν χρειάζονται δεν βρίσκονται στη μνήμη. cslab@ntua 2013-2014

Two-Level Page Table (1) cslab@ntua 2013-2014

Two-Level Page Table (2) 32-bit machine, 4K page size: page number : 20 bits page offset : 12 bits Σελιδοποιούμε και τον page table: p1 10-bit page number p2 10-bit page offset cslab@ntua 2013-2014

Two-Level Page Table (3) Μετάφραση διεύθυνσης cslab@ntua 2013-2014

Three-Level Page Table 64-bit machine, 4K page size x86 system, PAE mode, kernel 2.6 PGD 4 entries → 2 bits (30-31) PMD 512 entries → 9 bits (21-29) PTE 512 entries → 9 bits (12-20) page offset → 12 bits four-level, x86_64 (48-bit virtual address) PML4 512 entries → 9 bits PGD 512 entries → 9 bits PMD 512 entries → 9 bits PTE 512 entries → 9 bits page offset → 12 bits Address Length> 48 bits → PML5 ?!? cslab@ntua 2013-2014

Multi-level Page Table & Translation Πλεονεκτήματα Δέσμευση μόνο όσων page table entries είναι απαραίτητες για την εφαρμογή Εύκολη δέσμευση μνήμης (memory allocation) Εύκολος διαμοιρασμός (σε επίπεδο segment ή page). Μειονεκτήματα Ένας δείκτης για κάθε σελίδα Contiguous page tables 2 lookups (για 2-level, n για n-level) για κάθε reference Ακριβό! cslab@ntua 2013-2014

Inverted Page Table (1) Συνδυασμός page table και frame table σε μια δομή. Μια εγγραφή για κάθε virtual page number & real memory page Κάθε εγγραφή περιέχει: Virtual page number (VPN) Physical page number Process information Μείωση του απαιτούμενου χώρου στη μνήμη για την αποθήκευση του page table Χωρίς εξάρτηση από το μέγεθος του virtual address space Lookup time? cslab@ntua 2013-2014

Inverted Page Table (2) cslab@ntua 2013-2014

Inverted Page Table (3) Χρήση hash tables για τον περιορισμό της αναζήτησης σε 1 (ή λίγα) page table entries. Collision chains Hash function: Optimised for speed not coverage Θελκτικό για 64-bit αρχιτεκτονικές Παραδείγματα χρήσης: PowerPC, UltraSPARC, IA-64 cslab@ntua 2013-2014

Translation-Lookaside Buffer (TLB) Virtual Page Number 1 Physical Page # Physical Memory RAM Disk Swap Space Valid Dirty Reference Virtual Page # TLB (fully assosiative) Page Table cslab@ntua 2013-2014

Ενέργειες Μετάφρασης Διευθύνσεων Ευστοχία TLB; Φυσική Διεύθυνση Εικονική Διεύθυνση TLB hit cache... Προσπέλαση TLB TLB miss Προσπέλαση Page Table Ευστοχία TLB; Page Table hit Exception Ανάγνωση page από δίσκο στη RAM και ενημέρωση Page Table Exception Η σελίδα δεν υπάρχει. Προφανώς λάθος προσπέλαση μνήμης. Η διεργασία σκοτώνεται. Segmentation Fault... Page Table miss Υπάρχει στο δίσκο; Ναι Όχι cslab@ntua 2013-2014

cslab@ntua 2013-2014

Paging & Segmentation cslab@ntua 2013-2014

Τυπικές παράμετροι Cache και Virtual Memory cslab@ntua 2013-2014

Virtual Memory: Στρατηγικές Τοποθέτηση του block στην κύρια μνήμη: Η fully associative τεχνική χρησιμοποιείται για την ελάττωση του miss rate. Αντικατάσταση του block: The least recently used (LRU) block αντικαθίσταται όταν ένα νέο block έρχεται στη μνήμη από το δίσκο. Στρατηγική εγγραφών: Χρησιμοποιείται η τεχνική write back και μόνο οι dirty σελίδες μεταφέρονται από την κύρια μνήμη στο δίσκο. Για την τοποθέτηση των blocks στην κύρια μνήμη χρησιμοποιείται ένας page table. Ο page table δεικτοδοτείται από τον εικονικό αριθμό σελίδας (virtual page number) και περιέχει τη φυσική διεύθυνση (physical address) του block. Paging: To Offset συγχωνεύεται με τη διεύθυνση της φυσικής σελίδας. Segmentation: Το Offset προστίθεται στη διεύθυνση του physical segment. Για την αξιοποίηση της address locality, χρησιμοποιείται συνήθως ο translation look-aside buffer (TLB) για την αποθήκευση των προσφάτως μεταφρασμένων διευθύνσεων ώστε να αποφεύγεται προσπέλαση της μνήμης προκειμένου να διαβαστεί ο πίνακας σελίδων (page table). cslab@ntua 2013-2014

Συνδυασμός Virtual Memory, TLB, cache σελ 543 βιβλίου (εικόνα) cslab@ntua 2013-2014

Page Faults Page faults: the data is not in memory, retrieve it from disk huge miss penalty, thus pages should be fairly large (e.g., 4KB) reducing page faults is important (LRU is worth the price) can handle the faults in software instead of hardware using write-through is too expensive so we use writeback cslab@ntua 2013-2014

Επιτάχυνση της μετάφρασης διευθύνσεων Translation Lookaside Buffer (TLB) TLB: Μία μικρή on-chip fully-associative cache που χρησιμοποιείται για τη μετάφραση διευθύνσεων. Αν μία virtual address υπάρχει μέσα στο TLB (TLB hit), δεν προσπελάζεται ο πίνακας σελίδων της κύριας μνήμης. 1 Physical Memory Disk Storage TLB (on-chip) 128-256 Entries Physical Page Address Virtual Page Number Page Table (in main memory) or Disk Address Tag Valid 128-256 TLB Entries cslab@ntua 2013-2014

Intrinsity fastMATH processor 32 bit address space/byte addressing 4KB/page TLB fully associative: 16 entries cslab@ntua 2013-2014

TLB & Cache Operation (Intrinsity FastMATH) TLB Operation Y e s D l i v r d a t o h C P U W ? T y f m c n , u p g w b L B N x TLB miss use page table Virtual address Physical address Cache operation Cache is physically-addressed cslab@ntua 2013-2014

TLB, virtual memory, cache συνδυασμοί Page Table Cache Possible? If so under what circumstance? hit miss Possible, although the page table is never really checked if TLB hits TLB misses, but entry found in page table; after retry, data is found in cache TLB misses, but entry found in page table; after retry data misses in cache TLB misses and is followed by a page fault; after retry, data must miss in cache Impossible: cannot have a translation in TLB if page is not present in memory Impossible: data cannot be allowed in cache if the page is not in memory cslab@ntua 2013-2014

Memory map, page table, physical memory All three segments, text, data (data+bss), and heap, are mapped to real memory through the page table. The figure shows that the heap segment expands and contracts as memory is allocated and deallocated. Consequently, page table entries are added or deleted as necessary. $ cat /proc/23114/maps 00400000-00401000 r-xp ... /scratch/esumbar/map 00500000-00501000 rw-p ... /scratch/esumbar/map 00501000-02d01000 rwxp ... 2a95556000-2a95557000 rw-p ... 2a95578000-2a9697c000 rw-p ... 330c300000-330c315000 r-xp ... /lib64/ld-2.3.4.so 330c414000-330c416000 rw-p ... /lib64/ld-2.3.4.so 330c500000-330c62a000 r-xp ... /lib64/tls/libc-2.3.4.so 330c62a000-330c729000 ---p ... cslab@ntua 2013-2014

Process memory map showing text, data, and bss segments. showing heap heap segment expands and contracts as memory is allocated and deallocated. page table entries are added or deleted as necessary. showing stack for subroutine calls cslab@ntua 2013-2014

Pentium P4 / AMD Opteron cslab@ntua 2013-2014

Pentium P4 / AMD Opteron cslab@ntua 2013-2014

Desktop/embedded/server microprocessors (2004) Things are getting complicated! cslab@ntua 2013-2014

Η λειτουργία του Alpha AXP 21064 Data TLB κατά τη μετάφραση των διευθύνσεων Virtual address TLB = 32 blocks Data cache = 256 blocks Η πρόσβαση στα TLB γίνεται συνήθως με την τεχνική pipeline Valid Read Permission Write Permission cslab@ntua 2013-2014

Σύνοψη cslab@ntua 2013-2014

Read/Write (Intrinsity FastMATH cpu) cslab@ntua 2013-2014