07 virt memhier

50
COMPUTER ARCHITECTURE Virtualization and Memory Hierarchy

Upload: adrian3996

Post on 17-Jan-2016

241 views

Category:

Documents


0 download

DESCRIPTION

hgfhf

TRANSCRIPT

Page 1: 07 Virt Memhier

COMPUTER

ARCHITECTURE

Virtualization and Memory Hierarchy

Page 2: 07 Virt Memhier

Contents

Computer Architecture - 2014

2

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 3: 07 Virt Memhier

Limits of Physical Addressing

Computer Architecture - 2014

All programs share a single address space.

Physical address space.

There is no way to prevent a program to get access

to a resource.

CPU Physical Memory

A0-A31 A0-A31

D0-31 D0-31

Physical Addresses

Data

3

Page 4: 07 Virt Memhier

Limits of Physical Addressing

Computer Architecture - 2014

Programs executed in a normalized virtual address space.

Address Translation:

Performed by hardware.

Managed by OS.

Supported features:

Protection.

Translation.

Sharing.

CPU Physical Memory

A0-A31 A0-A31

D0-31 D0-31

Physical Addresses

Data

Address

Translation

Virtual Addresses

Virtual Physical

4

Page 5: 07 Virt Memhier

Advantages of virtual memory

Computer Architecture - 2014

5

Translation.

Programs may have a consistent view of memory.

Reduced cost of multi-thread applications.

Only the working-set is needed in main memory.

Dynamic structures only use physical memory they really need (e.g. stack).

Protection.

Allows to protect a process from others.

Attributes can be set at page-level.

Read-only, execution, …

Kernel data protected from programs.

Improves protection against malware.

Sharing.

A page can be mapped to several processes.

Page 6: 07 Virt Memhier

Differences with cache

Computer Architecture - 2014

6

Replacement:

Cache: Hardware controlled.

VM: Software controlled.

Size:

Cache size independent of address length.

VM size dependent of address length.

Parameter L1 cache Virtual memory

Block size 16 – 128 bytes 4096 – 65,536 bytes

Hit time 1 – 3 cycles 100-200 cycles

Miss penalty 8 – 200 cycles 106 – 107 cycles

Access time 6 – 160 cycles 8 · 105 – 8 · 106 cycles

Transfer time 2 – 40 cycles 2 · 105 – 2 · 106 cycles

Miss rate 0.1 – 10 % 0.00001 – 0.001%

Address mapping 25 – 45 bits physical

14 – 20 bits cache

32 – 64 bits virtual addr.

24 – 45 bits physical addr.

Page 7: 07 Virt Memhier

Contents

Computer Architecture - 2014

7

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 8: 07 Virt Memhier

Four question on memory hierarchy

Computer Architecture - 2014

8

Q1: Where can a block be placed in the upper

level?

Block placement.

Q2: How is a block found in the upper level?

Block identification.

Q3: Which block should be replaced on a miss?

Block replacement.

Q4: What happens on a write?

Write strategy.

Page 9: 07 Virt Memhier

Four question on memory hierarchy

Computer Architecture - 2014

9

Q1: Where is a page placed in main memory?

Page placement.

Q2: How is a page found in main memory?

Page identification.

Q3: Which page should be replaced on a miss?

Page replacement.

Q4: What happens on a write?

Write strategy.

Page 10: 07 Virt Memhier

Q1: Where is a page placed in main

memory?

Computer Architecture - 2014

10

A page can be placed in any page frame in main

memory.

Fully associative mapping.

Managed by operating system.

Goal: Minimize miss rate.

Cannot do much with miss penalty.

Very high penalty due to slow magnetic disks.

Page 11: 07 Virt Memhier

Q2: How is a page found in main

memory?

Computer Architecture - 2014

11

Keep in main memory a page table for every

process.

Mapping table between page identifier and frame

identifier.

Translation time reduction.

TLB: Translation Lookaside Buffer.

Avoid accesses to page table in main memory.

Page 12: 07 Virt Memhier

Q3: Which page should be replaced

on a miss?

Computer Architecture - 2014

12

Replacement policy defined by OS.

Typically LRU (Least-recently used).

Architecture must supply support to OS.

Use bit: Activated when page is accessed.

Actually only on TLB miss (to reduce work).

Operating system periodically zeroes this bit.

Records values later.

Allows to determine pages that have been touched within an

interval.

Page 13: 07 Virt Memhier

Q4: What happens on a write?

Computer Architecture - 2014

13

Write policy is always write-back.

No VM system with write-through ever built.

Don’t be tempted!

Disk write costs extremely high.

Disk writes minimization.

Dirty bit used to signal when a page has been

modified.

Page 14: 07 Virt Memhier

Contents

Computer Architecture - 2014

14

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 15: 07 Virt Memhier

Page table

Computer Architecture - 2014

15

Virtual mem. Physical mem.

pages

frames

Virtual page ID offset

Virtual address 12 bits

PTBR Prot. V Dir. Página

Prot. V Dir. Página

Prot. V Dir. Página

Prot. V Dir. Página

Prot. V Dir. Página

Prot. V Dir. Página

Prot. V Dir. Página

Prot. V Dir. Página

offset Page address

Page 16: 07 Virt Memhier

Page table size

Computer Architecture - 2014

16

Assuming 32 bits virtual addresses, 4 KB pages and

4 bytes per table-entry:

Table size: (232 / 212) · 22 = 222= 4 MB

Alternatives:

Multi-level page tables.

Inverted page tables.

Example: IA-64

Offers both alternatives to OS developer.

Page 17: 07 Virt Memhier

Multi-level page table

Computer Architecture - 2014

17

L1 Page offset

PT1

PT2

PT2

L2 Page

Page 18: 07 Virt Memhier

TLB

Computer Architecture - 2014

18

Ideal case (no miss):

Every memory access requires two accesses.

Access to page table.

Access to memory.

Worse scenario in case of multi-level page tables.

Solution:

Use translation cache to avoid page table accesses.

Tag: Portion of virtual address.

Data: Frame number, protection bits, validity bits and

dirty bit.

Page 19: 07 Virt Memhier

Example: TLB Opteron

Computer Architecture - 2014

19

Page 20: 07 Virt Memhier

A global view

Computer Architecture - 2014

20

Page 21: 07 Virt Memhier

Contents

Computer Architecture - 2014

21

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 22: 07 Virt Memhier

Virtual machines

Computer Architecture - 2014

22

Developed in late 60’s.

Used since then in mainframe environments.

Ignored in single-user machines until late 90’s.

Popularity recovered due to:

Increasing importance of isolation and security in modern systems.

Security failures and reliability requirements in operating systems.

Sharing of a single computer by several unrelated users. Datacenter, cloud, …

Dramatic increase in processors performance. VMM’S overhead now acceptable.

Page 23: 07 Virt Memhier

What is a virtual machine?

Computer Architecture - 2014

23

A virtual machine is taken to be an efficient, isolated

duplicate of the real machine. We explain these notions

through the ida of a virtual machine monitor (VMM)…

… a VMM has threee essential characteristics.

First, the VMM provides an environment for programs which

is essentially identical with the original machine,

second, programs run in this environment show at worst only

minor decreases in speed;

and last, the VMM is in complete control of system resources.

Popek, G. y Goldberg, R.

Formal requirements for virtualizable third generation architectures.

Communications of the ACM, July 1974

Page 24: 07 Virt Memhier

What is a virtual machine?

Computer Architecture - 2014

24

General definition: Any emulation method offering a standard software interface for the physical machine.

JVM? .NET?

System level virtual machines: Offer a complete system environment at binary ISA level.

Usually assuming that VM ISA and hardware ISA are identical.

Examples:

IBM VM/370.

VMWare ESX Server.

Xen.

Page 25: 07 Virt Memhier

What is a virtual machine?

Computer Architecture - 2014

25

Offer to users the illusion that they have a complete computer to use.

Including their own copy of OS.

A computer runs several virtual machines.

May support several operating systems.

All OS’s sharing the hardware.

Terminology:

Host: Underlying hardware platform.

Guest: Virtual machines sharing resources.

Page 26: 07 Virt Memhier

VM y VMM: Layers

Computer Architecture - 2014

26

VMM System Software Layer.

Allows running several VM on a single hardware.

Allows running unmodified applications.

...

Virtual Machine Monitor (VMM)

VMn VM0 VM1

Platform HW

I/O Devices Processor Memory

Virtual

Machines

(VMs)

Appn App0

Guest OS0

App1

Guest OS1 Guest OSn

Page 27: 07 Virt Memhier

VMM: Virtual Machine Monitors

Computer Architecture - 2014

27

Software supporting virtual machines

Virtual machine monitor or Hypervisor.

VMM determines mapping between virtual and physical resources.

Alternatives for physical resources sharing:

Time sharing.

Partitioning.

Software emulation.

A VMM is smaller than a traditional OS.

Page 28: 07 Virt Memhier

VMM overhead

Computer Architecture - 2014

28

Workload dependent.

User-level processor-bound programs:

Examples: SPEC.

Overhead: 0.

Seldom invocations to OS.

I/O intensive programs OS intensive:

Many system calls Privileged instructions.

May lead to much virtualization overhead.

I/O intensive and I/O bound programs:

Low processor utilization.

Virtualization may be hidden.

Low virtualization overhead.

Page 29: 07 Virt Memhier

Other uses of VMs

(besides protection)

Computer Architecture - 2014

29

Software management.

VM offers an abstraction allowing to run a complete software stack.

Old operating systems (DOS? Windows XP?, …?)

Typical deployment:

VM running legacy OS + stable OS + testing new OS.

Hardware management.

VM allows to run separate software stacks on top a a single hardware platform.

Server consolidation.

Independence Higher reliability.

Migrating running VMs.

Load balancing..

Hardware evacuation due to failures.

Cloud-based servers usually

supported by virtualization

e.g. Amazon

Page 30: 07 Virt Memhier

Uses of virtualization

Computer Architecture - 2014

30

Isolation Consolidation

Migration

HW

App2 App1

OS

HW1 HW2

App2 App1

OS1 OS2

VMM

HW

App2 App1

OS1 OS2

VMM

HW1

App

HW2

VMM

OS

VMM

HW1

App

HW2

VMM

OS

VMM

HW

App1 App2

OS OS

Page 31: 07 Virt Memhier

Contents

Computer Architecture - 2014

31

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 32: 07 Virt Memhier

VMM requirements (I)

Computer Architecture - 2014

32

A VMM:

Offers a software interface to guest software.

Isolates a guest state from the rest.

Protects itself from guests.

Guest software should behave as if there was no

VMM, except for

Performance dependent behavior.

Fixed resources limitations which are shared among

several VMMs.

Page 33: 07 Virt Memhier

VMM requirements (and II)

Computer Architecture - 2014

33

Guest software must not be able to modify directly real resources allocation.

VMM must control everything, even if it is used by guests.

Access to privleged state, address translation, I/O, exceptions, interruptions, …

VMM must run at a higher privileged level than guests.

Execution of any privileged instruction by VMM.

Requirements of VMM (equivalent to requirements for virtual memory)

A minimum of two processor modes.

Privileged instruction subset only in privileged mode.

Trap is executed in user mode.

Page 34: 07 Virt Memhier

ISA support for Virtual Machines

Computer Architecture - 2014

34

If VM considered in ISA design, it is easy to reduce instructions to be run by VMM and emulation time.

Most desktop ISA designed before VM emergence.

VMM must ensure that guest only interacts with virtual resources.

Guest OS run in user mode.

HW access tries lead to trap.

If ISA is not VM aware, then VMM must intercept problematic instructions.

Introduction of virtual resources.

Page 35: 07 Virt Memhier

Contents

Computer Architecture - 2014

35

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 36: 07 Virt Memhier

Impact on virtual memory

Computer Architecture - 2014

36

Every guest manages virtual memory.

Virtual memory virtualization?

VMM makes distinction between real memory and physical memory.

Real memory: Intermediate layer between virtual memory and physical memory.

Guest: Maps virtual to real memory.

VMM: Maps real memory to physical memory.

To reduce indirection levels, VMM keeps a shadow page table.

Mapping from virtual to physical memory.

VMM must capture changes in page table and pointer to page table.

Page 37: 07 Virt Memhier

ISA support for virtual machines and

virtual memory

Computer Architecture - 2014

37

IBM 370 (1970’s) additional level of indirection

managed by VMM.

Eliminates need for a shadow page table.

TLB virtualization:

VMM manages TLB and keeps copies of each guest

TLB.

TLB access generate traps.

TLB with process identifiers simplify management

allowing entries from multiple VMMs at the same time.

Page 38: 07 Virt Memhier

Impact of I/O on virtual machines

Computer Architecture - 2014

38

Most complex part of virtualization.

Increasing number of I/O devices.

Increasing diversity of I/O devices.

Sharing devices among VMs.

Support of great variety of drivers.

General part of driver left in guest.

Specific part in VMM.

Device dependent method. Disks: Partitioned by VMM to create virtual disks.

Network interfaces: Multiplexed over time. VMM manages virtual network addresses.

Page 39: 07 Virt Memhier

Contents

Computer Architecture - 2014

39

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 40: 07 Virt Memhier

Impure virtualization

Computer Architecture - 2014

40

Solution for non virtualizable architectures and to

reduce performance problems.

Approaches:

Paravirtualization: Port guest OS code to modified ISA.

Development effort.

Need to be repeated for every OS.

Source code availability.

Binary translation: Replace non-virtualizable instructions by

emulation code or call to VMM.

Does not require source code.

Some emulations possible at user space.

Page 41: 07 Virt Memhier

Example: XEN

Computer Architecture - 2014

41

Xen: Open source VMM for x86.

Strategy: Paravirtualization.

Small modifications to OS

Examples paravirtualization:

Avoid TLB flush when VMM invoked. Xen mapped into upper 64 MB in every VM.

Allow guests to allocate pages. Check protection restrictions are not violated.

Protection between programs and guest OS. Use protection levels from x86:

Xen (0), Guest (1), Programs (3).

Page 42: 07 Virt Memhier

Changes in Xen

Computer Architecture - 2014

42

Changes in Linux 3,000 LOC.

1% of the x86 specific code.

Page 43: 07 Virt Memhier

Xen: Performance

Computer Architecture - 2014

43

100%

97%

92%

95%96%

99%

90%

91%92%

93%

94%

95%96%

97%

98%99%

100%

SPEC INT2000 Linux build

time

PostgreSQL

Inf. Retrieval

PostgreSQL

OLTP

dbench SPEC WEB99

Pe

rfo

rma

nc

e r

ela

tiv

e t

o

na

tiv

e L

inu

x

Performance relative to native Linux

Page 44: 07 Virt Memhier

Contents

Computer Architecture - 2014

44

Virtual memory.

Policies and strategies.

Page tables.

Virtual machines.

Requirements of virtual machines and ISA support.

Virtual machines: Memory and I/O.

Use case: Xen.

Use case: Intel VT.

Page 45: 07 Virt Memhier

Intel Virtualization Technology

Computer Architecture - 2014

45

Adds new instructions: VMXON, VMXOFF,

VMLAUNCH, VMRESUME, …

Page 46: 07 Virt Memhier

AMD Secure Virtual Machine

Computer Architecture - 2014

46

Adds new instructions: VMRUN, VMCALL, …

Page 47: 07 Virt Memhier

Operation modes

Computer Architecture - 2014

47

VMX root:

Fully privileged.

Designed to be used by VMMs.

VMX non-root:

Non privileged.

Designed to by used by guest software.

Page 48: 07 Virt Memhier

Entering and exiting virtual machines

Computer Architecture - 2014

48

VM Entry

Transition from VMM to Guest.

Entry to non-root mode.

Loads guest mode.

VMLAUNCH instruction used for initial entry.

VMRESUME instruction used for subsequent entries.

VM Exit

Enter to root mode.

Saves guest state.

Loads state of VMM.

VMEXIT instruction used to transition to VMM.

Additional instructions and events may cause VMEXIT.

Physical Host Hardware

VM1

VM Monitor

VM0

Guest OS0

App App App ...

... Guest OS1

App App App ...

VM Exit VM Entry

Page 49: 07 Virt Memhier

Benefits

Computer Architecture - 2014

49

Reduces OS dependency.

Eliminates need for binary translation.

Eases support for legacy OSs.

Improves robustness.

Eliminates the need for complex techniques.

VMM smaller and simpler.

Improves performance.

Less transitions to VMM.

Page 50: 07 Virt Memhier

Reference

Computer Architecture - 2014

50

Computer Architecture. A Quantitative Approach.

Fifth Edition.

Hennessy y Patterson.

Sections: B.4, 2.4

Exercises: B.12, B.13, B.14, 2.20, 2.21, 2.22, 2.23