|
Binary translation, the process of translating binary executables, makes it
possible to run code compiled for source (input) machine Ms on
target (output) machine Mt . Unlike an interpreter or emulator,
a binary translator makes it possible to approach the speed of native code
on machine Mt . Translated code may still run slower than native
code because low-level properties of machine Ms must often be
modeled on machine Mt.
The University of Queensland Binary Translation (UQBT) framework is a
retargetable framework for experimenting with static binary translation on
CISC and RISC machines. The system was built jointly by The University of
Queensland and Sun Microsystems Laboratories in order to experiment with
translations to and from different machines, to understand how to migrate
applications from other UNIX migrate-based platforms to a (SPARC®, Solaris™)
platform, and to experiment with translations from the current SPARC
architecture to a future, not yet existing, version of the SPARC
architecture.
This paper describes the overall design and architecture of the UQBT
framework, the goals for the project, the resulting framework, experiences
with translations across different machines, and lessons learned.
|