Upload
violet-chase
View
216
Download
0
Embed Size (px)
Citation preview
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