1 / 21

SoftEng 363

SoftEng 363. Computer Architecture Memory Management Units. Memory Management Unit. Physical and Virtual Memory Physical memory presents a flat address space Addresses 0 to 2 p -1 p = number of bits in an address word User programs accessing this space Conflicts in multi-user (eg Unix)

todd-coffey
Download Presentation

SoftEng 363

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SoftEng 363 Computer Architecture Memory Management Units

  2. Memory Management Unit • Physical and Virtual Memory • Physical memory presents a flat address space • Addresses 0 to 2p-1p = number of bits in an address word • User programs accessing this space • Conflicts in • multi-user (eg Unix) • multi-process (eg Real-Time systems) • systems • Virtual Address Space • Each user has a “private” address space • Addresses 0 to 2q-1 • q and p not necessarily the same!

  3. Memory Management Unit • Virtual Address Space • Each user has a “private” address space

  4. Virtual Addresses • Memory Management Unit • CPU (running user programs) emits Virtual Address • MMU translates it to Physical Address • Operating System allocates pages of physical memory to users

  5. Virtual Addresses • Mappings between user space and physical memory created by OS

  6. Memory Management Unit (MMU) • Responsible forVIRTUAL  PHYSICALaddress mapping • Sits between CPU and cache • Cache operates on Physical Addresses(mostly - some research on VA cache) VA PA MMU PA Main Mem CPU Cache D or I D or I

  7. MMU - operation • OS constructs page tables -one for each user • Page address from memory address selects a page table entry • Page table entry contains physical page address

  8. MMU - operation

  9. MMU - Virtual memory space • Page Table Entries can also point to disc blocks • Valid bit • Set: page in memory address is physical page address • Cleared: page “swapped out” address is disc block address • MMU hardware generates page faultwhen swapped out page is requested • Allows virtual memory space to be larger than physical memory • Only “working set” is in physical memory • Remainder on paging disc

  10. MMU - Page Faults • Page Fault Handler • Part of OS kernel • Finds usable physical page • LRU algorithm • Writes it back to disc if modified • Reads requested page from paging disc • Adjusts page table entries • Memory access re-tried

  11. Page Fault

  12. MMU - Page Faults • Page Fault Handler • Part of OS kernel • Finds usable physical page • LRU algorithm • Writes it back to disc if modified • Reads requested page from paging disc • Adjusts page table entries • Memory access re-tried • Can be an expensive process! • Usual to allow page tables to be swapped out too! • Page fault can be generated on the page tables!

  13. MMU - practicalities • Page size • 4 kbytes ç k = 13 • p = 32 • p - k = 19 • So page table size • 219 = 0.5 x 106 • Each entry 4 bytes • ç 2 Mbytes! • Page tables can take a lot of memory! • Larger page sizes reduce page table sizebut can waste space • Access one byte ç whole page needed!

  14. MMU - practicalities • Page tables are stored in main memory • They’re too large to be in smaller memories! • MMU needs to read PT for address translation • Address translation can require additional memory accesses! • >32-bit address space?

  15. MMU - Virtual Address Space Size • Segments, etc • Virtual address spaces >232 bytes are common • Intel x86 - 46 bit address space • PowerPC - 52 bit address space • PowerPCaddressformation

  16. MMU - Protection • Page table entries • Access control bits • Read • Write • Read/Write • Execute only • Program - “text” in Unix • Read only • Data • Read write

  17. MMU - Alternative Page Table Styles • Inverted Page tables • One page table entry (PTE) / page of physical memory • MMU has to search for correct VA entry • PowerPC hashes VA ç PTE address • Hashing ç collisions • PTEs are linked together • PTE contains tags (like cache) and link bits • MMU searches linked list to find correct entry • Smaller Page Tables / Longer searches

  18. MMU - Sharing • Can map virtual addresses from different user spaces to same physical pages • Sharing of data • Commonly done for frequently used programs • Unix “sticky bit” • Text editors, eg vi • Compilers • Any other program used by multiple users • More efficient memory use • Less paging • Better use of cache

  19. Address Translation - Speeding it up • Two+ memory accesses for each datum? • Page table 1 - 3 (single - 3 level tables) • Actual data 1 • system running slower than an 8088? • Translation Look-Aside Buffer • (TLB or TLAB) • Small cache of recently-used page table entries • Usually fully-associative • Can be quite small!

  20. Address Translation - Speeding it up • TLB sizes • MIPS R4000 1992 48 entries • MIPS R10000 1996 64 entries • HP PA7100 1993 120 entries • One page table entry / page of data • Locality of reference • Programs spend a lot of time in same memory region • TLB hit rates tend to be very high • 98% • Compensate for cost of a miss (many memory accesses!)

  21. Memory Hierarchy - Operation

More Related