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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών (ΙI)

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

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

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

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

Διαχείριση Μνήμης (Memory Management)

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

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

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών

Writing kernels for fun and profit

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Transcript:

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

Εικονική Μνήμη (virtual memory) Την ώρα του compile, δεν γνωρίζουμε ποια προγράμματα θα μοιράζονται τη μνήμη Δυναμική εκτέλεση προγραμμάτων Θέλουμε κάθε πρόγραμμα να νομίζει ότι έχει τη δική του μνήμη Θέλουμε κάθε πρόγραμμα να νομίζει ότι έχει απεριόριστη μνήμη (μεγαλύτερη από τη RAM) cslab@ntua 23-24 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 23-24 3

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

Τι βλέπει η εφαρμογή... Εικονικές Διευθύνσεις 4GB cslab@ntua 23-24 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 23-24 6

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

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

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

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

Μετάφραση Σελίδων Πίνακας Σελίδων Page Table Register 33292827 432 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 23-24 4

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

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

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

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

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

Two-Level Page Table () cslab@ntua 23-24 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 23-24 24

Two-Level Page Table (3) Μετάφραση διεύθυνσης cslab@ntua 23-24 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 23-24 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 23-24 27

Inverted Page Table () Συνδυασμός 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 23-24 28

Inverted Page Table (2) cslab@ntua 23-24 29

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 23-24 3

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 23-24 3

Ενέργειες Μετάφρασης Διευθύνσεων Εικονική Διεύθυνση Προσπέλαση 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 23-24 32

cslab@ntua 23-24 33

Paging & Segmentation cslab@ntua 23-24 34

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

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 23-24 36

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

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 23-24 38

Επιτάχυνση της μετάφρασης διευθύνσεων 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 23-24 39

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

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 23-24 4

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 23-24 42

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 23-24 43

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 23-24 44

Pentium P4 / AMD Opteron cslab@ntua 23-24 45

Pentium P4 / AMD Opteron cslab@ntua 23-24 46

Desktop/embedded/server microprocessors (24) Things are getting complicated! cslab@ntua 23-24 47

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

Σύνοψη cslab@ntua 23-24 49

Read/Write (Intrinsity FastMATH cpu) cslab@ntua 23-24 5