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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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;

Cach O p i timisati tions

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

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

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

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

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

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

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

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

Writing kernels for fun and profit

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σειρά Ασκήσεων 10: Εικονική Μνήμη (Virtual Memory)

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

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

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

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

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

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

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

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

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

Transcript:

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

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

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

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

Μετάφραση των Virtual Addresses V irtu a l p a g e nu m b e r V a lid P a g e ta b le P h y s ic a l p a g e o r d is k a d d re s s P h ys ic a l m e m o ry D is k s to ra g e cslab@ntua 27-28 6

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

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

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

Πλεονεκτήματα Έχουμε την ψευδαίσθηση ότι διαθέτουμε περισσότερη φυσική κύρια μνήμη Επιτρέπει την επανατοποθέτηση των προγραμμάτων Προστατεύει από παράτυπη πρόσβαση στη μνήμη Virtual addres s 3 3 2 9 2 8 2 7 5 4 3 2 9 8 3 2 V irtu a l p a g e n um b e r P a g e o ffs e t T ra n s la tio n 2 9 2 8 2 7 5 4 3 2 9 8 3 2 P hy s ic a l pa g e n um be r P a g e o ffs e t P hys ical address cslab@ntua 27-28

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

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

Σχεδιαστικά Λάθη Με 32bit υπολογιστή μπορούμε θεωρητικά να προσπελάσουμε 4GB και στην πράξη γύρω στα 3 3,5GB βλ. memory mapped devices βλ. OS kernel address space περισσότερα στα Λειτουργικά Συστήματα ΡΟΗ Υ cslab@ntua 27-28 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 2928 432 9 8 7 6 5 4 3 2 cslab@ntua 27-28 4

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

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

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

Μέγεθος Πίνακα Σελίδων Page Table Register 33292827 432 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 2928 432 9 8 7 6 5 4 3 2 cslab@ntua 27-28 8

Μέγεθος Πίνακα Σελίδων Page Table Register 33292827 432 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 2928 432 9 8 7 6 5 4 3 2 cslab@ntua 27-28 9

Page Table Page table register Virtual address 3 3 2 9 2 8 2 7 5 4 3 2 9 8 3 2 Virtual page number P age offset Χρειάζονται 2 προσπελάσεις μνήμης: στο page table στο αντικείμενο Page table V a lid 2 2 P hysical page number If then page is not present in memory 8 2 9 2 8 2 7 5 4 3 2 9 8 3 2 Physical page number Page offset Physical address cslab@ntua 27-28 2

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

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

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

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

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

cslab@ntua 27-28 39

Paging & Segmentation cslab@ntua 27-28 4

Τυπικές παράμετροι Cache και Virtual Memory cslab@ntua 27-28 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 27-28 42

Συνδυασμός Virtual Memory, TLB, cache σελ 543 βιβλίου (εικόνα) cslab@ntua 27-28 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 27-28 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 27-28 45

Intrinsity fastmath processor 32 bit address space/byte addressing 4KB/page TLB fully associative: 6 entries cslab@ntua 27-28 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 No T L B h it? Y es Physical address No W rite? Y es Cache operation T ry to re a d da ta from c a c he No W rite a c c e s s b it o n? Y es C a c h e m is s s ta ll No C a c he h it? Y es Write protec tion exc eption W rite d a ta in to c a c h e, u p d a te th e ta g, a n d p u t th e d a ta a n d th e a d d re s s in to th e w rite b u ffe r Deliver data to the C P U cslab@ntua 27-28 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 27-28 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 27-28 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 27-28 5

Pentium P4 / AMD Opteron cslab@ntua 27-28 5

Pentium P4 / AMD Opteron cslab@ntua 27-28 52

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

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

Σύνοψη cslab@ntua 27-28 55

Read/Write (Intrinsity FastMATH cpu) cslab@ntua 27-28 56