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

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

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

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

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

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

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

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

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

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

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

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

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

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

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

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

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

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

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

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

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

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

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

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

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

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

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

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

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

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

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

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

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

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

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

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

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

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

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

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

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

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

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

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

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

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

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

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

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

Ειςαγωγή ςτην πληροφορική

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

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

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

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

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

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ

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

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

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 5 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Α

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

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

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

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

Εικονικοποίθςθ. Λειτουργικά Συςτιματα Υπολογιςτϊν 6ο Εξάμθνο,

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

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

ΔΙΑΛΕΞΕΙΣ 6-7: ΚΡΥΦΗ ΜΝΗΜΗ (Cache)

Finite Field Problems: Solutions

Transcript:

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

Εικονικι Μνιμθ (virtual memory) Σθν ϊρα του compile, δεν γνωρίηουμε ποια προγράμματα κα μοιράηονται τθ μνιμθ Δυναμικι εκτζλεςθ προγραμμάτων Θζλουμε κάκε πρόγραμμα να νομίηει ότι ζχει τθ δικι του μνιμθ Θζλουμε κάκε πρόγραμμα να νομίηει ότι ζχει απεριόριςτθ μνιμθ (μεγαλφτερθ από τθ RAM) cslab@ntua 22-23 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 22-23 3

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

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

Μετάφραςθ των Virtual Addresses V irtu a l pa 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 or d is k a d dre s s P h ys ic a l m e m o ry D is k s to ra g e cslab@ntua 22-23 6

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

Εικονικι Μνιμθ Διεφκυνςθ χωρίηεται ςε δφο τμιματα αρικμόσ εικονικισ ςελίδασ (virtual page number) ςχετικι απόςταςθ ςελίδασ (page offset) Εικονικι Διεφκυνςθ 33292827 432 9 8 7 6 5 4 3 2 Virtual Page Number Page Offset προςδιορίηει μζγεκοσ ςελίδασ π.χ. 4KB cslab@ntua 22-23 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 22-23 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 22-23

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

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

Σχεδιαςτικά Λάκθ Με 32bit υπολογιςτι μποροφμε κεωρθτικά να προςπελάςουμε 4GB και ςτθν πράξθ γφρω ςτα 3 3,5GB βλ. memory mapped devices βλ. OS kernel address space περιςςότερα ςτα Λειτουργικά υςτιματα ΡΟΗ Τ cslab@ntua 22-23 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 22-23 4

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

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

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

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

Πολυεπίπεδοι Πίνακεσ Σελίδων Τα τμιματα του πίνακασ ςελίδων που δεν χρειάηονται, δεν βρίςκονται ςτθ μνιμθ. cslab@ntua 22-23 22

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 22-23 23

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

cslab@ntua 22-23 25

Paging & Segmentation cslab@ntua 22-23 26

Τυπικζσ παράμετροι Cache και Virtual Memory cslab@ntua 22-23 27

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 22-23 28

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

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

Επιτάχυνςθ τθσ μετάφραςθσ διευκφνςεων 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 22-23 3

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

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 hit? Y es Physical address No W rite? Y es Cache operation T ry to re ad da ta from c ac he No W rite a c c e s s b it o n? Y es C a c h e mis s s ta ll No C ac 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 22-23 33

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 22-23 34

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 22-23 35

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

Pentium P4 / AMD Opteron cslab@ntua 22-23 37

Pentium P4 / AMD Opteron cslab@ntua 22-23 38

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

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

Σφνοψθ cslab@ntua 22-23 4

Read/Write (Intrinsity FastMATH cpu) cslab@ntua 22-23 42