2012
DOI: 10.1145/2345156.1993508
|View full text |Cite
|
Sign up to set email alerts
|

Generalized just-in-time trace compilation using a parallel task farm in a dynamic binary translator

Abstract: Dynamic Binary Translation (DBT) is the key technology behind cross-platform virtualization and allows software compiled for one Instruction Set Architecture (ISA) to be executed on a processor supporting a different ISA. Under the hood, DBT is typically implemented using Just-In-Time (JIT) compilation of frequently executed program regions, also called traces. The main challenge is translating frequently executed program regions as fast as possible into highly efficient native code. As time for JIT compilatio… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
10
0

Year Published

2012
2012
2014
2014

Publication Types

Select...
3
2

Relationship

3
2

Authors

Journals

citations
Cited by 7 publications
(11 citation statements)
references
References 13 publications
(15 reference statements)
1
10
0
Order By: Relevance
“…There have been explorations on using concurrent JIT to enhance the performance of virtual machines [7,15,22]. They have not systematically explored the influence of the order of compilation events.…”
Section: Related Workmentioning
confidence: 99%
“…There have been explorations on using concurrent JIT to enhance the performance of virtual machines [7,15,22]. They have not systematically explored the influence of the order of compilation events.…”
Section: Related Workmentioning
confidence: 99%
“…Existing JVMs, such as Sun's HotSpot server VM [Paleczny et al 2001] and the Azul VM (derived from HotSpot), support multiple compiler threads but do not present any discussions on ideal compilation strategies for multicore machines. Prior work by Böhm et al explores the issue of parallel JIT compilation with a priority queue-based dynamic work scheduling strategy in the context of their dynamic binary translator [Böhm et al 2011]. Esmaeilzadeh et al study the scalability of various Java workloads and their power/performance tradeoffs across several different architectures [Esmaeilzadeh et al 2011].…”
Section: Background and Related Workmentioning
confidence: 99%
“…loop header, method entry) [2,15,17,19,36], or always enabled when interpreting code [4]. Various backbone data structures have been suggested to capture recorded traces such as trace-trees [14], control-flow-graphs (CFG) of traced basic blocks [4], or hybrids between trace-trees and CFGs called trace-regions [2] or trace-graphs [18]. In general, recording approaches for multi-threaded applications can be categorized based on how CFG recordings are accessed and constructed:…”
Section: Region-recording For Multi-threaded Applicationsmentioning
confidence: 99%
“…At the end of each interval frequently executed regions are dispatched to a region translation priority queue, before continuing to interpret the program. A detailed description of the priority function used to order regions can be found in [4]. JIT workers operating in parallel threads can then claim a region from the queue, JIT compile it, and update the region translation state, thereby indicating the availability of native code for that recorded region to the interpreter loop.…”
Section: Multi-core Dbt Designmentioning
confidence: 99%