Recitation #9, Section F, 15-213, Sp 06 TA: Jernej Barbic Virtual memory Reminders:  Quiz today: virtual memory  Shell Lab due Thursday Modified from: Kun Gao’s and Minglong.

Download Report

Transcript Recitation #9, Section F, 15-213, Sp 06 TA: Jernej Barbic Virtual memory Reminders:  Quiz today: virtual memory  Shell Lab due Thursday Modified from: Kun Gao’s and Minglong.

Recitation #9, Section F, 15-213, Sp 06
TA: Jernej Barbic
Virtual memory
Reminders:
 Quiz today: virtual memory
 Shell Lab due Thursday
Modified from:
Kun Gao’s
and
Minglong Shao’s
recitations,
Spring 2005,
Fall 2004
1
Virtual memory
 One of the most important concepts in CS
 Benefits of virtual memory (VM):





Use RAM as a cache for disk
Easier memory management
Simplifies linking and loading
Access protection
Share memory efficiently
2
Virtual memory
Memory
Per Process:
0:
1:
Page Table
Virtual
Addresses
0:
1:
Physical
Addresses
CPU
P-1:
N-1:
Disk
 Page hit: page is in memory
 Page fault: page is on disk
3
Virtual and physical addresses
p p–1
n–1
virtual page number (VPN)
page offset
0
virtual address
address translation
m–1
p p–1
physical page number (PPN)
0
page offset
physical address
Virtual Memory: up to 2n -1 bytes
Physical Memory: up to 2m -1 bytes
4
Page Table translates VPN to PPN
 Separate page table per each process
 VPN is the index into the page table
page table base register
VPN acts
as
table index
if valid=0
then page
not in memory
virtual address
n–1
p p–1
virtual page number (VPN)
page offset
0
valid access physical page number (PPN)
m–1
p p–1
physical page number (PPN)
page offset
physical address
0
5
Translation Lookaside Buffer (TLB)
 Page table is in memory or even on disk
(slow access)
 TLB keeps things manageable
1. VA
CPU
4. PA
MMU/
Translation
2. VPN
3. PTE
Cache/Memory
TLB
5. Data
6
TLB and the L1-Cache
n–1
p p–1
0
virtual page number
page offset
valid
.
virtual address
tag physical page number
.
TLB
.
=
TLB hit
physical address
tag
index
valid tag
byte offset
data
L1-Cache
=
cache hit
data
7
Worst case? (most delay)?
 TLB miss, page fault on page table, then page
fault on memory read
3. PTEA (PTBR + VPN)
1. VA
CPU
MMU/
Translation
2. VPN
5. PA
4. PTE
Cache/Memory
TLB
Page Fault/ Page Fault/
Page Table Mem Read
6. Data
DISK
8
Example
 20-bit virtual addresses
 18-bit physical addresses
 Page size is 1024 bytes
 TLB is 2-way associative with 16 total entries
9
Part 1
 A. Virtual address
TLBT
19
18
17
16
TLBI
15
14
13
12
11
10
9
8
7
6
VPN
5
4
3
2
1
0
3
2
1
0
VPO
 B. Physical address
17
16
15
14
13
PPN
12
11
10
9
8
7
6
5
4
PPO
10
Example: TLB and page table
11
Part 2
Virtual address 0x78E6
 A. 078E6 = 0000 0111 1000 1110 0110
 B. Address translation
parameter
VPN
TLB Index
Value
0x01E
0x6
Parameter
TLB hit?
Page fault?
Value
N
N
TLB Tag
0x03
PPN
0x57
 C. Physical address
01 0101 1100 1110 0110
12
Part 2
Virtual address 0x04AA4
 A. 04AA4 = 0000 0100 1010 1010 0100
 B. Address translation
parameter
VPN
TLB Index
Value
0x012
0x2
Parameter
TLB hit?
Page fault?
Value
Y
N
TLB Tag
0x02
PPN
0x68
 C. Physical address
01 1010 0010 1010 0100
13
Further material
 Section 10.6.4: a concrete example
 Read carefully and solve practice problem 10.4
14