![Page 1: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/1.jpg)
18-447 Computer Architecture
Lecture 20: Virtual Memory
Prof. Onur Mutlu Carnegie Mellon University
Spring 2015, 3/4/2015
![Page 2: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/2.jpg)
Assignment and Exam Reminders n Lab 4: Due March 6 (this Friday!)
q Control flow and branch prediction
n Lab 5: Due March 22 q Data cache
n HW 4: March 18 n Exam: March 20
n Advice: Finish the labs early q You have almost a month for Lab 5
n Advice: Manage your time well
2
![Page 3: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/3.jpg)
Debugging, Testing and Piazza Etiquette n You are supposed to debug your code
n You are supposed to develop your own test cases
n As in real life
n Piazza is not the place to ask debugging questions q And expect answers to them
n And, TAs are not your debuggers q Ask for help only if you have done due diligence
3
![Page 4: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/4.jpg)
Late Days n Bonus: 2 more late days for everyone
n Even if you run out of late days, please submit your lab q Showing that you are working and caring counts q Making it work counts
4
![Page 5: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/5.jpg)
Agenda for the Rest of 447 n The memory hierarchy n Caches, caches, more caches n Virtualizing the memory hierarchy: Virtual Memory n Main memory: DRAM n Main memory control, scheduling n Memory latency tolerance techniques n Non-volatile memory
n Multiprocessors n Coherence and consistency n Interconnection networks n Multi-core issues
5
![Page 6: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/6.jpg)
Readings n Section 5.4 in P&H n Optional: Section 8.8 in Hamacher et al. n Your 213 textbook for brush-up
6
![Page 7: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/7.jpg)
Memory (Programmer’s View)
7
![Page 8: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/8.jpg)
Ideal Memory n Zero access time (latency) n Infinite capacity n Zero cost n Infinite bandwidth (to support multiple accesses in parallel)
8
![Page 9: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/9.jpg)
Abstraction: Virtual vs. Physical Memory n Programmer sees virtual memory
q Can assume the memory is “infinite”
n Reality: Physical memory size is much smaller than what the programmer assumes
n The system (system software + hardware, cooperatively) maps virtual memory addresses are to physical memory q The system automatically manages the physical memory
space transparently to the programmer
+ Programmer does not need to know the physical size of memory nor manage it à A small physical memory can appear as a huge one to the programmer à Life is easier for the programmer -- More complex system software and architecture
A classic example of the programmer/(micro)architect tradeoff
9
![Page 10: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/10.jpg)
Benefits of Automatic Management of Memory
n Programmer does not deal with physical addresses n Each process has its own mapping from virtualàphysical
addresses
n Enables q Code and data to be located anywhere in physical memory
(relocation)
q Isolation/separation of code and data of different processes in physical processes (protection and isolation)
q Code and data sharing between multiple processes (sharing)
10
![Page 11: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/11.jpg)
11
A System with Physical Memory Only
n Examples: q most Cray machines q early PCs q nearly all embedded systems
CPU’s load or store addresses used directly to access memory
CPU!
0:!1:!
N-1:!
Memory!
Physical!Addresses!
![Page 12: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/12.jpg)
The Problem n Physical memory is of limited size (cost)
q What if you need more? q Should the programmer be concerned about the size of code/
data blocks fitting physical memory? q Should the programmer manage data movement from disk to
physical memory? q Should the programmer ensure two processes do not use the
same physical memory?
n Also, ISA can have an address space greater than the
physical memory size q E.g., a 64-bit address space with byte addressability q What if you do not have enough physical memory?
12
![Page 13: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/13.jpg)
Difficulties of Direct Physical Addressing
n Programmer needs to manage physical memory space q Inconvenient & hard q Harder when you have multiple processes
n Difficult to support code and data relocation
n Difficult to support multiple processes q Protection and isolation between multiple processes q Sharing of physical memory space
n Difficult to support data/code sharing across processes
13
![Page 14: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/14.jpg)
Virtual Memory n Idea: Give the programmer the illusion of a large address
space while having a small physical memory q So that the programmer does not worry about managing
physical memory
n Programmer can assume he/she has “infinite” amount of physical memory
n Hardware and software cooperatively and automatically manage the physical memory space to provide the illusion q Illusion is maintained for each independent process
14
![Page 15: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/15.jpg)
Basic Mechanism n Indirection (in addressing)
n Address generated by each instruction in a program is a “virtual address” q i.e., it is not the physical address used to address main
memory q called “linear address” in x86
n An “address translation” mechanism maps this address to a “physical address” q called “real address” in x86 q Address translation mechanism can be implemented in
hardware and software together
15
![Page 16: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/16.jpg)
16
A System with Virtual Memory (Page based)
n Address Translation: The hardware converts virtual addresses into physical addresses via an OS-managed lookup table (page table)
CPU!
0:!1:!
N-1:!
Memory!
0:!1:!
P-1:!
Page Table!
Disk!
Virtual!Addresses! Physical!
Addresses!
![Page 17: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/17.jpg)
Virtual Pages, Physical Frames n Virtual address space divided into pages n Physical address space divided into frames
n A virtual page is mapped to q A physical frame, if the page is in physical memory q A location in disk, otherwise
n If an accessed virtual page is not in memory, but on disk q Virtual memory system brings the page into a physical frame
and adjusts the mapping à this is called demand paging
n Page table is the table that stores the mapping of virtual pages to physical frames
17
![Page 18: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/18.jpg)
Physical Memory as a Cache n In other words…
n Physical memory is a cache for pages stored on disk q In fact, it is a fully associative cache in modern systems (a
virtual page can be mapped to any physical frame)
n Similar caching issues exist as we have covered earlier: q Placement: where and how to place/find a page in cache? q Replacement: what page to remove to make room in cache? q Granularity of management: large, small, uniform pages? q Write policy: what do we do about writes? Write back?
18
![Page 19: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/19.jpg)
Supporting Virtual Memory n Virtual memory requires both HW+SW support
q Page Table is in memory q Can be cached in special hardware structures called Translation
Lookaside Buffers (TLBs)
n The hardware component is called the MMU (memory
management unit) q Includes Page Table Base Register(s), TLBs, page walkers
n It is the job of the software to leverage the MMU to q Populate page tables, decide what to replace in physical memory q Change the Page Table Register on context switch (to use the
running thread’s page table) q Handle page faults and ensure correct mapping
19
![Page 20: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/20.jpg)
Some System Software Jobs for VM n Keeping track of which physical frames are free
n Allocating free physical frames to virtual pages
n Page replacement policy q When no physical frame is free, what should be swapped out?
n Sharing pages between processes
n Copy-on-write optimization
n Page-flip optimization
20
![Page 21: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/21.jpg)
Page Fault (“A Miss in Physical Memory”)
n If a page is not in physical memory but disk q Page table entry indicates virtual page not in memory q Access to such a page triggers a page fault exception q OS trap handler invoked to move data from disk into memory
n Other processes can continue executing n OS has full control over placement
CPU!
Memory!
Page Table!
Disk!
Virtual!Addresses! Physical!
Addresses!
CPU!
Memory!
Page Table!
Disk!
Virtual!Addresses! Physical!
Addresses!
Before fault! After fault!
![Page 22: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/22.jpg)
Disk
22
Servicing a Page Fault
n (1) Processor signals controller q Read block of length P starting
at disk address X and store starting at memory address Y
n (2) Read occurs q Direct Memory Access (DMA) q Under control of I/O controller
n (3) Controller signals completion q Interrupt processor q OS resumes suspended process Disk
Memory-I/O bus
Processor
Cache
Memory I/O controller
Reg
(2) DMA Transfer
(1) Initiate Block Read
(3) Read Done
![Page 23: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/23.jpg)
Page Table is Per Process n Each process has its own virtual address space
q Full address space for each program q Simplifies memory allocation, sharing, linking and loading.
23
Virtual Address Space for Process 1:
Physical Address Space (DRAM) VP 1
VP 2 PP 2 Address
Translation
0
0
N-1
0
N-1 M-1
VP 1 VP 2
PP 7
PP 10
(e.g., read/only library code)
...
...
Virtual Address Space for Process 2:
![Page 24: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/24.jpg)
Address Translation n How to obtain the physical address from a virtual address?
n Page size specified by the ISA q VAX: 512 bytes q Today: 4KB, 8KB, 2GB, … (small and large pages mixed
together) q Trade-offs? (remember cache lectures)
n Page Table contains an entry for each virtual page q Called Page Table Entry (PTE) q What is in a PTE?
24
![Page 25: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/25.jpg)
Address Translation (II)
25
![Page 26: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/26.jpg)
26
Address Translation (III) n Parameters
q P = 2p = page size (bytes). q N = 2n = Virtual-address limit q M = 2m = Physical-address limit
virtual page number page offset virtual address
physical frame number page offset physical address 0 p–1
address translation
p m–1
n–1 0 p–1 p
Page offset bits don’t change as a result of translation
![Page 27: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/27.jpg)
27
Address Translation (IV)
virtual page number (VPN) page offset
virtual address
physical frame number (PFN) page offset physical address
0 p–1 p m–1
n–1 0
p–1 p page table
base register (per process)
if valid=0 then page not in memory (page fault)
valid physical frame number (PFN)
VPN acts as table index
n Separate (set of) page table(s) per process n VPN forms index into page table (points to a page table entry) n Page Table Entry (PTE) provides information about page
access
![Page 28: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/28.jpg)
28
Address Translation: Page Hit
![Page 29: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/29.jpg)
29
Address Translation: Page Fault
![Page 30: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/30.jpg)
What Is in a Page Table Entry (PTE)?
30
n Page table is the “tag store” for the physical memory data store q A mapping table between virtual memory and physical memory
n PTE is the “tag store entry” for a virtual page in memory q Need a valid bit à to indicate validity/presence in physical memory q Need tag bits (PFN) à to support translation q Need bits to support replacement q Need a dirty bit to support “write back caching” q Need protection bits to enable access control and protection
![Page 31: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/31.jpg)
Remember: Cache versus Page Replacement n Physical memory (DRAM) is a cache for disk
q Usually managed by system software via the virtual memory subsystem
n Page replacement is similar to cache replacement n Page table is the “tag store” for physical memory data store n What is the difference?
q Required speed of access to cache vs. physical memory q Number of blocks in a cache vs. physical memory q “Tolerable” amount of time to find a replacement candidate
(disk versus memory access latency) q Role of hardware versus software
31
![Page 32: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/32.jpg)
Page Replacement Algorithms n If physical memory is full (i.e., list of free physical pages is
empty), which physical frame to replace on a page fault?
n Is True LRU feasible? q 4GB memory, 4KB pages, how many possibilities of ordering?
n Modern systems use approximations of LRU q E.g., the CLOCK algorithm
n And, more sophisticated algorithms to take onto account “frequency” of use q E.g., the ARC algorithm q Megiddo and Modha, “ARC: A Self-Tuning, Low Overhead
Replacement Cache,” FAST 2003.
32
![Page 33: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/33.jpg)
CLOCK Page Replacement Algorithm n Keep a circular list of physical frames in memory n Keep a pointer (hand) to the last-examined frame in the list n When a page is accessed, set the R bit in the PTE n When a frame needs to be replaced, replace the first frame
that has the reference (R) bit not set, traversing the circular list starting from the pointer (hand) clockwise q During traversal, clear the R bits of examined frames q Set the hand pointer to the next frame in the list
33
![Page 34: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/34.jpg)
Aside: Page Size Trade Offs n What is the granularity of management of physical memory? n Large vs. small pages n Tradeoffs have analogies to large vs. small cache blocks
n Many different tradeoffs with advantages and disadvantages q Size of the Page Table (tag store) q Reach of the Translation Lookaside Buffer (we will see this later) q Transfer size from disk to memory (waste of bandwidth?) q Waste of space within a page (internal fragmentation) q Waste of space within the entire physical memory (external
fragmentation) q Granularity of access protection q …
34
![Page 35: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/35.jpg)
Access Protection/Control via Virtual Memory
![Page 36: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/36.jpg)
Page-Level Access Control (Protection) n Not every process is allowed to access every page
q E.g., may need supervisor level privilege to access system pages
n Idea: Store access control information on a page basis in the process’s page table
n Enforce access control at the same time as translation
à Virtual memory system serves two functions today Address translation (for illusion of large physical memory) Access control (protection)
36
![Page 37: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/37.jpg)
Two Functions of Virtual Memory
37
![Page 38: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/38.jpg)
VM as a Tool for Memory Access Protection
38
Page Tables!
Process i:!
Physical Addr!Read?! Write?! PP 6!Yes! No!
PP 4!Yes! Yes!
XXXXXXX! No! No!
VP 0:!
VP 1:!
VP 2:!•"•"•
•"•"•
•"•"•
Process j:!
PP 0"
Memory!
Physical Addr!Read?! Write?! PP 6!Yes! Yes!
PP 9!Yes! No!
XXXXXXX! No! No!•"•"•
•"•"•
•"•"•
VP 0:!
VP 1:!
VP 2:!
PP 2"
PP 4"
PP 6"
PP 8"PP 10"
PP 12"•"•"•
n Extend Page Table Entries (PTEs) with permission bits n Check bits on each access and during a page fault
q If violated, generate exception (Access Protection exception)
![Page 39: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/39.jpg)
Access Control Logic
39
![Page 40: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/40.jpg)
Privilege Levels in x86
40
![Page 41: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/41.jpg)
Page Level Protection in x86
41
![Page 42: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/42.jpg)
Some Issues in Virtual Memory
![Page 43: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/43.jpg)
Three Major Issues n How large is the page table and how do we store and
access it?
n How can we speed up translation & access control check?
n When do we do the translation in relation to cache access?
n There are many other issues we will not cover in detail q What happens on a context switch? q How can you handle multiple page sizes? q …
43
![Page 44: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/44.jpg)
Virtual Memory Issue I n How large is the page table?
n Where do we store it? q In hardware? q In physical memory? (Where is the PTBR?) q In virtual memory? (Where is the PTBR?)
n How can we store it efficiently without requiring physical memory that can store all page tables? q Idea: multi-level page tables q Only the first-level page table has to be in physical memory q Remaining levels are in virtual memory (but get cached in
physical memory when accessed)
44
![Page 45: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/45.jpg)
Issue: Page Table Size
n Suppose 64-‐bit VA and 40-‐bit PA, how large is the page table?
252 entries x ~4 bytes ≈ 16x1015 Bytes and that is for just one process! and the process many not be using the enHre
VM space! 45
VPN PO
page table
concat PA
64-‐bit
12-‐bit 52-‐bit
28-‐bit 40-‐bit
![Page 46: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/46.jpg)
Solution: Multi-Level Page Tables
46
Example from x86 architecture
![Page 47: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/47.jpg)
Page Table Access n How do we access the Page Table?
n Page Table Base Register (CR3 in x86) n Page Table Limit Register
n If VPN is out of the bounds (exceeds PTLR) then the process did not allocate the virtual page à access control exception
n Page Table Base Register is part of a process’s context q Just like PC, status registers, general purpose registers q Needs to be loaded when the process is context-switched in
47
![Page 48: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/48.jpg)
More on x86 Page Tables (I): Small Pages
48
![Page 49: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/49.jpg)
More on x86 Page Tables (II): Large Pages
49
![Page 50: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/50.jpg)
x86 Page Table Entries
50
![Page 51: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/51.jpg)
x86 PTE (4KB page)
51
![Page 52: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/52.jpg)
x86 Page Directory Entry (PDE)
52
![Page 53: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/53.jpg)
Four-level Paging in x86
53
![Page 54: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/54.jpg)
Four-level Paging and Extended Physical Address Space in x86
54
![Page 55: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/55.jpg)
Virtual Memory Issue II n How fast is the address translation?
q How can we make it fast?
n Idea: Use a hardware structure that caches PTEs à Translation lookaside buffer
n What should be done on a TLB miss? q What TLB entry to replace? q Who handles the TLB miss? HW vs. SW?
n What should be done on a page fault? q What virtual page to replace from physical memory? q Who handles the page fault? HW vs. SW?
55
![Page 56: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/56.jpg)
56
Speeding up Translation with a TLB n Essentially a cache of recent address translations
q Avoids going to the page table on every reference
n Index = lower bits of VPN (virtual page #) n Tag = unused bits of VPN + process ID n Data = a page-table entry n Status = valid, dirty
The usual cache design choices (placement, replacement policy, multi-level, etc.) apply here too.
![Page 57: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/57.jpg)
Handling TLB Misses n The TLB is small; it cannot hold all PTEs
q Some translations will inevitably miss in the TLB q Must access memory to find the appropriate PTE
n Called walking the page directory/table n Large performance penalty
n Who handles TLB misses? Hardware or software?
![Page 58: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/58.jpg)
Handling TLB Misses (II) n Approach #1. Hardware-Managed (e.g., x86)
q The hardware does the page walk q The hardware fetches the PTE and inserts it into the TLB
n If the TLB is full, the entry replaces another entry
q Done transparently to system software
n Approach #2. Software-Managed (e.g., MIPS) q The hardware raises an exception q The operating system does the page walk q The operating system fetches the PTE q The operating system inserts/evicts entries in the TLB
![Page 59: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/59.jpg)
Handling TLB Misses (III) n Hardware-Managed TLB
q Pro: No exception on TLB miss. Instruction just stalls q Pro: Independent instructions may continue q Pro: No extra instructions/data brought into caches. q Con: Page directory/table organization is etched into the
system: OS has little flexibility in deciding these
n Software-Managed TLB q Pro: The OS can define page table oganization q Pro: More sophisticated TLB replacement policies are possible q Con: Need to generate an exception à performance overhead
due to pipeline flush, exception handler execution, extra instructions brought to caches
![Page 60: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/60.jpg)
Virtual Memory Issue III n When do we do the address translation?
q Before or after accessing the L1 cache?
60
![Page 61: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/61.jpg)
Virtual Memory and Cache Interaction
![Page 62: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/62.jpg)
Address Translation and Caching n When do we do the address translation?
q Before or after accessing the L1 cache?
n In other words, is the cache virtually addressed or physically addressed? q Virtual versus physical cache
n What are the issues with a virtually addressed cache?
n Synonym problem: q Two different virtual addresses can map to the same physical
address à same physical address can be present in multiple locations in the cache à can lead to inconsistency in data
62
![Page 63: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/63.jpg)
Homonyms and Synonyms n Homonym: Same VA can map to two different PAs
q Why? n VA is in different processes
n Synonym: Different VAs can map to the same PA q Why?
n Different pages can share the same physical frame within or across processes
n Reasons: shared libraries, shared data, copy-on-write pages within the same process, …
n Do homonyms and synonyms create problems when we have a cache? q Is the cache virtually or physically addressed?
63
![Page 64: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/64.jpg)
Cache-VM Interaction
64
CPU
TLB
cache
lower hier.
physical cache
CPU
cache
tlb
lower hier.
virtual (L1) cache
VA
PA
CPU
cache tlb
lower hier.
virtual-‐physical cache
VA
PA
VA
PA
![Page 65: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/65.jpg)
Physical Cache
65
![Page 66: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/66.jpg)
Virtual Cache
66
![Page 67: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/67.jpg)
Virtual-Physical Cache
67
![Page 68: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/68.jpg)
Virtually-Indexed Physically-Tagged n If C≤(page_size × associaHvity), the cache index bits come only
from page offset (same in VA and PA) n If both cache and TLB are on chip
q index both arrays concurrently using VA bits q check cache tag (physical) against TLB output at the end
68
VPN Page Offset
TLB
PPN
Index BiB
physical cache
tag data =
cache hit? TLB hit?
![Page 69: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/69.jpg)
Virtually-Indexed Physically-Tagged n If C>(page_size × associaHvity), the cache index bits include VPN ⇒ Synonyms can cause problems q The same physical address can exist in two locaHons
n SoluHons?
69
VPN Page Offset
TLB
PPN
Index BiB
physical cache
tag data =
cache hit? TLB hit?
a
![Page 70: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/70.jpg)
Some Solutions to the Synonym Problem n Limit cache size to (page size times associativity)
q get index from page offset
n On a write to a block, search all possible indices that can contain the same physical block, and update/invalidate q Used in Alpha 21264, MIPS R10K
n Restrict page placement in OS q make sure index(VA) = index(PA) q Called page coloring q Used in many SPARC processors
70
![Page 71: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/71.jpg)
An Exercise n Problem 5 from
q Past midterm exam Problem 5, Spring 2009 q http://www.ece.cmu.edu/~ece740/f11/lib/exe/fetch.php?
media=wiki:midterm:midterm_s09.pdf
71
![Page 72: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/72.jpg)
An Exercise (I)
72
![Page 73: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/73.jpg)
73
An Exercise (II)
![Page 74: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/74.jpg)
74
![Page 75: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/75.jpg)
An Exercise (Concluded)
75
![Page 76: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/76.jpg)
Solutions to the Exercise n http://www.ece.cmu.edu/~ece740/f11/lib/exe/fetch.php?
media=wiki:midterm:midterm_s09_solution.pdf
n And, more exercises are in past exams and in your homeworks…
76
![Page 77: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/77.jpg)
Review: Solutions to the Synonym Problem n Limit cache size to (page size times associativity)
q get index from page offset
n On a write to a block, search all possible indices that can contain the same physical block, and update/invalidate q Used in Alpha 21264, MIPS R10K
n Restrict page placement in OS q make sure index(VA) = index(PA) q Called page coloring q Used in many SPARC processors
77
![Page 78: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/78.jpg)
Some Questions to Ponder n At what cache level should we worry about the synonym
and homonym problems?
n What levels of the memory hierarchy does the system software’s page mapping algorithms influence?
n What are the potential benefits and downsides of page coloring?
78
![Page 79: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/79.jpg)
Fast Forward: Virtual Memory – DRAM Interaction
n Operating System influences where an address maps to in DRAM
n Operating system can control which bank/channel/rank a virtual page is mapped to.
n It can perform page coloring to minimize bank conflicts n Or to minimize inter-application interference
79
Column (11 bits) Bank (3 bits) Row (14 bits) Byte in bus (3 bits)
Page offset (12 bits) Physical Frame number (19 bits)
Page offset (12 bits) Virtual Page number (52 bits) VA
PA PA
![Page 80: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/80.jpg)
We did not cover the following slides. They are for your benefit.
![Page 81: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/81.jpg)
Protection and Translation without Virtual Memory
![Page 82: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/82.jpg)
Aside: Protection w/o Virtual Memory n Question: Do we need virtual memory for protection?
n Answer: No
n Other ways of providing memory protection q Base and bound registers q Segmentation
n None of these are as elegant as page-based access control q They run into complexities as we need more protection
capabilites
82
![Page 83: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/83.jpg)
Very Quick Overview: Base and Bound In a multi-tasking system Each process is given a non-overlapping, contiguous physical memory region, everything
belonging to a process must fit in that region When a process is swapped in, OS sets base to the start of the process’s memory region
and bound to the end of the region HW translation and protection check (on each memory reference)
PA = EA + base, provided (PA < bound), else violations ⇒ Each process sees a private and uniform address space (0 .. max)
83
physical mem.
active process’s region
another process’s region
Base
Bound
Bound can also be formulated as a range
privileged control registers
![Page 84: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/84.jpg)
Very Quick Overview: Base and Bound (II) n Limitations of the base and bound scheme
q large contiguous space is hard to come by after the system runs for a while---free space may be fragmented
q how do two processes share some memory regions but not others?
84
![Page 85: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/85.jpg)
Segmented Address Space
85
n segment == a base and bound pair n segmented addressing gives each process multiple segments
q initially, separate code and data segments - 2 sets of base-and-bound reg’s for inst and data fetch - allowed sharing code segments
q became more and more elaborate: code, data, stack, etc.
SEG # EA
segment table
+,< base &
bound
PA &
okay?
segment tables must be 1.
privileged data structures and 2. private/unique to
each process
![Page 86: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/86.jpg)
Segmented Address Translation n EA: segment number (SN) and a segment offset (SO)
q SN may be specified explicitly or implied (code vs. data) q segment size limited by the range of SO q segments can have different sizes, not all SOs are meaningful
n Segment translation and protection table q maps SN to corresponding base and bound q separate mapping for each process q must be a privileged structure
86
SN SO
segment table
+,< base bound PA, okay?
![Page 87: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/87.jpg)
Segmentation as a Way to Extend Address Space
n How to extend an old ISA to support larger addresses for new applications while remaining compatible with old applications?
87
SN SO
“large” base large EA
small EA
![Page 88: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/88.jpg)
Issues with Segmentation n Segmented addressing creates fragmentation problems:
q a system may have plenty of unallocated memory locations q they are useless if they do not form a contiguous region of a
sufficient size
n Page-based virtual memory solves these issues q By ensuring the address space is divided into fixed size
“pages” q And virtual address space of each process is contiguous q The key is the use of indirection to give each process the
illusion of a contiguous address space
88
![Page 89: 18-447 Computer Architecture Lecture 20: Virtual Memoryece447/s15/lib/exe/fetch.php?... · 2015-03-04 · 18-447 Computer Architecture Lecture 20: Virtual Memory Prof. Onur Mutlu](https://reader034.vdocuments.net/reader034/viewer/2022042322/5f0cb2f17e708231d436b223/html5/thumbnails/89.jpg)
Page-based Address Space n In a Paged Memory System: n PA space is divided into fixed size “segments” (e.g., 4kbyte),
more commonly known as “page frames” n VA is interpreted as page number and page offset
89
Page No. Page Offset
page table
+ Frame no &
okay?
PA
page tables must be 1.
privileged data structures and 2. private/unique to
each process