Virtual Memory Vivek Seshadri 15740/18740 Computer Architecture

advertisement
Virtual Memory
Vivek Seshadri
15740/18740 Computer Architecture
Readings
• Jacob & Mudge, “Virtual Memory in
Contemporary Microprocessors,”
IEEE Micro, 1998
• Hennessy and Patterson, Appendix C.4C.5
Why Virtual Memory?
X
Load X
CPU
Store Y
Y
Main Memory
Why Virtual Memory?
•
•
•
•
Small available physical memory
Contiguous address space
Portability
Protection
– Code & data
– OS data and application data
– One application’s data from another
• Sharing
Segmentation
• Segment: Base address + Size +
Permissions
• Segments are re-locatable
– Can be copied from one location to another
• Each process is associated with a list of
segments it can access
Virtual Memory
All problems in computer science can be
solved by another level of indirection
- David Wheeler
For an application to make progress, it is
sufficient that the next instruction and
the data required to execute the next
instruction are present in main memory.
Virtual Memory
X
Load X
CPU
Store Y
Y
Main Memory
Virtual Address
Space
Virtual Memory Solves It All!
• Small available physical memory
– Large virtual address space (VAS)!
• Contiguous address space
– Data should be contiguous only in VAS
• Protection
– Different process -> Different VAS
• Sharing
– Map VAS to same location in physical
memory
Implementation
• Pages
– Large (to reduce mapping overhead)
• Page tables
– One entry per virtual page
– Hierarchical (to reduce size of page tables)
• Inverted page tables
• Speeding up translations
– Translation Look-aside Buffers (TLB)
Physical Memory Management
• Allocating pages
• Replacing pages (page fault)
– Swap space in disk
• Replacement policy
– LRU?
Virtual Memory & Caching
Virtually-Indexed Virtually-Tagged Caches
Virtual Page Number
Cacheline Tag
Offset
Index
Two processes can have the same virtual address
Solution - 1
Physically-Indexed Physically-tagged Cache
Virtual Page Number
Offset
PhysicalPage Number
Offset
Cacheline Tag
Index
Solution - 2
Virtually-Indexed Physically-tagged Cache
Virtual Page Number
Offset
Physical Page Number
Offset
Cacheline Tag
Index
Synonyms
Two virtual pages can map to the same
physical page
Virtual Page Number
Cacheline Tag
Offset
Index
Download