Font Size: a A A

ARABBIT: Architectural Aided Binary to Binary Translation

Posted on:1998-05-18Degree:Ph.DType:Dissertation
University:Carnegie Mellon UniversityCandidate:Hernandez, Carol BelenFull Text:PDF
GTID:1468390014479141Subject:Computer Science
Abstract/Summary:
Binary to Binary Translation is the preferred method to migrate applications between different architectures because it reduces the time and resources required for the migration, and helps protect huge investments in software development. Approaches to binary translation developed to date have focused almost exclusively on the translation of code. A program, however, is composed of code and data, and if not handled properly, data representation mismatches between the source and target architecture can cause the translated program to fail, even if it is semantically equivalent to the source code.;This research presents a conceptual framework for the binary translation of data types. The framework proposes two data emulation architectures: unified and dual, and several conversion algorithms for the translation of the architecture data holders: register and memory. Four benchmarks with different ratios of data types are translated between two source/target pairs. The performance of the translated program is defined as the dynamic Program Expansion. Performance models estimate the contributions of code and data to Program Expansion. The Data Expansion of the four benchmarks for a source/target pair with floating point representation mismatches, ranged between 0.08 and 5.27, accounting for 1.7% to 50% of the estimated Program Expansion. For a source/target pair using the same floating point format, the Data Expansion of the four benchmarks varied between 0 and 0.55 and accounts for 3% of the Program Expansion. The prediction error is 7.4% on average for both source/target pairs.;It was found that data representation mismatches and the ratio of floating point to integer references in the source program impact the selection of the data emulation architecture/conversion approach to minimize Data Expansion. Unified emulation architectures are the best choice for programs with a low ratio of floating point to integer references. As this ratio increases, a dual emulation architecture becomes the preferred choice. Also, the higher the ratio of floating point to integer references in the source program, the higher the Data Expansion. Picking the wrong data emulation architecture can lead to doubling the amount of translated code that must be executed.
Keywords/Search Tags:Binary translation, Data, Architecture, Expansion, Floating point, Code, Translated
Related items