Example: marketing

Virtual Memory and Address Translation

Virtual Memory andAddress Translation1 ReviewProgram addresses are Virtual addresses. Relative offset of program regions can not change during program execution. , heap can not move further from Virtual addresses == physical Address inconvenient. Program location is compiled into the single offset register allows the OS to place a process Virtual Address space anywhere in physical Memory . Virtual Address space must be smaller than physical. Program is swapped out of old location and swapped into creates external fragmentation and requires large 2ggqgregions of contiguous physical Memory . We look to fixed sized units, Memory pages, to solve the MemoryConceptKey problem: How can one support programs that require more Memory than is physically available?

Page fault handling analysis To understand the overhead of paging, compute the effective memory access time (EAT) ¾EAT = memory access time×probability of a page hit+ page fault service time×probability of a page fault Example: ¾Memory access time: 60 ns ¾Disk access time: 25 ms ¾Let p = the probability of a page fault ¾EAT = 60(1 –p ...

Tags:

  Memory, Virtual, Translation, Address, Fault, Virtual memory and address translation

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Virtual Memory and Address Translation

1 Virtual Memory andAddress Translation1 ReviewProgram addresses are Virtual addresses. Relative offset of program regions can not change during program execution. , heap can not move further from Virtual addresses == physical Address inconvenient. Program location is compiled into the single offset register allows the OS to place a process Virtual Address space anywhere in physical Memory . Virtual Address space must be smaller than physical. Program is swapped out of old location and swapped into creates external fragmentation and requires large 2ggqgregions of contiguous physical Memory . We look to fixed sized units, Memory pages, to solve the MemoryConceptKey problem: How can one support programs that require more Memory than is physically available?

2 How can we support programs that do not use all of their Memory at once?2n-1 Hide physical size of Memory from users Memory is a large Virtual Address spaceof 2n bytes Only portions of VAS are in physical Memory at any one time (increase Memory utilization).Issues Placement strategies Where to place programs in physical memoryProgramP sVA S3 Replacement strategies What to do when there exist more processes than can fit in Memory Load control strategies Determining how many processes can be in Memory at one time0 Realizing Virtual MemoryPagingPhysical Memory partitioned into equal sized page frames Page frames avoid external fragmentation.

3 (fMAX-1,oMAX-1)gg(f,o)oPhysicalMemoryA Memory Address is a pair (f, o)f frame number (fmaxframes)o frame offset (omaxbytes/frames)Physical Address = omax f +o4(0,0)PA :fof1log2omaxlog2(fmax omax)Physical Address SpecificationsFrame/Offset pair absolute indexExample: A 16-bit Address space with (omax=) 512 byte page frames Addressing location (3, 6) = 1,542(3,6)1,542019PA :16(3,6)foPhysicalMemory1110100000000003 6101,5425(0,0)f1,5420 QuestionsThe offset is the same in a Virtual Address and a physical Address . AT A. True B. FalseIf your level 1 data cache is equal to or smaller than 2number of page offsetbits then Address Translation is not necessary for a data cache tag check.

4 A. True BFalse6 B. FalseRealizing Virtual MemoryPagingA process s Virtual Address space is partitioned into equal sized pages page=page frame2n-1 =(pMAX-1,oMAX-1) page= page frame(p,o)oVirtualAddressSpaceA Virtual Address is a pair (p, o)p page number (pmaxpages)o page offset (omaxbytes/pages) Virtual Address = omax p +o7(0,0)popVA :1log2oMAXlog2(pmax omax)PagingMapping Virtual addresses to physical addressesPagesmap to framesPages are contiguous in a But pages are arbitrarily located ihildVirtualin physical Memory , and Not all pages mapped at all timesVirtualAddressSpace(p2,o2)PhysicalM emory(f1,o1)8(p1,o1)(f2,o2)Frames and pagesOnly mapping Virtual pages that are in use does what?

5 A. Increases Memory utilization. A. Increases Memory utilization. B. Increases performance for user applications. C. Allows an OS to run more programs concurrently. D. Gives the OS freedom to move Virtual pages in the Virtual Address Translation is A. Frequent9 B. InfrequentChanging Address mappings is A. Frequent B. InfrequentPagingVirtual Address translationA page tablemaps Virtual pages to physical frames(f,o)ProgramPCPUP sVirtualAddressSpacePhysicalMemory120910 po116910foVirtualAdd10 Page Table(p,o)pPhysicalAddressesAddressesfVi rtual Address Translation DetailsPage table structureContents: Flags dirty bit, resident bit, clock/reference bit Frame number1 table per processPart of process s state120910po116910foVirtualCPU1110 Page TablepPhysicalAddressesAddressesf0 PTBR+ Virtual Address Translation DetailsExampleA system with 16-bit addresses 32 KB of physical Memory 1024 byte pages(4,1023)(4,0)CPUP hysicalMemory15po14910foPhysicalAddresse sVirtualAddP sVirtualAddressSpace(3,1023)(4,0)0010912 1100100 Page TableAddresses0000000(0,0)10 Virtual Address TranslationPerformance IssuesProblem VM reference requires 2 Memory references!

6 One access to get the page table entry One access to get the dataPage table can be very large; a part of the page table can be on disk. For a machine with 64-bit addresses and 1024 byte pages, what is the size of a page table?What to do? Most computing problems are solved by some form Caching IndirectionVirtual Address Translation Using TLBs to Speedup Address TranslationCache recently accessed page-to-frame translations in a TLB For TLB hit, physical page number obtained in 1 cycle For TLB miss, Translation is updated in TLB Has high hit ratio (why?)f120910po116910foPhysicalAddresses VirtualAddressesCPUKeyValue?14 Page TableTLBfKeyValueppfXDealing With Large Page Tables Multi-level pagingAdd additional levels of indirection to the page table by sub-dividing page number into kparts Create a tree of page tables TLB still used, just not shownSecond-LevelPage Tables The architecture determines the number of levels of page tablep2oVirtual Addressp3 Page Tablesp1p215 Third-LevelPage TablesFirst-LevelPage Tablep1p3 Dealing With Large Page Tables Multi-level pagingExample.

7 Two-level pagingCPUM emory1201016p1o11610foPhysicalAddressesV irtualAddressesCPUp2 Memory16 Second-LevelPage TableFirst-LevelPage Tablepage tablep2fp1 PTBR++The Problem of Large Address SpacesWith large Address spaces (64-bits) forward mapped page tables become cumbersome. 5 levels of of making tables proportional to size of Virtual Address space, make them proportional to the size of physical Address space. Virtual Address space is growing faster than one entry for each physical page with a hash table17 Use one entry for each physical page with a hash table Size of Translation table occupies a very small fraction of physical Memory Size of Translation table is independent of VM sizeVirtual Address TranslationUsing Page Registers (aka Inverted Page Tables)Each frame is associated with a register containing Residence bit: whether or not the frame is occupied Occupier: page number of the page occupying frame Occupier: page number of the page occupying frame Protection bitsPage registers: an example Physical Memory size.

8 16 MB Page size: 4096 bytes Number of frames: 4096 Space used for page registers (assuming 8 bytes/register): 3218 Space used for page registers (assuming 8 bytes/register): 32 Kbytes Percentage overhead introduced by page registers: Size of Virtual Memory : irrelevantPage RegistersHow does a Virtual Address become a physical Address ?CPU generates Virtual addresses, where is the physical page? Hhth itldd Hash the Virtual Address Must deal with conflictsTLB caches recent translations, so page lookup can take several steps Hash the Address Check the tag of the entry Possibly rehash/traverse list of conflicting entries19 Possibly rehash/traverse list of conflicting entriesTLB is limited in size Difficult to make large and accessible in a single cycle.

9 They consume a lot of power (27% of on-chip for StrongARM)Dealing With Large Inverted Page Tables Using Hash TablesHash page numbers to find corresponding frame number Page frame number is not explicitly stored (1 frame per entry) Protection, dirty, used, resident bits also in entry1209po1169foPhysicalAddressesVirtua lAddressCPUHashMemorygrunningPID=?=?=?=? tag check20h(PID, p)PTBRPIDI nverted Page Table10page 0fmax 1fmax 2+1 Searching Inverted Page TablesUsing Hash TablesPage registers are placed in an arrayPage iis placed in slot f(i) where f is an agreed-upon hash functionTo lookup page i, perform the following: Compute f(i)and use it as an index into the table of page registers21 Extract the corresponding page register Check if the register tag contains i,if so, we have a hit Otherwise, we have a missSearching the Inverted Page Table Using Hash Tables (Cont d.)

10 Minor complication Since the number of pages is usually larger than the number of slots in a hash table, two or more items mayhash to the same ltilocationTwo different entries that map to same location are said to collideMany standard techniques for dealing with collisions Use a linked list of items that hash to a particular table entry Rehash index until the key is found or an empty table entry is22 Rehash index until the key is found or an empty table entry is reached (open hashing)QuestionsWhy use inverted page tables? A. Forward mapped page tables are too slow. BFddtbl d tl t lit l B. Forward mapped page tables don t scale to larger Virtual Address spaces.


Related search queries