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

Σχετικά έγγραφα
Εικονική Μνήμη (virtual memory)

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

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

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

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory)

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

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Εικονικι Μνιμθ (virtual memory)

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

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

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

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

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

Μάθημα 8: Διαχείριση Μνήμης

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

Διαχείριση Κύριας Μνήμης

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

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

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

Processor-Memory (DRAM) ιαφορά επίδοσης

Υ- 01 Αρχιτεκτονική Υπολογιστών Ιεραρχία μνήμης: προχωρημένα θέματα

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

Processor-Memory (DRAM) ιαφορά επίδοσης

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

Ασκήσεις Caches

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

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

Άσκηση 1η. Θεωρήστε ένα σύστημα μνήμης με μία cache: 4 way set associative μεγέθους 256ΚΒ,

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

Εικονική Μνήμη (Virtual Memory)

Processor-Memory (DRAM) Διαφορά επίδοσης

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Προχωρηµένα Θέµατα Αρχιτεκτονικής

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Ασκήσεις Caches. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

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

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

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

Είδη των Cache Misses: 3C s

Οργάνωση Ιεραρχίας Μνήμης - Caches

Ασκήσεις Caches

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

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

Είδη των Cache Misses: 3C s

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

3 η ΑΣΚΗΣΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΥΠΟΛΟΓΙΣΤΩΝ

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Cach O p i timisati tions

Λειτουργικά Συστήματα Ι. Διαχείριση Μνήμης (Memory Management)

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

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

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

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης. Cache Optimizations

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός Κεφάλαιο 5: Ιεραρχία Μνήμης Memory Hierarchy

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

ΕΠΛ221: Οργάνωση Υπολογιστών και Συμβολικός Προγραμματισμός. Ενότητα 7(α) - Ιεραρχία Μνήμης

Διάλεξη 14 Εισαγωγή στην Ιεραρχία Μνήμης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

Writing kernels for fun and profit

ΕΠΛ 605: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018 ΕΡΓΑΣΙΑ 3 (13/10/2018) Ηµεροµηνία Παράδοσης δεύτερου µέρους: 18/10/2018

Θέµατα Φεβρουαρίου

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

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

Ενότητα 8 (Κεφάλαιο 8) Ιδεατή Μνήμη

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

HY425 Αρχιτεκτονική Υπολογιστών, Χειµερινό Εξάµηνο

Επανάληψη Ιεραρχία Μνήμης Memory Hierarchy. Κεφάλαιο 5- Ιεραρχία Μνήμης

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 9

Τεχνολογίες Κύριας Μνήμης

(advanced_ca, ακ. έτος Cache Optimisations

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

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

Transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

Μετάφραση Σελίδων Πίνακας Σελίδων Page Table Register 3 3 29 28 27 4 3 2 9 8 7 6 5 4 3 2 Virtual Page Number Page Offset Valid Physical Page Number 2b Αν Valid μηδέν, η σελίδα δεν βρίσκεται στη μνήμη 8b Physical Page Number Page Offset 29 28 4 3 2 9 8 7 6 5 4 3 2 cslab@ntua 25-26 4

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

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

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

Μέγεθος Πίνακα Σελίδων Page Table Register 3 3 29 28 27 4 3 2 9 8 7 6 5 4 3 2 2b Valid Virtual Page Number Physical Page Number Page Offset Θεωρούμε ότι κάθε καταχώρηση έχει μέγεθος 4 bytes 2 2 x 4B = 4MB 8b Physical Page Number Page Offset 29 28 4 3 2 9 8 7 6 5 4 3 2 cslab@ntua 25-26 8

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

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

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

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

Two-Level Page Table () cslab@ntua 25-26 23

Two-Level Page Table (2) 32-bit machine, 4K page size: page number : 2 bits page offset : 2 bits Σελιδοποιούμε και τον page table: p -bit page number p 2 -bit page offset cslab@ntua 25-26 24

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

Three-Level Page Table 64-bit machine, 4K page size x86 system, PAE mode, kernel 2.6 PGD 4 entries 2 bits (3-3) PMD 52 entries 9 bits (2-29) PTE 52 entries 9 bits (2-2) page offset 2 bits four-level, x86_64 (48-bit virtual address) PML4 52 entries 9 bits PGD 52 entries 9 bits PMD 52 entries 9 bits PTE 52 entries 9 bits page offset 2 bits Address Length> 48 bits PML5?!? cslab@ntua 25-26 26

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 25-26 27

Inverted Page Table - Κίνητρο Παράδειγμα: 64-bit machine 4K page size 52M φυσική μνήμη Πόση μνήμη χρειαζόμαστε για την αποθήκευση του πίνακα σελίδων? cslab@ntua 25-26 28

Single-level Page Table Μία εγγραφή στον πίνακα σελίδων ανά εικονική σελίδα Εικονική διεύθυνση 64 bits, 2 bits offset = 2 52 καταχωρήσεις στον πίνακα σελίδων Μέγεθος εγγραφής πίνακα σελίδων Κάθε εγγραφή περιέχει: Access control bits + Physical page number 52M φυσική μνήμη = 2 29 bytes Φυσική διεύθυνση 29 bits, 2 bits offset = 2 7 σελίδες Χρειάζονται 7 bits για το physical page number Μέγεθος εγγραφής πίνακα σελίδων 4 bytes 7 bits physical page number 3 bytes Access control bits byte Μέγεθος πίνακα σελίδων 2 52 εγγραφές 2 2 bytes = 2 54 bytes (6 Petabytes) - 64-bit machine - 4K page size - 52M φυσική μνήμη Πολλή μνήμη! Ανά διεργασία... cslab@ntua 25-26 29

Multi-level Page Table Πόσα επίπεδα χρειαζόμαστε για να εξασφαλίσουμε ότι κάθε πίνακας σελίδων απαιτεί μόνο μία σελίδα (4K)? Κάθε εγγραφή του page table απαιτεί 4 bytes Κάθε επίπεδο θα έχει 4K/4 bytes = 24 εγγραφές 24 = 2 = bits ανά επίπεδο Για 52 bits χρειαζόμαστε 6 επίπεδα - 64-bit machine - 4K page size - 52M φυσική μνήμη 6 επίπεδα 6 προσβάσεις στη μνήμη αργό! cslab@ntua 25-26 3

52M φυσικής μνήμης Παρατήρηση 2 29 bytes/2 2 offset = 2 7 φυσικές σελίδες Υπάρχει τρόπος να αποθηκεύσουμε μόνο μία εγγραφή ανά φυσική σελίδα στον πίνακα σελίδων? Μπορούμε να μειώσουμε το μέγεθος του πίνακα σελίδων ακόμα και στα 2M. Θεωρώντας ότι κάθε εγγραφή έχει μήκος 6 bytes 2 7 εγγραφές 2 4 bytes = 2 2 = 2M Inverted Page Table Χρειάζεται μόνο ένας καθολικός πίνακας σελίδων (όχι ανά διεργασία) cslab@ntua 25-26 3

Inverted Page Table () Συνδυασμός page table και frame table σε μια δομή. Κάθε εγγραφή του πίνακα περιέχει Process ID (πίνακας σελίδων είναι κοινός για όλες τις διεργασίες) Virtual page number Μία εγγραφή για κάθε φυσική σελίδα Στο παράδειγμά μας: Έστω 6 bits για το process ID, 52 bits virtual page number, 2 access bits 8 bits σύνολο = bytes bytes 2 7 εγγραφές.3m (για όλο το σύστημα!) - 64-bit machine - 4K page size - 52M φυσική μνήμη cslab@ntua 25-26 32

Inverted Page Table (2) pid vpn offset x x23 Index PID VPN x xa63 x8fb x x8fc 3 x3ab x8fb ppn Lookup time? x23 offset cslab@ntua 25-26 33

Hashed Inverted Page Table () Το Inverted Page Table απαιτεί πολλές προσβάσεις μνήμης για το lookup. Μπορούμε να κρατάμε ένα επιπλέον επίπεδο πριν το πραγματικό page table (hash anchor table) Αντιστοιχίζει ζεύγη process ID, virtual page number σε εγγραφές του πίνακα σελίδων Χρήση πεδίου Next στον πίνακα σελίδων για επίλυση συγκρούσεων Πηγαίνουμε πρώτα στον hash anchor table Σύγκριση process ID και virtual page number Αν ταιριάζουν τότε βρέθηκε η κατάλληλη εγγραφή Αν όχι ακολουθούμε το πεδίο Next μέχρι να φτάσουμε στην κατάλληλη εγγραφή cslab@ntua 25-26 34

Hashed Inverted Page Table (2) pid vpn offset x x23 hash Table Index x8fc xaf3 x Index PID VPN Next x xa63 x8fb x8fb x x8fc 3 x3ab xa92 x8fb ppn x23 offset cslab@ntua 25-26 35

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

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

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

cslab@ntua 25-26 39

Paging & Segmentation cslab@ntua 25-26 4

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

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 25-26 42

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

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 25-26 44

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

Intrinsity fastmath processor 32 bit address space/byte addressing 4KB/page TLB fully associative: 6 entries cslab@ntua 25-26 46

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

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

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/234/maps (a) 4-4 r-xp... /scratch/esumbar/map (b) 5-5 rw-p... /scratch/esumbar/map (c) 5-2d rwxp... (d) 2a95556-2a95557 rw-p... (e) 2a95578-2a9697c rw-p... (f) 33c3-33c35 r-xp... /lib64/ld-2.3.4.so (g) 33c44-33c46 rw-p... /lib64/ld-2.3.4.so (h) 33c5-33c62a r-xp... /lib64/tls/libc-2.3.4.so (i) 33c62a-33c729 ---p... cslab@ntua 25-26 49

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 25-26 5

Pentium P4 / AMD Opteron cslab@ntua 25-26 5

Pentium P4 / AMD Opteron cslab@ntua 25-26 52

Desktop/embedded/server microprocessors (24) Things are getting complicated! cslab@ntua 25-26 53

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

Σύνοψη cslab@ntua 25-26 55

Read/Write (Intrinsity FastMATH cpu) cslab@ntua 25-26 56