Virtual Address Translation Dealing With Large Tables Using TLBs to Speedup Address Translation Multi-level paging

Cache recently accessed page-to-frame translations in a TLB Add additional levels of  For TLB hit, physical page number obtained in 1 cycle indirection to the  For TLB miss, translation is updated in TLB by sub-dividing page number into k parts  Has better than 99% hit ratio !! (why?) Second-Level f o  Create a “tree” of page Page Tables Physical tables CCPPUU Addresses 16 10 9 1

p o Virtual Address Virtual p2 Addresses 20 10 9 1 ? p1 p2 p3 o

Key Value

p3 p f f p1 Third-Level TLB p First-Level Page Tables X Page Table Page Table 11 12

Dealing With Large Page Tables Virtual Address Translation Multi-level paging Using Page Registers (aka Inverted Page Tables)

Example: Two-level paging Each frame is associated with a register containing  Residence bit: whether or not the frame is occupied CCPPUU MMeemmoorryy  Occupier: page number of the page occupying frame  Protection bits p p o f o 1 2 Virtual Physical Addresses Addresses 20 16 10 1 16 10 1 Page registers: an example  Physical memory size: 16 MB  Page size: 4096 bytes  Number of frames: 4096 f PPTTBBRR ++ page table ++  Space used for page registers (assuming 8 bytes/register): 32 Kbytes p1 p2  Percentage overhead introduced by page registers: 0.2% First-Level Second-Level  Size of : irrelevant Page Table Page Table 13 14 Page Registers Inverted Page Tables Tradeoffs Searching for a Virtual Page

Advantages: If the number of frames is small, the page registers can be  Size of translation table occupies a very small fraction of placed in an associative memory physical memory  Size of translation table is independent of VM size Virtual page number looked up in associative memory  Hit: frame number is extracted Disadvantages:  Miss: results in  We have reverse of the information that we need….  How do we perform translation ? Limitations:  Search the translation table for the desired page number  Large associative memories are expensive  Memory expansion is non-trivial

15 16

Dealing With Large Inverted Page Tables Searching Inverted Page Tables Using Hash Tables Using Hash Tables

Use a proven fast search technique: Hash Tables Hash page numbers to find corresponding frame numbers in a “frame” table with one entry per page frame Page registers are placed in an array

CCPPUU MMeemmoorryy Page i is placed in frame f(i) where f is an agreed-upon PID p o f o Virtual Physical “hashing function” rrunniunningng Addresses 20 9 1 Addresses 16 9 1 To lookup page i, perform the following: Hash Hash  TTaablblee Compute f(i) and use it as an index into the table of page registers f – 1 max  Extract the corresponding page register PPTTBBRR + PID 0 1 0 page fmax– 2  Check if the register contains i, if so, we have a hit h(PID, p)  Otherwise, we have a miss 0 Inverted Page Table 17 18 Searching the Inverted Page Table Virtual Memory (Paging) Using Hash Tables (Cont’d.) The bigger picture Codeode

Daattaa A ’s VAS is its context Minor complication  Contains its code, data, and stack  Since the number of pages is usually larger than the number of SSttaacckk slots in a hash table, two or more items may hash to the same location Code pages are stored in a user’s file on disk  Some are currently residing in memory; most are not Two different entries that map to same location are said to collide Data and stack pages are also stored in a file  Although this file is typically not visible to users  File only exists while a program is executing Many standard techniques for dealing with collisions (Disk)  Use a linked list of items that hash to a particular table entry OS determines which portions of a process’s  Rehash index until the key is found or an empty table entry is VAS are mapped in memory at any one time OS/MMU reached  … Physical Memory

19 20

Virtual Memory Virtual Memory Performance Page fault handling Physical Page fault handling analysis Memory

To understand the overhead of paging, compute the References to non-mapped pages effective memory access time (EAT) generate a page fault  EAT = memory access time × probability of a page hit + CCPPUU page fault service time × probability of a page fault

Page fault handling steps: 0 Service the fault Page Example: the running process Table  Memory access time: 20 ns Read in the unmapped page  Disk access time: 25 ms Resume/initiate some other process  Let p = the probability of a page fault Map the missing page into memory Program  EAT = 20(1–p) + 25,000,000p Restart the faulting process P’s VAS To realize an EAT within 5% of minimum, what is the largest value of p we can tolerate? Disk

21 22 Virtual Memory Summary

Physical and virtual memory partitioned into equal size units

Size of VAS unrelated to size of physical memory

Virtual pages are mapped to physical frames

Simple placement strategy

There is no external fragmentation

Key to good performance is minimizing page faults

23