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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cach O p i timisati tions

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

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

Ασκήσεις Caches

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

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

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

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

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

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

CMOS Technology for Computer Architects

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

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

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

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

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

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

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

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

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

Writing kernels for fun and profit

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Instruction Execution Times

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

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

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

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

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

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

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

Modbus basic setup notes for IO-Link AL1xxx Master Block

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

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Εργασιών

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

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

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

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

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

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

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

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

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

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

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

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

Transcript:

ΗΜΥ 32 -- ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ Διδάσκων: Χάρης Θεοχαρίδης, ΗΜΜΥ ttheocharides@ucy.ac.cy [Προσαρμογή από Computer Architecture, Hennessy & Patterson, 2005, UCB]

(ΕΠ) ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΙΕΡΑΡΧΙΑΣ ΜΝΗΜΗΣ Στόχος: Ο χρήστης βλέπει όσο το δυνατό περισσότερη μνήμη, στην ταχύτητα που προσφέρει η πιο γρήγορη τεχνολογία και στο κόστος της πιο φθηνής τεχνολογίας Πως; Χρήση πλεονεκτήματος τοπικότητας (locality) Processor Αυξανόμενη απόσταση από επεξεργαστή σε χρόνο προσπέλασης L$ L2$ Main Memory 4-8 bytes (word) 8-32 bytes (block) to 4 blocks Secondary Memory,024+ bytes (disk sector = page) Inclusive ότι περιέχει το L$ είναι υποσύνολο του L2$ που είναι υποσύνολο της MM που είναι υποσύνολο της SM Σχετικό (relative) μέγεθος μνήμης σε κάθε επίπεδο ΗΜΥ32 Δ8.Εικονική Μνήμη.2

Η ιεραρχία στο υλικό 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 30 ns 00-500 GB 8 ms $/Mbyte: line size: 4 B $25/MB 32 B $0.20/MB 4 KB $0.00/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

Κίνητρο #: DRAM a Cache for Disk Ø Το μέγεθος του address space είναι ΠΟΛΥ μεγάλο: Ø 32-bit addresses: ~4,000,000,000 (4 billion) bytes Ø 64-bit addresses: ~6,000,000,000,000,000,000 (6 quintillion) bytes Ø Η αποθήκευση στον σκληρό δίσκο είναι ~300X φθηνότερη από την DRAM Ø 80 GB of DRAM: ~ $33,000 Ø 80 GB of disk: ~ $0 Ø Αρα, για αποτελεσματική σε σχέση με το κόστος αποθήκευση, χρειαζόμαστε ΜΕΓΑΛΟΥΣ δίσκους! 4 MB: ~$500 GB: ~$200 80 GB: ~$0 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 30 ns 00-500 GB 8 ms $/Mbyte: line size: 4 B $25/MB 32 B $0.20/MB 4 KB $0.00/MB Larger slower cheaper ΗΜΥ32 Δ8.Εικονική Μνήμη.6

DRAM vs. SRAM ως μνήμη Cache Ø DRAM vs. disk : Ακόμη χειρότερα από την σύγκριση SRAM vs. DRAM Ø Access latencies: ØDRAM ~0X slower than SRAM ØDisk ~00,000X slower than DRAM Ø Importance of exploiting spatial locality: ØFirst byte is ~00,000X 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)

Κίνητρο #2: Διαχείρηση Μνήμης Ø Πολλαπλά προγράμματα (processes) μπορούν να έχουν δεδομένα τους στην φυσική μνήμη Ø Πώς επιλύουμε λοιπόν τις συγκρούσεις; Ø Τι συμβαίνει αν 2 processes έχουν πρόσβαση στην ίδια φυσική διεύθυνση; %esp kernel virtual memory stack memory invisible to user code Linux/x86 process memory image Memory mapped region for shared libraries runtime heap (via malloc) the brk ptr 0 uninitialized data (.bss) initialized data (.data) program text (.text) forbidden ΗΜΥ32 Δ8.Εικονική Μνήμη.9

Η λύση: Διαφορετικά Virtual Address Spaces Ø Τα Virtual and physical address spaces διερούνται σε blocks ιδίου μεγέθους (τις ονομάζουμε «σελίδες»). Ø blocks are called pages (both virtual and physical) Ø also, physical page == frame Ø Το κάθε process έχει το δικό του virtual address space Øoperating system controls how virtual pages as assigned to physical memory Virtual Address Space for Process : 0 N- VP VP 2... Address Translation 0 PP 2 Physical Address Space (DRAM) Virtual Address Space for Process 2: 0 Κ- VP VP 2... M- PP 7 PP 0 (e.g., read/only library code) ΗΜΥ32 Δ8.Εικονική Μνήμη.0

Πως Δύο Προγράμματα μοιράζονται το 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 0 CPU Virtual Addresses 0: : Physical Addresses P-: N- Disk ΗΜΥ32 Δ8.Εικονική Μνήμη.2

Κίνητρο #3: Προστασία δεδομένων Ø Το page table entry περιέχει πληροφορίες για access rights Ø Το υλικό επιβάλει την προστασία (trap into OS if violation occurs) Process i: VP 0: VP : Read? Yes Yes Page Tables Write? No Yes Physical Addr PP 9 PP 4 0: : Memory VP 2: No No XXXXXXX Process j: VP 0: VP : VP 2: Read? Yes Yes No Write? Yes No No Physical Addr PP 6 PP 9 XXXXXXX N-: ΗΜΥ32 Δ8.Εικονική Μνήμη.3

Μετάφραση Διευθύνσεων Εικονικής Μνήμης Ø Virtual Address Space Ø VA = {0,,, N } Ø Physical Address Space Ø PA = {0,,, M } Ø M << N Ø Address Translation Ø MAP: VA PA U {Æ} Ø For virtual address a: ØMAP(a) = a if data at virtual address a are at physical address a ØMAP(a) = Æ if data at virtual address a are not in physical memory Either invalid or stored on disk ΗΜΥ32 Δ8.Εικονική Μνήμη.4

Address Translation / Μετάφραση Διευθύνσεως Ø Μια virtual address μεταφράζεται σε μια physical address με συνδυασμό hardware και software Virtual Address (VA) 3 30... 2... 0 Virtual page number Page offset Translation ΗΜΥ32 Δ8.Εικονική Μνήμη.5 Physical page number Ø Άρα κάθε αίτημα μνήμης πρώτα απαιτεί μετάφραση διεύθυνσης από το virtual space στο physical space Page offset 29... 2 0 Ø Ένα 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 Physical page # How do we find the page table in main memory for some process? è Use page table REGISTER! ΗΜΥ32 Δ8.Εικονική Μνήμη.6 V 0 0 0 Physical page base addr Page Table (in main memory) Offset Main memory Disk storage

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 Processor Reg () Initiate Block Read (3) Read Done ØRead Occurs Ø Direct Memory Access (DMA) under control of I/O controller ØI/O Controller Signals Completion Ø Interrupt processor Ø OS resumes suspended process Cache Memory Memory-I/O bus (2) DMA Transfer I/O controller disk Disk Disk disk ΗΜΥ32 Δ8.Εικονική Μνήμη.8

Virtual Addressing στην παρουσία Cache Ø Άρα παίρνει ένα extra memory access για να μεταφράσει το VA (virtual address) σε PA (physical address) CPU VA PA miss Translation Cache data hit Main Memory Ø Αυτό κάνει την προσπέλαση μνήμης (cache) πολύ ακριβή (όταν κάθε προσπέλαση έχει στην ουσία 2 προσπελάσεις) Ø Το hardware γίνεται με την χρήση ενός Translation Lookaside Buffer (TLB) ένα μικρό cache που κρατάει πρόσφατα χρησιμοποιημένες αντιστοιχίες διευθύνσεων για να μην χρειάζεται να ψάχνει στον πίνακα σελίδων (page table) ΗΜΥ32 Δ8.Εικονική Μνήμη.9

ΒΕΛΤΙΩΝΟΝΤΑΣ ΤΗΝ ΜΕΤΑΦΡΑΣΗ ΔΙΕΥΘΥΝΣΗΣ ΜΝΗΜΗΣ Virtual page # ΗΜΥ32 Δ8.Εικονική Μνήμη.20 V 0 0 0 V 0 Physical page base addr Page Table (in physical memory) Tag TLB Physical page base addr Main memory Disk storage

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 ¼ t hit ¾ t VA PA miss TLB Cache Lookup Main Memory miss hit Ø Ένα TLB miss είναι page fault ή απλά ένα TLB miss? ΗΜΥ32 Δ8.Εικονική Μνήμη.22 Translation data Ø Αν δηλαδή υπάρχει η σελίδα στην κύριως μνήμη, τότε το TLB miss μπορεί να επιλυθεί φορτώνοντας το translation information (physical address) από το page table στο TLB ØΠαίρνει 0 s κύκλων για να βρεθεί και να φορτωθεί η μετάφραση (translation) στο TLB Ø Αν η σελίδα δεν βρίσκεται στην μνήμη, τότε είναι πραγματικό page fault ØΠαίρνει,000,000 s κύκλων για εξυπηρέτηση ενός page fault Ø Τα TLB misses είναι πολύ πιο συχνά από τα true page faults

ΗΜΥ32 Δ8.Εικονική Μνήμη.23 TLB (Translation Lookaside Buffer)

Η λειτουργία του TLB ΗΜΥ32 Δ8.Εικονική Μνήμη.24

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 20 *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: 024 entries, each of which points to a Level 2 page table. Ø Level 2 table: 024 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,000 to 250,000 words 250,000 to,000,000,000 TLBs 6 to 52 entries 0.25 to 6 Block size (B) 4000 to 64,000 4 to 32 Miss penalty (clocks) Miss rates 0,000,000 to 00,000,000 0.0000% to 0.000% 0 to 000 0.0% to 2% ΗΜΥ32 Δ8.Εικονική Μνήμη.26

Δύο Επεξεργαστές: Παράμετροι 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 έχουν 40 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

Μειώνοντας το 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.Εικονική Μνήμη.30 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

Τα σύνορα μεταξύ 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 0) ώστε το σύστημα να μπορεί να χειριστεί ένα περιορισμένο αριθμό 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

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