Memory Management: From Absolute Addresses to Demand Paging

33 19 0
Memory Management: From Absolute Addresses to Demand Paging

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Memory Management: From Absolute Addresses to Demand Paging Joel Emer Computer Science and Artificial Intelligence Laboratory M.I.T Based on the material prepared by Arvind and Krste Asanovic Memory Management • The Fifties - Absolute Addresses - Dynamic address translation • The Sixties - Paged memory systems and TLBs - Atlas’ Demand paging • Modern Virtual Memory Systems October 12, 2005 6.823 L9-2 Emer 6.823 L9-3 Emer Names for Memory Locations machine language address ISA virtual address Address Mapping physical address Physical Memory (DRAM) • Machine language address – as specified in machine code • Virtual address – ISA specifies translation of machine code address into virtual address of program variable (sometime called effective address) • Physical address ⇒ operating system specifies mapping of virtual address into name for a physical memory location October 12, 2005 6.823 L9-4 Emer Absolute Addresses EDSAC, early 50’s virtual address = physical memory address • Only one program ran at a time, with unrestricted access to entire machine (RAM + I/O devices) • Addresses in a program depended upon where the program was to be loaded in memory • But it was more convenient for programmers to write location-independent subroutines How could location independence be achieved? October 12, 2005 6.823 L9-5 Emer Dynamic Address Translation Motivation Higher throughput if CPU and I/O of or more programs were overlapped How? ⇒ multiprogramming prog1 Location independent programs Programming and storage management ease ⇒ need for a base register Protection Independent programs should not affect each other inadvertently ⇒ need for a bound register October 12, 2005 prog2 Physical Memory In the early machines, I/O operations were slow and each word transferred involved the CPU 6.823 L9-6 Emer Simple Base and Bound Translation Segment Length Load X Effective Address Base Register Program Address Space ≤ + Bounds Violation? Physical Address current segment Main Memory Bound Register Base Physical Address Base and bounds registers are visible/accessible only when processor is running in the supervisor mode October 12, 2005 6.823 L9-7 Emer Data Bound Register ≤ Bounds Violation? Effective Addr Register Load X Program Address Space Data Base Register + Program Bound Register ≤ Bounds Violation? Program Counter Program Base Register data segment Main Memory Separate Areas for Program and Data program segment + What is an advantage of this separation? (Scheme still used today on Cray vector supercomputers) October 12, 2005 6.823 L9-8 Emer Memory Fragmentation OS Space Users & arrive OS Space Users & leave free OS Space user 16K user 16K user 24K user user 24K 16K 8K user 32K user 32K 16K 8K user 32K 24K user 24K 24K user user 16K 24K 24K As users come and go, the storage is “fragmented” Therefore, at some stage programs have to be moved around to compact the storage October 12, 2005 6.823 L9-9 Emer Paged Memory Systems • Processor generated address can be interpreted as a pair page number offset • A page table contains the physical address of the base of each page Address Space of User-1 0 3 Page Table of User-1 Page tables make it possible to store the pages of a program non-contiguously October 12, 2005 6.823 L9-10 Emer User VA1 Page Table User Physical Memory Private Address Space per User OS pages VA1 Page Table User VA1 Page Table • Each user has a page table • Page table contains an entry for each user page October 12, 2005 free 19 Five-minute break to stretch your legs Modern Virtual Memory Systems 6.823 L9-20 Emer Illusion of a large, private, uniform store Protection & Privacy OS several users, each with their private address space and one or more shared address spaces page table ≡ name space Demand Paging Provides the ability to run programs larger than the primary memory useri Primary Memory Swapping Store Hides differences in machine configurations The price is address translation on each memory reference VA mapping TLB October 12, 2005 PA 6.823 L9-21 Emer Linear Page Table • Page Table Entry (PTE) contains: – A bit to indicate if a page exists – PPN (physical page number) for a memoryresident page – DPN (disk page number) for a page on the disk – Status bits for protection and usage • OS sets the Page Table Base Register whenever active user process changes PT Base Register October 12, 2005 Data Pages Page Table PPN PPN DPN PPN Data word Offset DPN PPN PPN DPN DPN VPN DPN PPN PPN VPN Offset Virtual address Size of Linear Page Table 6.823 L9-22 Emer With 32-bit addresses, 4-KB pages & 4-byte PTEs: ⇒ 220 PTEs, i.e, MB page table per user ⇒ GB of swap needed to back up full virtual address space Larger pages? • Internal fragmentation (Not all memory in a page is used) • Larger page fault penalty (more time to read from disk) What about 64-bit virtual address space??? • Even 1MB pages would require 244 8-byte PTEs (35 TB!) What is the “saving grace” ? October 12, 2005 6.823 L9-23 Emer Hierarchical Page Table Virtual Address 31 22 21 p1 12 11 p2 offset 10-bit 10-bit L1 index L2 index Root of the Current Page Table offset p2 p1 (Processor Register) Level Page Table page in primary memory page in secondary memory PTE of a nonexistent page October 12, 2005 Level Page Tables Data Pages 6.823 L9-24 Emer Address Translation & Protection Virtual Address Virtual Page No (VPN) offset Kernel/User Mode Read/Write Protection Check Address Translation Exception? Physical Address Physical Page No (PPN) offset • Every instruction and data access needs address translation and protection checks A good VM design needs to be fast (~ one cycle) and space efficient October 12, 2005 6.823 L9-25 Emer Translation Lookaside Buffers Address translation is very expensive! In a two-level page table, each reference becomes several memory accesses Solution: Cache translations in TLB TLB hit TLB miss ⇒ Single Cycle Translation ⇒ Page Table Walk to refill virtual address VRWD tag PPN VPN offset (VPN = virtual page number) (PPN = physical page number) hit? October 12, 2005 physical address PPN offset 6.823 L9-26 Emer TLB Designs • Typically 32-128 entries, usually fully associative – Each entry maps a large page, hence less spatial locality across pages Ỵ more likely that two entries conflict – Sometimes larger TLBs (256-512 entries) are 4-8 way setassociative • Random or FIFO replacement policy • No process information in TLB? • TLB Reach: Size of largest virtual address space that can be simultaneously mapped by TLB Example: 64 TLB entries, 4KB pages, one page per entry TLB Reach = _? October 12, 2005 6.823 L9-27 Emer Variable Sized Page Support Virtual Address 31 22 21 p1 12 11 p2 offset 10-bit 10-bit L1 index L2 index Root of the Current Page Table offset p2 p1 (Processor Register) Level Page Table page in primary memory large page in primary memory page in secondary memory PTE of a nonexistent page Level Page Tables Data Pages October 12, 2005 6.823 L9-28 Emer Variable Size Page TLB Some systems support multiple page sizes virtual address V R WD Tag PPN VPN offset PPN offset L hit? physical address October 12, 2005 6.823 L9-29 Emer Handling A TLB Miss Software (MIPS, Alpha) TLB miss causes an exception and the operating system walks the page tables and reloads TLB A privileged “untranslated” addressing mode used for walk Hardware (SPARC v8, x86, PowerPC) A memory management unit (MMU) walks the page tables and reloads the TLB If a missing (data or PT) page is encountered during the TLB reloading, MMU gives up and signals a Page-Fault exception for the original instruction October 12, 2005 6.823 L9-30 Emer Hierarchical Page Table Walk: SPARC v8 Virtual Address Index Context Table Register 31 Context Table Context Register Index 23 Index 17 Offset 11 L1 Table root ptr L2 Table PTP L3 Table PTP PTE Physical Address 31 11 PPN Offset MMU does this table walk in hardware on a TLB miss October 12, 2005 6.823 L9-31 Emer Translation for Page Tables • Can references to page tables TLB miss • Can this go on forever? User PTE Base System PTE Base User Page Table (in virtual space) System Page Table (in physical space) Data Pages October 12, 2005 6.823 L9-32 Emer Address Translation: putting it all together Virtual Address hardware hardware or software software TLB Lookup miss Page Table Walk ∉ memory the page is Page Fault (OS loads page) Where? October 12, 2005 ∈ memory Update TLB hit Protection Check denied Protection Fault SEGFAULT permitted Physical Address (to cache) 33 Thank you !

Ngày đăng: 11/10/2021, 14:19

Tài liệu cùng người dùng

Tài liệu liên quan