Documente Academic
Documente Profesional
Documente Cultură
Instructors:
Randy
Bryant
and
Dave
OHallaron
Carnegie Mellon
Today
Address
spaces
VM
as
a
tool
for
caching
VM
as
a
tool
for
memory
management
VM
as
a
tool
for
memory
protec;on
Address
transla;on
Carnegie Mellon
CPU
...
Main
memory
0:
1:
Physical
address
2:
3:
(PA)
4:
4
5:
6:
7:
8:
M-1:
Data
word
Carnegie Mellon
Virtual
address
(VA)
4100
MMU
Physical
address
(PA)
...
Main
memory
0:
1:
2:
3:
4:
5:
6:
7:
8:
M-1:
Data
word
Carnegie Mellon
Address Spaces
Carnegie Mellon
Carnegie Mellon
Today
Address
spaces
VM
as
a
tool
for
caching
VM
as
a
tool
for
memory
management
VM
as
a
tool
for
memory
protec;on
Address
transla;on
Carnegie Mellon
Physical memory
0
0
Uncached
Unallocated
Cached
Uncached
Cached
n-p
VP
2 -1
Uncached
Empty
PP
0
PP
1
Empty
Empty
M-1
PP 2m-p-1
N-1
Carnegie Mellon
Consequences
Large
page
(block)
size:
typically
4-8
KB,
some0mes
4
MB
Fully
associa0ve
Any
VP
can
be
placed
in
any
PP
Requires
a
large
mapping
func0on
dierent
from
CPU
caches
Highly
sophis0cated,
expensive
replacement
algorithms
Too
complicated
and
open-ended
to
be
implemented
in
hardware
Write-back
rather
than
write-through
Carnegie Mellon
Page Tables
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
4
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
10
Carnegie Mellon
Page Hit
Virtual address
Physical
page
number
or
Valid
disk
address
PTE
0
0
null
1
1
0
1
0
0
PTE
7
1
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
4
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
11
Carnegie Mellon
Page Fault
Physical
page
number
or
Valid
disk
address
PTE
0
0
null
1
1
0
1
0
0
PTE
7
1
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
4
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
12
Carnegie Mellon
Virtual address
Physical
page
number
or
Valid
disk
address
PTE
0
0
null
1
1
0
1
0
0
PTE
7
1
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
4
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
13
Carnegie Mellon
Virtual address
Physical
page
number
or
Valid
disk
address
PTE
0
0
null
1
1
0
1
0
0
PTE
7
1
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
4
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
14
Carnegie Mellon
Virtual address
Physical
page
number
or
Valid
disk
address
PTE
0
0
null
1
1
1
0
0
0
PTE
7
1
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
3
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
15
Carnegie Mellon
Physical
page
number
or
Valid
disk
address
PTE
0
0
null
1
1
1
0
0
0
PTE
7
1
null
Physical
memory
(DRAM)
VP
1
VP
2
VP
7
VP
3
PP
0
PP
3
Virtual
memory
(disk)
VP
1
Memory
resident
page
table
(DRAM)
VP
2
VP
3
VP
4
VP
6
VP
7
16
Carnegie Mellon
17
Carnegie Mellon
Today
Address
spaces
VM
as
a
tool
for
caching
VM
as
a
tool
for
memory
management
VM
as
a
tool
for
memory
protec;on
Address
transla;on
18
Carnegie Mellon
Key
idea:
each
process
has
its
own
virtual
address
space
It
can
view
memory
as
a
simple
linear
array
Mapping
func0on
scagers
addresses
through
physical
memory
Virtual
Address
Space
for
Process
1:
VP
1
VP
2
Address
translaHon
PP 2
...
Physical
Address
Space
(DRAM)
N-1
PP 6
Virtual
Address
Space
for
Process
2:
PP 8
VP
1
VP
2
...
...
N-1
(e.g.,
read-only
library
code)
M-1
19
Carnegie Mellon
Memory
alloca;on
Each
virtual
page
can
be
mapped
to
any
physical
page
A
virtual
page
can
be
stored
in
dierent
physical
pages
at
dierent
0mes
VP
1
VP
2
Address
translaHon
PP 2
...
Physical
Address
Space
(DRAM)
N-1
PP 6
Virtual
Address
Space
for
Process
2:
PP 8
VP
1
VP
2
...
...
N-1
(e.g.,
read-only
library
code)
M-1
20
Carnegie Mellon
Linking
0xc0000000
User
stack
(created
at
run;me)
address space
Memory
invisible
to
user
code
%esp
(stack
pointer)
0x40000000
Loading
execve() allocates
virtual
pages
for
.text
and
.data
sec0ons
=
creates
PTEs
marked
as
invalid
Run-;me
heap
(created
by
malloc)
Read/write
segment
(.data,
.bss)
Read-only
segment
(.init,
.text,
.rodata)
0x08048000
brk
Loaded
from
the
executable
le
Unused
21
Carnegie Mellon
Today
Address
spaces
VM
as
a
tool
for
caching
VM
as
a
tool
for
memory
management
VM
as
a
tool
for
memory
protec;on
Address
transla;on
22
Carnegie Mellon
Process i:
Process j:
SUP
READ WRITE
Address
VP 0:
No
Yes
No
PP 6
VP
1:
VP
2:
No
Yes
Yes
PP 4
Yes
Yes
Yes
PP 2
SUP
READ WRITE
Physical
Address
Space
PP
2
PP
4
PP
6
Address
VP 0:
No
Yes
No
PP 9
VP 1:
Yes
Yes
Yes
PP 6
VP 2:
No
Yes
Yes
PP 11
PP
8
PP
9
PP
11
23
Carnegie Mellon
Today
Address
spaces
VM
as
a
tool
for
caching
VM
as
a
tool
for
memory
management
VM
as
a
tool
for
memory
protec;on
Address
transla;on
24
Carnegie Mellon
VM Address Transla;on
Address
Transla;on
MAP:
V
P
U
{}
For
virtual
address
a:
25
Carnegie Mellon
Basic
Parameters
N
=
2n
:
Number
of
addresses
in
virtual
address
space
M
=
2m
:
Number
of
addresses
in
physical
address
space
P
=
2p
:
Page
size
(bytes)
Carnegie Mellon
Page
table
base
register
(PTBR)
Page
table
address
for
process
p p-1
Page
table
Valid
Valid
bit
=
0:
page
not
in
memory
(page
fault)
m-1
p p-1
Physical
address
27
Carnegie Mellon
CPU
Chip
CPU
1
VA
PTE
MMU
3
PA
Cache/
Memory
4
Data
5
Carnegie Mellon
CPU
Chip
CPU
1
VA
7
MMU
PTE
3
Vic;m page
Cache/
Memory
Disk
New
page
6
29
Carnegie Mellon
CPU
Chip
PTEA
CPU
PTE
PTEA
hit
VA
MMU
PTEA
miss
PA
PA
miss
PA
hit
Data
PTEA
PA
Memory
Data
L1
cache
VA:
virtual
address,
PA:
physical
address,
PTE:
page
table
entry,
PTEA
=
PTE
address
30
Carnegie Mellon
31
Carnegie Mellon
TLB
Hit
CPU
Chip
CPU
TLB
2
PTE
VPN
1
VA
MMU
PA
4
Cache/
Memory
Data
5
Carnegie Mellon
TLB
Miss
CPU
Chip
TLB
2
4
PTE
VPN
CPU
1
VA
MMU
3
PTEA
PA
Cache/
Memory
Data
6
33
Carnegie Mellon
Suppose:
4KB
(212)
page
size,
48-bit
address
space,
8-byte
PTE
Problem:
Would
need
a
512
GB
page
table!
Level
1
Table
...
Common
solu;on:
Mul0-level
page
tables
Example:
2-level
page
table
Level
2
Tables
...
34
Carnegie Mellon
Level
2
page
tables
Virtual
memory
VP
0
PTE 0
PTE 0
PTE 1
...
PTE 2 (null)
PTE 1023
PTE
3
(null)
PTE
0
PTE 5 (null)
...
PTE 6 (null)
PTE 1023
VP
1023
VP
1024
2K
allocated
VM
pages
for
code
and
data
...
Gap
PTE 7 (null)
(1K
-
9)
null
PTEs
...
VP 2047
PTE 4 (null)
PTE 8
6K unallocated VM pages
1023
null
PTEs
PTE
1023
...
1023
unallocated
pages
VP
9215
Carnegie Mellon
Summary
36