heterogeneous chip multiprocessor design for virtual machines dan upton and kim hazelwood university...
TRANSCRIPT
Heterogeneous Chip Multiprocessor Design for Virtual Machines
Dan Upton and Kim Hazelwood
University of Virginia
Pairing CMPs and VMs
• Challenge for chip multiprocessors: exploiting all available thread-level parallelism
• Challenge for virtual machines: reducing overhead
• Our solution: moving the VM to a separate core – only give a VM core what the VM needs
Heterogeneous Chip Multiprocessors
• Applications have different needs– Ex: Cache performance, available ILP
• Heterogeneous CMPs can be used to meet design constraints– Ex: Size, power, cost
Virtual machines• Many practical applications
– Dynamic translation (legacy ISA support)– Security– Instrumentation– …
HW
OS
App VM
App
HW
VM
OS
App App
Process VMs (Ex: Pin, JVM, Rosetta) System VMs (Ex: Xen, Transmeta)
Design Approach
• Characterize a VM’s microarchitectural performance
• Examine processor organization options• Consider beneficial modifcations for support
SimpleScalar-x86
Pin
Application
Two Examples
• Comparison of branch behavior against benchmarks from SPECINT 2000
• Comparison of cache performance
• Other experiments in paper
Example: Branch Prediction
0
0 . 1
0 . 2
0 . 3
0 . 4
0 . 5
0 . 6
0 . 7
0 . 8
0 . 9
1
P in b z ip 2 c r a f t y g c c g z ip m c f p a r s e r
A p p l i c a t i o n s ( P i n + S P E C I N T 2 0 0 0 )
IPC
(n
orm
ali
ze
d t
o
pe
rfe
ct
bra
nc
h p
red
icti
on
)
B im o d a l O n l y
H a l f - s iz e C o m b in in g
C o m b in in g
Example: L1 CachesP i n L 1 C a c h e P e r f o r m a n c e
0 . 0 0 %
1 . 0 0 %
2 . 0 0 %
3 . 0 0 %
4 . 0 0 %
5 . 0 0 %
6 . 0 0 %
7 . 0 0 %
8 . 0 0 %
D a t a In s t r u c t io n
Mis
s R
ate
6 4 k 4 - w a y 3 2 k 4 - w a y 3 2 k 2 - w a y 1 6 k 2 - w a y 1 6 k d m a p
Example: L2 CacheP i n L 2 C a c h e P e r f o r m a n c e
0 . 0 0 %
1 0 . 0 0 %
2 0 . 0 0 %
3 0 . 0 0 %
4 0 . 0 0 %
5 0 . 0 0 %
6 0 . 0 0 %
7 0 . 0 0 %
5 1 2 k 4 w a y 2 5 6 k 4 w a y 1 2 8 k 4 w a y
Mis
s R
ate
Design Options• Two basic classes:
General Purpose 1
General Purpose 2
VM(other
specialized)
General Purpose
VM
General Purpose
VM
General Purpose
VM
General Purpose
VM
Support Structures
Application CoreVM Core
where to compile
where to resume executingsupport for
indirect branches
• Support for tasks normally handled in software
Related Work
• Hardware support for VMs (Trident, DAISY, Kim and Smith)
• Transmeta
• Java in hardware (picoJava, JOP)
Work in Progress
• Comparing similarity of Pin to other VM software
• Characterizing VM compilation, cache management