Irune Yarza and Mikel Azkarate-Askatsua and Peio Onaindia and Philipp Ittershagen and Kim Grüttner and Wolfgang Nebel
12th Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools (RAPIDO) at HIPEAC’20
Evolution to next generation embedded systems is shortening the obsolescence period of the underlying hardware. As this happens, software designed for those platforms (a.k.a., legacy code), that might be functionally correct and validated code, may be lost in the architecture and peripheral change. As embedded systems often have real-time computing constraints, the legacy code retargeting issue directly affects real-time systems. Binary translation techniques have been widely applied for legacy code migration. However, there are just a few works that consider real-time legacy code. Therefore, this paper presents a static and a dynamic binary migration approach (based on QEMU and Rev.ng respectively) and analyzes and compares their suitability as real-time code migration solutions. The comparison shows that among the proposed solutions, the static is the most appropriate for short-running real-time legacy code, since it ensures lower translation overhead and a more deterministic timing behavior. Instead, the dynamic approach might be a suitable solution for real-time legacy code with long periods (over 0.01 s) and mainly composed of complex floating point computations, since the dynamic translation and optimization overhead is not that significant on long-running benchmarks and the static translation implies a great slowdown on benchmarks containing floating point operations.