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

Σχετικά έγγραφα
ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

Ασκήσεις Caches

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

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

CMOS Technology for Computer Architects

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

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

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

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

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

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

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

Τελική Εξέταση, Απαντήσεις/Λύσεις

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

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

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

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

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

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

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

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

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

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

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

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

Writing kernels for fun and profit

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

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

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

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

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

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

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

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

Instruction Execution Times

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

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

Προηγμένοι Μικροεπεξεργαστές. Υποσύστημα Μνήμης

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

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

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

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

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

Modbus basic setup notes for IO-Link AL1xxx Master Block

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Πολυεπεξεργαστές

Transcript:

2/9/5 ΗΜΥ 32 -- ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ Διδάσκουσα: ΜΑΡΙΑ Κ. ΜΙΧΑΗΛ Επίκουρη Καθηγήτρια, ΗΜΜΥ (mmichael@ucy.ac.cy) [Προσαρµογή από Computer Architecture, Hennessy & Patterson, 25, UCB] (ΕΠ) ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΙΕΡΑΡΧΙΑΣ ΜΝΗΜΗΣ Στόχος: Ο χρήστης βλέπει όσο το δυνατό περισσότερη µνήµη, στην ταχύτητα που προσφέρει η πιο γρήγορη τεχνολογία και στο κόστος της πιο φθηνής τεχνολογίας Πως; Χρήση πλεονεκτήµατος τοπικότητας (locality) Processor Αυξανόµενη απόσταση από επεξεργαστή σε χρόνο προσπέλασης L$ L2$ Main Memory 4-8 bytes (word) 8-32 bytes (block) to 4 blocks Secondary Memory,24+ bytes (disk sector = page) Inclusive ότι περιέχει το L$ είναι υποσύνολο του L2$ που είναι υποσύνολο της MM που είναι υποσύνολο της SM Σχετικό (relative) µέγεθος µνήµης σε κάθε επίπεδο ΗΜΥ32 Δ8.Εικονική Μνήµη.2

2/9/5 Η ιεραρχία στο υλικό CPU! regs! C! 8 B! a! 32 B! Memory! 4 KB! c! h! e! disk! Register! Cache! Memory! Disk Memory! size: speed: 4B x 32 ns 32 KB-8MB 2 ns 2-3 GB 3 ns -5 GB 8 ms $/Mbyte: line size: 4 B $25/MB 32 B $.2/MB 4 KB $./MB Larger slower cheaper! ΗΜΥ32 Δ8.Εικονική Μνήµη.3 Τα κίνητρα για την Εικονική Μνήµη Ø Χρήση της φυσικής DRAM σαν Cache για το Hard Disk Ø Address space of a process can exceed physical memory size Ø Sum of address spaces of multiple processes can exceed physical memory Ø Απλοποίηση της διαχείρησης µνήµης Ø Multiple processes resident in main memory Ø Each process with its own address space Ø Only active code and data is actually in memory Ø Allocate more memory to process as needed Ø Προστασία δεδοµένων Ø One process can t interfere with another Ø because they operate in different address spaces Ø User process cannot access privileged information Ø different sections of address spaces have different permissions ΗΜΥ32 Δ8.Εικονική Μνήµη.4 2

2/9/5 Κίνητρο #: DRAM a Cache for Disk Ø Το µέγεθος του address space είναι ΠΟΛΥ µεγάλο: Ø 32-bit addresses: ~4,,, (4 billion) bytes Ø 64-bit addresses: ~6,,,,,, (6 quintillion) bytes Ø Η αποθήκευση στον σκληρό δίσκο είναι ~3X φθηνότερη από την DRAM Ø 8 GB of DRAM: ~ $33, Ø 8 GB of disk: ~ $ Ø Αρα, για αποτελεσµατική σε σχέση µε το κόστος αποθήκευση, χρειαζόµαστε ΜΕΓΑΛΟΥΣ δίσκους! 4 MB: ~$5 GB: ~$2 8 GB: ~$ SRAM DRAM Disk ΗΜΥ32 Δ8.Εικονική Μνήµη.5 Επίπεδα στην Ιεραρχία Μνήµης cache virtual memory CPU! regs! C! 8 B! a! 32 B! Memory! 4 KB! c! h! e! disk! Register! Cache! Memory! Disk Memory! size: speed: 4B x 32 ns 32 KB-8MB 2 ns 2-3 GB 3 ns -5 GB 8 ms $/Mbyte: line size: 4 B $25/MB 32 B $.2/MB 4 KB $./MB Larger slower cheaper! ΗΜΥ32 Δ8.Εικονική Μνήµη.6 3

2/9/5 DRAM vs. SRAM ως µνήµη Cache Ø DRAM vs. disk : Ακόµη χειρότερα από την σύγκριση SRAM vs. DRAM Ø Access latencies: Ø DRAM ~X slower than SRAM Ø Disk ~,X slower than DRAM Ø Importance of exploiting spatial locality: Ø First byte is ~,X slower than successive bytes on disk vs. ~4X improvement for page-mode vs. regular accesses to DRAM Ø Συµπέρασµα: Ø Οι σχεδιαστικές αποφάσεις για τα DRAM caches καθορίζονται από τον χρόνο προσπέλασης του δίσκου! SRAM DRAM Disk ΗΜΥ32 Δ8.Εικονική Μνήµη.7 Virtual Memory ( ΕΙΚΟΝΙΚΗ ΜΝΗΜΗ) Ø Χρήση της κυρίως µνήµης σαν cache για δευτερεύουσα µνήµη ΗΜΥ32 Δ8.Εικονική Μνήµη.8 Ø Αποτελεσµατική και ασφαλής χρήση µνήµης από πολλαπλά προγράµµατα Ø Ικανότητα εκτέλεσης προγραµµάτων µεγαλύτερων από την κύρια µνήµη Ø Απλοποιεί την φόρτωση ενός προγράµµατος για εκτέλεση παραχωρώντας εύκολη κατανοµή του κώδικα στην µνήµη (i.e., the code can be loaded anywhere in main memory) Ø Πως δουλεύει? Τοπικότητα (Principle of Locality)!!! Ø Ένα πρόγραµµα πιθανό να προσπελάσει µικρό κοµµάτι του κώδικα του κατά µια µικρή χρονική διάρκεια. Ø Το κάθε πρόγραµµα συµβολοµεταφράζεται (compiled) στο δικό του address space ένα virtual address space Ø Κατά την εκτέλεση, το κάθε virtual address πρέπει να αντιστοιχεί σε ένα physical address (an address in main memory) 4

2/9/5 Κίνητρο #2: Διαχείρηση Μνήµης Ø Πολλαπλές εργασίες (processes) µπορούν να κρατούν δεδοµένα στην φυσική µνήµη Ø Πώς επιλύουµε λοιπόν τις συγκρούσεις; Ø what if two processes access something at the same address? %esp kernel virtual memory stack memory invisible to user code Linux/x86 process memory image ΗΜΥ32 Δ8.Εικονική Μνήµη.9 Memory mapped region for shared libraries runtime heap (via malloc) uninitialized data (.bss) initialized data (.data) program text (.text) forbidden the brk ptr Η λύση: Διαφορετικά Virtual Address Spaces Ø Τα Virtual and physical address spaces διερούνται σε blocks ιδίου µεγέθους (τις ονοµάζουµε «σελίδες»). Ø blocks are called pages (both virtual and physical) Ø Το κάθε process έχει το δικό του virtual address space Ø operating system controls how virtual pages as assigned to physical memory Virtual Address Space for Process : Virtual Address Space for Process 2: N- N- VP VP 2... VP VP 2... Address Translation M- PP 2 PP 7 PP Physical Address Space (DRAM) (e.g., read/only library code) ΗΜΥ32 Δ8.Εικονική Μνήµη. 5

2/9/5 Πως Δύο Προγράµµατα µοιράζονται το Physical Memory Ø Το address space ενός προγράµµατος χωρίζεται σε pages/σελίδες (σταθερό µέγεθος) ή segments (µεταβλητό µέγεθος) Ø Η έναρξη της κάθε σελίδας (είτε στην κυρίως µνήµη είτε στη δευτερεύουσα µνήµη) δίνεται στο page table κάθε προγράµµατος Program virtual address space main memory Program 2 virtual address space ΗΜΥ32 Δ8.Εικονική Μνήµη. Σε υλικό Each process has its own page table Each page table entry contains the frame number of the corresponding page in main memory or the disk address Memory! Page Table!!! CPU! Virtual! Addresses! :! :! Physical! Addresses! P-:! N-! Disk! ΗΜΥ32 Δ8.Εικονική Μνήµη.2 6

2/9/5 Κίνητρο #3: Προστασία δεδοµένων Ø Το page table entry περιέχει πληροφορίες για access rights Ø Το υλικό επιβάλει την προστασία (trap into OS if violation occurs) Process i: Process j: ΗΜΥ32 Δ8.Εικονική Μνήµη.3 VP : VP : VP 2: VP : VP : VP 2: Page Tables Read? Write? Yes Yes No No Yes No Read? Write? Yes Yes No Yes No No Physical Addr PP 9 PP 4 XXXXXXX Physical Addr PP 6 PP 9 XXXXXXX : : N-: Memory Μετάφραση Διευθύνσεων Εικονικής Μνήµης Ø Virtual Address Space Ø V = {,,, N } Ø Physical Address Space Ø P = {,,, M } Ø M < N Ø Address Translation Ø MAP: V P U { } Ø For virtual address a: Ø MAP(a) = a if data at virtual address a at physical address a in P Ø MAP(a) = if data at virtual address a not in physical memory Either invalid or stored on disk ΗΜΥ32 Δ8.Εικονική Μνήµη.4 7

2/9/5 Address Translation / Μετάφραση Διευθύνσεως Ø Μια virtual address µεταφράζεται σε µια physical address µε συνδυασµό hardware και software Virtual Address (VA) 3 3... 2... Virtual page number Page offset Translation ΗΜΥ32 Δ8.Εικονική Μνήµη.5 Physical page number Ø Άρα κάθε αίτηµα µνήµης πρώτα απαιτεί µετάφραση διεύθυνσης από το virtual space στο physical space Page offset 29... 2 Ø Ένα virtual memory miss (δηλ., όταν το page δεν είναι στη φυσική µνήµη) ονοµάζεται page fault Physical Address (PA) Parameters P = 2 p = page size (bytes) N = 2 n = Virtual address limit M = 2 m = Physical address limit Μηχανισµοί Μεταφράσεως Διευθύνσεως Virtual page # Offset ΗΜΥ32 Δ8.Εικονική Μνήµη.6 V Physical page # Physical page base addr Page Table (in main memory) Offset Main memory Disk storage 8

2/9/5 Page Fault Ø Page table entry µας δείχνει ότι το virtual address δεν αντιστοιχεί στην κύρια µνήµη Ø Το λειτουργικό σύστηµα (O/S exception handler) ενεργοποιείται για να µεταφέρει τα δεδοµένα από τον δίσκο στην κύρια µνήµη Ø current process suspends, others can resume Ø OS has full control over placement, etc. Before fault! After fault! Memory! Memory! Page Table! Page Table! CPU! Virtual! Address! Physical! Address! CPU! Disk! Disk! ΗΜΥ32 Δ8.Εικονική Μνήµη.7 Εξυπηρετώντας ένα Page Fault Ø Processor Signals Controller Ø Read block of length P starting at disk address X and store starting at memory address Y Ø Read Occurs Ø Direct Memory Access (DMA) under control of I/O controller Ø I/O Controller Signals Completion Ø Interrupt processor Ø OS resumes suspended process Processor! Reg! (3) Read Done! Cache! () Initiate Block Read! Memory-I/O bus! (2) DMA Transfer! I/O! Memory! controller! disk! Disk! disk! Disk! ΗΜΥ32 Δ8.Εικονική Μνήµη.8 9

2/9/5 Virtual Addressing στην παρουσία Cache Ø Άρα παίρνει ένα extra memory access για να µεταφράσει το VA (virtual address) σε PA (physical address) CPU VA PA miss Trans- Cache lation data hit Main Memory Ø Αυτό κάνει την προσπέλαση µνήµης (cache) πολύ ακριβή (όταν κάθε προσπέλαση έχει στην ουσία 2 προσπελάσεις) Ø Το hardware γίνεται µε την χρήση ενός Translation Lookaside Buffer (TLB) ένα µικρό cache που κρατάει πρόσφατα χρησιµοποιηµένες αντιστοιχίες διευθύνσεων για να µην χρειάζεται να ψάχνει στον πίνακα σελίδων (page table) ΗΜΥ32 Δ8.Εικονική Μνήµη.9 ΒΕΛΤΙΩΝΟΝΤΑΣ ΤΗΝ ΜΕΤΑΦΡΑΣΗ ΔΙΕΥΘΥΝΣΗΣ ΜΝΗΜΗΣ Virtual page # ΗΜΥ32 Δ8.Εικονική Μνήµη.2 V V Physical page base addr Tag Page Table (in physical memory) TLB Physical page base addr Main memory Disk storage

2/9/5 Translation Lookaside Buffers (TLBs) Ø Όπως κάθε cache, το TLB µπορεί να οργανωθεί σαν fully associative, set associative, ή direct mapped V Virtual Page # Physical Page # Dirty Ref Access Ø Ο χρόνος προσπέλασης του TLB (access time) είναι συνήθως πιο µικρός από το χρόνο προσπέλασης του cache (επειδή τα TLBs είναι πολύ πιο µικρά από τα caches) Ø Τα TLBs συνήθως δεν είναι µεγαλύτερα από 28 -- 256 entries ακόµα και σε high-end υπολογιστές ΗΜΥ32 Δ8.Εικονική Μνήµη.2 Το TLB στην Ιεραρχία της Μνήµης CPU VA ¼ t hit PA ¾ t miss TLB Lookup Cache Main Memory miss hit Ø Ένα TLB miss είναι page fault ή απλά ένα TLB miss? Ø Αν δηλαδή υπάρχει η σελίδα στην κύριως µνήµη, τότε το TLB miss µπορεί να επιλυθεί φορτώνοντας το translation information (physical address) από το page table στο TLB ΗΜΥ32 Δ8.Εικονική Μνήµη.22 Translation data Ø Παίρνει s κύκλων για να βρεθεί και να φορτωθεί η µετάφραση (translation) στο TLB Ø Αν η σελίδα δεν βρίσκεται στην µνήµη, τότε είναι πραγµατικό page fault Ø Παίρνει,, s κύκλων για εξυπηρέτηση ενός page fault Ø Τα TLB misses είναι πολύ πιο συχνά από τα true page faults

2/9/5 TLB (Translation Lookaside Buffer) ΗΜΥ32 Δ8.Εικονική Μνήµη.23 Η λειτουργία του TLB ΗΜΥ32 Δ8.Εικονική Μνήµη.24 2

2/9/5 Multi-level Page Tables Ø Given: Ø 4KB (2 2 ) page size Ø 32-bit address space Ø 4-byte page table entry Ø Problem: Ø Would need a 4 MB page table! 2 2 *4 bytes Level! Root! Table! (4 KB)! Level 2! Tables! (4 MB)! Ø Common solution Ø multi-level page tables e.g., 2-level table Ø Level table: 24 entries, each of which points to a Level 2 page table. Ø Level 2 table: 24 entries, each of which points to a page Ø Page tables are stored in VM...! ΗΜΥ32 Δ8.Εικονική Μνήµη.25 Παράµετροι για σχεδιασµό Εικονικής Μνήµης Total size Total size (KB) Paged VM 6, to 25, words 25, to,,, TLBs 6 to 52 entries.25 to 6 Block size (B) 4 to 64, 4 to 32 Miss penalty (clocks) Miss rates,, to,,.% to.% to.% to 2% ΗΜΥ32 Δ8.Εικονική Μνήµη.26 3

2/9/5 Δύο Επεξεργαστές: Παράµετροι Cache TLB organization Intel P4 TLB για εντολές και TLB για δεδοµένα Και τα 2 4-way set associative Και τα 2 αλλάζουν µε ~LRU AMD Opteron 2 TLBs για εντολές και 2 TLBs για δεδοµένα Και τα 2 L TLBs fully associative µε αλλαγή ~LRU Και τα 2 L2 TLBs είναι 4-way set associative µε round-robin LRU Και τα 2 έχουν 28 entries TLB misses αντιµετωπίζονται µε hardware Και τα 2 L TLBs έχουν 4 entries Και τα 2 L2 TLBs έχουν 52 entries TBL misses αντιµετωπίζονται µε hardware ΗΜΥ32 Δ8.Εικονική Μνήµη.27 Συνδυασµός Γεγονότων TLB TLB Page Table Cache Πιθανόν? Κάτω από ποιες περιπτώσεις? Hit Hit Hit Hit Hit Miss Miss Hit Hit Miss Hit Miss Miss Miss Miss Hit Miss Miss/ Hit Miss Miss Hit Ναι! Αυτό θέλουµε. Ναι παρόλο που το page table δεν ελέγχεται αν το TLB έχει hits Ναι TLB miss, PA στο page table Ναι TLB miss, PA στο page table, αλλά τα δεδοµένα δεν είναι στο cache Ναι page fault Αδύνατον Η µετάφραση του TLB είναι αδύνατη αν η σελίδα δεν είναι στην µνήµη. Αδύνατο τα δεδοµένα δεν µπαίνουν στο cache αν η σελίδα δεν βρίσκεται στην µνήµη ΗΜΥ32 Δ8.Εικονική Μνήµη.28 4

2/9/5 Μειώνοντας το Translation Time Ø Μπορούµε να παραλληλίσουµε (overlap) την προσπέλαση του cache µε την προσπέλαση του TLB Ø Δουλεύει όταν τα high order bits του VA χρησιµοποιούνται για προσπέλαση του TLB ενώ τα low order bits χρησιµοποιούνται για index στο cache VA Tag PA Tag Block offset Index 2-way Associative Cache Tag Data Tag Data PA Tag TLB Hit = = ΗΜΥ32 Δ8.Εικονική Μνήµη.29 Cache Hit Desired word Γιατί Όχι Ένα Virtually Addressed Cache? Ø Ένα virtually addressed cache θα ήθελε µόνο address translation για cache misses CPU VA Translation PA Main Memory αλλά ΗΜΥ32 Δ8.Εικονική Μνήµη.3 hit Cache data Ø Δύο διαφορετικά virtual addresses αντιστοιχούν στο ίδιο physical address (όταν τα processes µοιράζονται δεδοµένα), δηλ., δυο διαφορετικά cache entries κρατούν δεδοµένα για το ίδιο physical address synonyms Ø Must update all cache entries with the same physical address or the memory becomes inconsistent 5

2/9/5 Τα σύνορα µεταξύ Hardware/Software (Boundary) Ø Ποια µέρη της µετάφρασης virtual σε physical address εκτελούνται (ή υποβοηθάτε η εκτέλεση τους) µε hardware? Ø Το Translation Lookaside Buffer (TLB) που κρατά τις πιο πρόσφατες διευθύνσεις Ø Το TLB access time είναι µέρος του cache hit time Ø Μπορούµε να έχουµε ένα επιπρόσθετο στάδιο στο pipeline για πρόσβαση στο TLB Ø Page table storage, fault detection και updating Ø Τα Page faults προκαλούν interrupts τα οποία τα χειρίζεται το OS Ø Το hardware πρέπει να υποστηρίζει (i.e., update appropriately) Dirty και Reference bits (e.g., ~LRU) στα Page Tables Ø Τοποθέτηση στο δίσκο (Disk placement) Ø Bootstrap (e.g., out of disk sector ) ώστε το σύστηµα να µπορεί να χειριστεί ένα περιορισµένο αριθµό page faults πριν το λειτουργικό σύστηµα (OS) να φορτωθεί ΗΜΥ32 Δ8.Εικονική Μνήµη.3 Περίληψη Ø The Principle of Locality - Τοπικότητα: Ø Program likely to access a relatively small portion of the address space at any instant of time. Ø Temporal Locality: Locality in Time Χρονική Τοπικότητα Ø Spatial Locality: Locality in Space Χωρική Τοπικότητα Ø Caches, TLBs, Virtual Memory µπορούν να κατανοηθούν απαντώντας στις εξής 4 ερωτήσεις:. Where can block/page be placed? -- Τοποθέτηση 2. How is block/page found? Εύρεση 3. What block/page is replaced on miss? - Αναπλήρωση 4. How are writes handled? -- Εγγραφές Ø Page tables map virtual address to physical address Ø TLBs are important for fast translation ΗΜΥ32 Δ8.Εικονική Μνήµη.32 6

2/9/5 ΕΠΟΜΕΝΗ ΔΙΑΛΕΞΗ ΚΑΙ ΚΑΤ ΟΙΚΟΝ ΜΕΛΕΤΗ Ø ΕΠΟΜΕΝΗ ΕΝΟΤΗΤΑ Είσοδος, Έξοδος και Αποθήκευση Δεδοµένων (RAIDs) Ø Υπενθύµιση Ø Πρώτη Ενδιάµεση Εξέταση, Σάββατο, 8 Οκτωβρίου! Ø Περιλαµβάνει όλη την ύλη ΜΕΧΡΙ ΣΗΜΕΡΑ Ø Εισαγωγή/Τεχνολογία, Ιστορική Αναδροµή, Κύρια Μνήµη, Κρυφή Μνήµη, Εικονική Μνήµη Ø ΚΑΤ ΟΙΚΟΝ ΜΕΛΕΤΗ Ø Κεφάλαιο 5 Ø Κεφάλαιο 7 (7.4) Patterson&Hennessy (από το βιβλίο του ΗΜΥ22) Ø Σηµειώσεις στην ιστοσελίδα (memory.pdf) ΗΜΥ32 Δ8.Εικονική Μνήµη.33 7