Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual...

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

Transcript of Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual...

Page 1: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

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

• Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστήταυτόχρονα σε ένα υπολογιστή

• Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAMμεγαλύτερη από το μέγεθος της RAM

• Αρχή τοπικότητας (η μνήμη χρησιμοποιείται από τα ενεργά τμήματα χρησιμοποιείται από τα ενεργά τμήματα των προγραμμάτων – working sets)

• Πρέπει να εξασφαλίσουμε προστασίαΠρέπει να εξασφαλίσουμε προστασίαμεταξύ των προγραμμάτων

cslab@ntua 2010-2011 1

Page 2: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

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

• Την ώρα του compile, δεν γνωρίζουμε ά θ άζ ποια προγράμματα θα μοιράζονται τη

μνήμη∆– ∆υναμική εκτέλεση προγραμμάτων

• Θέλουμε κάθε πρόγραμμα να νομίζει ότι έχει τη δική του μνήμη

• Θέλουμε κάθε πρόγραμμα να νομίζει ότι μ ρ γρ μμ μ ζέχει απεριόριστη μνήμη (μεγαλύτερη από τη RAM)

cslab@ntua 2010-2011

η )

2

Page 3: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Εικονική Μνήμη (virtual memory)• Η Virtual memory ελέγχει 2 επίπεδα της ιεραρχίας μνήμης:

• Κύρια μνήμη (DRAM) • Μαζική αποθήκευση (συνήθως μαγνητικοί δίσκοι)

• Η κύρια μνήμη διαιρείται σε blocks κατανεμημένες σε διαφορετικές τρέχουσες διεργασίες του συστήματος:

• Βlocks καθορισμένου μεγέθους: Pages (μέγεθος 4k έως 64k bytes).• Βlocks μεταβλητού μεγέθους : Segments (μέγεθος το πολύ 216 μέχρι 232)

• Σε δεδομένο χρόνο, για κάθε τρέχουσα διεργασία, ένα κομμάτι των δεδομένων ή του κώδικα φορτώνεται στην κύρια μνήμη ενώ το υπόλοιπο είναι διαθέσιμο μόνο στους μαγνητικούς δίσκους.Έ α bl k κώδ κα ή δ δ μέ ω υ χ άζ α α η κ έλ η μ α • Ένα block κώδικα ή δεδομένων που χρειάζεται για την εκτέλεση μιας διεργασίας αλλά δεν υπάρχει στη κύρια μνήμη έχει ως αποτέλεσμα ένα page fault (address fault) και το block πρέπει να φορτωθεί στην κύρια μνήμη από το δίσκο ή τον χειριστή του λειτουργικού συστήματος (OS handler).Έ ό ί λ ί δή θέ ύ ή ή • Ένα πρόγραμμα μπορεί να εκτελεστεί σε οποιαδήποτε θέση της κύριας μνήμης ή του δίσκου χρησιμοποιώντας έναν μηχανισμό επανατοποθέτησης ο οποίος να ελέγχεται από το λειτουργικό σύστημα που να αντιστοιχεί τις διευθύνσεις από τον χώρο των virtual addresses (logical program address) στο χώρο τωνphysical addresses (κύρια μνήμη δίσκος)physical addresses (κύρια μνήμη, δίσκος).

cslab@ntua 2010-2011 3

Page 4: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

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

• Εικονική Μνήμη υλοποιεί μετάφραση του χώρου διευθύνσεων ενός προγράμματος σε

φυσικές διευθύνσεις• ∆ιαδικασία μετάφρασης ενισχύει την προστασίαρ

(Εικονική μνήμη μοιάζει με την cache)

cslab@ntua 2010-2011 4

Page 5: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Τι βλέπει η εφαρμογή....

Εικονικές Διευθύνσεις

cslab@ntua 2010-2011

4GB5

Page 6: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μετάφραση των Μετάφραση των Virtual AddressesVirtual Addresses

Physical memory

Valid

Page table

Virtual pagenumber

Physica l page ordisk address

1

1

1

1

0

1

1

D isk storage

0

1

1

0

11

cslab@ntua 2010-2011 6

Page 7: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Τι συμβαίνει στην πραγματικότητα!!

other process

Εικονικές Διευθύνσεις Φυσικές Διευθύνσεις

Μετάφραση Διευθύνσεων

other process

1GB RAM

ΔιευθύνσειςΔίσκου

500GB DISK

cslab@ntua 2010-2011

4GB500GB DISK

7

Page 8: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Εικονική Μνήμη• ∆ιεύθυνση χωρίζεται σε δύο τμήματα

– αριθμός εικονικής σελίδας (virtual page αρ θμός ε κον κής σελ δας (v rtual page number)

– σχετική απόσταση σελίδας (page offset)χ ή η ς (p g )Εικονική Διεύθυνση

Virtual Page Number Page Offset

3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

προσδιορίζει μέγεθος σελίδαςπ.χ. 4KB

cslab@ntua 2010-2011

π.χ. 4K

8

Page 9: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μετάφραση Σελίδων

3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Εικονική Διεύθυνση 4GB virtual space220 virtual pages

Virtual Page Number Page Offset

Translation 4KB page size

Physical Page Number Page Offset

2928 1413121110 9 8 7 6 5 4 3 2 1 0

Φυσική Διεύθυνση 1GB  physical space (RAM)218 physical pages

cslab@ntua 2010-2011

G physical space (RAM)

9

Page 10: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Πλεονεκτήματα– Έχουμε την ψευδαίσθηση ότι διαθέτουμε περισσότερη φυσική κύρια μνήμηΕπιτρέπει τον επανατοποθέτηση των προγραμμάτων– Επιτρέπει τον επανατοποθέτηση των προγραμμάτων

– Προστατεύει από παράτυπη πρόσβαση στη μνήμη

3 2 1 01 1 1 0 9 81 5 1 4 1 3 1 23 1 3 0 2 9 2 8 2 7

Page offsetVirtual page number

Virtualaddress

Translation

3 2 1 01 1 1 0 9 81 5 1 4 1 3 1 22 9 2 8 2 7

Page offsetPhysical page number

Physicaladdress

cslab@ntua 2010-2011

Physicaladdress

10

Page 11: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Σχεδιαστικές Επιλογές• Υψηλό κόστος αστοχίας – σφάλμα σελίδας

(page fault)Π ( – Περιεχόμενα στο δίσκο (100.000 φορές πιο αργός)

• Σχεδιαστικές αποφάσεις για αποφυγή • Σχεδιαστικές αποφάσεις για αποφυγή αστοχιών– «Μεγάλες» σελίδες (4KB – 16KB)Μεγάλες σελίδες (4KB 16KB)– Fully associative τοποθέτηση σελίδων στη μνήμη– Σφάλματα αντιμετωπίζονται με λογισμικό – πιο έξυπνοι αλγόριθμοι επιλογής/τοποθέτησης σελίδωνΜόνο write back (γιατί όχι write through;)

cslab@ntua 2010-2011

– Μόνο write-back (γιατί όχι write through;)

11

Page 12: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Σχεδιαστικά Λάθη• Συνήθως virtual address είναι μεγαλύτερη από physical addressαπό physical address– π.χ. 4GB virtual space vs 1GB physical space

(RAM)(RAM)• Τι γίνεται όταν μέγεθος διεύθυνσης επεξεργαστή είναι μικρό σε σχέση με τις επεξεργαστή είναι μικρό σε σχέση με τις τεχνολογίες μνημών;

ώ λύ ά ά 8GB RAM – π.χ. μπορώ πολύ φτηνά να αγοράσω 8GB RAM, αλλά κυκλοφορούν μόνο 32bit υπολογιστές

cslab@ntua 2010-2011 12

Page 13: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Σχεδιαστικά Λάθη• Με 32bit υπολογιστή μπορούμε θεωρητικά να προσπελάσουμε 4GB και στην πράξη γύρω στα προσπελάσουμε 4GB και στην πράξη γύρω στα 3 – 3,5GBβλ memory mapped devices• βλ. memory mapped devices

• βλ. OS kernel address space• περισσότερα στα Λειτουργικά Συστήματα –ΡΟΗ Υ

cslab@ntua 2010-2011 13

Page 14: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μετάφραση Σελίδων – Πίνακας Σελίδων3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Virtual Page Number Page Offset

3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Page Valid Physical Page NumberPageTable

Register20b

Valid Physical Page Number

Α V lid δέ λίδΑν Valid μηδέν, η σελίδαδεν βρίσκεται στη μνήμη

Physical Page Number Page Offset

18b

cslab@ntua 2010-2011

y g g

2928 1413121110 9 8 7 6 5 4 3 2 1 014

Page 15: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μετάφραση Σελίδων – Πίνακας ΣελίδωνVirtual Page NumberVirtual Page Number

ValidPhysical Page Number or

Disk address 4KB4KB

Physical MemoryRAM

11101

4KB

11011001

Disk Swap Space

4KB

Disk Swap Space

cslab@ntua 2010-2011 15

Page 16: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μετάφραση Virtual -> Physical Addresses

Οι Physical θέσεις των blocks A, B, C

Συνε ό ενος ώροςΣυνεχόμενος χώρος των virtual addressesενός προγράμματος

cslab@ntua 2010-2011 16

Page 17: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Εικονική Μνήμη• Αν φυσική μνήμη γεμάτη (σύνολο προγραμμάτων μπορεί μεγαλύτερο από προγραμμάτων μπορεί μεγαλύτερο από φυσική μνήμη), γίνεται αντικατάσταση– Σελίδα dirty γράφεται στο δίσκο (swap space)Σελίδα dirty γράφεται στο δίσκο (swap space)– Νέα σελίδα έρχεται στη φυσική μνήμηΠρόγραμμα συνεχίζει εκτέλεση– Πρόγραμμα συνεχίζει εκτέλεση

• Αλγόριθμος αντικατάστασης LRU (μας θυμίζει τίποτα;) σε software operating θυμίζει τίποτα;) σε software-operating system

cslab@ntua 2010-2011 17

Page 18: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μέγεθος Πίνακα Σελίδων3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Virtual Page Number Page Offset

3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Page Valid Physical Page NumberPageTable

Register20b

Valid Physical Page Number

Θεωρούμε ότι κάθε καταχώρησηέχει μέγεθος 4 bytes

220 x  4B = 4MB

Physical Page Number Page Offset

18b

cslab@ntua 2010-2011

y g g

2928 1413121110 9 8 7 6 5 4 3 2 1 018

Page 19: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Μέγεθος Πίνακα Σελίδων3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Virtual Page Number Page Offset

3130292827 1413121110 9 8 7 6 5 4 3 2 1 0

Page Valid Physical Page NumberPageTable

Register20b

Valid Physical Page Number

Θεωρούμε ότι κάθε καταχώρησηέχει μέγεθος 4 bytes

220 x  4B = 4MBΔηλ για κάθε πρόγραμμα πουΔηλ. για κάθε πρόγραμμα πουεκτελείται, ξοδεύουμε 4MBφυσικής μνήμης για πίνακα σελίδων!!!

Physical Page Number Page Offset

18b

cslab@ntua 2010-2011

y g g

2928 1413121110 9 8 7 6 5 4 3 2 1 019

Page 20: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Page TablePage Table

PageoffsetVirtual pagenumber

Virtual address

Pagetableregister

3 1 30 2 9 28 2 7 1 5 1 4 1 3 12 1 1 1 0 9 8 3 2 1 0

PageoffsetVirtual pagenumber

Physical pagenumberV a lid

2 0 12

Χρειάζονται 2

Pagetable

ρ ζπροσπελάσεις μνήμης:•στο page table•στο αντικείμενο

If 0 thenpage is not18

στο αντικείμενο

PageoffsetPhysical pagenumber

If 0 thenpage is notpresent inmemory

2 9 2 8 2 7 15 1 4 1 3 1 2 1 1 10 9 8 3 2 1 0

cslab@ntua 2010-2011

Physical address

20

Page 21: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Αντιστοίχιση τωνΑντιστοίχιση των Virtual Addresses Virtual Addresses σεσεPhysical Addresses Physical Addresses μέσω ενόςμέσω ενός πίνακα σελίδων πίνακα σελίδων

((Page TablePage Table))((Page TablePage Table))

cslab@ntua 2010-2011 21

Page 22: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Πολυεπίπεδοι Πίνακες Σελίδων

Τα τμήματα του πίνακας σελίδων που δεν χρειάζονται, δεν βρίσκονται στη μνήμη.

cslab@ntua 2010-2011 22

Page 23: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Translation‐Lookaside Buffer (TLB)Virtual PageVirtual Page Number

Physical Page #

Physical MemoryRAM

Valid

Dirty

Reference

Virtual Page #TLB (fully assosiative)

1110

0100

1110

e

Valid

Dirty

Reference

Page Table001

Di k S S

101

10

10

10 Disk Swap Space

101

000

cslab@ntua 2010-2011

000

23

Page 24: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Ενέργειες Μετάφρασης Διευθύνσεων

Προσπέλαση TLBΕυστοχία TLB;

ΕικονικήΔιεύθυνση

TLB hit ΦυσικήΔιεύθυνση

cache...

TLB miss

ΠροσπέλασηPage TablePage Table

Page Table hit ΕυστοχίαPage Table hit Ευστοχία TLB;

Page Table missExceptionΑνάγνωση page από δίσκο 

ExceptionΗ σελίδα δεν υπάρχει. 

Υπάρχει στο 

δίσκο;

Ναι

στη RAM και ενημέρωση Page Table

ρχΠροφανώς λάθος προσπέλαση μνήμης. Η διεργασία σκοτώνεται.Segmentation Fault... 

Όχι

cslab@ntua 2010-2011

δίσκο; g

24

Page 25: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

cslab@ntua 2010-2011 25

Page 26: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Paging Paging && SegmentationSegmentation

cslab@ntua 2010-2011 26

Page 27: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Τυπικές Τυπικές παράμετροιπαράμετροι Cache Cache καικαι Virtual MemoryVirtual Memory

cslab@ntua 2010-2011 27

Page 28: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Virtual Virtual MemoryMemory: : ΣτρατηγικέςΣτρατηγικές• Τοποθέτηση του block στην κύρια μνήμη: Η fully associative τεχνική

χρησιμοποιείται για την ελάττωση του miss rate.• Αντικατάσταση του block: The least recently used (LRU) block Αντικατάσταση του 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 χρησιμοποιείται συνήθως ο• Για την αξιοποίηση της address locality, χρησιμοποιείται συνήθως ο

translation look-aside buffer (TLB) για την αποθήκευση των προσφάτως μεταφρασμένων διευθύνσεων ώστε να αποφεύγεται προσπέλαση της μνήμης προκειμένου να διαβαστεί ο πίνακας σελίδων (page table).

cslab@ntua 2010-2011 28

Page 29: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Συνδυασμός Virtual Memory, TLB, cache

σελ 543 βιβλίου (εικόνα)

cslab@ntua 2010-2011 29

Page 30: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Page Faults

• Page faults: the data is not in memory, Page faults the data s not n 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)the price)– can handle the faults in software instead of

hardware– using write-through is too expensive so we use

writeback

cslab@ntua 2010-2011 30

Page 31: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Επιτάχυνση της μετάφρασης διευθύνσεωνΕπιτάχυνση της μετάφρασης διευθύνσεων::Translation Translation LookasideLookaside Buffer (TLB)Buffer (TLB)Translation Translation LookasideLookaside Buffer (TLB)Buffer (TLB)

• TLB: Μία μικρή on-chip fully-associative cache που χρησιμοποιείται για τη μετάφραση διευθύνσεων.

• Αν μία virtual address υπάρχει μέσα στο TLB (TLB hit) δεν • Αν μία virtual address υπάρχει μέσα στο TLB (TLB hit), δεν προσπελαύνεται ο πίνακας σελίδων της κύριας μνήμης.

TLB (on-chip)128-256 Entries

Physical PageAddress

Virtual PageTagValid

111101

Physical Memory

Virtual PageNumber

128-256

11

Physical Pageor Disk AddressValid

TLB Entries

1110110

Disk Storage

Page Table(in main memory)

cslab@ntua 2010-2011

1101

31

Page 32: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Intrinsity fastMATH processorIntrinsity fastMATH processor

•32 bit address space/byte •32 bit address space/byte addressing

•4KB/page

•TLB fully associative: 16 entries

cslab@ntua 2010-2011 32

Page 33: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

TLB & Cache Operation (Intrinsity FastMATH)TLB & Cache Operation (Intrinsity FastMATH)TLB Operation

Virtual address

p

TLB access

Cache is physically-addressed

Yes

W rite?

TLB hit?No

YesNo

TLB missuse page table Physical address

Cache operationW rite?

Try to read datafrom cache W rite a ccess

bit on?YesNo

Cache operation

W rite data into ca che,upda te the tag , a nd put

the da ta a nd the addre ssin to the w rite buffe r

Cache hit?Cache miss stallYesNo

Write protectionexception

cslab@ntua 2010-2011

Deliver datato the CPU

33

Page 34: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

TLB, virtual memory, cache συνδυασμοί

TLB Page Table Cache Possible? If so under what circumstance?

hit hit miss Possible although the page table is never reallyhit 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 cachedata 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 p p gnot present in memory

miss miss hit Impossible: data cannot be allowed in cache if the page is not in memory

cslab@ntua 2010-2011 34

Page 35: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Pentium P4 / AMD Opteron

cslab@ntua 2010-2011 35

Page 36: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Pentium P4 / AMD Opteron

cslab@ntua 2010-2011 36

Page 37: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Desktop/embedded/server microprocessors (2004)• Things are getting complicated!• Things are getting complicated!

cslab@ntua 2010-2011 37

Page 38: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Η λειτουργία τουΗ λειτουργία του Alpha AXP 21064 Data TLB Alpha AXP 21064 Data TLB κατά τη κατά τη μετάφραση των διευθύνσεωνμετάφραση των διευθύνσεων

Virtual addressVirtual address TLB = 32 blocksTLB = 32 blocksData cache = 256 blocksData cache = 256 blocks

Η πρόσβαση στα Η πρόσβαση στα TLB TLB γίνεται συνήθως με την γίνεται συνήθως με την τεχνικήτεχνική pipelinepipeline

V lidV lidValidValid

ReadPermission WriteWrite

PermissionPermission

cslab@ntua 2010-2011

PermissionPermission

38

Page 39: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Σύνοψη

cslab@ntua 2010-2011 39

Page 40: Εικονική Μνήμη (virtual memory) · 2013-05-17 · Εικονική Μνήμη (virtual memory) • Πολλά προγράμματα εκτελούνται ταυτόχρονα

Read/Write (Intrinsity FastMATH cpu)Read/Write (Intrinsity FastMATH cpu)

cslab@ntua 2010-2011 40